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