C语言第五章习题-2011.10.14更新 联系客服

发布时间 : 星期三 文章C语言第五章习题-2011.10.14更新更新完毕开始阅读58b91335a32d7375a4178099

④是( )。

#include main()

{ float x[1000], sum=0, ave, a; int n=0, i;

printf(\ scanf(\

while (a>0&&n<1000) { sum+=①; x[n]=②; n++;

scanf(\ }

ave=③;

printf(\ printf(\ for (i=0; i

if ( ④ ) printf(\}

12.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空,

①是( )、②是( )、③是( )。 main()

{ int a[2][3]={{1, 2, 3}, {4, 5, 6}}; int b[3][2], i, j; printf(\ for (i=0;

{ printf(\ ②; }

printf(\ }

printf(\ for (i=0; ③; i++)

{ for (j=0; j<=1; j++) printf(\ printf(\ } }

13.下面程序的功能是检查二维数组是否对称(即:对所有i和j都有a[i][j]=a[j][i])。

请填空,①是( )、②是( )。 main()

- 5 -

{ }

int a[4][4]={1, 2, 3, 4, 2, 2, 5, 6, 3, 5, 3, 7, 4, 6, 7, 4}; int i, j, found=0; for (j=0; j<4; j++) for ( ①; i<4; i++) if (a[j][i]!=a[i][j]) { ②; break; } if (found) printf(\else printf(\

- 6 -

练习5-3

一、选择题

1.为了判断两个字符串s1和s2是否相等,应当使用( )。 A.if (s1==s2) B.if (s1=s2) C.if (strcpy(s1, s2)) D.if (strcmpy(s1, s2)==0) 2.调用strlen(\的返回值是( )。 A.4 B.5 C.8 D.9

3.已知:char str1[10], str2[10]={\,则在程序中能够将字符串\赋给数组str1的正确语句是( )。

A.str1={\B.strcpy(str1, str2); C.str1=str2; D.strcpy(str2, str1); 4.下面程序段的运行结果是( )。(注:□代表空格) char c[5]={'a', 'b', '\\0', 'c', '\\0'}; printf(\A.'a''b' B.ab C.ab□c D.ab□ 5.下面程序段的运行结果是( )。(注:□代表空格) char a[7]=\char b[4]=\strcpy(a, b);

printf(\A.□ B.\\0 C.e D.f 二、填空题

6.以下程序是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不同字符的ASCII码之差。例如:输入的两个字符串分别为\和\,则第一个不同字符为'd'和'e',输出为-1.请填空,①是( )、②是( )。 #include main()

{char str1[100], str2[100], c; int i, s;

printf(\ gets(str1);

printf(\ gets(str2); i=0;

while ((str1[i]==str2[i]&&str1[i]!=①)) i++; s=②;

printf(\}

7.下面程序的功能是在三个字符串中找出最小的。请填空,①是( )、②是( )。 #include #include main()

- 7 -

{char s[20], str[3][20]; int i;

for (i=0; i<3; i++) gets(str[i]); strcpy(s, ① );

if (strcmp(str[2], s)<0) strcpy(s, str[2]); printf(\② ); }

8.下面程序的功能是在任意的字符串a中将与字符'c'相等的所有元素的下标值分别

存放在整型数组b中,请填空,①是( )、②是( )。 #include main()

{char a[80];

int i, b[80], k=0; gets(a);

for (i=0; a[i]!='\\0'; i++)

if ( ① ) { b[k]=i; ②; }

for (i=0; i

三、读程序,写结果

9.当运行以下程序时,从键盘输入:AhaMA□Aha(□代表空格,代表回车),则下面程序的运行结果是( )。 #include main()

{char s[80], c='a'; int i=0;

scanf(\ while (s[i]!='\\0')

{ if (s[i]==c) s[i]=s[i]-32;

else if (s[i]==c-32) s[i]=s[i]+32; i++; }

puts(s); }

10.下面程序的运行结果是( )。

#include main()

{ char str[]=\ int k;

for (k=2; (c=str[k])!='\\0'; k++) { switch (c)

{ case 'I':++k; break;

- 8 -

case 'L': continue; default: putchar(c); continue; }

putchar('*'); } }

.下面程序段的运行结果是( )。

char ch[]=\int a, s=0;

for (a=0; ch[a]>='0'&&ch[a]<='9'; a++) s=10*s+ch[a]-'0'; printf(\

- 9 -

11