二级C语言模拟题2018年(169)
(总分100,考试时间90分钟)
选择题
1. 下面函数的功能是______。
sss(s,t)
char*s,*t;
{while((*s)&&(*t)&&(*t++==s++));
return(*s-*t);
}
A. 将字符串s复制到字符串t中        B. 比较两个字符串的大小
C. 求字符串的长度        D. 将字符串s接续到字符串t中
2. 下面能正确进行字符串赋值的是______。
A. char s[5]={"ABCDE");
B. char s[5]={"A","B","C","D","E"};
C. char*s;s="ABCDE";
D. char*s;printf("%s",s);
3. 字符串“\\"ABCDEF"\\”的长度是______。
A. 15        B. 10
C. 7        D. 8
4. 若有char s[3][4]={"AAA","BBB","CCC"};说明语句,则与它等价的语句是______。
A. char**s={"AAA","BBB","CCC"};
B. char*s[3]={"AAA","BBB","CCC"};
C. char s[][5]={"AAA","BBB","CCC"};
D. char s[][4]={"AAA","BBB","CCC"};
5. 已知char**s,下面正确的语句是______。
A. s="ABCDEF";        B. *s="ABCDEF";
C. **s="ABCDEF";        D. *s="A";
6. 若有以下说明,则______不是对strcpy库函数的正确的调用。strcpy库函数用于复制一个字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";字符串长度头文件
A. strcpy(str2,str1)
B. strcpy(str3,str1)
C. strcpy(str4,str1)
D. strcpy(str5,str1)
7. 下面的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是______。
#include<stdio.h>
main()
{char s1[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!="\0"&&s2[i]!="\0";i++)
if(s1[i]==s2[i]&&i<7)
______;
}
A. putchar(s2[i]);putcha(i)
B. puts(sl[i],i)
C. printf("%c%d\n",s2[i],i)
D. printf("%c",s1[i]);printf("%d\n",i)
8. 若已包括头文件<stdio.h>和<string.h>,运行下面程序段时输出结果是______。
int i=0;
char s1[10]="ABCD",s2[10]="EFG";
strcat(s1,s2);
while(s2[i++]!="\0")
s2[i]=s1[i];
puts(s2);
A. ABC        B. ABCDEF
C. EBCDEFG        D. CBD
9. 下面各语句行中,能正确进行赋值字符串操作的是______。
A. char s[5]={"a","b","c","d,","e"};
B. char*s;gets(s);
C. char*s;*s*="ABCDEF";
D. char s[5];scanf("%s",&s);
10. 若二维数组a有m列,则在a[i][j]前的元素个数为______。
A. i*m+j-1        B. i*m+j
C. j*m+i        D. i*m+j+1
11. 若输入bcdefgh、m、abcdefg,以下程序的输出结果为______。
#include<stdio.h>
#include<string.h>
main()
{int i;
char string[20],str[3][20];
for(i=0;i<3;i++)gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
pfintf("%s",string);
}
A. bcdefgh        B. .m
C. abcdefg        D. bcdefgh或abcdefg
12. 若已包括头文件<stdio.h>和<string.h>,运行下面程序段时输出结果是______。
int i=0;
char s1[10]="ABCD",s2[10]="EFG";
strcat(s1,s2);
while(s2[i++]!="\0")
s2[i]=s1[i];
puts(s2);
A. ABC        B. ABCDEF
C. EBCDEFG        D. CBD
13. 对下述程序的判断中,正确的是______。
#include<stdio.h>
void main()
{char *p,s[256];
p=s;
while(strcmp(s,"the end"))
{printf("Input the string:");
gets(s);
while(*p)
putchar(*p++);
}
}
A. 此程序循环接收字符串并输出,直到接收到字符串“the end”为止
B. 此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止
C. 此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作
D. 此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串
14. 若已包括头文件<stdio.h>和<string.h>,运行下面程序的输出结果是______。
char s1[10]="12345",s2[10]="089",s3[]="67";
strcat(strcpy(s1,s2),s3);
puts(s1);
A. 08967        B. 0894567
C. 089567        D. 089567
15. 设已执行预编译命令#include<string.h>,以下程序段的输出结果是______。
char s[]="abcdefg";
printf("%d\n",strlen(s));
A. 7        B. 8
C. 9        D. 10
16. 下述程序的输出结果是______。
#include<stdio.h>
main()
{char a[]={"a","b","c","d","e","f","\0"};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d",i,j);
}
A. 7,7        B. 7,6
C. 6,6        D. 6,7
17. 下面程序的输出是______。
#include<stdio.h>
#include<string.h>
main()
{char p1[]="WHO",p2[]="who",str[50]="xyz";
strcpy(str+1,strcat(p1,p2));
printf("%s",str);
}
A. xyzWHOwho        B. zWHOwho
C. zWHOwho        D. xWHOwho
18. 若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下述语句错误的是______。
A. strcpy(s1,s2);
B. strcpy(s1,"ABCDE");
C. s1="ABCDE";
D. for(i=0;i<6;i++)s1[i]=s2[i];
19. 下面各语句行中,不能正确进行操作的语句或声明是______。
A. char st[4][5]={"ABCDE"};
B. char s[5]={"A","B","C","D","E"};
C. char*s;s="ABCDE";
D. char*s; scanf("%s",s);
20. 下面各语句行中,不能正确进行操作的语句或声明是______。
A. char str[14];str="I love you!";
B. char*a="I love you!";
C. char*a;a="I love you!";
D. char str[14]={"I love you!"};
21. 设有说明语句:chara="\72";则变量a______。
A. 包含1个字符        B. 包含2个字符
C. 包含3个字符        D. 说明不合法
22. 已知有声明“char a[6],*p=a;”,现需要在程序运行过程中将字符串"Hello"保存到a数组中,则下列选项中能正确完成此操作的表达式是______。
A. a[6]="Hello"        B. a="Hello"
C. p="Hello"        D. strcpy(a,"Hello")
23. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是______。
A. char s[10]="abcdefg";
B. char t[]="abcdefg",*s=t;
C. char s[10];s="abcdefg";
D. char s[10];strcpy(s,"abcdefg");
24. 若有数组A和B的声明“static char A[]="ABCDEF",B[]={"A","B","c","D","E","F"};”,则数组A和数组B的长度分别是______。
A. 7,6        B. 6,7
C. 6,6        D. 7,7
25. 有以下程序:
main()
{char S[]="\065\t\xe4\n";

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。