第四章 选择结构程序设计之练习
- 格式:doc
- 大小:48.50 KB
- 文档页数:4
练习04选择结构程序设计一、练习目的1.掌握1)逻辑表达式的含义及其用法2)关系表达式的含义及其用法3)if语句的书写方法及其执行流程,特别注意①嵌套②if与else配对③=”与“==”之间的区别4)switch语句的书写方法及其执行流程,特别注意以下几种情况①缺少break②嵌套③几个case共享一组语句二、练习要求1.不用抄题,写清题号,直接给出答案三、练习内容1. 以下不正确的语句为【】。
(A)if( x>y ) ;(B)if( x<y ) { x++; y++; }(C)if( x=y )&&( x!=0 ) x+=y;(D)if( x!=y ) scanf(“%d”,&x); else scanf(“%d”,&y);2. 以下程序的输出结果是【】。
void main( ){int x=2 , y= -1, z=2 ;if( x<y )if( y<0 ) z=0 ;else z+=1 ;printf(“%d\n”,z) ;}(A)3(B)2(C)1(D)03. 请阅读以下程序void main( ){int a=5,b=0,c=0;if(a=b+c) printf(“***\n”); else printf(“$$$\n”);}以上程序【】。
(A) 有语法错,不能通过编译(B) 可以通过编译但不能通过连接(C) 输出***(D) 输出$$$4. 以下程序的运行结果是【】。
void main(){int m=5;if(m++>5) printf(“%d\n”,m); else printf(“%d\n”,m--);}(A) 4 (B) 5 (C) 6 (D) 75. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是【】。
if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;(A) 1 (B) 2 (C) 3 (D) 66. 执行下列程序,输入为1的输出结果是【】,输入为3的输出结果是【】。
第四章选择结构程序设计(A级)填空题:1、表达式not true or true and false的值为false。
2、表达式ord(false)+5的值为5。
3、表达式pred(succ(true))的值为true。
4、表达式5 div 2<(5-2)的值为true。
5、"若A-B不小于C,则将B增加1,否则将B减少1“用Pascal 语言可表示为if A-B>=C then B:=B+1 else B:=B-1;。
6、"闰年指年号能被4整除,但不能被100整除,或者年号能被400整除的年"写成Pascal语言表达式为(year mod 4=0) and (year mod 100<>0) or (year mod 400=0)。
7、inc(ord(true))的结果是2。
8、表达式(2<=1) or not(2<10) and (10>4)的结果是false。
9、命题"m,n都是偶数或都是奇数"可表示为(m mod 2=0) and (n mod 2=0) or (m mod 2=1) and (n mod 2=1)。
10、dec(inc(ord(true)))的结果是1。
单项选择题:1、下面的表达式中,布尔值为true的是4+5 mod 2>4。
(4+5) mod 2>4'0'>'a'0>a2、下列选项中,不是布尔表达式的是5 div 3。
not b(x>0) or (y>0)9+4>5+33、下面哪一个是布尔变量的标识符?boolean。
trueintegerreal4、下面条件语句的格式书写不正确的是if 条件then 语句1; else 语句2。
if 条件then 语句1if 条件then 语句1 else 语句25、对于复合语句描述不正确的是begin后面没有符号,中间的语句末尾加";",最后一个语句与end之间必须加";"。
选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据2.下列运算符中优先级最高的是( )A.<B.+C.&&D.!=3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( )A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B.(x>=1)||(x<=10)||(x>=200)||(x<=210)C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)4.表示图中坐标轴上阴影部分的正确表达式是( )A.(x<=a)&&(x>=b)&&(x<=c)B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c)D.(x<=a)&&(b<=x<=c5.判断char型量ch是否为大写字母的正确表达式是()A.‘A’<=ch<=‘Z’B.(ch>=‘A’)&(ch<=‘Z’)C.(ch>=‘A’)&&(ch<=‘Z’)D.(‘A’<=ch)AND(‘Z’>=ch)6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A.‘x’&&‘y’B.x<=yC.x||y+z&&!yD.!(x<y)&&!z||1)7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#include<stdio.h>main(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的if语句形式是()A.if(x>y&&x!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(“%d“,&x) else scanf(“%d”,&y);D.if(x<y){x++;y++;}15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )A.if(x>0) printf(“%f”,x)else printf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x)C.if(x>0){x=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4 B.5 C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)if(c<d) x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )A.y=x+1; if(x>=0) if(x==0) y=x; else y=x-1;B.y=x-1 if(x!=0) if(x>0) y=x+1; else y=x;C.if(x<=0) if(x<0) y=x-1; else y=x; else y=x+1;D.y=x; if(x<=0) if(x<0) y=x-1; else y=x+1;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )main(){int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf(“%d\n”,z);}A.3B.2C.1D.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
第4章选择结构程序设计4.1 写出数学式|x|<2.5×10-2对应的Visual Basic表达式。
【答案】x<2.5e-2 and x>-2.5e-24.2 逻辑运算符And、Or和Not的优先级最高的是哪一个。
【答案】Not4.3 已知 W=10 X=9 Y=8 Z=7 ,求下列表达式的结果。
(1) W>X And Y<=Z OR X>Y(2) X>Z Or W=Y AND Y<X(3) Not (W>Y And X=Z)(4) Not (Y<>X Or W*3>Z)【答案】(1) True(2) True(3) True(4) False4.4 写出下列十进制整数逻辑运算的结果:(1) X = 23 And 14(2) X = 23 Or 14(3) X = -1 And 19(4) X = -1 Or 10(5) X = Not -1【答案】(1) 6(2) 31(3) 19(4) -1(5) 04.5 已知变量X和Y的值分别为5、6,编写程序,交换变量X和Y的值。
【参考答案】程序代码设计Private Sub Form_Click()x = 5: y = 6t = x: x = y: y = tForm1.Print "x="; x, "y="; yEnd SubPrivate Sub Form_Load()Form1.AutoRedraw = TrueForm1.Print "x = 5", "y = 6"Form1.Print "单击窗体交换x,y的值"图4-1 程序运行结果End Sub程序运行结果如图4-1所示:4.6 从键盘输入一个学生的三科成绩,计算总分,并找出最高分。
【参考答案】(1)用户界面设计(2)控件属性设置(略)(3)程序代码设计Private Sub Command1_Click()g1 = Val(Text1.Text)g2 = Val(Text2.Text)g3 = Val(Text3.Text)Var = (g1 + g2 + g3) / 3g = g1If g < g2 Then g = g2If g < g3 Then g = g3Text4.Text = VarText5.Text = gEnd Sub图4-2 程序运行结果程序运行结果如图4-2所示。
C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
选择结构程序设计练习题选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据2.下列运算符中优先级最高的是( )A.<B.+C.&&D.!=3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( )A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B.(x>=1)||(x<=10)||(x>=200)||(x<=210)C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)4.表示图中坐标轴上阴影部分的正确表达式是( )A.(x<=a)&&(x>=b)&&(x<=c)B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c)D.(x<=a)&&(b<=x<=c5.判断char型量ch是否为大写字母的正确表达式是()A.…A?<=ch<=…Z?B.(ch>=…A?)&(ch<=…Z?)C.(ch>=…A?)&&(ch<=…Z?)D.(…A?<=ch)AND(…Z?>=ch)6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A.…x?&&…y?B.x<=yC.x||y+z&&!yD.!(x<y)&&!z||1)< p="">7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#includemain(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的if语句形式是()A.if(x>y&&x!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(“%d“,&x) else scanf(“%d”,&y);D.if(x<y){x++;y++;}< p="">15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( ) if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )A.if(x>0) printf(“%f”,x)else printf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x)C.if(x>0){x=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4B.5C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)< p="">if(celse if(a<c)< p="">if(b< p="">else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )A.y=x+1; if(x>=0) if(x==0) y=x; else y=x-1;B.y=x-1 if(x!=0) if(x>0) y=x+1; else y=x;C.if(x<=0) if(x<0) y=x-1; else y=x; else y=x+1;D.y=x; if(x<=0) if(x<0) y=x-1; else y=x+1;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)< p="">if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )main(){int x=2,y=-1,z=2;if(x<y)< p="">if(y<0) z=0;else z+=1;printf(“%d\n”,z);}A.3B.2C.1D.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
C语⾔选择结构程序设计练习题第四章选择结构程序设计⼀、填空1.在C语⾔中,表⽰逻辑“真”值⽤_________。
2.得到整型变量a的⼗位数字的表达式为_________。
3.表达式:(6>5>4)+(float)(3/2)的值是_________。
4.表达式:a=3,a-1‖--a,2*a的值是_________。
(a是整型变量)5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。
(a是整型变量)6.C语⾔编译系统在给出逻辑运算结果时,以数值_________代表“真”,以_________代表“假”;但在判断⼀个量是否为“真”时,以_________代表“假”,以_________代表真。
7.当m=2,n=1,a=1,b=2,c=3时,执⾏完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。
8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。
⼆、编程:1.企业发放的奖⾦根据利润提成。
利润(i)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润i,求应发放奖⾦总数?2.输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。
3.输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?4.本程序演⽰从键盘输⼊x的值,计算并打印下列分段函数的值。
y=0(x<60)y=1(60<=x<70)y=2(70<=x<80)y=3(80<=x<90)y=4(x>=90)5.在显⽰器上显⽰⼀个菜单程序的模型。
第4章选择结构程序设计习题(P111)4。
2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4.3 写出下面各逻辑表达式的值。
设a=3,b=4,c=5。
(1)a+b〉c&&b==c (2)a||b+c&&b-c (3)!(a〉b)&&!c||1(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c—1&&b+c/2解:该题在求解过程中注意:一、优先级。
逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;二、逻辑表达式的求值规则。
(P94)所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)14。
4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。
该题不用函数调用实现,但方法类似。
法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。
法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。
其中都要用到单分支或双分支选择结构语句。
参考程序如下:法一:main(){ int a,b,c,max;/*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf(”\ninput the value of a,b,c:"); /*提示输入*/scanf(”%d%d%d",&a,&b,&c);/*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/if(a>b) max=a;else max=b;if(max<c) max=c;printf("\nmax=%d\n",max);}法二:main(){int a,b,c,max;printf(”\ninput the value of a,b,c:”);scanf(”%d%d%d",&a,&b,&c);max=a;if(max〈b) max=b;if(max<c) max=c;printf("\nmax=%d\n”,max);}4.6有一个函数:写一段程序,输入x,输出y的值。
第四章选择结构程序设计
1.若执行下面的程序时从键盘上输入5,则输出结果是______
main()
{int x;
scanf("%d",&x);
if(x++>5)printf("%d\n",x);
else printf("%d\n",x--);
}
A) 7 B) 6 C) 5 D) 4
2.已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为______ int a=3,b=4,m=0,n=0,c=3,d=4;
(m=a<b)||(n=c<d);
A) m=1 n=1 B) m=1 n=0 C) m=0 n=0 D) m=0 n=1
3.表达式(!7<5+1>0+4<5)的值是______
A) 3 B) 2 C) 1 D) 0
4.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值,则下列能正确表示1/(xyz)的表达式是______
A) 1/x*y*z B)1/(x*y*z)C) 1/x/y/(float)z D) 1.0/x/y/z
5.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为______ char a='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A) b,c B) a--运算不合法,故有语法错C) 98,c
D) 格式描述和输出项不匹配,输出无定值
6.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与_____配对。
A) 缩排位置相同的if B) 其之前最近的if
C) 其之后最近的if D) 同一行上的if
7.若给定条件表达式(M)?(a++): (a--),则其中表达式M______
A) 和(M==0)等价B) 和(M==1)等价
C) 和(M!=0)等价D) 和(M!=1)等价
8.若有说明语句char s='\092'; 则该语句______
A) 使s的值包含1个字符B) 说明不合法,s的值不确定
C) 使s的值包含4个字符D) 使s的值包含3个字符
9.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为______
A) 4 B) 3 C) 2 D) 1
10.有如下的变量定义:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是______
A) a+=a-=(b=4)*(a=3)B) x%(-3) C)a=a*3=2 D) y=float(i) 11.有以下变量定义:
int k=7,x=12;
则下列值为3的表达式是______
A) x%=(k%=5) B) x%=(k-k%5)
C) x%=k-k%5 D) (x%=k)-(k%=5)
12.设 int a=3 ; 则表达式 a<1&& - - a>1 的运算结果和a的值分别是______ A) 0和2 B) 0和3 C) 1和2 D) 1和3
13.假定所有变量均已正确定义,下列程序段运行后x的值是______
ok1=1;ok2=2;ok3=3;x=15;
if(!ok1) x--;
else if(ok2) if(ok3) x=3;
else x=4;
A) 14 B) 4 C) 15 D) 3
14.下面程序的输出结果是______
void main()
{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
15.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_____
void 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
16.有定义:int a=1,b=3,c=5,d=4,x;则执行完下面一段程序后x的值是 ______。
if(a<b)
if(c<d) x=1;
else
if(a<c)
if( b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B) 2 C) 3 D) 6
17.能正确表示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
18.当a=3,b=2,c=1时,表达式f=a>b>c的值是 ______ 。
19.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是________。
A) c=b=a B) (a=c)||(b=c) C) (a=c)&&(b=c) D) a=c=b 20.下面程序程序后输出结果是_____。
void main()
{int a=3,b=2,c=1,t;
if(a>b>c) t=1;
else if(a<b<c) t=0;
else t=-1;
printf("%d\n",t);
}
A) 1 B) 0 C) -1 D) 不确定的数
21.以下程序运行后的输出结果是________。
void main()
{int a=3,b=4,c=5,t=99;
if(a<b<c) t=a;a=c;c=t;
if(a>c,c>b) t=b;b=a;a=t;
printf("%d %d %d\n",a,b,c);
}
22.以下程序运行后的输出结果是__________。
void 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);
}
23.有以下程序
void 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 24.以下程序执行后输出结果是_____。
void 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 25.以下程序执行后输的结果是________ 。
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
}。