课堂练习10switch与goto语句(解析).doc_第1页
课堂练习10switch与goto语句(解析).doc_第2页
课堂练习10switch与goto语句(解析).doc_第3页
课堂练习10switch与goto语句(解析).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课堂练习10switch与goto语句(1) 请阅读以下程序: #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 2: a+,b+;break; printf( a=%d,b=%dn,a,b); 上面程序的输出结果是A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 参考答案:A【解析】考查switch语句的使用。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。 (2) 有以下程序:#includemain()intx1,y0,a0,b0; switch(x) case 1: switch(y) case 0: a; break; case 1: b; break; case 2:a; b; break; case 3:a; b; printf(a%d,b%dn,a,b);程序的运行结果是A)a1,b0B)a2,b2C)a1,b1D)a2,b1 参考答案:D【解析】本题考查了 switch结构的内容。在C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case 常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的 case 2分支。最后a和b的值分别为2和1。(3)有以下定义语句,编译时会出现编译错误的是A)chara=a;B)chara=n;C)chara=aa;D)chara=x2d; 参考答案:C【解析】aa是字符串,字符串的表示要用双引号,可以赋值给字符数组和字符指针变量,但字符串不能赋值给字符变量,只能给字符变量赋值单个字符。(4)若有定义语句int a,b;double x;则下列选项中没有错误的是A) switch(x%2) B)switch(int)x/2.0) case 0:a;break; case 0:a;break; case 1:b;break; case 1:b;break; default :a;b; default:a;b; C)switch(int)x%2) D)switch(int)(x)%2) case 0:a;break; case 0.0:a;break; case 1:b;break; case 1.0:b;break; default:a;b; default:a;b; 参考答案:C【解析】switch()中括号内的变量类型应该与下面case语句后的常量保持类型一致。使用(int)x,可以将x强制转换成整型,然后与整型2做取余运算还是整型数据。若与数据2.0做取余运算,按照转换原理:向高精度的数据类型进行转换,结果就变成了实型数据。综上所述,本题C)正确,B)错误。A),D)均不满足switch语句的原则。(5)以下选项中与if(a=1)a=b;else a+;语句功能不同的switch语句是A)switch(a) case 1:a=b;break; default:a+; B)switch(a=1) case 0:a=b;break; case 1:a+; C)switch(a) default:a+;break; case 1:a=b; D)switch(a=1) case 1:a=b;break; case 0:a+; 参考答案:B【解析】switch(a=1)语句中,若a等于1,则a=1为真,则应该进行a=b的操作,故选项B错误。(6)下列程序段的输出结果是int n=c;switch(n+) default:printf(error);break; case a:case A:case b:case B:printf(good);break; case c:case C:printf(pass); case d:case D:printf(warn);A) passwarnB) passerrorC) goodpasswarnD) pass 参考答案:A【解析】本题的考查点是switch()语句。当用户键入的字符时,会进入一个多分支选择语句,根据n的值,来确定下一步执行的选择语句;最后的结果应当为 passwarn。本题需要注意的是,当case语句没有跟随break语句时,不会跳出switch,而是继续执行下一个case语句,直至遇到break语句。(7)运行下面程序时,从键盘输入字母H,则输出结果是 #include main() char ch; ch=getchar(); switch(ch) case H:printf(Hello!n); case G:printf(Good morning!n); default:printf(Bye_Bye!n); A)Hello! B)Hello! Good Moring! C)Hello! Good morning! Bye_Bye!D)Hello! Bye_Bye! 参考答案:C【解析】本题主要对switch语句进行了考查。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。本题中ch为字符H,所以case H条件中的语句将被执行,由于没有break语句,所以case G后的语句也被执行,由于同样的缺少break语句,所以default后的语句也被执行了。(8)若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是A)switch(x) B)switch(int)x); case 1.0:printf(*n); case 1:printf(*n); case 2.0:printf(*n); case 2:printf(*n);C)switch(a+b) D)switch(a+b) case 1:printf(*n); case 1:printf(*n); case 2+1:printf(*n); cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论