《C语言》复习题库.docx

上传人:夺命阿水 文档编号:1431485 上传时间:2024-06-15 格式:DOCX 页数:116 大小:297.35KB
返回 下载 相关 举报
《C语言》复习题库.docx_第1页
第1页 / 共116页
《C语言》复习题库.docx_第2页
第2页 / 共116页
《C语言》复习题库.docx_第3页
第3页 / 共116页
《C语言》复习题库.docx_第4页
第4页 / 共116页
《C语言》复习题库.docx_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《《C语言》复习题库.docx》由会员分享,可在线阅读,更多相关《《C语言》复习题库.docx(116页珍藏版)》请在课桌文档上搜索。

1、一、单选题(221)1、C语言中下列叙述正确的是OA:不能使用do-while语句构成的循环B:do-whiIe语句构成的循环,必须用break语句才能退出C:do-whiIe语句构成的循环,当While语句中的表达式值为非零时结束循环D:do-whiIe语句构成的循环,当WhiIe语句中的表达式值为零时结束循环答案:D2、以下选项中属于C语言的数据类型是一_A:复数型B:逻辑型C:双精度型D:集合型答案:C3、下列描述中不正确的是.A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符对字符型数组进行整体赋值

2、答案:C4、以下程序的输出结果是main()intx=10,y=10,i;for(i=0;x8;y=+i)printf(*%d%d”,x一,y);A:10192B:9876C:10990D:101091答案:D5、以下程序的输出结果是。main()chara10=T,2,3,4,5,6,7,8,9,0,*p;inti;i=8;p=a+i;printf(*%sn*,p-3);A:6B:6789C:6D:789答案:B6、能正确表示a和b同时为正或同时为负的逻辑表达式是oA:(a=0b=0)(a0b=0&b=0)&(a0&b0)&(a+b0答案:D7、以下程序的输出结果是。main()intn=4

3、;while(n-)printf(,%d,n);:2OB:31C:321D:21O答案:A8、以下程序的输出结果是。main()intk=17:printf(*%d,%o,%xn*,k,k,k);A:17,021,0xllB:17,17,17C:17,0xll,021D:17,21,11答案:D10、以下选项中,能定义S为合法的结构体变量的是OA:typedefstructabcdoublea;charb10;B:structdoublea;charb10;C:structABCdoublea;charb10;)ABCs;D:typedefABCdoublea;charb10;ABCs;答案:

4、B11、请读程序:#includemainO(inta,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3:continue;b-=5;printf(*%dn*,a);上面程序的输出结果是.D:10A:7B:8C:9答案:B12、请选出合法的C语言赋值语句0:a=b=58B:i+;C:a=58,b=58D:k=int(a+b);答案:B13、请选出可用作C语言用户标识符的一组标识符voida3_b3For2adefine-123_abcIX)WORDIFcasesizeofA:B:C:D:答案:B14、若X和y都是int型变量,X=IO0、y=200,且有下面的程序片

5、段printf(*%d*,(x,y);上面程序片段的输出结果是A:200B:100C:100200D:输入格式符不够,输出不确定的值答案:A15、若X是int型变量,且有下面的程序片段for(x=3;x6;x+)printf(x%2)7(,*%d*):x):上面程序片段的输出结果是。*3*3#4#4*4*4*#5*5*5#*5A:答案:DB:C:D:18、若有以下说明和语句,请选出哪个是对C数组元素的正确引用。intc45,(*cp)5;cp=c;:cp+1B:*(cp+3)C:*(cp+l)+3D:*(*cp+2)答案:D20、设a、b和C都是int型变量,且a=3、b=4、c=5,则下面的

6、表达式中,值为0的表达式是A:B:a=bC:aI1+cMb-cD:!(a三,A,Mch,Zt)?(ch+32):ch上面表达式的值是OA:AB:HC:ZD:z答案:B28、下面程序main()intx=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!okl)x=l;elseif(ok2)x=10;x=-l;printf(*%dn*,x);)的输出是A:-1B:0C:1D:不确定的值答案:A29、下面程序main()intx=32;Printf(飞dn,x=xl);的输出是OA:100B:160C:120D:64答案:D30、下面程序main()inta

7、10=l,2,3,4,5,6,7,8,9,10,*p=a;printf(*%dn*,*(p+2);的输出是OA:3B:4C:1D:2答案:A31、下面程序main()intx=10,y=3;printf(*%dn*,y=xy);的输出是-A:0B:1C:3D:不确定的值答案:C32、下面程序voidprtv(int*x)printf(*%dn*,+*x);main()inta=25;prtv(&a);的输出是。A:23B:24C:25D:26答案:D33、下面的程序main()intx=3:doprintf(*%dn*,-=2);while(!(x);A:输出的是1答案:BB:输出的是1和-2

8、C:输出的是3和0D:是死循环34、下面的程序中错误(每行程序前面的数字是行号)。1 #include2 main()3 4 floata3=0.0;5 inti;6 for(i=0;i3;i+)scanf(*%d*,ai);7 for(i=l;i3ji+)a0=a0+ai;8 printf(*%fn*,a0);9 A:没B:第4行C:第6行D:第8行答案:C35、下面函数intfunl(char*x)char*y=x;while(*y+);return(y-l):的功能是B:比较两个字符串的大小D:将字符串X连接到字符串y后面A:求字符串的长度C:将字符串X复制到字符串y答案:39、有以下程

9、序main()intc;While(c=getchar()!=n,)SWitCh(C-2)case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);defau1t:putchar(c+2);break;从第一列开始输入以下数据,/代表一个回车符。2473/程序的输出结果是。A:668977B:668966C:66778777D:6688766答案:A44、以下程序的输出结果是main()char*s=*12134211*;intv4=0,0,0,0,k,i;for(k=0js(k:k+)switch(sk)case

10、,:i=0;case,2,:i=l;case,3:i=2;case4,:i=3;vi+:for(k=0;k4k+)printf(*%d*,vk);:4211B:0008C:4678D:8888答案:B52、有如下程序mainOfloatx=2.0,y;if(xO.0)y=0.0;elseif(x10.0)y=l.0/x;elsey=l.0;printf(%f11*,y);该程序输出结果是。A:0.000000B:0.250000C:0.500000D:1.000000答案:C66、下列叙述中正确的是。A:C语言编译时不检查语法B:C语言的子程序有过程和函数两种C:C语言的函数可以嵌套定义D:C

11、语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数答案:D77、以下程序的输出结果是0mainOinti,k,a10,p3;k=5;for(i=0;i10:i+)ai=i;for(i=0ji3;i+)pi=ai*(i+l):for(i=0ji3;i+)k+=pi*2;rintf(,%dn*,k);A:20B:21C:22D:23答案:B78、以下程序的输出结果是。SdefineSQR(X)X*Xmain()inta=16,k=2,m=l:a=SQR(k+m)SQR(k+m):printf(*%dn*,a);A:16B:2C:9D:1答案:B88、t为int类型,进入下面的循环之前

12、,t的值为0,while(t=l)则以下叙述中正确的是。A:循环控制表达式的值为0B:循环控制表达式的值为1C:循环控制表达式不合法D:以上说法都不对答案:B92、以下选项中,非法的字符常量是。A:,fB:,17,C:nD:xaa答案:C94、以下定义语句中,错误的是oA:inta=l,2;B:char*a3:C:chars10)=test”;D:intn=5,an:答案:D108、以下程序中,WhiIe循环的循环次数是0main()inti=0;while(i10)if(il)continue:if(i=5)break:i+;)A:1B:10C:6D:死循环,不能确定次数答案:D114,若有

13、以下程序Sincludevoidf(intn);main()voidf(intn):f(5);)voidf(intn)printf(*%dn*,n);)则以下叙述中不正确的是O:若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB:若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC:对于以上函数程序,编译时系统会提示出错信息:提示对f函数重复说明D:函数f无返回值,所以可用VOid将其类型定义为无值型答案:C117、以下不能正确进行字符串赋初值的语句为oA:charstr5=*good!*B:charstr=*good!*C:char*str=*goo

14、d!*D:charstr5=g,o,o,d答案:A120、在说明语句:int*f();中,标识符f代表的是0A:一个用于指向整型数据的指针变量B:一个用于指向一维数组的行指针C:一个用于指向函数的指针变量D:一个返回值为指针型的函数名答案:D123、以下叙述中正确的是。A:C语言中的文件是流式文件,因此只能顺序存取数据B:打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C:在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D:当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失答案:D127、已知i、j、k为int型变量,若从键

15、盘输入:1,2,3/,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。A:scanf(*%2d%2d%2d*,&i,&j,&k):B:SCanfe1%d,&i,&,&k);C:scanf(*%d,1,%d*,&i,&j,&k);D:scanf(*i=%d,j=%d,k=%d*,&i,&j,&k);答案:C131、有一函数r1x0y=H0x=011x0)y=l;elseif(x=0)y=0;elsey=-l;B:y=0jif(x0)y=l;elseif(x=O)if(xO)y=l;elsey=-l;D:if(x=0)if(x0)y=l:elsey=0;elsey=-l;答案:C

16、132、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main()intn,k;floatscore,sum,ave;sum=0.0;for(n=l;n=10;n+)for(k=l;kscore);sum+=score;ave=sum4.0;printf(*NO%d%fn*,n,ave);)上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是O:sum=0.0:B:sum+=score:C:ave=sum4.0;D:printf(*N0l%fn*,n,ave);答案:134、有以下程序main()inta=15,b=2

17、1,m=0;switch(a%3)case0:m+;break:casel:m+;switch(b%2)default:m+:case0:m+;break;)printf(*%dn*,m);程序运行后的输出结果是OA:1B:2C:3D:4答案:A138、有以下程序intf(intn)(if(n=l)return1;elsereturnf(n-l)+l:)main()(inti,j=0;for(i=l:i3;i+)j+=f(i);printf(*%dn*,j);程序运行后的输出结果是。A:4B:3C:2D:1答案:B139、有以下程序main()chara=a,b,c,d,e,f,g,h,O;i

18、nti,j;i=sizeof(八):j=strlen(八);printf(*%d,%dn*,i,j);程序运行后的输出结果是A:9,9B:8,9C:1,8D:9,8答案:D140、以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。voidreverse(inta,intn)(inti,t;for(i=0;in2;i+)t=ai;ai=an-l-i;an-l-i=t;mainOintb10=(lr2,3,4,5,6,7,8,9,10):inti,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi:printf(*%dn*,s);程序运行后的输出结果是A:

19、22B:10C:34D:30答案:A147、C语言中用于结构化程序设计的三种基本结构是“A:顺序结构、选择结构、循环结构B:if-switch、breakC:for、while、do-whi1eD:if、for、continue答案:A148、下列关于C语言用户标识符的叙述中正确的是OA:用户标识符中可以出现下划线和中划线(减号)B:用户标识符中不可以出现中划线,但可以出现下划线C:用户标识符中可以出现下划线,但不可以放在用户标识符的开头D:用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头答案:B150、下列关于单目运算符+、一的叙述中正确的是0A:它们的运算对象可以是任何变量

20、和常量B:它们的运算对象可以走Char型变量和int型变量,但不能是float型变量C:它们的运算对象可以是int型变量,但不能走double型变量和float型变量D:它们的运算对象可以是Char型变量、int型变量和float型变量答案:D154、有以下程序main()inti=l,j=l,k=2;if(j+lk+)Mi+)printf(*%d,%ddn*,i,j,k);执行后输出的结果是.A:1,1,2B:2,2,1C:2,2,2D:2,2,3答案:C160、有以下程序int*f(int*xint*y)(if(*x*y)returnx;elsereturny:mainOinta=7,b=

21、8,*p,*q,*r:P=Aa;q=&b;r=f(,q);printf(*%d,%d,%dn*,*p,*q,*r):执行后输出结果是。:7,8,8B:7,8,7C:8,7,7D:8,7,8答案:B161、有以下程序mainOintm3=1,4,7,2,5,8,3,6,9;inti,j,k=2;for(i=0;i3;i+)printf(*%d*,mki);执行后输出结果是。A:456B:258C:369D:789答案:C162、有以下程序main()chars=0,):此函数的功能是OA:将s2所指字符串赋给SlB:比较Sl和s2所指字符串的大小,若SI比s2的大,函数值为1,否则函数值为0C:

22、比较Sl和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0D:比较Sl和s2所指字符串的长度,若SI比s2的长,函数值为1,否则函数值为0答案:C164、设有如下说明typedefstructintn;charc;doublexjSTD;则以卜.选项中,能正确定义结构体数组并赋初值的语句是A:STDtt2=i,A62,2B75);B:STDtt2=l,*A*,62,2,*,75);C:structtt2=(l/A,),(2t,B,);D:structtt2=1,A*,62.5,2,*B*,75.0);答案:A167、有以下程序mainOinta3=l,2,3,4,5,0),(*pa)

23、3,i;pa=a:for(i=0;i3:i+)if(i2)pali=pali-l;elsepali=l:printf(*%dn*,a0l+all+al2);执行后输出结果是。D:无确定值B:C语言中对二进制位的访问速度比文本文件快D:C语言中,顺序读写方式不使用于二进制文件A:7B:6C:8答案:A168、以下叙述中不正确的是。A:C语言中的文本文件以ASeIl码形式存储数据C:C语言中,随机读写方式不使用于文本文件答案:D169、以下叙述中正确的是。A:。程序中注释部分可以出现在程序中任意合适的地方B:花括号和只能作为函数体的定界符C:构成C程序的基本单位是函数,所有函数名都可以由用户命名D

24、:分号是C语句之间的分隔符,不是语句的一部分答案:A175、设变量X为float型且已赋值,则以下语句中能将X中的数值保留到小数点后两位,并将第三位四舍五入的是O:x=x*100+0.5/100.0:B:x=(x*100+0.5)/100.0C:x=(int)(x*100+0.5)/100.0:D:x=(x100+0.5)/100.0:答案:C176、有定义语句:inta=l,b=2,c=3,x;,则以下选项中各程序段执行后,X的值不为3的是。:if(ca)x=l;elseif(ba)x=2;elsex=3;B:if(a3)x=3;elseif(a2)x=2;elsex=l;C:if(a3)x

25、=3;if(a2)x=2;if(al)x=l;D:if(ab)x=b;if(bc)x=c:if(c0);D:if(b=0)m=l;n=2:答案:D193、以下程序段中与语句k=ab?(bc?l:O):0;功能等价的是0A:if(ab)&(bc)k=1;elsek=0;B:if(ab)II(bc)k=l;elsek=0;C:if(a=b)k=0;elseif(bb)k=l;elseif(bc)k=l;elsek=0;答案:A198、若程序中定义了以下函数doublemyadd(doublea,doubleb)return(a+b):并招其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项

26、中错误的说明是一:doublemyadd(doublea,b):B:doublemyadd(double,double);C:doublemyadd(doubleb,doublea);D:doublemyadd(doublex,doubley);答案:199、有以下程序段inta10=l,2,3,4,5,6,7,8,9,10),*p=fea3,b;b=p5:b中的值是0A:5B:6C:8D:9答案:D200、设有以下语句typedefstructSintg;charh;T;则下面叙述中正确的是OA:可用S定义结构体变量B:可以用T定义结构体变量C:S是StrUet类型的变量D:T是StrUCt

27、S类型的变量答案:B206有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则卜.列选项中正确的表达式是。A:a=a+b=b+B:w%(int)a+b)C:(c+w)%(int)aD:w=a=b;答案:C207、有以下程序main()intm=3,n=4,x;x=-m+;x=x+8+n;printf(*%dn*,x);程序运行后的输出结果是A:3B:5C:-1D:-2答案:D208、有以下程序main()chara-a,b;printf(*%c,*,+a);printf(*%cn*,b=a+);程序运行后的输出结果是。A:b,bB:b,cC:a,bD:a,c答案:A2

28、10、有以下程序main()chara,b,c,d;scanf(*%c,%c,%d,%d*,&a,&b,&c,&d);printfCe,%c,%c,%cn*,a,b,c,d);若运行时从键盘上输入:6,5,65,66/。则输出结果是OA:6,5,A,BB:6,5,65,66C:6,5,6,5D:6,5,6,6答案:A214、有以下程序main()charstr10=*China*,*Beijing*,*p=str;printf(*%sn*,p+10);程序运行后的输出结果是。A:ChinaB:BejingC:ngD:ing答案:B215、已有定义:inti,a10,*p;,则合法的赋值语句是。

29、A:p=100;B:p=a5:C:p=a2+2;D:p=a+2:答案:D224、以下程序的输出结果是。main()chara10=1,2,3,4,5,6,7,8,9,0,*p;inti:i=8:P=ai;printf(%sn”,p-3);A:6B:6789C:,6D:789答案:B226、以下程序的输出结果是omain()inta=-l,b=l,k:if(+aO)&!(b=O)printf(*%d%dn*,a,b);elseprintf(*%d%dn*,b,a):A:-11B:01C:10D:00答案:C228、请读程序:ttincludettincludemain()(char*sl=*Ab

30、CdE,*s2=aB;si+;s2+;printf(*%dn*,strcmp(si,s2);)上面程序的输出结果是OA:正数B:负数C:零答案:D:不确定的值229、请读程序:#includefunc(inta,intb)intc;c=a+b;returnc;main()intx=6,y=7,z=8,r;r=func(x,y+x+y),Z-);printfC%dn*,r);)上面程序的输出结果是。A:11B:20C:21D:31答案:C230、请读程序:8includeinta=2f4,6,8,):main()inti;int*p=a:for(i=0;i4;i+)ai=*p+;printf(*

31、%dn*,a2):)上面程序的输出结果是。A:6B;8C:4D:2答案:231、请读程序:Sincludemain()intnm=0;whiIe(num=2)num+;printf(*%dn*,num);)上面程序的输出结果是.1111222334A:B:C:D:答案:C235、请选出以下程序的输出结果.Jtincludesub(int*s,inty)staticintt=3:y=st;t;)mainO(inta=l,2,3,4,i,x=0;for(i=0;i5)printf(*%dn,x);elsePrintf(%dn,x-);则输出是。A:7B:6C:5D:4答案:B255、若在定义语句:

32、inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A:SCanf(,a,b,c);B:scanf(*%d%d%d*,a,b,c);C:scanf(*%d*,p);D:scanf(*%d*,&p):答案:C257、若变量均已正确定义并赋值,以下合法的C语言赋值语句超。:x=y=5;B:x=n%2.5;C:x+n=i;D:x=5=4+l;答案:258、若变量已正确定义,有以下程序段i=0;doprintf(*%d,*,i);while(i+);printf(*%dn*,i);其输出结果是。A:0,0答案:BB:0,1C:1,1D:程序进入无限循环264、以卜.正确的

33、字符串常量是A:*答案:DB:abcC:OlympicGamesD:266、若有定义语句:inta36:,按在内存中的存放顺序,a数组的第10个元素是A:a04B:al3答案:BC:a03D:al4271、有以下程序Sincludeinta=l;intf(intc)staticinta=2:c=c+l;return(a+)+c;IimainOinti,k=0;for(i=0;i2;i+)inta=3;k+=f(八);k+=a;printfC*%dn*,k);程序的运行结果是。A:14B:15C:16D:17答案:A272、下面程序的输出是:chars=*ABCD*;main()(char*p;

34、for(p=s;p0;y)if(y%3=0)printf(*%d*,y);continue;)J的输出是。D:875421A:741B:852C:963答案:B278、下面的程序main()intx=3:do(printf(*%dn*,-=2);while(!(-x);:输出的姑1B:输出的是1和-2C:输出的是3和0D:处死循环答案:B283、以下程序的输出结果是.oincludeJtincludemain()inta=l,b=4,c=2;floatx=10.5,y=4.0,z;z=(a+b)c+sqrt(double)y)*l.2/c+x:printf(*%fn*,Z);A:14.0000

35、00B:15.400000C:13.700000D:14.900000答案:C284、以下程序的输出结果是。JtincludeSincludestring,hmain()(charStru2=(s,t,r,i,n,g;printf(*%dn*,strIen(str);A:6B:7C:11D:12答案:285、以下程序的输出结果是Sincludemain()inti:for(i=l;i5;i+)if(i%2)printf(*):elsecontinue;printf(*#*);printf(*$n*);A:*#*#*#$B:#*#*#*$C:*#*#$D:#*#*$答案:C288、以下程序的输出

36、结果是main()(intk=4,m=l,p;p=func(k,m);printf(*%d,*,p);p=func(k,m);printf(*%dn*,p);)func(inta,intb)(staticintm=0,i=2;i+=m+l;m=i+a+b;return(m):):8f17B:8,16答案:291、执行下面程序中的输出语句后,main()inta;printf(*%dn*,(a=3*5,a*4),a+5);)a的值是0A:15B:20C:10答案:A293、下面程序的输出是Ointm=13;intfun2(intx,inty)intm=3:return(x*y-m);)nain()(inta=7,b=5;printf(*%dn,fun2(a,b)m);C:8,20D:8,8D:60A:1B:2C:7答案:B295、若有以下说明:inta12=l,2,3,4,5,6,7,8,9,1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号