C语言问题高手请进

下列关于switch语句说法错误的是()。
①关键字switch后面紧跟的表达式是整型表达式或字符型表达式
②case后面的常量表达式可以是整型或字符型,但是必须互不相等
③缺省break则执行符合表达式数值的语句及其后的语句,直到遇见break才跳
出switch语句
④default分支放在switch语句内的任何位置都不会影响最终的结果
希望详解!谢谢
答案是4我就是不知道为什么选4

第1个回答  2009-09-28
switch 语句后面的表达式可以是整型,字符型,枚举型
switch结构中的case子句和default子句可以以任何顺序出现,但是把default子句放在最后是一种良好的程序设计习惯。
但不是说default可以在swith里任何位置而不影响结果例如

int i=2;
switch (i)
{
default:
printf("\nYou select error.\n\n");//这里的default执行后,不管i是不是1都会执行case 1里面的语句,如果放在最后效果就不一样。这里如果加上个break,那就不影响了,楼主想想

case 1:
printf("\nYou select error.\n\n"); break;
}
这个如果default放后面呢?又是另外一种那个情况,楼主可以自己运行看看
所以第四句是肯定错的,第一句有点错
第2个回答  2009-09-28
switch 语句说明:
(1)switch 后面括号内的“表达式”,ANSI 标准允许它为任何类型。
(2)当表达式的值与某个case后面的常量表达式的值相等时,就执行case 后面的语句,若所有的case中的常量表达式的值都没有与表达式的值相匹配的,就执行default后面的语句
(3)每一个case的常量表达式的值必须互不相同
(4)各个case和default得出现次序不影响执行结果
(5)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。因此为结束该流程需加break
(6)多个case可以共用一组语句

这下知道了吗???好好理解理解、、、、呵呵本回答被提问者采纳
第3个回答  2009-09-27
switch 语句后面的表达式可以是整型,字符型,枚举型
第4个回答  2009-09-28
如果有更完整的补充的就好了!

编程高手请进!(C语言)
printf("\\n NEXT?(Y\/N):");\/*选择是否重新游戏*\/ scanf("%c",&yes);} } 2.include <stdio.h> void main(){ int gj, mj, xj, t1, t2;for (gj=1; gj<=20; gj++){ for (mj=1; mj<34; mj++){ xj=100-gj-mj;t1=xj%3;t2=5*gj+3*mj+xj\/3;if (t1==0&&t2==100...

高分C语言问题~~·高手请进
A[n]中,n代表有多少堆果子,A中的元素代表各堆的果子数目 int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n=n-1...

C语言高手请进啊,高分哦,详细的解释!!!
a= b(9)自减 判断b(8)是否等于d(8) d自加变成9 判断成功执行前面语句 d自加变成10 所以a=10 第二题 考 条件运算 判断成功 结果为1 不成功为0 a>b不成功 为0 m为0 c>d不成功 为0 n为0 k= 0&&0 结果为0 第三题 考 二维数组 以及...

C语言编程问题.请高手进(附源码)!!!HELP
printf("请输入菜名,按回车键结束\\n");scanf("%s",A);printf("\\n请输入拼音码(菜名首字母)&编码&价格{回车确定}\\n");scanf("%s%d%f",c,&d,&e);printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f\\n是否正确?(正确请输入1,否则按任意键退出):",b,d,c,A,e);scan...

c语言问题,高手请进谢谢!!!
3、此时前面有两个i等待运行,即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式子,写入数据得到12 今天上课还在纠结这个问题,一看到你的问题突然想起来了!呵呵 ...

C语言问题,高手速度进来
include <stdio.h> void main(){ int ch;scanf("%d",&ch);putchar(ch);getch();} 结果自己试一试,比如输入65,输出A,输入97,输出a

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

c语言高手请进来!
int i=-1;printf("%d,%o\\n",i,i)上面那大哥说的差不多了,只是%d是表示10进制的,%o是表示8进制的,关于在内存中怎么存贮转化你可以参考下清华大学出版社的 计算机基础,。大一的学生用的。8进制的177777转化成10进制并不是-1,这和在内存中的存储有关系,具体说太复杂了,你去自己看下吧。

C语言高手请进~~~
static struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},这里定义了一个 结构数组a ,并且将其初始化了,其中a[0]={1,&a[1]},a[1]={2,&a[2]} a[2]={3,&a[0]},后面ptr = &a[1];就是让ptr指向a[1],所以ptr的值就是{2,&a[2]},也就是ptr->i1=2,答案d又...

c语言上机问题 高手请进
看你是用TC还是VC,把软件安装上了就可以进行编辑了,还有就是可以找一些VC的书来看下,学习如何上机倒是很容易的,TC会更简单一些.在这边很难讲明白,如何能找身边已经懂的人教一下,那会更快上手的.希望你能取得进步.用F10键就可以操作菜单了

相似回答