第四章 习题答案
一、选择题
1)以下是if语句的基本形式:
if(表达式) 语句
其中"表达式"
A)必须是逻辑表达式
B)必须是关系表达式
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
2)以下选项中,值为1的表达式是( )。
A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0'
3)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:
A)1 B)0 C)2 D)不知道a的值,不能确定
4)若变量已正确定义,在if (W)printf(“%d\n”,k);中,以下不可替代W的是
A)a<>b+c B)ch=getchar() C)a==b+c D)a++
A)a<>b+c B)ch=getchar() C)a==b+c D)a++
5)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是
A)if(x++); B)if(x>y&&y!=0);
C)if(x>y) x- - D)if(y<0) {;}
else y++; else x++;
6) 以下选项中,当x为大于1的奇数时,值为0的表达式
A)x%2==1 B)x%2 C)x%2!=0 D)x%2==0
A)if(x++); B)if(x>y&&y!=0);
C)if(x>y) x- - D)if(y<0) {;}
else y++; else x++;
6) 以下选项中,当x为大于1的奇数时,值为0的表达式
A)x%2==1 B)x%2 C)x%2!=0 D)x%2==0
7) 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是
A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)
8) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0)
9)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是( )。
A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)
10) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 ( )
A)w==1 B) w==0 C) w! =1 D) w! =0
11) 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b) c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c; D)if(a>b){c=a;a=b;b=c;}
12) 已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)
isalpha(c) 判断参数c是否为英文字母 头文件:ctype.h
isupper(c) 判断参数c是否为大写英文字母 是返回非零值,否则返回零
islower(c ) 检查参数c是否为小写英文字母
13)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
A)isupper(c) B)’A’<=c<=’Z’
C)’A’<=c&&c<=’Z’ D)c<=(‘z’-32)&&(‘a’-32)<=c
14) 当变量c的值不为2、4、6时,值也为“真”的表达式是
A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)
C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)
15) 若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7
16)有以下程序
#include
main()
{int a=1,b=0;
main()
{int a=1,b=0;
if(!a) b++;
else if(a==0) if(a) b+=2;
else b+=3;
printf("%d\n",b); }
程序运行后的输出结果是
A)0 B)1 C)2 D)3
程序运行后的输出结果是
A)0 B)1 C)2 D)3
17)在嵌套使用if语句时,C语言规定else总是( )。
A)和之前与其具有相同缩进位置的ifswitch语句必须使用break吗配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
18)下列叙述中正确的是( )。
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
19)以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是:
A)switch(a) B)switch(a==1)
{ case 1: a=b;break; { case 0 : a=b;break;
default : a++; case 1 : a++;
} }
C)switch(a) D)switch(a==1)
{ default : a++;break; { case 1:a=b;break;
case 1:a=b; case 0: a++;
} }
20) 有以下程序段
int a,b,c;
a=10;b=50;c=30;
if(a>b) a=b,b=c; c=a;
printf(“a=%d b=%d c=%d”,a,b,c);
程序的输出结果是 ( )
A)a=10 b=50 c=10 B) a=10 b=50 c=30
C) a=10 b=30 c=10 D) a=50 b=30 c=50
21) 有以下程序
#include <stdio.h>
main()
{ int x=1,y=2, z=3;
if(x>y)
if (y<z) printf(“%d”,++z);
else printf(“%d”,++y);
printf(“%d\n”,x++);
}
程序运行结果是
A)331 B)41 C) 2 D)1
22) 以下程序段中,与语句: k=a>b?(b>c?1:0):0;功能相同的是
A)if((a>b)&&(b>c)) k=1;
else k=0;
B)if((a>b)||(b>c)) k=1;
else k=0;
C)if(a<=b)k=0;
else if(b<=c) k=1;
D) if(a>b) k=1;
else if(b>c) k=1;
else k=0;
23)有以下程序
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x<=3) ; else
if(x!=10) printf("%d\n",x);
}
程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
B)大于3且不等于10的整数
C)大于3或等于10的整数
D)小于3的整数
24)有如下嵌套的if语句
if(a<b)
if(a<c) k=a;
else k=c;
else
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
(A) k=(a<b)?a:b;k=(b<c)?b:c;
(B) k=(a<b)?((b<c)?a:b):((b<c)?b:c);
(C) k=(a<b)?((a<c)?a:c):((b<c)?b:c);
(D) k=(a<b)?a:b;k=(a<c)?a;c
25)以下叙述中正确的是
A)break语句只能用于switch语句体中
B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C)break 语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
26) 有以下程序
A)break语句只能用于switch语句体中
B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C)break 语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
26) 有以下程序
main()
{int k=5,n=0;
Do
{switch(k)
{case 1:
case 3:n+=1; k--;break;
default: n=0;k--;
case 2:
case 4:n+=2;k--;break;
}
printf(“%d”,n);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论