请问个C语言2级的题
2006年4月 第19题) (知识点:选择结构程序设计)(难度:中)
若有定义:float x=1.5; int a=1,b=3,c=2;则正确的swich语句是_______
A、switch(x)
{case 1.0: printf("*\n");
case 2.0: printf("**\n");} B、switch((int)x)
{case 1: printf("*\n");
case 2: printf("**\n");}
C、switch (a+b)
{case 1: printf("*\n");
case 2+1: printf("**\n");} D、switch(a+b)
{case 1: printf("*\n")
case c: printf("**\n);}
请问应选什么为什么
答案或建议:
只能针对基本数据类型使用switch,这些类型包括int和string等待。对于其他类型,则必须使用if语句。
case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
可以连续写下一系列case标签(中间不能间插额外的语句),从而指定自己希望在多种情况下都运行相同的语句。如果像这样写,那么最后一个case标签之后的代码将适用于所有case。然而,假如一个标签关联了一个或多个语句,又没有使用break来跳出,那么执行就不能贯穿到后续的标签,而且编译器会报告一个错误。例如:
switch (trumps)
{
case Hearts :
case Diamonds : // 允许贯穿 — 标签之间无额外代码
color = "Red"; // 针对Hearts和Diamonds这两种情况都会执行的代码
break;
case Clubs :
color = "Black";
case Spades : // 出错 — 标签之间有额外代码,而且没有使用break来跳出
color = "Black";
break;
}
文章出自:http://www.baikewenda.com/tech/dev/6/9/a1896735.htm
其它内容推荐:
→对方发了数次邮件都已成功发出,我为什么仍然收不到?
→怎么将文档在另外一台电脑中打印出来?
→“我的文档”跑到“我的电脑”里,怎么也删除不掉
→什么叫博克?
→怎样发短信让对方不见我的号码
→Internet所广泛采用的标准网络协议是什么?
→漏洞攻击是什么意思?
→在Outlook Express设置中SMTP是什么?
→U盘和手机内存卡做成启动盘后如何恢复原样
→单反相机使用兼容锂电池对机器有没有损伤?
→win7能否远程桌面访问无显卡的服务器
→SnagIt添加的文字怎么显示不清楚?
→lotus notes 7.0备份邮件出现错误58的解决方法
→Excel 如何将一列数据中重复数据的去除
→windows xp硬盘启动顺序变更的问题
→桌面的IE图标被挂广告网站如何修复?
→怎么将文档在另外一台电脑中打印出来?
→“我的文档”跑到“我的电脑”里,怎么也删除不掉
→什么叫博克?
→怎样发短信让对方不见我的号码
→Internet所广泛采用的标准网络协议是什么?
→漏洞攻击是什么意思?
→在Outlook Express设置中SMTP是什么?
→U盘和手机内存卡做成启动盘后如何恢复原样
→单反相机使用兼容锂电池对机器有没有损伤?
→win7能否远程桌面访问无显卡的服务器
→SnagIt添加的文字怎么显示不清楚?
→lotus notes 7.0备份邮件出现错误58的解决方法
→Excel 如何将一列数据中重复数据的去除
→windows xp硬盘启动顺序变更的问题
→桌面的IE图标被挂广告网站如何修复?