C语言程序设计 笔试题.docx
- 文档编号:8765058
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:206
- 大小:67.87KB
C语言程序设计 笔试题.docx
《C语言程序设计 笔试题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 笔试题.docx(206页珍藏版)》请在冰豆网上搜索。
C语言程序设计笔试题
一、单选题(共计60题)
(1)在下述程序中,if(i>j)语句共执行的次数是()。
main()
{inti=0,j=14,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf(“%d”,s);
break;
}
s+=i;
}
}
A、6
B、9
C、7
D、12
(2)若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
A、"ab+"
B、"rb+"
C、"wb+"
D、"ab"
(3)下列程序的输出结果是()。
structstudent
{inta,b,c;};
main()
{structstudentstu[2]={{2,3,4},{5,6,7}};intt;
t=stu[0].a+stu[1].b%stu[0].c;
printf("%d\n",t);}
A、0
B、1
C、4
D、5
(4)对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是()。
A、f=(f*1000+0.5)/1000.0
B、f=(f*1000+0.5)/1000
C、f=(int)(f*1000+0.5)/1000.0
D、f=(f/1000+0.5)*1000
(5)现已定义整型变量inti=1;执行循环语句“while(i++<5);”后,i的值为()。
A、1
B、5
C、6
D、以上三个答案均不正确
(6)下列程序的输出结果是()。
structLH
{intn;structLH*m;}p[4];
main()
{inti;
for(i=0;i<2;i++)
{p[i].n=i;p[i].m=&p[i+1];}
p[i].m=p;
printf(“%d,%d\n”,(p[1].m)->n,p[2].m->n);
}
A、0,1
B、0,2
C、0,0
D、程序出错
(7)下列程序的运行结果是()。
#include"stdio.h"
intf(inta)
{switch(a)
{case0:
return0;
case1:
case2:
return1;
}
return(f(a-2)+f(a-3));
}
main()
{intb;
b=f(9);
printf(“%d\n”,b);
}
A、10
B、7
C、8
D、9
(8)以下程序的输出结果是()。
intf(intb[],intm,intn)
{inti,s=1;
for(i=m;i {b[i]=b[i-1]+b[i+1]; s+=b[i];} returns;} main() {intx,a[]={1,2,3,4,5,6,7,8,9,10}; x=f(a,3,5); printf("%d\n",x);} A、23 B、26 C、42 D、35 (9)以下程序运行后,输出结果是()。 main() {charch[3][4]={"123","456","78"},*p[3];inti; for(i=0;i<3;i++)p[i]=ch[i]; for(i=0;i<3;i++)printf("%s",p[i]); } A、123456780 B、123456780 C、12345678 D、147 (10)桌上有白球和黑球共5个,a、b、c、d、e分别表示这5个球的颜色,取值为0、1分别代表白球、黑球。 则以下能表示a是黑球,其余至少有两个白球的表达式是()。 A、! a&&(b+c+d+e)==2 B、a&&(b+c+d+e)>2 C、a&&(b+c+d+e)<=2 D、! a&&(b+c+d+e)==3 (11)下列程序的输出结果是()。 #include"stdio.h" intf(intn) {staticintk,s; n--; for(k=n;k>0;k--) s+=k; returns; } voidmain() {intk; k=f (2); printf("(%d,%d)",k,f(k)); } A、(3,3) B、(1,1) C、(3,6) D、(6,12) (12)若有定义: inta,b;charx,y;并有以下输入数据: 1213AaBb(回车) 则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是()。 A、scanf(“%d”,&a); scanf(“%d”,&b); x=getchar();y=getchar(); B、scanf(“%d%d%c%c”,&a,&b,&x,&y); C、scanf(“%d%d%c%c”,&a,&b,&x,&x,&y,&y); D、scanf(“%d%d%c%c%c%c”,&a,&b,&x,&x,&y,&y); (13)以下对结构体成员的运算结果是()。 #include main(){ structst {intx; inty; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); } A、0 B、1 C、3 D、6 (14)函数f定义如下,执行语句“m=f(5);”后,m的值应为()。 intf(intk) {if(k==0||k==1)return1; elsereturnf(k-1)+f(k-2); } A、3 B、8 C、5 D、13 (15)若有以下定义: chars[10]={’a’,’b’,’c’,’0’,’2’,’\x32’,’\0’,’\123’};执行语句printf(“%d”,strlen(s));的结果是()。 A、3 B、6 C、8 D、9 (16)若i为整型变量,则以下循环执行的次数是()。 for(i=0;i<=5;i++) printf("%d",i++); A、5次 B、2次 C、3次 D、6次 (17)执行以下程序段后的输出结果是()。 intx=3; intm,n; n=(++x)+(++x); m=(x--)+(x--); printf("%d%d\n",m,n); A、106 B、99 C、1010 D、108 (18)设有定义: inta[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为()。 A、2 B、3 C、4 D、以上都不对 (19)以下关于循环的程序的输出结果是()。 #include"stdio.h" voidmain() { intk=4,n=0; for(;n { n++; if(n%3! =0)continue; k--; } printf("%d%d",k,n); } A、11 B、22 C、33 D、44 (20)下列关于字符串操作的输出结果是()。 #include"stdio.h" #include"string.h" voidmain() { charp1[20]="abcd",p2[20]="ABCD"; charstr[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1)); printf("%s\n",str); } A、xyabcAB B、abcABz C、Ababcz D、xycdBCD (21)下列选项中属于正确的switch语句的是()。 A、swicth(’a’) {case‘a’: printf(“A\n”); case‘b’: printf(“B\n”);} B、switch(1.0) {case1.0: printf(“A\n”); case2.0: printf(“B\n”);} C、switch((int)(x+2.5)) {case1: printf(“A\n”); case1+2: printf(“B\n”);} D、switch(“a”); {case“a”: printf(“A\n”); case“b”: printf(“B\n”);} (22)以下程序的运行结果为()。 #include"stdio.h" voidmain(){ inty=2,a=1; while(y--! =-1){ do{ a*=y;a++; }while(y--);} printf("%d,%d\n",a,y);} A、1,-2 B、2,1 C、1,0 D、2,-1 (23)C语言的输入与输出操作是由()完成的。 A、输入语句 B、输出语句 C、输入与输出函数 D、输入与输出语句 (24)若有以下程序段 …… inta[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;} a[j+1]=t;} …… 则该程序段的功能是()。 A、对数组a进行插入排序(升序) B、对数组a进行插入排序(降序) C、对数组a进行选择排序(升序) D、对数组a进行选择排序(降序) (25)执行下列程序中的输出语句后,x的值是()。 main() {intx; printf(“%d\n”,(x=4*5,x*2,x+20));} A、20 B、40 C、60 D、80 (26)下列程序段的输出结果是()。 intc[]={1,7,12}; int*k=c+1; printf("%d",*k++); A、2 B、7 C、8 D、12 (27)下列程序的运行结果是()。 main() {inta=4,y; y=fn(a,++a); printf(“%d”,y);} intfn(x,c) {intb; if(x elseif(x==c)b=0; elseb=-1; return(b); } A、4 B、-1 C、1 D、0 (28)有如下程序: intx=-20;printf("%d\n",~x);,其输出结果将是()。 A、19 B、20 C、21 D、-1 (29)对于类型相同的指针变量,不能进行的运算是()。 A、+ B、- C、= D、== (30)已知: unionu_type {inti; charch; floata; }temp; 现在windows环境下,执行"temp.i=266;printf("%d",temp.ch)"的结果是()。 A、266 B、256 C、10 D、1 (31)以下程序的运行结果是()。 #include"stdio.h" main() { inta[]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p=a+5,*q=NULL; q=p+5; printf("%d%d\n",*p,*q); } A、运行后报错 B、611 C、612 D、55 (32)以下程序的输出结果是( )。 main() {inta=0,b=1,c=0,d=20; if(a)d=d-10; elseif(! b) if(! c)d=15; elsed=25; printf("d=%d\n",d); } A、d=10 B、d=15 C、d=20 D、d=25 (33)下面四组字符串中,都可以用作C语言程序标识符的是()。 A、print _maf mx_2d aMb6 B、I\am scanf mx_ MB C、sign 3mf a.f A&B D、if ty_pe x1# 5XY (34)下列程序的输出结果是()。 intf() {staticinti=0; ints=1; s+=i;i++; returns;} main() {inti,a=0; for(i=0;i<6;i++)a+=f(); printf(“%d\n”,a);} A、21 B、24 C、25 D、15 (35)设有定义: #defineSTR"12345";,则以下叙述正确的是()。 A、宏名STR代替的是数值常量12345 B、宏定义以分号结束,编译时会产生错误信息 C、宏名STR代替的是字符串"12345" D、宏名STR代替的是字符串常量"12345" (36)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为()。 #include"stdio.h" #include"string.h" func(charstr[]) {intnum=0; while(*(str+num)! =’\0’)num++; return(num); } main() {charstr[10],*p=str; gets(p);printf("%d\n",func(p)); } A、8 B、7 C、6 D、5 (37)下列程序的输出结果是()。 structst {intx;int*y;}*p; intdt[4]={10,20,30,40}; structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main() {p=aa; printf(“%d”,++(*p->y)); printf(“%d”,(++p)->x); printf(“%d”,++p->x);} A、202010 B、216050 C、116061 D、317060 (38)以下函数的功能是()。 char*fun(char*str1,char*str2) { while((*str1)&&(*str2++=*str1++)); returnstr2; } A、求字符串的长度 B、比较两个字符串的大小 C、将字符串str1复制到字符串str2中 D、将字符串str1接续到字符串str2中 (39)以下程序的输出结果是()。 #include voidfunc(char**m) { ++*m; printf("%s\n",*m); } voidmain() { staticchar*a[]={"first","second","three"}; char**n; n=a; func(n); } A、first B、irst C、second D、其他 (40)以下语句的输出结果为()。 for(k=0;k<5;++k) {if(k==3)continue; printf("%d",k); } A、012 B、0124 C、01234 D、没有输出结果 (41)下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为()。 #include"stdio.h" main() {inti,ch,n[10]; for(i=0;i<10;++i)n[i]=0; while((ch=getchar())! =‘\n’) if(ch>=‘0’&&ch<=‘9’) ________; for(i=0;i<10;++i) printf("数字%d出现的次数是: %d\n",i,n[i]); } A、n[ch-‘0’]++ B、n[ch]++ C、i++ D、n[i]++ (42)以下程序的输出结果是()。 #include"stdio.h" int*fun() { inta[4],k; for(k=0;k<4;k++)a[k]=k; return(a); } voidmain() { int*p,j; p=NULL; p=fun(); for(j=0;j<4;j++){printf("%d\n",*p);p++;} } A、0000 B、0123 C、1111 D、输出不确定值 (43)若有如下结构体定义,下列scanf用法不正确的是()。 structpupil { charname[20]; intage; intsex; }pup[5],*p; p=pup; A、scanf("%s",pup[0].name); B、scanf("%d",&pup[0].age); C、scanf("%d",&(p->sex)); D、scanf("%d",p->age); (44)与y=(x>0? 1: x<0? -1: 0);的功能相同的if语句是()。 A、if(x>0)y=1; elseif(x<0)y=-1; elsey=0; B、if(x) if(x>0)y=1; elseif(x<0)y=-1; C、y=-1 if(x) if(x>0)y=1; elseif(x==0)y=0; elsey=-1; D、y=0; if(x>=0) if(x>0)y=1; elsey=-1; (45)下列描述中不正确的是()。 A、字符型数组中可能存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出 D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 (46)下面程序运行后,关于a、b、c的值应输出为()。 #include"stdio.h" main() { inta=1,b=2,c=2,t; while(a printf("%d,%d,%d",a,b,c); } A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,1 (47)在16位PC机环境下,下列程序的输出结果是()。 structtt {intn1;charn2;floatn3; unionuu{intu1[3];charu2[3];}su; }; main() {printf(“%d\n”,sizeof(structtt));} A、11 B、12 C、13 D、9 (48)若有如下程序: voids(char*m,intn) { *m=*m+3;n=n+3; printf("%c,%c,",*m,n); } voidmain() { charp=’b’,q=’B’; s(&q,p); printf("%c,%c\n",p,q); } 则程序运行后的输出结果是()。 A、E,e,b,E B、e,E,b,F C、E,e,e,E D、e,E,b,E (49)以下程序的输出结果是()。 #include intmain() { charstr[100]="ABCDEFG",*p=str; inti; for(i=0;*p! =’\0’;p++,i++); printf("%d\n",i); return0; } A、7 B、8 C、99 D、100 (50)某C编译系统规定,int型数组占2个字节,则定义以下语句后,sizeof(aa)=()。 struct{longnum; charname[20]; union{floatx; shorty; }xy; }aa; A、32B、26 C、30D、28 (51)语句: printf(“%d”,! 0);的输出结果是()。 A、1 B、0 C、有语法错误,不能执行 D、! 0 (52)函数f定义如下,执行语句“sum=f(4)+f (2);”后,sum的值应为()。 intf(intm) {staticinti=0;ints=0; for(;i<=m;i++)s+=i;returns; } A、13B、16 C、10D、8 (53)fwrite函数的一般调用格式是()。 A、fwrite(buffer,count,size,fp); B、fwrite(fp,count,size,buffer); C、fwrite(fp,size,count,buffer); D、fwrite(buffer,size,count,fp); (54)有以下程序段 main() {inti=1,sum=0,n; scanf("%d",&n); do {i+=2; sum+=i; }while(i! =n); printf("%d",sum); } 若使程序的输出值为15,则应该从键盘输入的n的值是()。 A、1B、3 C、5D、7 (55)下列选项可作为C语言赋值语句的是()。 A、a=1;b=2; B、a=b=6 C、i-- D、y=int(x); (56)已知有以下的说明, inta[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为()。 A、5B、0 C、4D、7 (57)已知enumname{zhao=1,qian,sun,li}man;执行下述程序段后的输出结果是()。 man=0; switch(man) {case0: printf("People\n");break; case1: printf("Man\n");break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 笔试题 语言程序设计 笔试
![提示](https://static.bdocx.com/images/bang_tan.gif)