收藏 分销(赏)

第四章选择结构习题集.doc

上传人:仙人****88 文档编号:6998360 上传时间:2024-12-24 格式:DOC 页数:12 大小:61.50KB 下载积分:10 金币
下载 相关 举报
第四章选择结构习题集.doc_第1页
第1页 / 共12页
第四章选择结构习题集.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
第五章 选择结构练习题集 一、选择题 1、若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf("####") else printf("&&&&"); 上面程序片段的输出结果是 ( ) 。 A.####  B.&&&&  C.####&&&&  D.有语法错误,无输出结果 2、设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是( ) 。   A.k=k>=k   B.-k++   C.k%int(f)   D.k>=f>=m 3、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是 ( )。   A.(!a==1)&&(!b==0)   B.(a>b)||(a<c)  C.a && b   D.a||(b+b)&&(c-a) 4、有以下程序 main() { int a,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是 ( )。 A.6,1  B.2,1  C.6,0  D.2,0 5、有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); } 程序运行后的输出结果是( ) 。 A.1 2 3 B.2 3 4  C.2 2 3  D.2 3 3 6、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( )。 A. abs(x-y)<10   B.x-y>-10&& x-y<10   C. (x-y)<-10||!(y-x)>10  D.(x-y)*(x-y)<100 &&(x-y)*(x-y)>-100 7、有以下程序 main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d",++d +1); printf("%d\n",d); } 程序运行后的输出结果是 ( )。 A.2 B.3 C.43 D.44 8、下列条件语句中,功能与其他语句不同的是 ( )。 A.if(a) printf("%d\n",x); else printf("%d\n",y); B.if(a==0) printf("%d\n",y); else printf("%d\n",x); C.if (a!=0) printf("%d\n",x); else printf("%d\n",y); D.if(a==0) printf("%d\n",x); else printf("%d\n",y); 9、以下4个选项中,不能看作一条语句的是 ( )。   A. { ; }   B.a=0,b=0,c=0;   C.if(a>0);   D.if(b==0) m=1;n=2; 10、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 ( )。   A. if((a>b) &&(b>c) ) k=1; B. if((a>b) ||(b>c) ) k=1 ; else k=0; else k=0; C. if(a<=b) k=0;    D. if(a>b) k=1;    else if(b<=c) k=1;    else if(b>c) k=1; 11、有以下程序 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a)printf("%d,%d\n",k,m); } 程序运行后的输出结果是 ( )。 A. 0,0   B.0,1  C.1,0  D. 1,1 12、有以下程序 main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是 ( )。 A.1,1,2    B.2,2,1  C.2,2,2  D.2,2,3 13、有以下程序 main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2) } 执行后输出结果是 ( )。 A.2   B.3   C.4   D.编译时有错,无结果 14、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是( )。   A.6 B.0  C.2 D.1 15、 有一函数, ,以下程序段中不能根据x值正确计算出y值的是( )。   A.if(x>0) y=1;    B.y=0;    else if(x==0) y=0;    if(x>0) y=1;    else y=-1;       else if(x<0) y=-1;   C.y=0;      D.if(x>=0)    if(x>=0);        if(x>0) y=1;    if(x>0) y=1 ;       else y=0;    else y=-1;       else y=-1; 16、有以下程序 main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d\n”,m); } 程序运行后的输出结果是 ( )。   A.1   B.2   C.3   D.4 17、 以下程序的输出结果是( )。 main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } A.5 B.4 C. 6 D.不确定 18、 以下程序的输出结果是 ( )。 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); }   A.1 B.0 C.非0的数 D.-1 19、设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值位为 ( )。   A.0 B.1 C.2 D.3 20、 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”’x); else printf(“%d”’x++); } 程序运行后,如果从键盘上输人5,则输出结果是 ( )。 A.3 B.4 C.5 D. 6 21、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w则该程序运行后,m的值是 ( )。   A.4 B.3 C.2 D.1 22、 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 ( )。   A.不定值  B.4   C.3   D.1 23、若执行以下程序时从键盘上输入9,则输出结果是()。   A.11  B.10   C.9  D.8 main0 { int n; scanf(“%d”,&n); if(n++<10) printf(“%d\n”,n); else printf(“%d\n”,n--); } 24、 若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( )。   A.swich(a+b);      B.switch(a*a+b*b)   { case 1:y=a+b; break; {case 3:    case 0:y=a-b; break; case 1:y=a+b;break;    }      case 3:y=b-a,break;                }   C.switch a      D.switch(a-b)    { case c1 :y=a-b; break {default:y=a*b;break    case c2: x=a*d; break case 3:case 4:x=a+b;break    default:x=a+b;    case 10:case 11:y=a-b;break;    }     } 25、能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是 ( )。   A.a>=10 or a<=0   B.a>=0|a<=10   C.a>=10 &&a<=0   D.a>=10‖a<=0 26、有如下程序 main0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++ ; } printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是 ( )。 A.a=2,b=1 B.a=1,b=1   C.a=1,b=0   D.a=2,b=2 27、有如下程序 main0 { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是 ( )。 A.0.000000 B.0.250000 C.0.500000  D.1.000000 28、 有如下程序 main0 { int a=2,b=-1,c=2; if(aif(b<0) c=0; else c++ printf(“%d\n”,c); } 该程序的输出结果是 ( )。 A.0 B.1 C.2 D.3 29、 设 int x=1, y=1; 表达式(!x||y--)的值是( )。 A.0   B. 1 C.2 D.-1 30、与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( )。 A.if (x>0) y=1; B.if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0;   else if(x<0)y=-1;    else y=0; C.y=-1 D.y=0; if(x)     if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 31、语句:printf("%d",(a=2)&&(b= -2);的输出结果是 ( )。   A.无输出 B.结果不确定   C. -1   D.1 32、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 ( )。   A.c=b=a   B.(a=c) ‖(b=c)   C.(a=c) &&(b=c)  D.a=c=b 33、能正确表示a和b同时为正或同时为负的逻辑表达式是( )。   A.(a>=0‖b>=0)&&(a<0‖b<0)   B.(a>=0&&b>=0)&&(a<0&&b<0)   C.(a+b>0)&&(a+b<=0)   D.a*b>0 34、 以下程序的输出结果是   A.-1 1    B.0 1    C.1 0 D.0 0 main( ) { int a= -1,b=1,k; if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); } 35、以下程序输出结果是( )。   A.7   B. 6 C.5 D.4 ma in() { int m=5; if(m++>5) printf("%d\n",m); esle printf("%d\n",m- -); } 36、当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 ( )。   A.1 B.2 C.3 D.6 if(a >b) x=1; else if(c>d)a=a+b; else if(a >b)x=2; else x=3; 37、表示关系x<=y<=z的c语言表达式为 ( )。   A.(X<=Y)&&(Y<=Z)   B.(X<=Y)AND(Y<=Z)   C.(X<=Y<=Z)   D.(X<=Y)&(Y<=Z) 38、有以下程序 #include <stdio.h> main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是 ( )。 A.2,1   B.3,2   C.4,3   D.2,-1 39、若有以下定义: float x;int a,b; 则正确的switch 语句是( )。 A.switch(x)     B.switch(x) { case1.0:printf("*\n"); { case1,2:printf("*\n"); case2.0:printf("**\n"); case3:printf("**\n"); }     } C.switch (a+b)    D.switch (a+b); { case 1:printf("\n");   { case 1:printf(."*\n"); case 1+2:printf("**\n"); case 2:printf("**\n"); }     } 40、假定所有变量均已正确说明,下列程序段运行后x的值是 ( )。 a=b=c=0;x=35; if(!a)x--; else if(b); if(c)x=3; else x=4; A.34 B.4 C.35 D.3 41、在以下一组运算符中,优先级最高的运算符是( )。   A.<=   B.=   C.% D.&& 42、表达式:10!=9的值是 ( )。   A.true B.非零值 C.0 D.1 43、在下列选项中,不正确的赋值语句是( )。   A.++t; B.n1=(n2=(n 3=0));   C.k=i==j;   D.a=b+c=1; 44、能正确表示a≥10或a≤0的关系表达式是( )。   A.a>=10 or a<=0  B.a>=10│a<=0   C.a>=10││a<=0  D.a>=10 ││a<=0 45、为表示关系x≥y≥z,应使用C语言表达式 ( )。   A.(x>=y)&&(y>=z)   B.(x>=y)AND(y>=z)   C.(x>=y>=z)   D.(x>=y)&(y>=z) 46、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 ( )。 main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); }   A.7和5   B.6和3   C.7和4   D.6和4 47、有以下程序 #include main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A.2,1  B.3,2  C.4,3  D.2,-1 48、 以下程序的输出结果是 ( )。 main( ) { int a=-1,b=4,k; k=(+ +a〈0)&&!(b - -〈=0); printf("%d%d%d\n",k,a,b); } A .104 B.103  C.003  D. 004 49、下面的程序 ( )。   A.有语法错误不能通过编译  B.输出* * * *   C.可以通过编译,但是不能通过连接,因而不能运行  D.输出# # # #。 main() { int x=3,y=0,z=0; if(x=y+z)printf("* * * *"); else printf("# # # #");} 50、若执行下面的程序时从键盘上输入5,则输出是( )。   A.7 B.6 C.5 D.4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);} 二、程序分析 1、以下程序运行后的输出结果是 【1】 。 main() { int a=1,b=2,c=3; if(c=a) printf("%d\n",c); else printf("%d\n",b); } 2、以下程序运行后的输出结果是 【2】。 main() { int a=3,b=4,c=5,t=99; if(b if(a printf("%d%d%d\n",a,b,c); } 3、以下程序运行后的输出结果是 【3】。 main() { int a,b,c a=10;b=20;c=(a%b<1)||(a/b>1); printf("%d %d %d\n",a,b,c); } 4、以下程序运行后的输出结果是 【4】 。 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("%d %d\n",a,b); } 5、有以下程序执行后输出结果是【5】 。 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d\n”,x); } 6、 以下程序运行后的输出结果是 【6】 。 main() { int p=30; printf (“%d\n”,(p/3>0 ? p/10 : p%3)); } 7、以下程序运行后的输出结果是【7】 。 main() { int a=1, b=3, c=5; if (c=a+b) printf("yes\n"); else printf("no\n"); } 8、若有以下程序执行后输出结果是 【8】 。 main() { int p,a=5; if(p=a!=0) printf("%d\n",p); else printf("%d\n",p+2); } 9、若有以下程序执行后输出结果是 【9】 。 main() { int a=4,b=3,c=5,t=0; if(a if(a printf("%d %d %d\n",a,b,c); } 10、以下程序运行后的输出结果是 【10】。 main() { int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf(“%d,%d \n”,x,y); } 11、 若从键盘输入58,则以下程序输出的结果是 【11】 。 main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); } 12、 以下程序输出的结果是【12】 。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 三、编程题 1.编写程序,输入x的值,输出y的值。 2*x+5 x>5; y= x*(x+2) 2<x<=5; 2*x -1<x<=2; 2税务部门征收所得税,规定如下: 1) 收入在2000以内的免征; 2) 收入在2000-4000之间的超过2000部分纳税3%; 3) 收入超过4000元的,超过4000部分纳税4%; 4) 收入达到或者超过5000元的,超过5000的部分纳税5%; 编写一个程序,计算应缴税费,将结果输出。 3、输入某年某月某日,判断这一天是这一年的第几天。(例:2012-3-4是2012年的第几天) 答案: 一、选择题 1-10:DCABDCADDD 11-20:ACBDCACACB 21-30:DCBDDACCBA 31-40:DCDCBBAACB 41-50:CDDDAADDBC 二、填空题 (1) 1 (2) 4599 (3) 10 20 0 (4) 2 1 (5) -4 (6) 3 (7) yes (8) 1 (9) 5 0 3 (10) 20,0 (11) 585858 (12) 0
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服