C语言选择结构作业(含解答)

2026/4/30 7:33:55

选择结构作业解答(3)

一、选择题:

1. 判断char型变量ch是否为数字的表达式的是:

a) ?0? < = ch <= ?9? b) (ch > ?0?)&&( ch = ?0?)&&( ch <= ?9?) d) (ch >= ?0?)||( ch <= ?9?) 答案:c)

2. 能正确表示a和b不同时为0的逻辑表达式的是:

a) a*b==0 b) (a==0)||( b==0) c) (a==0&&b!=0)&&( b==0&&a!=0) d)(a! = 0)||( b != 0)

答案:d)

3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是:

a) a==-b && a%2==0 b) a!=b && a+b==0 && a%2 c) !(a%2)&&a==-b d) a%2==0 a+b==0 答案:b) 4. 有以下程序:

#include

void main { int x=2,y=3,z;

char ch=‘a’; z=(x||!y)&&(ch>?A?); }

程序运行后z的值是 a)true b)false c)0 d)1

答案:d)

说明:C语言的逻辑运算的结果是0或1;

5. 关于if后面一对圆括号中的表达式,叙述正确的是

a) 只能用关系表达式 b) 只能用逻辑表达式

c) 只能用关系表达式或逻辑表达式 d) 可以使用任意合法的表达式

答案:d) 说明:if后面一对圆括号中的表达式用来决定执行哪个分支。判断的根据是该表达式的值是否为非0。所以任意合法的表达式都可以。

6. 对switch后面一对圆括号中的表达式,叙述正确的是

a) 只能用数字 b) 可以是浮点数 c) 只能用整型数据或字符型数据 d)以上叙述都不对

答案:c)

说明:C语言中规定,switch后面一对圆括号中的表达式的值必须是确定的值,具体执行switch中的哪个分支,由该值决定。只有整型、字符型表达式或关系,逻辑表达式才能得到确定的值。 7. 以下不正确的if语句是

a) if (a

c) if (a=b) printf(“equal”); c)if (a>b)&&(b>c) printf(“max=%d”, a); 答案:c)

说明:C语言中规定,if语句的格式应为:if( 表达式) 语句; else 语句2 8. 有以下程序:

#include

void main()

{ int m=-2;

if(m=0) printf(“@@@”); else printf(“%%%”); } 程序运行后的输出结果是:

a)@@@ b)%%% c)%% d)@@@%%% 答案:b)

说明:C语言中if语句执行过程是:先计算if后面的表达式的值,如果表达式的值非0,执行if后

面的语句;否则执行 else 后面的 语句; 本题中,if语句为:

if( m=0 ) printf(“@@@”); else printf(“%%%”);

if后的表达式为:? m=0 ?是一个赋值表达式。值为0;所以执行else分支。 9. 有以下程序:

#include

void main()

{ int a=12,b=20,t=18;

if(a>b) t=a;a=b;b=t;

printf(“a=%d,b=%d,t=%d”,a,b,t); } 程序运行后的输出结果是:

a)a=12,b=20,t=18 b)a=20,b=18,t=18 c) a=20,b=12,t=12 d)a=20,b=18,t=12 答案:b)

说明:语句{ if(a>b) t=a;a=b;b=t; printf(“a=%d,b=%d,t=%d”,a,b,t); }的执行过程为: 先判断?a>b?是否成立,因为?a=12, b=20?,所以?a>b?的值为0;则语句?t=a;?不会执行。所以被执行的语句依次为:?a=b;b=t; printf(“a=%d,b=%d,t=%d”,a,b,t);? 10. 有以下程序:

#include void main()

{ int t=65;

if(t>45) printf(“%d”,t);

else printf(“%d”,t); if(t>35) printf(“%d”,t);

else printf(“%d”,t); if(t>25) printf(“%d”,t); } 程序运行后的输出结果是:

a)65 b)6565 c) 656565 d)不确定的值 答案:c)

11. 有以下程序:

#include void main()

{ int t=8;

if(t-->=8) printf(“%d\\n”,t--); else printf(“%d\\n”,t++); } 程序运行后的输出结果是:

a)9 b)8 c) 7 d)6 答案:c)

说明:(1)t的初值为8;

(2)语句?if(t- ->=8) printf(“%d\\n”,t--);

else printf(“%d\\n”,t++);?的执行过程为:

首先计算表达式?t- ->=8?的值;值为1;之后t变为7;

然后执行语句?printf(“%d\\n”,t--); ,输出的值为7,之后t变为6;?

12. 有以下程序:

#include void main()

{ int a=2,b=5,c=3,d=2,x; if(a%3>b) if(c>d)

if(b

else x=--c ; else x=++b ; } 程序运行后的x的值是:

a)6 b)3 c) 2 d)7

答案:a)

说明:C语言中规定,if语句中的else总是和它上面的离它最近的未曾匹配过的if相匹配。所以与? if(a%3>b) ?匹配的else为?else x=++b ;?

13. 与?y=(x>0?x:x<0?-x:0)?的功能相同的if语句是

a) if (x) b)if (x)

if(x>0) y=x; if(x==0) y=0;

else if(x<0) y=-x; else if(x<0) y=-x;

else y=0; else y=x;

c) y=-x; d) y=0;

if (x>=0) if (x)

if(x>0) y=x; if(x>0) y=x; b) if (x>0) y=x;

else y=-x; else if(x==0) y=0; else if(x<0) y=-x;

else y=0; else y=-x; 答案:a)

14. 若a、b、c1、c2均是整型变量,x,y是浮点型变量,则以下正确的switch语句是 a) switch (c1+c2){ case 1:y=a+b;break; case 2:y=a-b;break; case 1:y=b-a;break;

}

c) switch (c1+c2); {

case c1:y=a-b;break; case c2:x=a*b;break; default:x=a+b;

}

答案:d) b) switch (x+y){

case 1:

case 2:printf(“%d”,a+b);break; }

d)switch (a-b){

default: y=a*b;break; case 10:

case 9: x=a+b;break; case 7:

case 5: y=b-a;break;

}

15. 以下关于switch和break语句的说法中正确的是

a) break语句只能用在switch语句中;

b) 在switch语句中,可以根据需要决定是否使用break语句; c) 在switch语句中必须使用break语句; d) 以上选项都不正确; 答案: b) 16. 有以下程序:

#include void main()

{ int c;

c=getchar(); switch(c-?2?) { case 0:

case 1: putchar(c+4);

case 2: putchar(c+4);break; case 3: putchar(c+3);

case 4: putchar(c+2);break;}

}

程序运行后,输入2<回车>,输出结果是:

a)66 b)6 c)6654 d)没有输出内容 答案:a)

二、填空题:

1. 关系运算符、逻辑运算符、算术运算符和赋值运算符的运算优先级顺序由高到低的排列顺序是 算

术运算符、关系运算符、逻辑运算符、赋值运算符 。 2. 满足|y|<9的C语言表达式是 y>-9&&y<9 。

3. 设字符变量ch的值是大写英文字母,将它转换为相应的小写英文字母的C语言表达式是

ch=ch+32 。 4. 判断字符变量ch的值是英文字母的C语言表达式是 ch>=?a?&&ch<=?z?|| ch>=?A?&&ch<=?Z? 。 5. 通过函数y=4+|x|计算函数值的if语句是 if(x>=0) y=4+x; else y=4-x; 。

6. 以下程序的功能是输入3个整型变量num1、num2、num3的值,然后对这3个变量按从小到大的顺

序排序。请填空。

#include

void main(){

int num1,num2,num3,temp;

printf(“please input three numbers:”); scanf(“%d%d%d”,&num1,&num2,&num3); if( ⑴ ){ temp=num1;num1= num2; num2=temp; }

if( ⑵ ){ temp=num1;num1= num3; num3=temp; }

if( ⑶ ){ temp=num2;num2= num3; num3=temp; }} 答案: (1)num1>num2 (2)num1>num3 (3)num2>num3

7. 以下程序的功能是输入3个整型变量num1、num2、num3的值,求它们中的最大值。请填空。 #include

void main(){

int num1,num2,num3,temp;


C语言选择结构作业(含解答).doc 将本文的Word文档下载到电脑
搜索更多关于: C语言选择结构作业(含解答) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219