第十章测试
1【单选题】 (10分)
若给出下列定义:
char x[]=“abcdefg”;
char y[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};
则正确的叙述为( )。
A.
数组y的定义是错的
B.
数组x的长度小于数组y的长度
C.
数组x的长度大于数组y 的长度
D.
数组x和数组y的长度相同
参考答案:C
2【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
int main()
{
char ch[7]={ "65ab21"};
int i,s=0;
for (i=0;ch[i]>= '0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]- '0';
printf("%d\n",s);
return 0;
}
A.
6521
B.
62
C.
6
D.
12ba56
参考答案:C
3【单选题】 (10分)
设有如下的程序段:
char s[]=“girl”, *t; t=s;则下列叙述正确的是( )。
A.
*t与 &s[0]相等
B.
t指向s数组首元素
C.
s数组长度和t长度相等
D.
数组s中的内容和指针变量t中的内容相等
参考答案:B
4【单选题】 (10分)
有下列程序段,程序段运行后的输出结果是( )。
char b1[8]=“abcdefg”, b2[8], *pb=b1+3;
while( --pb>=b1) strcpy(b2, pb);
printf(“%d”, strlen(b2));
A.
3
B.
1
C.
7
D.
8
参考答案:C
5【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
char cchar(char ch)
{
if (ch>=‘A’ && ch<‘Z’)
ch=ch-‘A’+‘a’;
return ch;
}
int main()
{
char s[]=“ABC+abc=defDEF”, *p=s;
while (*p)
{ *p=cchar(*p); p++; }
puts(s);
return 0;
}
A.
abcabcdefdef
B.
abc+abc=defdef
C.
abc+ABC=DEFdef
D.
abcaABCDEFdef
参考答案:B
6【判断题】 (5分)
从存储机制上看,字符串是以’\0’为结束标志的字符串数组。()
A.
错
B.
对
参考答案:B
7【判断题】 (10分)
语句printf(“This is a string!”)会把双引号输出。
A.
错
B.
对
参考答案:A
8【判断题】 (10分)
下面程序的运行结果是:We,s()。
#include <stdio.h>
int main()
{
printf (“%s, %c \n”, "We", *"students");
return 0;
}
A.
对
B.
错
参考答案:A
9【判断题】 (10分)
下面程序段是正确的。()
char str[20];
str=“I love China!”
A.
对
B.
错
参考答案:B
10【判断题】 (10分)
可以用函数strcat将两个字符串连接,也可以用+将两个字符串连接。
A.
对
B.
错
参考答案:B