二级C语言模拟题169真题含答案与解析交互.docx
《二级C语言模拟题169真题含答案与解析交互.docx》由会员分享,可在线阅读,更多相关《二级C语言模拟题169真题含答案与解析交互.docx(30页珍藏版)》请在冰点文库上搜索。
二级C语言模拟题169真题含答案与解析交互
二级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
答案:
B
2.
下面能正确进行字符串赋值的是______。
A chars[5]={"ABCDE");
B chars[5]={"A","B","C","D","E"};
C char*s;s="ABCDE";
D char*s;printf("%s",s);
分值:
2
答案:
C
3.
字符串“\\"ABCDEF"\\”的长度是______。
A 15
B 10
C 7
D 8
分值:
2
答案:
B
4.
若有chars[3][4]={"AAA","BBB","CCC"};说明语句,则与它等价的语句是______。
A char**s={"AAA","BBB","CCC"};
B char*s[3]={"AAA","BBB","CCC"};
C chars[][5]={"AAA","BBB","CCC"};
D chars[][4]={"AAA","BBB","CCC"};
分值:
2
答案:
D
5.
已知char**s,下面正确的语句是______。
A s="ABCDEF";
B *s="ABCDEF";
C **s="ABCDEF";
D *s="A";
分值:
2
答案:
B
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)
分值:
2
答案:
C
7.
下面的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是______。
#include<stdio.h>
main()
{chars1[]="chinese",s2[]="japnese";
inti;
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)
分值:
2
答案:
C
8.
若已包括头文件<stdio.h>和<string.h>,运行下面程序段时输出结果是______。
inti=0;
chars1[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
分值:
2
答案:
C
9.
下面各语句行中,能正确进行赋值字符串操作的是______。
A chars[5]={"a","b","c","d,","e"};
B char*s;gets(s);
C char*s;*s*="ABCDEF";
D chars[5];scanf("%s",&s);
分值:
2
答案:
B
10.
若二维数组a有m列,则在a[i][j]前的元素个数为______。
A i*m+j-1
B i*m+j
C j*m+i
D i*m+j+1
分值:
2
答案:
B
11.
若输入bcdefgh、m、abcdefg,以下程序的输出结果为______。
#include<stdio.h>
#include<string.h>
main()
{inti;
charstring[20],str[3][20];
for(i=0;i<3;i++)gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
elsestrcpy(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
分值:
2
答案:
B
12.
若已包括头文件<stdio.h>和<string.h>,运行下面程序段时输出结果是______。
inti=0;
chars1[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
分值:
2
答案:
C
13.
对下述程序的判断中,正确的是______。
#include<stdio.h>
voidmain()
{char*p,s[256];
p=s;
while(strcmp(s,"theend"))
{printf("Inputthestring:
");
gets(s);
while(*p)
putchar(*p++);
}
}
A 此程序循环接收字符串并输出,直到接收到字符串“theend”为止
B 此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止
C 此程序循环接收字符串并输出,直到接收字符串“theend”为止,但因为代码有错误,程序不能正常工作
D 此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输出连接在一起的字符串
分值:
2
答案:
A
14.
若已包括头文件<stdio.h>和<string.h>,运行下面程序的输出结果是______。
chars1[10]="12345",s2[10]="089",s3[]="67";
strcat(strcpy(s1,s2),s3);
puts(s1);
A 08967
B 0894567
C 089567
D 089567
分值:
2
答案:
A
15.
设已执行预编译命令#include<string.h>,以下程序段的输出结果是______。
chars[]="abcdefg";
printf("%d\n",strlen(s));
A 7
B 8
C 9
D 10
分值:
2
答案:
A
16.
下述程序的输出结果是______。
#include<stdio.h>
main()
{chara[]={"a","b","c","d","e","f","\0"};
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d",i,j);
}
A 7,7
B 7,6
C 6,6
D 6,7
分值:
2
答案:
B
17.
下面程序的输出是______。
#include<stdio.h>
#include<string.h>
main()
{charp1[]="WHO",p2[]="who",str[50]="xyz";
strcpy(str+1,strcat(p1,p2));
printf("%s",str);
}
A xyzWHOwho
B zWHOwho
C zWHOwho
D xWHOwho
分值:
2
答案:
D
18.
若已包括头文件<string.h>且已有定义chars1[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];
分值:
2
答案:
C
19.
下面各语句行中,不能正确进行操作的语句或声明是______。
A charst[4][5]={"ABCDE"};
B chars[5]={"A","B","C","D","E"};
C char*s;s="ABCDE";
D char*s;scanf("%s",s);
分值:
2
答案:
B
20.
下面各语句行中,不能正确进行操作的语句或声明是______。
A charstr[14];str="Iloveyou!
";
B char*a="Iloveyou!
";
C char*a;a="Iloveyou!
";
D charstr[14]={"Iloveyou!
"};
分值:
2
答案:
A
21.
设有说明语句:
chara="\72";则变量a______。
A 包含1个字符
B 包含2个字符
C 包含3个字符
D 说明不合法
分值:
2
答案:
A
22.
已知有声明“chara[6],*p=a;”,现需要在程序运行过程中将字符串"Hello"保存到a数组中,则下列选项中能正确完成此操作的表达式是______。
A a[6]="Hello"
B a="Hello"
C p="Hello"
D strcpy(a,"Hello")
分值:
2
答案:
D
23.
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是______。
A chars[10]="abcdefg";
B chart[]="abcdefg",*s=t;
C chars[10];s="abcdefg";
D chars[10];strcpy(s,"abcdefg");
分值:
2
答案:
C
24.
若有数组A和B的声明“staticcharA[]="ABCDEF",B[]={"A","B","c","D","E","F"};”,则数组A和数组B的长度分别是______。
A 7,6
B 6,7
C 6,6
D 7,7
分值:
2
答案:
A
25.
有以下程序:
main()
{charS[]="\065\t\xe4\n";
printf(%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是______。
A 赋初值的字符串有错
B 6,7
C 5,6
D 6,6
分值:
2
答案:
B
26.
函数调用:
strcat(strcpy(s1,s2),s3)的功能是______。
A 将串s1复制到串s2中后再连接到串s3之后
B 将串s1连接到串s2中后再复制到串s3之后
C 将串s2复制到串s1中后再将串s3连接到s1之后
D 将串s2连接到串s1中后再将串s1复制到s3中
分值:
2
答案:
C
27.
已知有预处理命令“#include<stdio.h>”和声明“chars[10]="Thankyou";inti;”,要求输出字符串“Thankyou”,以下选项中不能达到该要求的语句是______。
A puts(s);
B printf("%s",s[10]);
C for(i=0;S[i]!
="\0";i++)printf("%c",s[i]);
D for(i=0;s[i]!
="\0";i++)putchar(s[i]);
分值:
2
答案:
B
28.
设有如下程序:
#include<stdio.h>
main()
{chars[128]={"\0"),*p=s;
while(strcmp(s,"END"))
{gets(s);while(*p)putchar(*p++);}
}
gets函数每次输入一个字符串。
以下关于该程序运行时输出结果的叙述中正确的是______。
A 所有输入的字符串都能被完整输出
B 所有输入的字符串都不能被完整输出
C 只能完整输出第一个字符串
D 只能完整输出最后一个字符串
分值:
2
答案:
C
29.
下述语句中,可以在字符串s1和s2不相等时输出“XYZ”的是______。
A if(*s1!
=*s2)puts("XYZ");
B if(!
strcmp(s1,s2))puts("XYZ");
C if(s1!
=s2)puts("XYZ");
D if(strcmp(s1,s2))puts("XYZ");
分值:
2
答案:
D
30.
设有如下定义:
char*s[2]={"abed","ABCD");
则以下说法错误的是______。
A s数组元素的值分别是"abed"和"ABCD"两个字符串的首地址
B s是指针数组名,它含有两个元素分别指向字符型一维数组
C s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素
D s数组的两个元素中各自存放了字符"a"和"A"的地址
分值:
2
答案:
C
31.
有以下程序:
#include<stdio.h>
main()
{charChr[20];
scanf("%s",&Chr);
printf("%s\n",Chr);
}
运行上面的程序,输入字符串MicrosoftVisualStudio,则程序的执行结果是______。
A MicrosoftVisualStudio
B .M
C Microsoft
D MicrosoftVisualStudio
分值:
2
答案:
C
32.
下列一维数组说明中,不正确的是______。
A intN;scanf("%d",&N);intb[N];
B floata[]={1,6,6,0,2};
C #defineS10
D inta[S+5];
分值:
2
答案:
A
33.
下列程序的输出结果为______。
main()
{unionun
{char*name;
intage;
intpay;
)s;
s.name="zhaoming";
s.age=32;
s.pay=3000;
printf("%d\n".s.age);
}
A 32
B 3000
C 0
D 不确定
分值:
2
答案:
B
34.
有以下程序:
#include<stdio.h>
main()
{inta[]={1,2,3,4),y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是______。
A y=0
B y=1
C y=2
D y=3
分值:
2
答案:
D
35.
以下程序段的输出结果为______。
staticchara[]="programme";
char*p;
p=a;
for(p=a;p<a+8;p+=2)
putchar(*p);
A programme
B porm
C 有语法错误
D prog
分值:
2
答案:
B
36.
下面程序的输出结果是______。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,7,10},*p;
p=a;
printf("%d\n",*p+8);
}
A 0
B 1
C 10
D 9
分值:
2
答案:
D
37.
下面程序段的运行结果是______。
#include<stdio.h>
voidmain()
{charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
}
A 67
B 0
C 字符"C"的地址
D 字符"C"
分值:
2
答案:
B
38.
执行下列程序后,输入456<空格>789<空格>123<回车>,输出结果是______。
#include<stdio.h>
main()
{charm[80];
intc,i;
scanf("%d",&c);
scanf("%c",&i);
scanf("%s",&m);
printf("%d,%c,%s\n",c,i,m);
}
A 456,789,123
B 456,,789
C 4,5,6
D 4,56,789
分值:
2
答案:
B
39.
下列程序的输出结果是______。
#include<stdio.h>
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;}
main()
{inta=1,b=2,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A 21
B 12
C 编译出错
D 00
分值:
2
答案:
B
40.
设有如下定义:
structsk
{intm;
floatx;
}data,*q;
若要使q指向data中的m域,正确的赋值语句是______。
A q=&data.m;
B *q=data.m;
C q=(structsk*)&data.m;
D q=(structsk*)data.m;
分值:
2
答案:
C
41.
若输入“abcdef”、“abdef”,以下程序的输出结果为______。
#include<stdio.h>
#include<string.h>
main()
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%s",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("%d\n",n);)
A -1
B 0
C "abcdef"
D "abdef"
分值:
2
答案:
A
42.
若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是______。
A p=&n;scanf("%d",&p);
B p=&n;scanf("%d",*p);
C scanf("%d",n);
D p=&n;scanf("%d",p);
分值:
2
答案:
D
43.
有以下程序:
#include<stdio.h>
main()
{intc;
while((c=getchar())!
="\n")
{switch(c-"3")
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
case4:
putchar(c+3);break;
}}
printf("\n");}
从第一列开始输入数据(<CR>代表一个回车符):
3845<CR>,则程序输出结果为______。
A 77889
B 77868
C 776810
D 77886610
分值:
2
答案:
A
44.
有以下程序:
#include<string.h>
inta=4;
intf(intn)
{intt=0;staticinta=5;
if(n%2){inta=6;t+=a++;}
else{inta=7;t+=a++;)
returnt+a++;
}
main()
{ints=a,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A 24
B 28
C 32
D 36
分值:
2
答案:
B
45.
以下程序段的输出结果是______。
#include<stdio.h>
main()
{charp[][4]={"ABC","DEF","GHI");
inti;
for(i=0;i<3;i++)
puts(p[i]);
}
A.
B.ADG
C.
D.ABC
A B C D
分值:
2
答案:
C
46.
sizeof(char)是______。
A 一种函数调用
B 一个整型表达式
C 一个字符型表达式
D 一个不合法的表达式
分值:
2
答案:
B
47.
以下程序:
#include<stdio.h>
#include<string.h>
main()
{charstr[]="abcd\n\123\xab";
printf("%d",strlen(str));
}
运行后的输出结果是______。
A 10
B 9
C 7
D 14
分值:
2
答案:
C
48.
判断char型变量c1是否为小写字母的正确表达式为______。
A "a"<=c1<="z"
B (c1>=a)&&(c1<=z)
C ("a">=c1||("z"<=c1)
D (c1>="a")&&(c1<="z")
分值:
2
答案:
D
49.
下列字符数组初始化语句中,不正确的是______。
A charc[]="goodmorning";
B charc[20]="goodmoming";
C charc[]={"a","b","c","d"};
D charc[]={"goodmoming"};
分值:
2