A. c語言,字元數組問題,請看我所寫的代碼哪裡有錯誤,提交答案的時候總是提示格式錯誤
printf("%d ",n);錯了。
比如期望輸出是:3空格4空格5空格3
你的輸出是:3空格4空格5空格3空格
你可以判斷
if(i1==0) printf("%d",n)
else printf(" %d",n);
B. 求一份答案 C語言編程:實驗四 數組
7. 編寫程序列印出如下楊輝三角形。
解答: (1)源程序代碼:(2)運行結果截圖:(3)運行結果分析:
#include<stdio.h>
#define N 10
void main()
{
int s[N][N];
for(int i=0;i<N;i++)
{
S[i][0]=s[i][i]=1;
}
for(i=2;i<N;i++)
for(int j=1;j<I;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
for(i=0;i<N;i++)
{ for(int j=0;j<=i;j++)
printf(「\t%d」,s[i][j]);
printf(「\n」);
}
}
8. 分析下列程序,查錯並修改。
#include <stdio.h>
#include <string.h>
void main()
{ char a[10],b[10];
int c,d,k; char ch;
scanf("%s",&a);---à scanf("%s",a);
scanf("%s",&b); --à scanf("%s",b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
if(c>d)
for(k=0;k<d;k++)
{ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
解答:(1) 源程序代碼:(2)運行結果截圖:(3)運行結果分析:
9.預習下面的程序的功能,寫出預習結果。並上機驗證。
#include <stdio.h>
#include <string.h>
void main( )
{ char s1[80], s2[40];
int i = 0, j = 0;
printf(" \n Please inputstring1:");
scanf("%s", s1);
printf(" \n Please inputstring2:");
scanf("%s", s2);
while (s1[i]!= '\0' )
i++;
while (s2[j]!= '\0' )
s1[i++]=s2[j ++];
s1[i]= '\0';
printf("\n New string: %s",s1);
}
解答:(1)運行結果截圖:(2)運行結果分析:
S2附加到S1的最後
10. 補充以下程序,使其功能是對從鍵盤上輸入的兩個字元串進行比較,然後輸出兩個字元串中第一個不相同字元的ASCII碼之差。例如:輸入的兩個字元串分別為abcdefg和abceef,則輸出為-1。程序如下:
#include <stdio.h>
void main ( )
{ char str1[100],str2[100];
int i,s;
printf("\n Input string1:\n");gets(str1);
printf(「\n Input string2:\n」);gets(str2);
i= 0 (1) ;
while((str1[i]==str2[i])&&(str1[i]!= 『\0』 (2) ))
i++;
s= str1[i]=str2[i] (3) ;
printf("%d\n",s);
}
解答:(1) 源程序代碼:(2)運行結果截圖:(3)運行結果分析:
11. 補充以下程序,功能是統計從終端輸入字元串中每個大寫字母的個數。用#號作為輸入結束標志。
#include <stdio.h>
#include <ctype.h>
void main ( )
{ int num[26],i; char c;
for (i=0;i<26;i++)num[i]=0;
while ( (c=getchar())(1) != '#') /* 統計從終端輸入的大寫字母個數*/
if (isupper(c))num[c-65]++ (2) ;
for (i=0;i<26;i++) /* 輸出大寫字母和該字母的個數*/
if (num[i])printf("%c:%d\n",i+65 (3) ,num[i]);
}
解答: (1)源程序代碼:(2)運行結果截圖:(3)運行結果分析:
12.編寫程序,功能是輸入若干個字元串,求出每個字元串的長度,並列印最長的字元串的內容。以「stop」作為輸入的最後一個字元串。
解答:(1)源程序代碼:(2)運行結果截圖:(3)運行結果分析:
13.編寫程序,輸入字元串s1和s2以及插入位置f,在字元串s1中的指定位置f處插入字元串s2。如:輸入"BEIJING"、"123"和位置3,則輸出:"BEI123JING"。解答: (1)源程序代碼:(2)運行結果截圖:(3)運行結果分析:
C. c語言,望高手求解(31)下面是有關C語言字元數組的描述,其中錯誤的是
這道題是選D,
因為每個字元都可以用整數來表示,最常用的就是ASCII碼,我們知道char其實是byte類型,也就是1個位元組(2^8即0-256之間的數字),就是說它可以存0-256之間的所有整數所以不只是字元,當然ASCII碼也在0-256之間。。
另外,我們還可以通過內存拷貝的方式把整數賦值給字元數組:
int number = 9956;
char str[4];
memcpy((void*)&str, (void*)&a, 4); // 把number變數拷貝4位元組數據到str變數。
其實任何語言都有基礎類型,而所有的基礎類型都是基於位元組(byte)來存儲的,這個類型能存儲什麼東西完全取決於它所佔用的位元組數。
A的說法是正確的,在C語言裡面賦值語句不能直接給字元數組賦值,因為C語言的功能還比較單一,只能兩個單一的變數賦值,不支持數組賦值。
C語言使用起來有很多不方便之處,所以就有了C++。
如果沒有清楚的話,可以給我留言。
D. C語言解題(字元串數組)
用字元串分割函數 按英文字母或數字分割 分出的個數就是結果
這里需要用到正則表達式的知識可以網路 就不給你寫本體代碼了 自己閱讀下正則表達式相關的 在看看下面的strtok函數用法 基本上這題你就能自己解決了
strtok
語法:
#include <string.h>
char *strtok( char *str1, const char *str2 );
功能:函數返回字元串str1中緊接「標記」的部分的指針, 字元串str2是作為標記的分隔符。如果分隔標記沒有找到,函數返回NULL。為了將字元串轉換成標記,第一次調用str1 指向作為標記的分隔符。之後所以的調用str1 都應為NULL。
例如:
char str[] = "now # is the time for all # good men to come to the # aid of their country";
char delims[] = "#";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, delims );
}
以上代碼的運行結果是:
result is "now "
result is " is the time for all "
result is " good men to come to the "
result is " aid of their country"
E. C語言數組實驗題
半年沒有寫代碼了,手生得特別嚴重,寫這樣的基礎題都費了我好大功夫,腦子轉不過來#include<stdio.h>
#include<string.h>
int main()
{
int i;
char ch,str[81];
printf("請輸入一個字元:");
scanf("%c",&ch);
printf("請輸入一個以回車結尾的字元串:");
scanf("%s",str);
for (i = 0; i<strlen(str); i++)
{
if (str[i] == ch)
{
printf(" %d", i);
if (i == strlen(str) - 1) printf("
");
}
else if (i == strlen(str) - 1) printf("Not Found
");
}
return 0;
}
F. 這是關於計算機二級c語言中字元數組還有字元串的問題,求解答
你程序是錯的吧!A,B是什麼,應該是a,b吧而且你輸出時候的格式設置怎麼會那樣應該「%s%s\n」才對啊!如果修改之後結果應該是wer is redFig flo is blue對吧?
分析如下:
首先是輸入了七個字元按你的就是Fig flo(七次循環輸入)存到了b字元組中,剛好替代了the sky部分,而其餘你輸入的部分按照程序存到了a中,顯示的結果由a與b無間隔連接而成,就成了那樣。
G. 誰有程序設計基礎 C語言 實驗與習題指導 楊永斌的課後習題答案
http://wenku..com/view/dabadf330b4c2e3f572763af.html有實驗的答案,沒有習題的答案
H. C語言實驗設計 實驗六 數組
main()
{ int a[10],n,i,j,_________________; /*定義,下面出現了min
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",______________________); /*依次存儲數據a[i]
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d",a[i]);
printf("\n");
for(i=0;i<_______________________;i++) /*最大為n-2,倒數第二個
{min=i;
for(j=___________________;j<n;j++) /*從第二個開始 j=i+1
if(a[j]<a[min])_________________; /*a[i]=a[j]交換小的到前面
ax=____________________;
a[i]=a[min];
____________________=ax;} /*a[min],
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d", a[i]);
printf("\n");
}
這份代碼有比較大問題,我覺得不科學
我修改了下
main()
{ int a[10],n,i,j,min;
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",a[i]);
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<n-2;i++)
{min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
{ a[i]=a[j];
a[i]=a[min]; }
}
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d ", a[i]);
printf("\n");
}
I. C語言中的字元數組問題
首先明確字元串到底是什麼,我可以用下面一句話對其進行定義:
C的字元串就是以0結束的位元組流.
char ch1[10]={'h','e','l','l','o'};
很明顯, 這是一塊內存, 前5位元組被賦為hello, 由於棧變數初始化的規則, 剩餘位元組全部設為0, 所以, 這就符合了C字元串定義.
char ch2[10]={'h','e','l','l','o','\0'};
很明顯, 這也是一塊內存, 前6位元組被賦為hello外加一0, 也符合了C字元串定義.
所以,他們都可以看成字元串..
還有就是,字元數組和字元串不能混淆... 字元數組究竟是不是字元串, 還得看是否有0結束.