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

下载本文档

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

文档简介

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

2、)34C)1234D)提示出错,无结果5. 下列程序段的输出结果是(C)。inta=1234;floatb=123.456;doublec=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",x-,+y);A)8,5B)7,5C)7,6D)8,67. 以下程序的输岀结果是(A)。int

3、main()inta=20,b=10;printf("%d,%dn",a+b,a-b);A)30,%dB)30,10C)30,%10D)以上答案均不正确(%d中第一个%后面的表示字符)8下列程序的运行结果是(A)。intmain()floatx=2.5;inty;y=(int)x;printf("x=%f,y=%d",x,y);D)x=2.500000,y=2.000000A)x=2.500000,y=2B)x=2.5,y=2C)x=2,y=29.以下程序的输岀结果是(A)。intmain()charc=z';(字母共有26个,而z是最后一个)3

4、.07printf("%c",c-25);A)aB)zC)z-25D)y10下面程序的输岀结果是(C)。intmain()doubled=3.2;intx=1.2,y;y=(x+3.8)/5.0;printf("%dn",d*y);A)3B)3.2C)0D)11.下面程序的输出结果是(C)。(提示:输出时无定界符)intmain()intk=17;printf("%d,%o,%xn",k,A)17,17,17B)17,021,0x1112. 下列程序执行后的输出结果是(intmain()charx=OxFFFF;printf(&quo

5、t;%dn",x-);A)-32767B)FFFEC)-1k,k);C)17,21,11C)。D)=-3276813. printf("abre'hi'yboun");的输出结果是(C)。A)abre'hi'ybouC)re'hi'you14.有定义语句:组输入形式中错误的是(D)17,0x11,021B)abre'hi'ybouD)abre'hi'ybouscanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四

6、intx,y;若要通过A)。A)11空格12回车C)11,12回车15有以下程序段:B)11,空格12回车D)11,回车12回车intm=0,n=0;charc=a'scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%dn",m,c,n);若从键盘上输入:10A10回车,则输出结果是(A)。D)10,A,0A)10,A,10B)16,a,10C)10,a,016.若变量已正确说明为int类型,要通过语句scanf("%d%d%d",&a,&b,&c);

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

8、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("i=%dj=%d,k=%d",&a,&b,&c);19.执行下程序时输入:123空格456空格789回车,输出结果是(D)。intmain()chars5intc,i;scanf("%c&qu

9、ot;,&c);scanf("%d",&i);scanf("%c",&s);printf("%c,%d,%cn",c,i,s);A)123,456,789B)1,456,789C)1,23,456,789D)1,23,20.已定义c为字符型变量,则下列语句中正确的是(C)。A)c=97B)c=“97“C)c=97D)21.以下程序的功能是:给r输入数据后计算半径为#includestdio.hc=r的圆面积sa”程序在编译时出错。voidmain()intr;floats;scanf("%d"

10、;,&r);s=p*r*r;printf("s=%fn",s);出错的原因是()。A) 注释语句书写位置错误B) 存放圆半径的变量r不应该定义为整型C) 输岀语句中格式描述符非法D) 计算圆面积的赋值语句中使用了非法变量答案:D22. 有以下程序#include<stdio.h>voidmain()intm=12,n=34;printf("%d%d",m+,+n);printf("%d%dn",n+,+m);程序运行后的输岀结果是()。答案:A23. 数字字符0的ASCII值为48,若有以下程序#include&l

11、t;stdio.h>voidmain()chara='1',b='2'printf("%c,",b+);printf("%dn",b-a);程序运行后的输岀结果是。A)3,2B)50,2C)2,2D)2,50答案:C24. 有以下程序#include<stdio.h>voidmain()charc1='1',c2='2'c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a<回车>后,以下叙述正确的是

12、A) 变量cl被赋予字符a,c2被赋予回车符B) 程序将等待用户输入第2个字符C) 变量cl被赋予字符a,c2中仍是原有字符2D) 变量cl被赋予字符a,c2中将无确定值答案:A25. 【选择结构程序设计】1. 有变量说明语句inta,b,c;,顺序执行下面语句:a=b=c=1;+a|+b&&+c;那么,变量b的值应是(B)A2B1C0D32. 有变量说明inta=3;,则表达式a<1&&-a>1的运算结果和a的值应该是(B)A.0和2B.0和3C.1和2D.1和33. 设inta=3,b=4,c=5;,下列表达式的值不为1的是(A)。A)a+b&g

13、t;c&&b=cB)a|b+c&&b-cC)!(a>b)&&!c|1D)!(a+b)+c-1&&b+c/24. #include<stdio.h>intmain()inta,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)。A.a=10,b=50,c=10C.a=10,b=30,c=10B.a=10,b=50,c=30D.a=50,b=30,c=505.若整型变量a、b、c、d中的值依次为:1、

14、4、3、2。则条件表达式a<b?a:c<d?c:d的值是(A)(A)1(B)2(C)3(D)46. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)。A)abs(x-y)<10B)x-y>-10&&x-y<10C)!(x-y)<-10|!(y-x)>10D)(x-y)*(x-y)<1007. 若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)A)2.5B)2.7C)3.5D)4.78. 若有定义和语句:ints,p;s=p=5;

15、p=s+,+p,p+2,p+;则执行语句后p的值是(C)A)9B)8C)7D)69. 若有定义:inta,b;则表达式a=4,b=3,a+b+2,a+,a+b+2的值为(C)。A)12B)11C)10D)无答案10. 己知intk=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;的功能是()。A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值答案:D12. 设inti=2,j=3,k=4,

16、a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是()A)0B)1C)2D)3答案:D13.若x、a、b、c均为int型变量,则执行表达式x=(a=4,b=8,c=12)后,x的值为A)4B)8C)12D)24答案:C14. 以下程序的输出结果是#include<stdio.h>voidmain()inta=-1,b=4,k;k=(+a<0)&&(b+=5);printf("%d%d%dn",k,a,b);A)104B)103C)003D)004

17、答案:D15. 下列运算符中,结合方向为自左向右的是()。(A)?:(B),(C)+=(D)+答案:(B)16. 下列运算符中优先级最高的是()A)!B)%C)-=D)&&答案:(A)17. 有以下程序#include<stdio.h>voidmain()intm=3,n=4,x;x=-m+;x=x+8/+n;printf("%dn",x);程序运行后的输出结果是()。A)3B)5C)-1D)-2答案:D18. 【循环结构练习题】1. 下面有关for循环的正确描述是()Afor循环只能用于循环次数已经确定的情况Bfor循环是先执行循环体语句,后判

18、定表达式C在for循环中,不能用break语句跳出循环体Dfor循环体语句中,可以包含多条语句,但要用花括号括起来答案:D2. 对于for(表达式1;表达式3)可理解为()Afor(表达式1:1;表达式3)Bfor(表达式1;1;表达式3)Cfor(表达式1;表达式1;表达式3)Dfor(表达式1;表达式3;表达式3)答案:B3. 以下正确的描述是()。Acontinue语句的作用是结束整个循环的执行B只能在循环体内和switch语句体内使用break语句C在循环体内使用break语句或continue语句的作用相同D从多层循环嵌套中退出时,只能使用goto语句答案:B4. 下面程序段不是死循

19、环的是()。AintI=100;Bfor(;);while(1)I=I%100+1;if(I>100)break;Cintk=0;do-k;while(k>=0);答案:C5.以下能正确计算1*2*3*10的程序是(Adoi=1;s=1;s=s*i;i+;while(i<=10);Ci=1;s=1;dos=s*i;i+;while(i<=10);答案:C6.下面程序的运行结果是()#include<stdio.h>intmain()inty=10;doy-;while(-y);printf("%dn",y-);A-1B1答案:D7.下面程

20、序的运行结果是()#include<stdio.h>intmain()intnum=0;while(num<=2)num+;printf("%dn",num);A1B12答案:C8.若运行以下程序时,从键盘输入#include<math.h>#include<stdio.h>voidmain()floatx,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1)Dints=36;while(s);-s;)。Bdoi=1;s=0;s=s*i;i+;while(i<=10);Di=1;s=0;

21、dos=s*i;i+;while(i<=10);C8D0C123D12343.62.4<CR>(<CR>表示回车),则下面程序的运行结果是()if(fabs(z)>1.0)x=y;y=z;z=x/y;elsebreak;printf(“%fn”,y);A1.500000B1.600000C2.000000D2.400000答案:B9. 有以下程序:#include<stdio.h>voidmain()inti=0,s=0;for(;)if(i=3|i=5)continue;if(i=6)break;i+;s+=i;printf("%dn

22、",s);程序运行后的输出结果是()A)10答案:DB)13C)21D)程序进入死循环10. 若有程序段:for(m=1;m<=100;m+)scanf("%d",&y);if(y<0)continue;printf("%3d",m);正确的描述是()。B)y>=0时什么也不输出D)最多允许输出100个非负整数A)当y<0时整个循环结束C)printf函数永远也不执行答案:D11. 下列程序的运行结果是()#include“stdio.hvoidmain()inti=23;do+i;while(i);printf

23、(“%d”,i);A)23B)24C)死循环D)无任何结果答案:C12.二、填空题【顺序结构程序设计】1有以下程序:intmain()intm,n,p;seanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%dn",m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是m=123n=456p=789。2. 以下程序段的输岀结果是28。intmain()inta=2,b=3,c=4;a*=16+(b+)-(+c);printf("%d&

24、quot;,a);3 以下程序段的输岀结果是_5。intx=17,y=26;printf("%d",y/=(x%=6);4 .下列程序的输岀结果为12。intmain()intx=3,y=5;printf("%d",x=(x-)*(-y);5. 若有以下程序:intmain()chara;a=H'-A'+O';(O','o')printf("%c,%dn",a,a);执行后的输岀结果是7,55。6. 以下程序段的输岀结果是261。voidmain()inta=177;printf(&qu

25、ot;%on",a);7. 以下程序的输岀结果是0(-3276732767int)。voidmain()unsignedshorta=65536;intb;printf("%dn",b=a);提示:当unsignedshort和int均占2个字节时。8. 输入“12345,xyz”,下列程序输岀的结果是。intmain()intx;chary;seanf(“3d%3”,&x,&y);printf(“%d,%c,x,y);答案:123,49. 以下程序的运行结果是。#include<stdio.h>voidmain()inti=8,j=9

26、,m,n;m=+i;n=j+;printf("%d,%d,%d,%dn",i,j,m,n);答案:9,10,9,910. 下列程序的输岀结果是。#include<stdio.h>voidmain()inta=3,b=14,c=5;c=c+a*a+b%5*10;printf("%on",c);答案:6611. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后#include<stdio.h>voidmain()inta,b,c;a=(b=(c=3)*5)*5;printf("a=%d,b=%d,c=%dn&

27、quot;,a,b,c);运行结果是:答案:运行结果是:a=75,b=15,c=312.【选择结构程序设计】1. 以下程序运行的结果是。#include<stdio.h>voidmain()inta,b,c;a=1;b=2;c=3;a=b-<=a|a+b!=c;printf("%d,%d",a,b);答案:1,12. 以下程序的运行结果是。#include<stdio.h>voidmain()inta,b,c;a=b=c=1;if(a+|+b)c+;printf("%d,%d,%dn",a,b,c);答案:2,1,23. 以

28、下程序的输岀结果是。#include<stdio.h>voidmain()intk,i=0,j=2;k=i+&&j+;printf("%d,%d,%dn",i,j,k);答案:1,2,04.【循环结构程序设计】v0=12,v1=4,v2=121. 若运行以下程序时,从键盘输入ADescriptor/,则下面程序的运行结果是#inelude<stdio.h>voidmain()charc;intv0=0,v1=0,v2=0;docase'a':case'A':case'e':case

29、9;E':case',i:case'I':case'o':case'O':case'u':case'U,:default:v0+=1;v2+=1;while(c!=n');switch(c=getchar()v1+=1;printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2);2. 下面程序的运行结果是8,-2#include<stdio.h>voidmain()inti,b,k=O;for(i=1;i<=5;i+)b=i%2;while(b->=0)k+;

30、printf(“%d,%d,k,b);3. 下面程序的运行结果是8,22#include<stdio.h>voidmain()inta,b;for(a=1,b=1;a<=100;a+)if(b>=20)break;if(b%3=1)b+=3;continue;b-=5;printf(“%dn”,a,b);4. 下面程序的运行结果是x=8#include<stdio.h>voidmain()inti,j,x=O;for(i=0;i<2;i+)x+;for(j=0;j<=3;j+)if(j%2)continue;x+;x+;printf(“x=%dn

31、”,x);5. 下面程序的运行结果是*#*#*#$。#include<stdio.h>voidmain()inti;for(i=1;i<=5;i+)if(i%2)printf(“*”);elsecontinue;printf(“#”);printf(“$n”);6. 下面程序的运行结果是4。#include<stdio.h>voidmain()inti,j,a=O;for(i=0;i<2;i+)for(j=0;j<4;j+)if(j%2)break;a+;a+;printf(“%dn”,a);7. 有以下程序,若从键盘输入:247<回车,则程序的输岀结果是#include<stdio.h>voidmain()intc;while(c=getchar()!='n')switch(c-'2')case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putch

温馨提示

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

评论

0/150

提交评论