1选择结构练习题一、选择题1.下列错误的语句是()A.if(ab)printf(“%d”,a);B.if(&&);a=mC.if(1)a=m;elsea=n;D.if(a0);{elsea=n;}2.#includestdio.hmain(){intx,y;scanf(“%d”.&x);y=0;if(x=0){if(x0)y=1;}elsey=-1;printf(“%d”,y);}当从键盘输入32时,程序输出结果为()A.0B.-1C.1D.不确定值2.以下程序的输出结果是()#includestdio.hmain(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“%d\n”,c);}A.0B.1C.2D.34.以下程序的输出结果是()#includestdio.hmain(){intk=2;switch(k){case1:printf(“%d\n”,k++);break;case2:printf(“%d”,k++);case3:printf(“%d\n”,k++);break;case4:printf(“%d\n”,k++);default:printf(“Full!\n”);}}A.13B.23C.22D325.下列程序的运行结果是()#includestdio.hmain(){inta=2,c=5;printf(“a=%d,b=%d\n”,a,c);}A.a=%2,b=%5B.a=2,b=5C.a=c,b=dDa=%d,b=%d6.语句pritnf(“a\bre\’hi\’y\\\bou\n”);的输出结果是()A.a\bre\\’hi\’y\\bouB.a\bre\’hi\’y\bouC.re’hi’youD.abre’hi’y\bou7.如下程序的输出结果是()#includestdio.hmain(){inta=12,b=5,c=-3;if(ab)if(b0)c=0;elsec++;printf(“%d\n”,c);}A.0B.1C.-2D.-38.从键盘输入5,下列程序运行结果是()#includestdio.hmain(){intx;scanf(“%d”,&x);if(x--5)printf(“%d”,x);elseprint(“%d”,x++);}A.3B.4C.5D.69.如下程序的输出结果是()#includestdio.hmain(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\n”,m);}10.下面的程序()#includestdio.hmain()2{intx=3,y=0,z=0;if(x=z+y)printf(“****”);elseprintf(“####”);}A.有语法错误不能通过编译B.输出****C.可以通过编译,但是不能通过连接,因而不能运行D.输出####11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()#includestdio.hmain(){intx;scanf(“%d”,&x);if(x++5)printf(“%d”,x);elseprintf(“%d\n”,x--);}A.75B.63C74D6412.以下程序输出结果是()#includestdio.hmain(){inta=-1,b=4,k;k=(++a0)&&(b--=0);printf(“%d%d%d\n”,k,a,b);}A.104B.003C.103D.00413.能正确表示a≥10或a≤0的关系表达式是()A.a=10ora=0B.a=10|a=0C.a=10&&a=0D.a=10||a=014.假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C35D315.表示关系X≤Y≤Z的C语言表达式为()A.(X=Y)&&(Y=Z)B.(X=Y)and(Y=Z)C.(X=Y=Z)D.(X=Y)&(Y=Z)16.如下程序的输出结果为()#includestdio.hmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(“%d,%d\n”,a,b);}A.2,1B3,2C4,3D2,-117.以下程序输出结果是()#includestdio.hmain(){inta=-1,b=1,k;if((++a0)&&!(b--=0))printf(“%d%d\n”,a,b);elseprintf(“%d%d\n”,b,a);}A.-11B.01C.10D0018.下列关于switch语句和break语句的结论中,正确的是()A.break语句是switch语句中的一部分B.在switch语句中必须使用break语句C.在switch语句中可根据需要使用或不使用break语句D.break语句只能用于switch语句中19.为避免在嵌套的条件语句if…else中产生二义性,C语言规定:else子句总是与()相配对A.缩排位相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if20.设有说明语句inta=1,b=0;,则执行下列语句后,输出为()switch(a){case1:switch(b){case0:printf(“**0**”);break;case1:printf(“**1**”);break;}case2:printf(“**2**”);break;}A.**0**B.**0****2**C.**0****1****2**D.有语法错误二.填空题1.在C语言中,关系运算符的优先级别是,逻辑运算符的优先级别是。2.写出下列程序运行结果#includestdio.hmain(){inta=100;if(a100)printf(“%d\n”,a100);elseprintf(“%d\n”,a=100);}3.写出与以下表达式等价的表达式(1)!(x0)(2)!034.当a=1,b=2,c=3时,以下语句执行后,a,b,c中的值分别为if(ac)b=a;a=c;c=b;5.若有定义:inta=10,b=9,c=8;,接着顺序执行下列语句后,变量b中的值是c=(a-=(b-5));c=(a%11)+(b=3);6.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是7.下列程序的输出结果是16,请填空#includestdio.hmain(){inta=9,b=2;floatx=,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2f\n”,z);}8.若从键盘输入58,则以下程序输出的结果是#includestdio.hmain(){inta;scanf(“%d”,&a);if(a50)printf(“%d”,a);if(a40)printf(“%d”,a);if(a30)printf(“%d”,a);}9.以下程序输出结果是#includestdio.hmain(){inta=5,b=4,c=3,d;d=(abc);printf(“%d\n”,d);}10.以下程序输出结果是#includestdio.hmain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(“%d,%d\n”,x,y);}11.设a,b,c为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b++)-(++c);后,a的值是12.若inti=10;,则执行完下列程序后,变量i的正确结果是switch(i){case9:i+=1;case10:i+=1;case10:i+=1;default:i+=1;}13.以下程序输出结果是#includestdio.hmain(){intx=2,y=-1,z=2;if(xy)if(y0)z=0;elsez+=1;printf(“%d\n”,z);}14.若运行时输入12,则以下程序的运行结果是#includestdio.hmain(){intx,y;scanf(“%d”,&x);y=x12?x+10:x-12;printf(“%d\n”y);}15.设x,y,z均为int型变量,请与出描述“x或y中至少有一个小于z”的表达式16.已知A=7.5,B=2,C=3.6,表达式AB&&CA||AB&&!C的值是循环结构练习一.选择题1.设i和x都是int变量,则for循环语句()for(i=0,x=0;i=9&&x!=876;i++);A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行2.下述循环语句()inti,k;for(i=0,k=-1;k=1;i++,k++)printf(“***”);A.判断循环结束的条件非法B.无限循环C.只循环一次D.一次也不循环3.下列是计算n!的值的程序,空格处应选()#includestdio.hmain(){inti,s,n;s=1;4printf(”Entern:”);scanf(“%d”,&n);for(i=1;i=n;i++);printf(“s=%d”,s);}A.s=s*iB.s*iC.s=s+iD.s+i4.下述程序中判断ij共执行了()次#includestdio.hmain(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(ij){printf(“%d”,s);break;}s=s+i;}}A.4B.7C.5D.65.以下程序的输出结果是()#includestdio.hmain(){inti;for(i=1;i=5;i++){if(i%2)putchar(‘’);elsecontitue;putchar(‘’);}putchar(‘#’);}A.#B.#C.#D.#6.以下程序段的输出结果是()intI,j,m=0;for(i=1,i=15;i+=4)for(j=3;j=1;j+=49)m++;printf(“%d\n”,m);A.12B15C20D257.以下程序的输出结果是()intx=3;do{printf(“%d”.x-=2);}while(!(--x));A.1B.30C.1-2D.死循环以下程序的输出结果是()#includestdio.hmain(){inti,sum;for(i=1;i6;i++)sum+=sum;printf(“%d\n”,sum);}A.15B.14C.不确定D.08.以下程序的输出结果是()#includestdio.hmain(){inty=10;for(;y0;y--)if(y%3==0){printf(“%d”,--y);continue;}}A.741B.852C.963D.87543219.若x是int型变量,以下程序段的输出结果是()for(x=3;x6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);A.**3B.##3C.##3D.**3##4##4**4**4##5**5**5##510.以下叙述正确的是()A.do…while语句构成的循环不能用其他语句构成的循环代替B.只有do…while语句构成的循环能用break语句退出C.用do…while语句构成循环时,在while后的表达式为零时不一定结束循环D.用do…while语句构成循环时,在while后的表达式为零时结束循环11.以下程序的输出结果是()#includestdio.hmain(){intx,i;for(i