C流程设计练习题及答案.doc_第1页
C流程设计练习题及答案.doc_第2页
C流程设计练习题及答案.doc_第3页
C流程设计练习题及答案.doc_第4页
C流程设计练习题及答案.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第三章 C流程设计练习题及答案一、选择题1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )A、a0 B、a!=0 C、a=0 D、a2、若k是int型变量,且有下面的程序片段:k=-3;if(ky); 、if(x=y)&(x!=0) x+=y;、if(x!=y)scanf(%d,&x); else scanf(%d,&y); 、if(x0) printf(%f,x); else printf(%f,-x);、if(x0) x=x+y;printf(%f,x); else printf(%f,-x);、if(x0) x=x+y;printf(%f,x); else printf(%f,-x);、if(x0) x=x+y;printf(%f,x) else printf(%f,-x); 5、程序的运行结果是( )main() int a=5; if (a+5)printf(“%dn”,a);else printf(“%dn”,a-);A、4 B、5 C、6 D、76、下列程序的输出结果是( )main()int a=-1,b=1,k;if(+a0)&!(b-=0) printf(%d %dn,a,b);else printf(%d %dn,b,a); A、-1 1 B、0 1 C、1 0 D、0 07、试读程序:#include main()float x,y;scanf(“%f”,&x); 6-10 CCADC if (x0.0) y=0.0; else if (x5.0)&(x!=2.0) y=1.0/(x+2.0); else if (x10.0) y=1.0/x; else y=10.0;printf(“%fn”,y);若运行时从键盘输入2.0后回车,则上面程序输出结果是( )A、0.000000 B、0.250000 C、0.500000 D、1.0000008、程序的输出结果是( )#include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+; b+; break; printf(“a=%d,b=%dn”,a,b); A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=29、请阅读以下程序:main() int a=5,b=0,c=0; if(a=b+c) printf(* * *n); else prinrf($ $ $n); 以上程序( )、有语法错不能通过编译 、可以通过编译但不能通过连接、输出* * * 、输出 $ $ $10、以下不正确的if语句形式是( )、if(xy&x!=y); 、if(x=y) x+=y;、if(x!=y) scanf(%d,&x) else scanf(%d,&y); 、if(xy) x+;y+; 11、下面程序的运行结果是( )#include main() int k=0;char c=A;do switch(c+) caseA:k+;break; caseB:k-;break; caseC:k+=2;break; caseD:k=k%2;break; caseE:k=k*10;break; default:k=k/3; k+; while(cG); printf(k=%dn,k); 、k=3 、k=4 、k=2 、k=812、以下程序的输出结果是( )main()int a=100,x=10,y=20,ok1=5,ok2=0; if (xy)此题为神题 z=x;x=y;y=z; 、x=10,y=20,z=30 、x=20,y=30,z=30、x=20,y=30,z=10 、x=20,y=30,z=2014、为了避免在嵌套的条件语句if-else中产生二义性,语言规定:else子句总是与( )配对。、缩排位置相同的if 、其之前最近的if、其之后最近的if 、同一行上的if15、以下程序的输出结果是( ) 11-15 BCBBB main() int x=2,y=-1,z=2; if(xy) if(y0) z=0; Else z+=1; printf(%dn,z); A、3 B、2 C、1 D、016、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )if(ab) if(cd) x=1; else if (ac) if(bd) x=2; else x=3; else x=6; else x=7;A、1 B、2 C、3 D、617、设有下面程序段,则下面描述中正确的是( )int k=10;while (k=0) k=k-1;A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句执行一次18、语句while(!E);中的表达式!E等价于( ) 16-20 BCACDA、E=0 (当发现判断条件值为0时,退出循环) B、E!=1 C、E!=0 D、E=119、下面程序段的运行结果是( )int n=0;while(n+=2); printf(%d,n);A、2 B、3 C、4 D、有语法错20、下面程序的输出结果是( )main() int unm=0; while (num=2) num+; printf(“%dn”,num); A、 0 1 2B、0 C、 1 2 3 D、1 1 2 2 321、以下程序段的输出结果是( )main() int x=3; do printf(“%3d”,x-=2); 21-25 CCBBC while (!(-x);A、1 B、30 C、1 2 D、死循环22、以下程序段( )x=-1;dox=x*x; while(!x);A、是死循环 B、循环执行二次 C、循环执行一次 D、有语法错误23、若有如下语句,则下面程序段( )int x=3;doprintf(%dn,x-=2);while(!(-x);A、输出的是1 B、输出的是1和-2 C、输出的是3和0 D、是死循环24、下列程序运行结果#includemain()int i=0,sum=1;dosum+=i+;while(i6);printf(%dn,sum) ; A、15 B、16 C、17 D、1825、以下是死循环的程序段是( )、for(i=1; ;) if(+i%2=0) continue; if(+i%3=0) break; 、i=32767; do if(i0) break; while(+i);、for(i=1; ; ) if(+i10) continue;、i=1; while(i-);26、下面程序段的运行结果是( )for(y=1;y+y;x=i+)i=x; 、for(;x+=i);、while(1)x+; 、for(i=10;i-) sum+=i;28、下面程序的运行结果是( )#include main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3;continue; b-=5; printf(%dn,a); 、7 、8 、9 、1029、以下描述正确的是( )、goto语句只能用于退出多层循环 、switch语句中不能出现continue语句、只能用continue语句来终止本次循环 、在循环中break语句不能独立出现30、对for(表达式;表达式)可理解为( )、for(表达式1;0;表达式2) 、for(表达式1;1;表达式2)、for(表达式1;表达式1;表达式3) 、for(表达式1;表达式3;表达式3)31、下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空( )#include main() int i,sum=0; for(i=1;i=50;i+) if( ) sum+=i; printf(%d,sum); A、(int)(i/7)=i/7 B、(int)i/7=i/7 C、i%7=0 D、i%7=032、若i为整型变量,则以下循环体执行次数是( )for(i=2;i=0;) printf(%d,i-);、无限次 、次 、次 、次33、下面程序的运行结果是( )include 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=%dn,x);、x=4 、x=8 、x=6 、x=1234、以下for循环体的执行次数是( ) 31-35 DBBCDfor(x=0,y=0;(y=123)&(x4);x+) printf(%d,x);、是无限循环 、执行次 、执行次 、执行次35、下面有关for循环的正确描述是( )、for循环只能用于循环次数已经确定的情况、for 循环是先执行循环体语句,后判断表达式、在for循环中,不能用break语句跳出循环体、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来二、填空题1、执行以下程序时,从键盘输入3和4,则输出结果是( )main() int a,b,r; scanf(“%d%d”,&a,&b); r=a; if(ab)c=1; else if(a=b) c=0; else c=-1; printf(%dn,c); 3、以下程序的运行结果是(2 0 0 )main() int s,w,t,a,b,c; s=w=t=0; a=-1;b=3;c=3; if (c0) s=a+b; if (a0) if (c0) w=a-b; else t=c; printf(%d,%d,%d,s,w,t);4、请阅读下面的程序,为了使输出结果t=4,输入量a和b应满足的条件是( )main() int s,t,a,b; scanf(%d,%d,&a,&b); s=1; t=1; if(a0) s=s+1; if(ab) t=s+t; else if(a=b) t=5; else t=2*s; printf(s=%d,t=%d,s,t);5、以下程序的运行结果是(5 5 4 )#include main() int x,y=1,z; if (y!=0) x=5;printf(%d,x); if (y=0) x=4; else x=5; printf(%d,x); x=1; if (y0) x=4; else x=5; printf(%dn,x); 6、若运行时输入3,5,/,则以下程序的运行结果是( 0.6 )main() float x,y; char o; double r; scanf(%f,%f,%c,&x,&y,&o); switch(o) case +:r=x+y;break; case -:r=x-y;break; case *:r=x*y;break; case /:r=x/y;break; printf(%f,r); 7、有以下语句,请写出输出结果( 3)int i=3; if(i) printf(%d,i); else printf(%d,-i);8、当运行时输入:1992,则以下程序的运行结果是( 1992 is a leap year )main() int y,t; scanf(%d,&y); t=(y%4=0&y%100!=0)|y%400=0)?1:0; if(t) printf(%d is,y); else printf(%d is not,y); printf( a leap year); 9、以下程序的运行结果是( )main() int a,b,c,d,x; a=c=0; x=b=1; d=20; if (a) d=d-10; else if (!b) if (!c) x=15; else x=25; printf(%d,%d,d,x) ;10、下面程序运行后的结果为(7 5 5 )main() int a,b,c; a=2;b=5;c=7; if (ac) b=a;a=c;c=b; printf(“a=%d,b=%d,c=%dn”,a,b,c);11、运行下面程序时,分别输入-5,0,16,则运行结果分别是( -1 0 1 )main() int x,y; scanf(“%d”,&x); if (x) if (x0) y=1; else y=-1; else y=0; printf(“%d”,y);12、写出下面程序的运行结果( # )#include main() int a=-1,b=1,c=5;switch(a0) case 1:switch(b-20) printf(“%d,”,k); k+; printf(“%dn”,k);17、下列程序的运行结果为( )main() int a,b,c,d,m,n; a=7;b=c=d=5;m=n=0; for(;ab;+b) m+; while (a+c) n+; printf(“m=%d,n=%dn”,m,n);18、执行下面的程序,运行结果为( x=-1 k=5 )main() int x=100,a=10,k=0,d=5; while (x-) ;(当发现判断条件值为0时,退出循环) printf(“x=%dn”,x); do k+; while(ad+) ; printf(“k=%dn”,k); 19、下面程序的输出结果是( sum= 11 )include main() int k=0,sum=1; do sum+=k+; while(k5); printf(“%dn”,sum);20、若从键盘输入65,14(表示回车符,)则下面程序的运行结果是( m=1 )#include main() int m,n; scanf(%d,%d,&m,&n); while(m!=n) while(mn) m-=n; while(nm) n-=m; printf(m=%dn,m); 21、下面程序的运行结果是( )#include main() int i=1; while(i=15) if(+i%3!=2) continue; else printf(%d ,i); 22、当运行以下程序时,从键盘输入-1,0(表示回车),则下面程序的运行结果是( )#include main() int a,b,m,n; m=n=1; scanf(%d,%d,&a,&b); do if(a0) m=2*n;b+; else n=m+n;a+=2;b+; while(a=b); printf(m=%d,n=%d,m,n);23、下面程序的运行结果是( )#include main() int i,x,y; i=x=y=0; do +i; if(i%2!=0)x=x+i;i+; y=y+i+; while(i=7); printf(x=%d,y=%dn,x,y); 24、当运行以下程序时,从键盘键入right?(代表回车),则下面程序的运行结果是( )#include main() char c; while(c=getchar()!=?) putchar(+c);25、下面程序的输出结果是( ) #include main() int i,j,k=19; while(i=k-1) k-=3; if(k%5=0) i+;continue; else if(k5) break; i+; printf(i=%d,k=%dn,i,k); 26、下面程序段是找出整数的所有因子,请填空。( )#include math.h main() int i,x; scanf(%d,&x); ; while(i=fabs(x) if(x%i=0) printf(%3d,i); i+; 27、当运行以下程序时,从键盘输入1 2 3 4 5 -1(表示回车),则下面程序的运行结果是( )#include main() int k=0,n; do scanf(%d,&n); k+=n; while(n!=-1); printf(k=%d,n=%dn,k,n); 28、下面程序的输出结果是( )main() int y=9; for(;y0;y-) if (y%3=0) printf(“%d”,-y); continue; 29、以下程序的运行结果是( )main() int i,k; for(i=0,k=-1;k=1;i+,k+) printf(“&n”);30、下面程序的运行结果是( )#include main() int i,t,sum=0; for(t=i=1;i=10;i+) sum+=t;+i; if(i%3=0) t=-i; else t=i; printf(sum=%d,sum); 31、下面程序段的运行结果是( )for(a=1,i=-1;-1=i1;i+) a+;printf(%2d,a); printf(%2d,i);32、下面程序的运行结果是( )#include main() int a,b,i; a=1;b=3;i=1; do printf(%d,%d,a,b); a=(b-a)*2+b; b=(a-b)*2+a; while(b100); 33、下面程序的运行结果是( )#include main() int i=5; do switch(i%2) case 4:i-;break; case 6:i-;continue; i-;i-; printf(%d,i); while(i0); 34、下面程序的运行结果是( )#include main() int i,j=4; for(i=j;i=2*j;i+) switch(i/j) case 0: case 1:printf(*);break; case 2:printf(#); 35、若for循环用以下形式表示:for(表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i3;i+) printf(*);时,表达式1和表达式2各执行( )次。36、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空。( )( )#include main() int i,j; for(i=0;1;i+) j=i*10+6; if(2 ) continue; printf(%d,j); 三、判断对错1、有以下语句是正确的。( 错 )switch(n) case 5: case 2+3: 2、在for语句中,break语句的作用是结束整个循环的执行。( 错 )3、语句:while(x+3);是正确语句,此循环体为空语句。( 错 )4、有以下语句,则循环体语句i+;应执行无限次。( 对 )e=1; while(e); i+;5、C语言中while和do-while循环的主要区别是:while的循环控制条件比do-while的循环控

温馨提示

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

评论

0/150

提交评论