3.字符串 “ABCD”在内存占用的字节数是( D )。 A.4 B.6 C.1 D.5 4. 下面不正确的字符串常量是:( A )
A. ‘PROGRAM’ B “12’12” C “0” D “ ” 5.设有数组定义: char array [ ]=\则数组array所占的空间
为 B
A) 4
个字节 B) 5个字节 C) 6个字节 D) 7个字
节
*6.下述对C语言中字符数组的描述错误的是 C 。
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入和输出
C)可在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)可在对字符数组定义时通过赋值运算符“=”对字符数组整
体初始化
7.已知char x[]=\则关于两
个数组长度的正确描述是 B .
A)相同 B)x大于y C)x小于y D)以上答案都不对
8.给出以下定义: char x[ ]=\
char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 C
A) 数组x和数组y等价 B) 数组x和数组y的长度相同
C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度
9、若有以下语句,则正确的描述是( D )。
17 / 26
static char x[ ]=”12345” ; static 5’,’\\0’} ;
A、x数组长度大于y数组长度 B、x数组和y数组不相同 C、x数组长度小于y数组长度 D、x数组等价于y数组 10、已知:char s[20]= ”programming”, *ps=s; 则不能引用字母o
的表达式是( C )。
char y[ ]={‘1’,‘2’,‘3’,‘4’,
A、ps[2] B、s[2] C、ps+2 D、ps+=2, *ps
*11.判断两字符串s1,s2是否相等,应使用( D ). A)if(s1==s2) B)if(s1=s2)
C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0)
*12.以下printf语句的输出结果为: A
printf(“%d\\n”,strlen(“school”)); A) 7 B) 6 C)存在语法错误 D)不定值 13. 对字符数组s赋值,不合法的一个是( C )
A. char s[]=\; B. char s[20]={\; C. char s[20];s=\;
D. char s[20]={'B','e','i','j','i','n','g'};
14. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )
A. char str[]=\; B. char str[]={\;
C. char str[9]={'s','h','a','n','g','h','a','i',’\\0’}; D. char str[8]={ 's','h','a','n','g','h','a','i'}; 15. 合法的数组定义是 C
A)int
a[]={“string”};
B)
int
a[5]={0,1,2,3,4,5};
18 / 26
C)char a[]= “string”; D) char
a[5]={0,1,2,3,4,5};
16. 对字符数组s赋值,不合法的是: ( C )
A) char s[]=\; B) char s[20]={\;
C) char s[20];s=\; D) char s[20]={'c','h','i','n','a'};
17. 下面初始化与此初始化charc[ ]=“I am happy”;等价的是( A )
A) ’};
B) char c[ ]={‘I’,’am’,’happy’}; C)
D)char c[ ]={‘I’,’am’,’happy’,’\\0’}; 18.下面各语句中,能正确进行赋字符串操作的语句是( C )。 A. char s[5]={“ABCDE”};
B. char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’,’\\0’}; C. char *s;s=“ABCDE”; D. char *s;scanf(“%s”,&s);
19.下列字符串赋值方式不正确的是( A )
A).char str[20]; B). char *str ; str=”I am a boy!”; str=”I am a boy!”; C). char *str=”I am a boy!”; D). char str[20]=” I am a boy!”;
七.指针
1. 语句int *p;说明了 C 。
19 / 26
char
c[ ]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’\\0
char
c[ ]={‘I’, ’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’};
A)p是指向一维数组的指针
B)p是指向函数的指针,该函数返回一int型数据 C)p是指向int型数据的指针
D)p是函数名,该函数返回一指向int型数据的指针 2. 变量的指针,其含义是指该变量的:( B )
A. 值 B. 地址 C. 名 D.一个标志 3.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表
达式是( A )
A) pb=&x B) pb=x C) *pb=&x D) *pb=*x 4、已知:int a, *p=&a; 则下列函数调用中错误的是( D )。 A、scanf(“%d”,&a); B、scanf(“%d”,p); C、printf(“%d”,a); D、printf(“%d”,p); 5.对于同类型的指针变量,不可能进行的运算是( C )。 A.- B.= C.+ D.== 6. 对于基类型相同的两个指针变量之间,不能进行的运算是 C A) < B) = C) + D) - 7.下列不正确的定义是( A )。
A. int *p=&i,i; B.int *p,i; C.int i,*p=&i; D.int i,*p;
8. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( D )
A)p=q B)*p=*q C)n=*q D)p=n 9. int *p,a=10,b=1; p=&a; a=*p+b;
执行该程序段后,a的值为 C
A) 编译出错 B) 10 C) 11 D) 12 10.下列函数的功能是 A 。
20 / 26