C语言第五章习题带答案 - 下载本文

( found=1 )。 main()

{ 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是否相等,应当使用( D )。 A.if (s1==s2) B.if (s1=s2) C.if (strcpy(s1, s2)) D.if (strcmpy(s1, s2)==0) 2.调用strlen(\的返回值是( A )。 A.4 B.5 C.8 D.9

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

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

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

6.以下程序是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不同字符的ASCII码之差。例如:输入的两个字符串分别为\和\,则第一个不同字符为'd'和'e',输出为-1.请填空,①是( '\\0' )、②是( str1[i]-str2[i] )。 #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.下面程序的功能是在三个字符串中找出最小的。请填空,①是( strcmp(str[0],

str[1])<0?str[0]:str[1] )、②是( s )。或①是( str[0] )、②是( strcmp(s, str[1])<0?s:str[1] )。。 #include

- 7 -

#include main()

{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中,请填空,①是( a[i]=='c' )、②是( k++ )。 #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(□代表空格,代表回车),则下面程序的运行结果是( ahAMa )。 #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.下面程序的运行结果是( SW* )。

#include main()

{ char str[]=\ int k;

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

- 8 -

{ switch (c)

{ case 'I':++k; break; case 'L': continue; default: putchar(c); continue; }

putchar('*'); } }

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

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