《程序设计基础(C)》习题指导书
A.scanf(\
B.scanf(\C.scanf(\D.scanf(\
5.根据以下定义语句和数据的输入方式,scanf语句的正确形式应为( )。 已有定义:float f1,f2; 数据的输入方式:4.52<回车>
3.5<回车>
A.scanf(\ B.scanf(\
C.scanf(\
6.阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为( )。 main( )
{ int x,y,z;
scanf(\ printf(\}
A.x=y=z=48 B.x=y=z=35 C.x=z=35 D.不确定的值 7.设有以下程序 #include
{ char c1,c2,c3,c4,c5,c6;
scanf(\ c5=getchar(); c6=getchar(); putchar(c1); putchar(c2);
printf(\}
若运行时从键盘输入数据:abc<回车>,defg<回车>,则输出结果是( )。 A.abcd B.abde C.abef D.abfg
8.有输入语句:scanf(\为使 a的值为1,b的值为3,c的值为2;从键盘输入数据的正确形式应当是( )。
A.132<回车> B.1,3,2<回车> C.a=1*b=3*c=2 <回车> D.a=1,b=3,c=2<回车> 9.若有以下定义,则正确的赋值语句是( )。 int a,b; float x;
A.a=1,b=2, B.b++; C.a=b=5 D.b=int(x);
10.设x、y均是float型变量,则以下不合法的赋值语句是( )。 A.++x B.y=(x%2)/10; C.x*=y+8; D.x=y=0; ㈢.程序设计题
1.编写程序:输入一个字符,输出该字符的前驱字符和后继字符,并按ASCII码值从大到小顺序输出这3个字符及其对应的ASCII码值。
2.输入三角形的三边长,求三角形的面积。
3. 下面程序的功能是读入直角三角形两直角边的长度,输出斜边长度。请将程序补充完整。 #include
main( ) { int x,y; double z=sqrt(a*a+b*b); printf(“斜边长度为:%lf\\n”,z);}
第 13 页 共 64 页
《程序设计基础(C)》习题指导书
第三章 选择结构程序设计
一.知识点
1.关系运算符、逻辑运算符、逻辑值的表示与含义;注意&&、||的运算规则。
2.三种if语句。
3.选择结构的嵌套,注意if与else的配对。 4.条件运算符:?与 :
5.switch语句,注意其执行过程。 6.选择结构程序设计思想。
二.习题 ? 基础篇
㈠.填空题
1.C语言中用 非0 表示逻辑值“真”,用 0 表示逻辑值“假”。
2.C语言中的关系运算符按优先级别是 、 、 、 、 、 。 答案:>、<、>=、<=、==、!=
3.C语言中的逻辑运算符按优先级别是 、 、 。 答案:!、&&、||
4.C语言中的关系运算符和逻辑运算符的优先级别是 、 、 、 、 、 、 、 、 。
!、>、<、>=、<=、==、!=、&&、||
5.C语言中逻辑运算符的 ! 优先级高于算术运算符。 6.将下列数学式改写成C语言的关系表达式或逻辑表达式:
a=b或a
main()
{ int a=100;
if(a>100) printf(“%d\\n”,a>100); else printf(“%d\\n”,a<=100);} 8.若已知a=10、b=15、c=1、d=2、e=0,请分别给出下列表达式的运算结果:
⑴ a*b && c 1 ⑵ a+b>10 || a+b<0 1 ⑶ e 0 ⑷ c==b>e 1 ⑸ !a ⑽ (b==10) && (a==10) 0 ⑾ !0 || d && a==c+d 1 ⑿ (a+c==b)==(b+d==a) || (c=b+a)>(d=c+b) 1 9.当a=1、b=2、c=3时,执行以下if语句后,a= 3 、b= 1 、c= 1 。 if(a>c);b=a;a=c;c=b; 10.当a=1、b=2、c=3时,执行以下if语句后,a= 3 、b= 2 、c= 2 。 if(a>c)b=a;a=c;c=b; 11.当a=1、b=2、c=3时,执行以下if语句后,a= 1 、b= 2 、c= 2 。 if(a>c)b=a,a=c;c=b; 12.将以下两条if语句合并为一条if语句: if(a>b) scanf(“%d”,&x);else scanf(“%d”,&y); if(a<=b) i++;else j++; 答案:if(a>b) {scanf(“%d”,&x);j++;} 第 14 页 共 64 页 《程序设计基础(C)》习题指导书 else {scanf(“%d”,&y);i++;} 13.将以下嵌套的if语句改写成不嵌套的if语句: if(w<0) k=0;else if(w<=100) k=1; else k=0; 答案:if(w>=0&&w<=100)k=1; else k=0; 14.以下程序判断输入的一个整数是否能被3或7整除,若能整除,输出“YES”,若不能整除,输出“NO”。请填空: #include 17.C语言提供三种逻辑运算符,按优先级高低它们分别是____!__、_&&____、 _||____ 。 18.设a=1,b=6,c=2,表达式 a+b>c && b==c运算后的值为____0___。 19.写出命题 “-6-6&&a<-3)||(a>2&&a<=5)_____ 。 20.条件“y能被4整除但不能被100整除,或y能被400整除”的逻辑表达式是 (y%4==0&&y0!=0)||(y@0==0) 。 21.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式是 (x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0) 。 22.若有x=1,y=2,z=3,则表达式(x a = (x--==y++) ? x-- : y++ ; b = x++ ; c = y ; 24.若有条件“2 if(a>b){scanf( “ %d”,&a); n++;}else{ scanf( “ %d”,&b); m++;}。 语句1: if(a>b)scanf( “ %d”,&a); else scanf( “ %d”,&b); 语句2: if(a<=b)m++; else n++; ㈡.选择题 1.若给定条件表达式(M)?(a++):(a--),则和表达式M等价的表达式为( )。 A.M==0 B.M==1 C.M!=0 D.M!=1 2.为表示关系x≥y≥z,应使用的C语言表达式是( )。 A.(x>=y) && (y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) 3.以下程序的输出结果是( C )。 A.0 B.1 C.2 D.3 main() { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c+=1; printf(“%d\\n”,c); } 4.以下程序的输出结果是( )。 A.1 B.2 C.3 D.4 第 15 页 共 64 页 《程序设计基础(C)》习题指导书 main() { int w=4,x=3,y=2,z=1;printf(“%d\\n”,(w main() { int a,b,s;scanf(“%d %d”,&a,&b); s=a; if(a 6.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式( )。 A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式 7.下列程序段运行后,x的值是( )。 A.14 B.4 C.15 D.3 ok1=1;ok2=2;ok3=3;x=15; if(!ok1) x--;else if(ok2) if(ok3)x=3;else x=4; 8.在C语言中,switch语句后一对圆括号中exp的类型( )。 A.可以是任何类型 B.只能为int型 C.可以是整型或字符型 D.只能是整型或实型 9.以下各组运算符中,优先级最高的分别为(⑴ ⑵ ⑶ ⑷ )。 ⑴A.?: B.++ C.&& D.+= ⑵A.*= B.>= C.(类型) D., ⑶A.|| B.% C.! D.== ⑷A.= B.!= C.*(乘) D.( ) 10.若a为整型变量,b为字符型变量,则以下正确的switch语句是( )。 A.switch((int)x/10) B.switch(b) { case 1:a++;break; { case ‘\\042’;x=a/b;break; case 2:b++;break; case ‘6’;x=a*b;break; case 3:c++;break;} case ‘\\010’;x=a+c;break;} C.switch((int)x/10); D.switch(a/100+10) { case 0:a++;break; { case2 :x=a/b;break; default:b++;break; case6 :x=a*b;break; case 3+1:c++;break; case8 :x=a+c;break; case 3:d++;break;} case10 :x=a-c;break;} 11.与条件表达式\中的表达式(n)等价的表达式是( )。 A.(n==0) B. (n==1) C. (n!=0) D.(n!=1) 12.已知int i=1,j=0;执行下面语句后j的值是( )。 switch(i) { case 1: i+=1;j++;break; case 2: i+=2;j++;break; case 3: i+=3;j++;break; default: i--;j++;break;} A.1 B.2 C.3 D.死循环 13.设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式运算后,n的值位为( )。 A.0 B.1 C.2 D.3 14.若执行以下程序时从键盘上输入9,则输出结果是( )。 第 16 页 共 64 页 (m=a>b)&&(n=c>d)
相关推荐: