顺序结构程序设计练习题_第1页
顺序结构程序设计练习题_第2页
顺序结构程序设计练习题_第3页
顺序结构程序设计练习题_第4页
顺序结构程序设计练习题_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言练习题总汇一、 单选题:【顺序结构程序设计】1己知 int k,m=1; 执行语句 k=-m+; 后 k 的值是( A )。(提示: 负号与自加运 算符同级,结合方向从右向左 )A)-1B) 0C)1D)22若有定义 int x=4 ;则执行语句 x + = x * = x + 1 ;后, x 的值为( C )。 A)5B)20C)40 D) 无答案3. 若有定义:float a= , b=, c=;则表达式 1/2*(a+b+c)的值为(C )。A) B)6 C) D)无答案4. 以下程序段的输出结果是(C )。(提示: a 当约束过严时,约束失效。按自 由格式输出。 )int a=1

2、234;printf("%2dn",a);A)12 B)34 C)1234 D) 提示出错,无结果5. 下列程序段的输出结果是( C)。int a=1234 ;float b= ;double c= ;printf ( "%2d, %, %", a, b, c);A)无输出B)12, , C)1234, D)1234,6. 设 x, y 均为整型变量,且 x=8, y=5, 则以下语句的输出结果是( D)printf ("%d, %dn", x- ,+y);A)8,5 B)7,5 C) 7,6 D) 8,67. 以下程序的输出结果是(

3、 A )。int main () int a=20, b=10;printf("%d,%dn" , a+b, a-b ); A) 30,%dB)30,10C)30,%10 D)以上答案均不正确(%d 中第一个 %后面的表示字符)8下列程序的运行结果是( A)。int main () float x= ;int y;y= ( int ) x;printf ("x=%f, y=%d", x, y);A) x=,y=2B)x=,y=2C)x=2,y=2 D) x=,y=9.以下程序的输出结果是( A)。int main () char c= z'字母共

4、有 26 个,而 z 是最后一个 )printf ("%c", c-25);A)a B)z C)z-25 D)y (10 下面程序的输出结果是( C) int main( ) double d= ;int x= , y ;y=(x+/ ;printf("%dn",d*y) ; A) 3 B) C)0 D)11. 下面程序的输出结果是 ( C ) 。( 提示:输出时无定界符 )int main() int k=17 ;printf("%d, %o,%xn" ,k,k,k) ;A)17,17,17 B)17,021,0x11 C)17,2

5、1,11 D)17,0x11,021 12下列程序执行后的输出结果是(C)。int main () char x =OxFFFF ;printf ("%dn" , x-);A)-32767 B)FFFE C)-1 D)=-32768 ("abre'hi'yboun") ;的输出结果是( C)。A)abre'hi'ybou B)abre'hi'ybouC)re'hi'youD)abre'hi'ybou14有定义语句: int x,y; 若要通过 scanf("%d,%

6、d",&x,&y); 语句使变量 x 得到 数值 11,变量 y 得到数值 12,下面四组输入形式中错误的是(A)。A)11空格12回车B)11 , 空格12回车C)11,12 回车D)11, 回车12回车15有以下程序段: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,

7、A,016. 若变量已正确说明为 int 类型,要通过语句 scanf("%d %d %d ",&a,&b,&c);给 a 赋值 1,b 赋值 2,c 赋值 3,不正确的输入形式是( B)。A) 1 空格 2空格 3回车 B)1,2,3 回车 C)1 回车 2空格 3回车 D)1空格2回车3回车, b,c 被定义为 int 型变量,若从键盘给 a, b,c 输入数据,正确的输入语句是 (D) A)input a,b,c; B)read("%d%d%d",&a,&b,&c); C)scanf("%d

8、%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,&b,&c);D)scanf("

9、;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,789 B)1,456,789 C)1,23,456,789 D) 1,23,20. 已

10、定义 c 为字符型变量,则下列语句中正确的是 ( C ) 。A)c=97 B )c=“97 “ C ) c=97D)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) 计算圆面积的赋值语句中使用了非法变量答案:

11、 D22.有以下程序#include <>void main( )int m=12,n=34;printf("%d%d",m+,+n); printf("%d%dn",n+,+m); 程序运行后的输出结果是( )。答案: A23.数字字符 0 的 ASCII 值为 48,若有以下程序 #include <>void main( )char a='1',b='2'printf("%c,",b+); printf("%dn",b-a); 程序运行后的输出结果是 。

12、A)3,2B ) 50,2C)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, c2被赋予回车符B) 程序将等待用户输入第2个字符C) 变量cl被赋予字符a,c2中仍是原有字符 2D) 变量cl被赋予字符a,c2中将无确定值答案: A25.【选择结构程序设计】1. 有变量说

13、明语句 int a,b ,c; ,顺序执行下面语句:a=b=c=1 ;+a|+b&&+c;那么,变量 b 的值应是( B )a 的值应该是( B )A2 B 1 C 0 D 32. 有变量说明 int a=3;, 则表达式 a<1&&-a>1 的运算结果和A. 0 和 2 B . 0 和 3 C . 1 和 2 D . 1 和 33. 设 int a=3,b=4,c=5;,列表达式的值不为 1 的是( AA)a+b>c&&b=cB) a|b+c&&b-cC) !(a>b)&&!c|1D) !

14、(a+b)+c-1&&b+c/24.#include<>int main( )int a,b,c;a=10;b=50;c=30;if(a>b) a=b;b=c;c=a;printf( “a=%d,b=%d,c=%dn”,a,b,c); 程序的输出结果是( C )。=10, b=50, c=10 B. a=10, b=50, c=30=10, b=30, c=10 D. a=50, b=30, c=505. 若整型变量 a、b、c、d 中的值依次为: 1、4、3、2。则条件表达式 a<b?a:c<d?c:d 的值是 ( A ) 。( A)1(B)2(

15、C)3(D)46. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C )。A) abs(x-y)< 1 0 B )x-y>-10&&x-y<10 C )!(x-y)<-10|!(y-x)>10 D)(x-y)*(x-y)<1007. 若有定义:int a = 7; float x =, y =;则表达式 x+a% 3*(int)(x+y)%2/4的值是 ( A ) 。A)B ) C )D)8. 若有定义和语句:int s, p;s=p=5;p=s+ , +p, p+2, p+; 则执行语句后 p 的值是( C

16、 )A)9 B)8 C)7 D)69. 若有定义:int a , b;则表达式 a=4 , b=3, a+b+2, a+, a+b+2 的值为(C )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 型变量,则以下语句:A) 把 x 和 y 按从大到小排列 B) C) 无确定结果D)答案: D12. 设 int i=2,j=3,k=4,a=4,b=5,c=3;, ()。A) 0 B

17、) 1 答案: D13. 若 x、a、 b、A) 4B答案: Cc 均 为 int )8x+=y; y=x-y; x-=y; 把 x 和 y 按从小到大排列 交换 x 和 y 中的值则执行表达式(型变量,则执行表达式C) 12x=D的功能是()。a=i<j )(a&&(b=j>k)&&(c=i,j,k) 后, c 值是= 4,)24b = 8, c = 12) 后, x 的值为14. 以下程序的输出结果是 #include <> void main() int a=-1, b=4, k;k = ( +a < 0) &&

18、; ( b += 5); printf ("%d%d%d n", k, a, b );A) 答案: D104 B )103 C)003)00415. 下列运算符中,结合方向为自左向右的是()。A)?:B)C) + =( D) + +答案:( B)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); 程序运行后的输出结果是( )。

19、A)3 B ) 5 C )-1 D ) -2 答案: D18.【循环结构练习题】1. 下面有关 for 循环的正确描述是 ( )A for 循环只能用于循环次数已经确定的情况B for 循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体Dfor 循环体语句中,可以包含多条语句,但要用花括号括起来 答案: D2. 对于 for( 表达式 1; 表达式 3) 可理解为( )A. for( 表达式 1:1;表达式 3)B for( 表达式 1;1;表达式 3)C for( 表达式 1;表达式 1;表达式 3)D for( 表达式 1;表达式 3;表达式 3)答案:

20、 B3. 以下正确的描述是 ( ) 。A continue 语句的作用是结束整个循环的执行B. 只能在循环体内和switch语句体内使用break语句C. 在循环体内使用 break语句或continue语句的作用相同D. 从多层循环嵌套中退出时,只能使用goto语句 答案: B4. 下面程序段不是死循环的是 ( )。A. int I=100;B. for ( ; ; );while(1) I=I%100+1;if(I>100) break;C. int k=0;D. int s=36;do- -k; while(s);while(k>=0);-s;答案: C5. 以下能正确计算

21、1*2*3*10的程序是()。A. doi=1;s=1;B. doi=1;s=0;s=s*i;s=s*i;i+;i+;while(i<=10);Ci=1;s=1;do s=s*i;i+;while(i<=10);答案: C6. 下面程序的运行结果是 ( )#include <>int main( ) int y=10;doy-;while(-y);printf("%dn",y-);A-1B 1 C答案: D7. 下面程序的运行结果是 ( )#include<>int main() int num=0;while(num<=2)whi

22、le(i<=10);D i=1;s=0do s=s*i;i+;while(i<=10);。8 D 0num+;printf("%dn",num);A1B1 2C 1 2 3 D1 2 3 4答案: C8.若运行以下程序时,从键盘输入<CR> (<CR示回车),则下面程序的运行结果是 ( ) 。#include<>#include<>void main( ) float x,y,z;scanf( “%f%f”,&x,&y);z=x/y;while(1) if(fabs(z)> x=y;y=z;z=x/

23、y;elsebreak;printf( “%f n”,y);A B C D 答案: 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);程序运行后的输出结果是( )。A)10B)13C ) 21 D )程序进入死循环答案: D10. 若有程序段:for (m=1;m<=100;m+)scanf("%d",&y);if(yvO) con ti nue;prin t

24、f("%3d",m);正确的描述是()。A)当y<0时整个循环结束C) printf 函数永远也不执行答案:D11. 下列程序的运行结果是()。# in clude "”void mai n() int i=23;do+i;while(i); printf( “%d ,i);A)23 B )24 C )死循环 答案:C12.B )y>=0时什么也不输出D )最多允许输出100个非负整数D )无任何结果二、填空题【顺序结构程序设计】1 .有以下程序:int mai n () int m , n, p;scanf("m=%dn=%dp=%d&qu

25、ot; &m & n, &p);printf ("%d%d%dn" m n, p);若想从键盘上输入数据,使变量m中的值为123, n中的值为456, p中的值为789,则正确的输入是_m=123n=456p=789。2. 以下程序段的输出结果是28 oint mai n () int a=2, b=3, c=4 ;a* = 16 +(b+)-(+c);printf ("%d", a);3. 以下程序段的输出结果是 _5 oint x=17, y=26;printf ("%d", y/= (x%=6);4. 下

26、列程序的输出结果为12 oint mai n () int x=3, y=5;printf ("%d", x= (x-) * (-y) );5. 若有以下程序:int mai n () char a ;a= H - A' + O'(O' , o')printf("%c, %dn" , a,a );执行后的输出结果是7,55 o6. 以下程序段的输出结果是 261 ovoid mai n() int a=1777.以下程序的输出结果是0(-3276732767int)void mai n() un sig ned short

27、 a=65536; int b;prin tf("%dn",b=a); 提示:当unsigned short 和int 均占2个字节时。&输入“ 12345,xyz ”,下列程序输出的结果是 。int mai n() int x;char y;scanf (“%3d%3c ,&x,&y);printf (“%d,%C ,x,y);答案:123, 49. 以下程序的运行结果是 。#in clude <>void mai n()int i=8,j=9,m, n;m=+i;n =j+;prin tf("%d,%d,%d,%dn&quo

28、t;,i,j,m, n);答案:9, 10, 9, 910. 下列程序的输出结果是。#in clude <>void mai n()int a = 3 , b = 14 , c = 5 ;c = c + a *a + b % 5 * 10 ;prin tf("%on" , c );答案:6611. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后#in clude <>void mai n()int a, b, c;a = (b = (c = 3) * 5)*5;printf ("a=%d, b=%d, c=%d n&quo

29、t;, a, b, c);运行结果是: 答案:运行结果是a = 75, b = 15, c = 312.【选择结构程序设计】1. 以下程序运行的结果是#in elude <> void mai n()int a,b,c;a=1;b=2;c=3;a=b_<=a|a+b!=c;prin tf("%d,%d",a,b);答案:1, 12. 以下程序的运行结果是。#in clude <>void mai n()int a,b,c;a=b=c=1;if (a+|+b) c+;prin tf("%d,%d,%dn",a,b,c);答案:

30、2, 1 , 23. 以下程序的输出结果是 #in clude <> void mai n()int k, i=0, j=2;k = i+&&j+;printf ("%d,%d,%dn", i, j, k);答案:1, 2,04.,则下面程序的运行结果是v0=12,v1=4,v2=12【循环结构程序设计】1. 若运行以下程序时,从键盘输入ADescriptor#in clude <> void mai n()char c;in t v0=0,v1=0,v2=0;doswitch(c=getchar()case'a':c

31、ase'A:case'e':case'E'case'i ':case'I ':case'o' :case 'O:case'u' :case 'U':v1+=1;default : v0+=1 ; v2+=1;while(c!= 'n');,v0,v1,v2);printf( "v0=%d,v1 =% d,v2=%dn 2. 下面程序的运行结果是8,-2#in clude<>void mai n() int i,b,k=O;for(

32、i=1;i<=5;i+) b=i%2;while(b- ->=0) k+;printf( “%d,%d ,k,b);3. 下面程序的运行结果是8,22#in clude<>void mai n() int a,b;for (a=1,b=1;a<=100;a+) if(b>=20) break;if(b%3=1) b+=3; con ti nu e; b-=5;printf( “%dn” ,a ,b);4. 下面程序的运行结果是x=8。#in clude<>void mai n() int i,j,x=O;for (i=0;i<2;i+) x

33、+;for(j=0;j<=3;j+) if(j%2) con ti nue;x+;x+;printf(“x=%d n”,x);5. 下面程序的运行结果是*#*#*#$#in clude<>void mai n() int i;for (i=1;i<=5;i+)if(i%2) printf(“ * ”);else con ti nue;printf(“#”);printf( "Y n”);6. 下面程序的运行结果是4。#in clude<>void mai n()int i,j,a=O;for(i=0;i<2;i+) for (j=0; j<4; j+) if (j%2) break;a+;a+;printf( “%d n” ,a);7. 有以下程序,若从键盘输入:247<回车,则程序的输出结果是。#in clude <>void mai n()int c;while (c=getchar()!='n')switch (c-'2')case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putcha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论