版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言练习题总汇一、 单选题:【顺序结构程序设计】1己知 int k,m=1; 执行语句 k=-m+; 后 k 的值是( A ) 。 (提示: 负号与自加运算符同级,结合方向从右向左 )A)-1 B) 0C)1D)22 .若有定义int x=4;则执行语句 x + = x * = x + 1 ;后,x的值为(C )。A)5B)20C)40 D)无答案3 若有定义: float a=3.0, b=4.0 , c=5.0 ; 则表达式 1/2 *(a+b+c) 的值为 ( C )A)6.0 B)6C)0.0 D)无答案4以下程序段的输出结果是( C ) 。 (提示:a 当约束过严时,约束失效。按自
2、由格式输出。 )int a=1234;printf(%2dn,a);A)12 B)34 C)1234 D) 提示出错,无结果5. 下列程序段的输出结果是( C) 。int a=1234 ;float b=123.456;double c=12345.54321 ;printf(%2d, %3.2f , %4.1f , a, b, c) ;A) 无 输 出B)12, 123.46,12345.5C)1234,123.46,12345.5D)1234,123.45, 1234.56. 设 x, y 均为整型变量,且x=8, y=5, 则以下语句的输出结果是(D)printf( %d, %dn ,
3、x- , +y) ;A)8,5B)7,5 C) 7,6 D) 8,67. 以下程序的输出结果是( A ) 。int main () int a=20 , b=10;printf (%d,%dn , a+b, a-b ); A) 30,%dB)30,10C)30,%10 D) 以上答案均不正确第一个%后面的表示字符)8下列程序的运行结果是(A) 。int main () float x=2.5;int y;y= ( int ) x ;printf (x=%f, y=%d, x, y);A) x=2.500000,y=2B)x=2.5,y=2C)x=2,y=2x=2.500000,y=2.0000
4、009. 以下程序的输出结果是(A) 。int main () char c= z;(%d 中D)A)a B)z C)z-25 D)y (字母共有 26 个,而 z 是最后一个)printf (%c, c-25);int main( ) double d=3.2;int x=1.2, y ;y=(x+3.8)/5.0;printf(%dn,d*y) ; A) 3 B) 3.2C)0 D) 3.0711 . 下面程序的输出结果是( C ) 。 ( 提示:输出时无定界符)int main() int k=17;printf(%d , %o, %xn , k , k , k) ; A)17,17,1
5、7B)17,021,0x11 C)17,21,11D)17,0x11,02112 下列程序执行后的输出结果是(C) 。int main () char x =OxFFFF ; printf (%dn , x- );A)-32767 B)FFFE C)-1 D)=-3276813 .printf(abrehiyboun) ;的输出结果是(C) 。A)abrehiybou B)abrehiybouC)rehiyouD)abrehiybou14 有定义语句:int x,y; 若要通过 scanf(%d,%d,&x,&y); 语句使变量 x 得到数值 11 ,变量 y 得到数值12,下面四组输入形式中
6、错误的是(A) 。A)11空格12回车,B)11,空格 12回车 C)11,12D)11,1215 有以下程序段:int m=0,n=0;char c= a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入: 10A10 ,则输出结果是(A) 。A)10,A,10 B)16,a,10 C)10,a,0 D)10,A,016 . 若变量已正确说明为 int 类型,要通过语句 scanf(%d %d %d ,&a,&b,&c);给 a 赋值 1,b 赋值 2,c 赋值3,不正确的输入形式是(B) 。A) 123 B)1,2,3 C)123
7、D)12317 .a, b,c 被定义为 int 型变量,若从键盘给a, b,c 输入数据,正确的输入语句是(D)A)input a,b,c; B)read(%d%d%d,&a,&b,&c); C)scanf(%d%d%d,a,b,c);D)scanf(%d%d%d,&a,&b,&c);18已知 a,b,c 为 int 型变量,若从键盘输入:1,2,3,使 a 的值为 1 , b 的值为 2,c 的值为 3, 以下选项中正确的输入语句是(B) 。A)scanf(%2d,%2d,%2d , a,b,c);B)scanf(%d,%d,%d,&a,&b,&c);C)scanf(%d %d %d,&a
8、,&b,&c);D)scanf(i=%dj=%d,k=%d,&a,&b,&c);19. 执行下程序时输入 :123 空格 456空格 789回车 ,输出结果是( D )int main ()char s ;int c , i ;scanf ( %c , &c) ;scanf ( %d , &i ) ;scanf ( %c , &s) ;printf (%c, %d,%cn”, c, i , s);A)123,456,789B)1,456,789 C)1,23,456,789 D) 1,23,20. 已定义 c 为字符型变量,则下列语句中正确的是( C ) 。A) c= 97 B ) c= “9
9、7 “ C ) c=97 D ) c= “a”21. 以下程序的功能是:给r 输入数据后计算半径为 r 的圆面积 s 。程序在编译时出错。#include void main()int r;float s;scanf(%d,&r);s=p*r*r;printf(s=%fn,s);出错的原因是( ) 。A注释语句书写位置错误B)存放圆半径的变量r不应该定义为整型C)输出语句中格式描述符非法D)计算圆面积的赋值语句中使用了非法变量答案: D22. 有以下程序#include void main( )int m=12,n=34;printf(%d%d,m+,+n);printf(%d%dn,n+,+
10、m);程序运行后的输出结果是( ) 。答案: A23. 数字字符 0 的 ASCII 值为48,若有以下程序#include void main( )char a=1,b=2;printf(%c,b+);printf(%dn,b-a);程序运行后的输出结果是 。A) 3,2 B) 50,2 C) 2,2 D ) 2,50答案: C24. 有以下程序#include void main( )char c1=1,c2=2;c1=getchar( ); c2=getchar( ); putchar(c1); putchar(c2);当运行时输入: a 后,以下叙述正确的是 。A变量cl被赋予字符a,
11、 c2被赋予回车符B)程序将等待用户输入第2个字符C)变量cl被赋予字符a, c2中仍是原有字符 2D)变量cl被赋予字符a, c2中将无确定值答案: A25.【选择结构程序设计】1. 有变量说明语句 int a,b ,c; ,顺序执行下面语句:a=b=c=1 ;+a|+b&+c;那么,变量b 的值应是( B )A 2 B 1 C 0 D 32. 有变量说明 int a=3;,则表达式 a1 的运算结果和 a 的值应该是( B )A 0 和 2 B 0 和 3 C 1 和 2 D 1 和 33. 设 int a=3,b=4,c=5;, 下列表达式的值不为 1 的是( A ) 。A) a+bc&
12、b=c B ) a|b+c&b-cC) !(ab)&!c|1 D ) !(a+b)+c-1&b+c/24.#includeint main( )int a,b,c;a=10;b=50;c=30;if(ab) a=b;b=c;c=a;printf(“a=%d,b=%d,c=%d n” ,a,b,c);程序的输出结果是( C ) 。A.a=10, b=50, c=10 B. a=10, b=50, c=30C.a=10, b=30, c=10 D. a=50, b=30, c=505. 若整型变量a、 b、 c、 d 中的值依次为: 1 、 4、 3、 2 。 则条件表达式ab?a:cd?c:d的
13、值是 ( A ) 。( A) 1( B) 2( C) 3( D) 46 .若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是(C )。A) abs(x-y)-10&x-y10 C) !(x-y)10 D)(x-y)*(x-y)1007 .若有定义:int a=7; float x = 2.5 , y=4.7 ;则表达式 x+a%3*(int)(x+y)%24 的值是 ( A ) 。A) 2.5 B ) 2.7 C ) 3.5 D ) 4.78. 若有定义和语句:int s, p ;s=p=5; p=s+ , +p, p+2, p+; 则执行语句后p 的值是( C )A)9B
14、)8 C)7D)69. 若有定义: int a , b; 则表达式 a=4 , b=3, a+b+2, a+, a+b+2 的值为A) 12 B)11 C)10 D) 无答案10. 己知 int k=10 , m=3,n; 则下列语句的输出结果是( B )。printf ( %dn , n=( k%m, k/m ) ) ;A) 2B)3C)4D)511. 设 x 和 y 均为 int 型变量,则以下语句: x+=y; y=x-y; x-=y; 的功能是( ) 。B) 把 x 和 y 按从小到大排列交换 x 和 y 中的值A) 把 x 和 y 按从大到小排列C) 无确定结果D)答案: D答案:
15、( B)12. 设 int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式( a=ik)&(c=i,j,k)后,c 值是()。A) 0 B ) 1 C ) 2 D ) 3答案:D13. 若 x、 a、 b、 c 均 为 int 型变量,则执行表达式x= (a = 4, b = 8, c = 12) 后, x 的值为A) 4 B ) 8 C ) 12 D ) 24答案: C14. 以下程序的输出结果是 。#include void main()int a=-1, b=4, k;k = ( +a 0) & ( b += 5);printf (%d%d%d n, k, a, b );
16、) 004A) 104 B ) 103 C ) 003 D答案: D15. 下列运算符中,结合方向为自左向右的是( )A)?: ( B) ,( C) + =( D) + +16. 下列运算符中优先级最高的是(A) !B ) % C ) - = D ) &答案:( A)17. 有以下程序#include void main( )int m=3,n=4,x;x=-m+;x=x+8/+n;printf(%dn,x);程序运行后的输出结果是( ) 。A) 3 B ) 5 C ) -1 D ) -2答案: D 18.【循环结构练习题】1. 下面有关 for 循环的正确描述是( )A for 循环只能用于
17、循环次数已经确定的情况B for 循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D for 循环体语句中,可以包含多条语句,但要用花括号括起来答案: D2. 对于 for( 表达式 1; 表达式 3) 可理解为( )A for( 表达式1 : 1;表达式3)B for( 表达式1 ; 1;表达式3)C for( 表达式1 ;表达式1;表达式3)D for( 表达式1 ;表达式3;表达式3)答案: B3. 以下正确的描述是( )。A continue 语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用
18、 break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句答案: B4. 下面程序段不是死循环的是( ) 。A int I=100;B for ( ; ; );while(1) I=I%100+1;if(I100) break;C int k=0;D int s=36;do- -k; while(s);while(k=0);-s;答案: C5. 以下能正确计算1*2*3*10 的程序是 ( )A doi=1;s=1;s=s*i;i+;while(i=10);C i=1;s=1;do s=s*i;i+;while(i=10);答案: C6. 下面程序的运行
19、结果是#include int main( ) int y=10;doy-;while(-y);printf(%dn,y-);A -1 B 1答案: D7. 下面程序的运行结果是#includeint main()Bs=s*i;i+;while(i=10);Ddo s=s*i;i+;while(i=10);( )。C 8D( )。doi=1;s=0;i=1;s=0; int num=0;while(num=2)num+;printf(%dn,num);A 1 B 1 2 C 1 2 3 D 1 2 3 4答案: C8. 若运行以下程序时,从键盘输入3.6 2.4(CR裹示回车),则下面程序的运
20、行结果是( ) 。#include#includevoid main( ) float x,y,z;scanf( “ %f%f” ,&x,&y);z=x/y;while(1) if(fabs(z)1.0) x=y;y=z;z=x/y;elsebreak;printf( “ %f n” ,y);A 1.500000 B 1.600000 C 2.000000 D 2.400000答案: B9. 有以下程序:#include void main( )int i=0,s=0;for(; ;)if(i=3|i=5)continue;if(i=6) break;i+;s+=i;printf(%dn,s)
21、;程序运行后的输出结果是( ) 。A) 10B) 13 C ) 21 D )程序进入死循环答案: D10. 若有程序段:for (m=1;m=100;m+)scanf(%d,&y);if(y0) continue;printf(%3d,m);正确的描述是( ) 。A)当y=0 时什么也不输出D )最多允许输出 100 个非负整数D )无任何结果二、填空题【顺序结构程序设计】1有以下程序:int main () int m , n, p;scanfm=%dn=%dp=%,d &m, n , &p) ;printf (%d%d%dn m, n, p);若想从键盘上输入数据,使变量m中的值为123,
22、 n中的值为456, p中的值为789,则正确的输入是_m=123n=456p=789。2 .以下程序段的输出结果是280int main () int a=2 , b=3, c=4;a* =16 +(b+)-(+c);printf (%d, a);3 .以下程序段的输出结果是 5。int x=17 , y=26;printf (%d, y/= (x%=6);4 .下列程序的输出结果为 J2oint main () int x=3 , y=5;printf (%d, x= (x- ) * (-y) );5 .若有以下程序:int main () char a ;a= H - A + 0;(0,
23、 o)printf(%c, %dn , a,a );执行后的输出结果是工556.以下程序段的输出结果是 261。void main () int a=177;printf (%on , a);7 .以下程序的输出结果是0(-3276732767int)void main() unsigned short a=65536; int b;printf(%dn,b=a); 提示:当unsigned short 和int 均占2个字节时。8 .输入“ 12345,xyz ,下列程序输出的结果是 。int main() int x;char y;scanf ( 3d%3c,&x,&y);printf (
24、%d,%c ,x,y);答案:123, 49 .以下程序的运行结果是 。#include void main()int i=8,j=9,m,n;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);答案:9, 10, 9, 910 .下列程序的输出结果是。#include void main()int a = 3 , b = 14 , c = 5 ;c = c + a *a + b % 5 * 10 ;printf(%on , c );答案:6611 .阅读程序,并按给定的输出格式将程序运行结果写在“运行结果: ”之后#include void main()int a,
25、 b, c;a = (b = (c = 3) * 5)*5;printf (a=%d, b=%d, c=%d n, a, b, c);运行结果是:答案:运行结果是:a = 75, b = 15, c = 312 .【选择结构程序设计】1 .以下程序运行的结果是 。#include void main()int a,b,c;a=1;b=2;c=3;a=b-=a|a+b!=c;printf(%d,%d,a,b);答案:1, 12 .以下程序的运行结果是 。#include void main()int a,b,c;a=b=c=1;if (a+|+b) c+;printf(%d,%d,%dn,a,b
26、,c);答案:2, 1, 23 .以下程序的输出结果是 。#include void main()int k, i=0, j=2;k = i+&j+;printf (%d,%d,%dn, i,j, k);答案:1, 2, 04 .【循环结构程序设计】1 .若运行以下程序时,从键盘输入 ADescriptor /,则下面程序的运行结果是v0=12,v1=4,v2=12#include void main()char c;int v0=0,v1=0,v2=0;doswitch(c=getchar()casea:caseA:casee:caseE:casei :caseI :caseo:caseO:
27、caseu:caseU: v1+=1;default : v0+=1 ; v2+=1;while(c!= n);printf(v0=%d,v1 =% d,v2=%dn ” ,v0,v1,v2);2 .下面程序的运行结果是8,-2。#includevoid main() int i,b,k=0;for(i=1;i=0) k+;printf( %d,%d ,k,b);3 .下面程序的运行结果是8,22。#includevoid main() int a,b;for (a=1,b=1;a=20) break;if(b%3=1) b+=3; continue;b-=5;printf( %dn” ,a
28、,b);4 .下面程序的运行结果是x=8。#includevoid main() int i,j,x=0;for (i=0;i2;i+) x+;for(j=0;j=3;j+) if(j%2) continue;x+;x+;printf(“x=%d n”,x);5 .下面程序的运行结果是*#*#*#$。#includevoid main() int i;for (i=1;i=5;i+)if(i%2) printf( *);else continue;printf(#);printf( Y n);6 .下面程序的运行结果是J。#includevoid main()int i,j,a=0;for(i=0;i2;i+) for (j=0; j4; j+) if (j%2) break;a+;a+;printf( %d n ,a);7 .有以下程序,若从键盘输入:247回车,则程序的输出结果是 #include void main()int c;whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空工业成飞2026届校园招聘备考题库及答案详解一套
- 2025 九年级语文上册《出师表》历史背景补充课件
- 财务代理服务合同2025年税务合规版
- 2025西安未央区大明宫社区卫生服务中心招聘(2人)备考考试题库及答案解析
- 2025蚌埠固镇县司法局选聘专职人民调解员16人备考考试试题及答案解析
- 攀枝花市兴东投资建设集团有限责任公司2025年公开招聘工作人员备考考试试题及答案解析
- 新和成控股集团秋招面试题及答案
- 2025湖南乡村产业发展有限公司招聘4人备考笔试试题及答案解析
- 2025福建三明市国企招聘6人备考笔试试题及答案解析
- 湖北省电力规划设计研究院有限公司公开招聘安全总监1名备考考试试题及答案解析
- 2025年中国铁路上海局集团有限公司芜湖车务段客运服务人员招聘考试笔试备考题库及答案解析
- 2026年陕西省高考一模语文模拟试卷试题(含答案详解)
- 2025年高职现代水产养殖技术(生态养殖模式)试题及答案
- 2025年阳江辅警招聘考试真题附答案
- 心脏手术体外循环的无菌管理策略
- 2025年洗衣房年终工作总结样本(四篇)
- 糖尿病合并肾病综合治疗方案
- 消除母婴三病传播知识培训
- 智慧水务系统建设方案与应用案例
- GB/T 39368.1-2025皮革耐折牢度的测定第1部分:挠度仪法
- 尾矿砂购销合同范本
评论
0/150
提交评论