历届c语言试题Word文件下载.docx
《历届c语言试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《历届c语言试题Word文件下载.docx(115页珍藏版)》请在冰豆网上搜索。
(20)有以下程序includemain()inta=1,b=2;
while(amain()inty=10;
while(y-);
printf(”Y=dn”,Y);
程序执行后的输出结果是A)y=0B)y=-1C)y=1D)while构成无限循环(22)有以下程序includestdio.hmain()chars”rstuv;
printf(”cn”,*s2);
程序运行后的输出结果是A)tuvB)字符t的ASCII码值C)tD)出错(23)有以下程序includestdio.hincludestring.hmain()charx”STRING”;
x0=0;
x10;
x20;
printf(”ddn”,sizeof(x),strlen(x);
程序运行后的输出结果是A)61B)70C)63D)71(24)有以下程序includestdiohIntf(intx);
main()intn=1,m;
m=f(f(f(n);
printf(”%dn”,m);
intf(intx)returnx*2;
程序运行后的输出结果是A)1B)2C)4D)8(25)以下程序段完全正确的是A)int*p;
scanf(%d,p);
B)int*p;
scanf(“%d”,p);
C)intk,*p=&
k;
D)intk,*p:
;
*p=&
(26)有定义语句:
int*p4;
以下选项中与此语句等价的是A)intp4;
C)int*(p4);
D)int(*p)4;
(27)下列定义数组的语句中,正确的是A)intN=10;
B)defineN10;
intxN;
C)intx0.10;
D)intx;
(28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是A)inta5=0;
B)intb=0,0,0,0,0;
C)intc2+3;
D)inti=5,di;
(29)有以下程序includestdiohvoidf(int*p);
main()inta51,2,3,4,5,*r=a;
f(r);
printf(”dn”;
r);
voidf(int*p)p=p+3;
printf(”d,”,*p);
程序运行后的输出结果是A)1,4B)4,4C)3,1D)4,1(30)有以下程序(函数fun只对下标为偶数的元素进行操作)#includestdiohvoidfun(inta;
intn)inti、j、k、t;
for(i=0;
in一1;
1=2)k=i;
for(j=i;
jak)k=j;
t=ai;
ai=ak;
akt;
main()intaa10=1、2、3、4、5、6、7,i;
fun(aa、7);
for(i=0,iincludestringhmain()chara20=”ABCDOEFG0”,b”IJK”;
strcat(a,b);
printf(”sn”,a);
程序运行后的输出结果是A)ABCDEOFGOIJKB)ABCDIJKC)IJKD)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母includestdiohincludectypehvoidfun(charp)inti=0;
while(pi)if(pi=islower(pi-1)pi-1=pi-1-a+A;
i;
main()chars1100”abcdEFG!
”;
fun(s1);
printf(”sn”,s1);
程序运行后的输出结果是A)abcdEFG!
B)AbCdEFg!
C)aBcDEFG!
D)abcdEFg!
(35)有以下程序includestdiohvoidfun(intx)if(x21)fun(x2);
printf(”d”,x);
main()fun(7);
printf(”n”);
程序运行后的输出结果是A)137B)731C)73D)37(36)有以下程序includestdiohintfun()staticintx=1;
x+=1;
returnx;
main()inti;
s=1;
for(i=1;
imain()ints,t,A=10;
doubleB=6;
ssizeof(A);
t=sizeof(B);
printf(“d,dn”,s,t);
在VC6平台上编译运行,程序运行后的输出结果是A)2,4B)4,4C)4,8D)10,6(39)若有以下语句TypedefstructSintg;
charh;
T;
以下叙述中正确的是A)可用S定义结构体变量B)可用T定义结构体变量C)S是struct类型的变量D)T是structS类型的变量(40)有以下程序includestdiohmain()shortc=124;
c=c_;
printf(“dn”、C);
若要使程序的运行结果为248,应在下划线处填入的是A)2B)|248C)0248D)main()inta=200,b=010;
printf(”d%dn”,a,b);
(7)有以下程序includestdiohmain()intx,Y;
scanf(”2d%ld”,x,y);
printf(”dn”,x+y);
程序运行时输入:
1234567程序的运行结果是【7】。
(8)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为【8】时表示逻辑值“真”。
(9)有以下程序includestdiohmain()inti,n=0,0,0,0,0;
i=4;
i+)ni=ni-13+1;
printf(”%d,ni);
程序运行后的输出结果是【9】。
(10)以下fun函数的功能是:
找出具有N个元素的一维数组中的最小值,并作为函数值返回。
请填空。
(设N已定义)intfun(intxN)inti,k=0;
for(i=0;
iintf(int*p,intq);
main()intm=1,n=2,r=&
m;
r=f(r,n);
printf(”dn”,r);
intf(int*p,intq)return(*pq)?
p:
q;
程序运行后的输出结果是【11】
(12)以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。
(设M,.N已定义)intfun(intaNM)inti,j,row=0,col=0;
imain()intn2,i,j;
i2;
i+)ni=0;
i+)for(j=0;
jmain()inta10,*p,s;
for(p=a;
p-a10;
p+)scanf(”d”,p);
for(p=a,s=a;
p-a*s)S=P;
printf(max=%dn”,【14】);
(15)以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。
includestdiohmain()
【15】*fp;
chara51,2,3,4,5,i;
fp=fopen(”ftxt”,”w”);
i5;
i+)fputc(ai,fp);
fclose(fp);
2010年3月二级c语言笔试真题一、选择题
(1)(10)、(21)(40)每题2分,(11)(20)每题1分。
共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:
则由关系R得到关系T的操作是选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:
fun(fun(x)C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以再使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标示符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:
doublea=22;
inti=0,k=18;
则不符合C语言规定的赋值语句是A)a=a+,i+B)i=(a+k)=(i+k)C)i=a%11D)i=!
a(15)includeVoidmain()chara,b,c,d;
scanf(”%c%c”,&
a,&
b);
c=getchar();
d=getchar();
printf(”%c%c%c%cn”,a,b,c,d);
当执行程序时,按下列方式输入数据(从第一列开始,代表回车,注意:
回车是一个字符)1234则输出结果是:
A、1234B、12C、12D、1233416、以下关于C语言数据类型使用的叙述中错误的是:
A、若要准确无误的表示自然数,应使用整数类型。
B、若要保存带有多位小数的数据,应使用双精度类型。
C、若要处理如”人员信息”等含有不同类型的相关数据,应自定义结构体类型。
D、若只处理”真”和”假”两种逻辑值,应使用逻辑类型。
17、若a是数值类型,则逻辑表达式(a=1)|(a!
=1)的值是:
A、1B、0C、2D、不知道a的值,不能确定18、以下选项中与if(a=1)a=b;
elsea+;
语句功能不同的switch语句是:
A、switch(a)B、switch(a=1)case1:
a=b;
C、switch(a)D、switch(a=1)default:
19、有如下嵌套的if语句if(ab)if(ac)k=a;
elsek=c;
elseif(bc)k=b;
elsek=c;
以下选项中与上述if语句等价的语句是A、k=(ab)?
a:
b;
k=(bc)?
b:
c;
B、k=(ab)?
(bc)?
b):
c);
C、k=(ab)?
(ac)?
c):
D、k=(ab)?
k=(ac)?
a;
c(20)有以下程序#includemain()inti,j,m=1;
for(i=1;
i0;
j-)if(i*j3)break;
m*=i*j;
printf(”m=%dn”,m)程序运行后的输出结果是(A)m=6(B)m=2(C)m=4(D)m=5(21)有以下程序#includesmain()inta=1,b=2;
for(;
a8;
a+)b+=a;
a+=2;
printf(”%d,%dn”,a,b);
程序运行后的输出结果是(A)9,18(B)8,11(C)7,11(D)10,14(22)有以下程序,其中k的初值为八进制数#includemain()intk=011;
printf(”%dn”,k+);
程序运行后的输出结果是(A)12(B)11(C)10(D)9(23)下列语句中,正确的是A)char*s;
s=”Olympic”;
B)chars7;
C)char*s;
D)chars7;
(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成viod类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是A)intnum0.2008;
B)intnum;
C)intN=2008;
D)#defineN2008intnumN;
intnumN(26)有以下程序#includevoidfun(char*c,intd)*c=*c+1;
d=d+1;
printf(”%c,%c,”,*c,d);
main()charb=a,a=A;
fun(&
b,a);
printf(”%c,%cn”,b,a);
程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)3;
则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组pt。
C)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义doublea10,*s=a;
一下能够代表数组元素a3的是A)(*s)3B)*(s+3)C)*s3D)*s+3(29)有以下程序#includemain()inta5=1,2,3,4,5,b5=0,2,1,3,0,is=0for(i=0;
i5;
i+)s=s+abi;
printf(%dn,s);
程序运行后的输出结果是A)6B)10C)11D)1530)有以下程序#includemain()intb33=0,1,2,0,1,2,0,1,2,i,j,t=1;
i3;
i+)For(j=i;
j=i;
j+)t+=bibji;
Printf(%dn,t);
程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句Acharsl10=abcd!
*s2=n123;
printf(%d%dn,strlen(s1),strlen(s2);
则输出结果是A)55B)105C)107D)58(32)有以下程序#include#defineN8voidfun(int*x,inti)*x=*(x+i);
main()intaN=1,2,3,4,5,6,7,8,i;
fun(a,2);
iN/2);
i+)printf(%d,ai);
printf(n);
程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeintf(intt,intn);
main()inta4=1,2,3,4,s;
s=fa,4;
printf(”%dn”,s);
intf(intt,intn)if(n0)returntn-1+f(t,n-1);
elsereturn0;
程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#includeintfun()staticintx=1;
x*=2;
returnx;
main()intI,s=1;
i=2;
i+)s=fun();
程序运行后的输出结果是A)0B)1C)4D)8(35)以下程序#include#defineSUB(a)(a)-(a)main()inta=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf(”%dn”,d);
程序运行后的结果是A)0B)-12C)-20D)10(36)没有定义structcomplexintreal,unreal;
datal=1,8,data2;
则以下赋值语句中的错误的是A)data2=data1;
B)data2=(2,6);
C)data2.real1=data1.real;
D)data2.real=data1.unreal;
(37)有以下程序#include#includestructAinta;
charb10;
doublec;
voidf(structAt);
main()structAa=1001,”ZhangDa”,1098.0;
f(a);
pringt(”%d,%s,%6.1fn”,a.a,a.b,a.c);
voidf(structAt)t.a=1002;
strcpy(t.b,”ChangRong”);
t.c=1202.0;
程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0(38)有以下定义和语句structworkersintnum;
charname20;
charc;
srructintday;
intmonth;
intyear;
s;
structworkersw,*pw;
pw=&
w能给w中year成员赋1980的语句是A)*pw.year=1980;
B)w.year=1980;
C)pw-year=1980;
D)w.s.year=1980;
(39)有以下程序#includemain()inta=2,b=2,c=2;
printf(”%dn”,a/b&
程序运行后的结果是A)0B)1C)2D)3(40)以下程序#includemain()FILE*fp;
charstr10;
fp=fopen(”myfile.dat”