77范文网 - 专业文章范例文档资料分享平台

2选择(答案)

来源:网络收集 时间:2020-06-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

本章要求(选择)

1. 掌握if、switch语句的使用方法; 2. 掌握if、switch语句嵌套的用法;

3. 正确编写选择结构的C语言程序,解决实际问题。

一、选择题

1.以下错误的if语句是( C ) A. if(x>y);

B. if(x==y) x+=y;

C. if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D. if(x

答:C ,else之前要有分号“;”

2.C语言对嵌套if语句的规定是:else 总是与( D )配对。 A. 其之前最近的if B. 第一个

C. 缩进位置相同的if

D. 其之前最近的且尚未配对的if

3.下列关于switch语句和break语句的结论中,正确的是( B ) A. break语句是switch语句中的一部分

B. 在switch语句中可以根据需要使用或不使用break语句 C. 在switch语句中必须使用break语句

4.在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( D ) A. if(a) s1; else s2; B. if(a==0) s2; else s1; C. if(a!=0) s1; else s2; D. if(a==0) s1; else s2;

答:a非零时执行s1,a为零时执行s2。 5.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为( D ) 。( 1997 年 4 月)

A.a<>0 B.!a C.a=0 D.a

6.下列叙述中正确的是( D )

A.break语句只能用于switch语句; B.在switch语句中必须使用default;

C.break语句必须和switch语句中的case配对使用; D.在switch语句中,不一定使用break语句。 答:break 可以用在循环语句中。

7.以下程序的输出为( A )。 main( )

{ int a=20,b=30,c=40; if(a>b) a=b, b=c;c=a;

printf(\ }

A. a=20,b=30,c=20 B. a=20,b=40,c=20

1

C. a=30,b=40,c=20 D. a=30,b=40,c=30

8.对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于( C )。 A. k==0 B. k==1 C. k!=0 D. k!=1

分析:因为条件表达式e1?e2:e3的含义是e1为真时,取表达式e2的值,否则取表达式e3的值,\为真\的意思就是不等于0。 本题正确答案为C。

9.对下述程序,正确的判断是( A )。 main( )

{ int a,b;

scanf (\if(a>b)a=b; b=a; else a++; b++;

printf(\}

A. 有语法错误不能通过编译 B. 若输入4,5则输出5,6 C. 若输入5,4则输出4,5 D. 若输入5,4则输出5,5

分析:不管if语句中的条件真假,它只能执行一个语句,要想根据条件执行多个语句,应写成复合语句,程序中if和else的后面都有两个语句,违反了这一点。 本题正确答案为A。

二、读程序题,写出下列程序的运行结果 1. main( )

{ int i=10; switch(i)

{ case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; }

printf(“%d”,i); //13 }

答:i=13

2. #include 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; }

2

printf(“a=%d,b=%d\\n”,a, b);//a=2,b=1 }

3. #include main( )

{ int a=2, b=-1, c=2; if(a

if(b<0) c=0 else c+=1;

printf(“%d\\n”,c); //2 } 答:c=2

4. #include main( )

{ int a=1, b=3, c=5, d=4; if(a

if(c

if(a

printf(“x=%d”,x);//x=2 }

5. #include

main( )

{ int x=0, y=1, z=2, w; if(x++) w=x;

else if(x++&&y>=1) w=y; else if(x++&&z>1) w=z;

printf(“x=%d, w=%d\\n”,x, w);//x=2,w=1 }

6. main( )

{ int x=0, y=3, z=2; if(x++&&y++) z--;

else if(x+1==6||y--) z++;

printf(“x=%d, y=%d,z=%d\\n”,x, y, z);//x=1,y=2,z=3 }

7.main()

{ int x=100, a=10, b=20, ok1=5, ok2=0;

if(a

if(! ok1) x=1; else if(ok2) x=10; x=-1;

printf(\-1

}

3

8. void main( ) { int a;

scanf(“%d”,&a); //输入58 if(a>50) printf(“%d”,a);//58 if(a>40) printf(“%d”,a);//58 if(a>30) printf(“%d”,a);//58 }

运行结果:585858 9. void main() {

int a,b,c,x; a=b=c=0; x=35; if(!a) x--; else if(b); if(c) x=3; else x=4;

printf(“x=%d\\n”,x);//x=4 }

10. void main( ) {

int a=15, b=21, m=0; switch(a%3) {

case 0: m++; break; case 1: m++; switch(b%2) {

default: m++;

case 0: m++; break; }

}

printf(“%d\\n”,m);//1 }

三、简答题 1. 设x, y, z均为int型变量,请写出描述 “x或y中至少有一个小于z 的表达式”。 答案:x

2. 写出与表达式!(x>0)等价的表达式。 答案:x<=0

3. 写出与表达式!0等价的表达式。 答案:1

4. 写出char型变量ch是小写字母的表达式。 答案:ch>=’a’&&ch<=’z’

5. 写出满足下列条件的C 语言表达式:int型数x取值为0或1,且float型数y的取

值在1.0-6.0之间的C语言表达式。 答案:(x==0||x==1)&&(y>=1.0&&y<=6.0)

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库2选择(答案)在线全文阅读。

2选择(答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1086767.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: