内容正文:
专题十五 字符数组的定义和使用
一、选择题
1.若有定义:char a[10],则能给数组a输入字符串"This is a book"的语句是( )
A. gets(a);
B. scanf("%s" ,a);
C. gets(a[0]);
D. scanf("%s" ,&a);
2.调用strlen("abcd\0ef\0g")的返回值是( )。
A.4
B.5
C.8
D.9
3.已知:char str1[10], str2[10]={"books"};,则在程序中能够将字符串"books"赋给数组str1的正确语句是( )。
A.str1={"books"};
B.strcpy(str1, str2);
C.str1=str2;
D.strcpy(str2, str1);
4.下面程序段的运行结果是( )。(注:□代表空格)
char a[7]="abcdef";
char b[4]="ABC";
strcpy(a, b);
printf("%c", a[5]);
A. □
B. \0
C. e
D. f
5.下面程序段运行时输出结果是( )。
char s[12]= "A book";
printf("%d
",strlen(s));
A. 12
B. 8
C. 7
D. 6
6. 下面程序段运行时输出结果是( )
char s1[20]= {"Welcome to "}, s2[]= {"China"};
printf("%d ",strlen(s2));
strcat(s1,s2);
printf("%s
",s1);
A.6 Welcome to
B.5 Welcome to
C.6 Welcome to China
D.5 Welcome to China
二、简答题
1.读程序,写结果
#include <stdio.h>
main()
{ int i,c;
char num[][4]= {"CDEF" ,"ACBD"};
for(i=0;i<4;i++)
{ c= num[0][i]+num[1][i]-2*'A';
printf(" %3d" ,c);
}
}
2.读程序,写结果
#include <stdio.h>
main( )
{ char ch[2][5]= {"6937" ,"8254"},p[2];
int i,j,s;
for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++)
{ s=0;
for(j=0;ch[i][j] !='\0';j++)
s=s*10+ch[i][j]-'0';
printf( " %5d" ,s);
}
}
3.阅读以下程序,请写出程序运行结果。[2021春考题]
#include <stdio.h>
#include <string.h>
main( )
{ char s1[20]="bc",s2[20]="def";
int i=0;
strcat(s1,s2);
while(s1[i]!='\0')
{ s2[i]=s1[i]-1;
i++;}
s2[i]='\0';
puts(s2);
}
原创精品资源学科网独家享有版权,侵权必究!
$$
专题十五 字符数组的定义和使用
一、选择题
1.若有定义:char a[10],则能给数组a输入字符串"This is a book"的语句是( )
A. gets(a);
B. scanf("%s" ,a);
C. gets(a[0]);
D. scanf("%s" ,&a);
答案:A
解析:gets为字符串输入函数,调用该函数时需给出字符串的存储地址,以回车作为字符串输入的结束。而scanf函数则以回车、空格或跳格作为字符串输入结束。
2.调用strlen("abcd\0ef\0g")的返回值是( )。
A.4
B.5
C.8
D.9
答案:A
解析:字符串中的“\0”是字符串结束的标志符号.
3.已知:char str1[10], str2[10]={"books"};,则在程序中能够将字符串"books"赋给数组str1的正确语句是( )。
A.str1={"books"};
B.strcpy(str1, str2);
C.str1=str2;
D.strcpy(str2, str1);
答案:B
解析:字符串串复制