(1)若有语句:char *line[5];,以下叙述中正确的是
A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
(2)有以下程序
| 以下是引用片段: #include main() { char p[]={'a', 'b', 'c'}, q[10]={'a', 'b', 'c'}; printf("%d %d\n", strlen(p), strlen(q)); } |
以下叙述中正确的是
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
(3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
| 以下是引用片段: #include void f(char *p[], int n) { char *t; int i,j; for(i=0; i for(j=i+1; j if(strcmp(p[i],p[j])>0){ t=p[i]; p[i]=p[j]; p[j]=t; } } main() { char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p, 5); printf("%d\n", strlen(p[1])); } |
程序运行后的输出结果是
A)2
B)3
C)6
D)4
(4)有定义语句:int b;char c[10]; ,则正确的输入语句是
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
(5)以下能正确定义一维数组的选项是
A)int a[5]={0,1,2,3,4,5};
B)char a[]={0,1,2,3,4,5};
C)char a={'A','B','C'};
D)int a[5]="0123";
(6)已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是
A)数组a和b的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)上述说法都不对
(7)以下语句或语句组中,能正确进行字符串赋值的是
A)char *sp; *sp="right!";
B)char s[10]; s="right!";
C)char s[10]; *s="right!";
D)char *sp="right!";
(8)有以下程序
| 以下是引用片段: main() { char s[]="159",*p; p=s; printf("%c",*p++); printf("%c",*p++); } |
程序运行后的输出结果是
A)15
B)16
C)12
D)59
(9)有以下函数
| 以下是引用片段: fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++; b++;} return (*a-*b); } |
该函数的功能是
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
(10)有以下程序
| 以下是引用片段: point(char *p) { p+=3; } main() { char b[4]={'a','b','c','d'},*p=b; point(p); printf("%c\n",*p); } |
程序运行后的输出结果是
A)a
B)b
C)c
D)d
(11) s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
A) if(s1>s2)S;
B) if(strcmp(s1,s2))S;
C) if(strcmp(s2,s1)>0) S;
D) if(strcmp(s1,s2)>0)S;
(12) 有以下程序
| 以下是引用片段: main() {char str[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10); } |
程序运行后的输出结果是
A) China
B) Bejing
C) ng
D) ing
(13) 有以下程序
| 以下是引用片段: main() {char s[]="ABCD",*p; for(p=s+1;p } |
程序运行后的输出结果是
A) ABCD B) A C) B D) BCD
BCD B C CD
CD C D D
D D
(14) 有以下程序
| 以下是引用片段: main() { char s[]"Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } |
程序运行后的输出结果是(选项D中的第一行是空行)
A) n/No B) /No C) n/NO D)
Yes Yes Yes /No
/No /No Yes
(15) 有以下定义
#include
char a[10],*b=a;
不能给数组a输入字符串的语句是
A) gets(A)
B) gets(a[0])
C) gets(&a[0]);
D) gets(B) ;