| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 537 人关注过本帖
标题:这个题的结果 不是A么?为什么我用C 6.0算出来的不是??
只看楼主 加入收藏
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
结帖率:100%
收藏
 问题点数:0 回复次数:9 
这个题的结果 不是A么?为什么我用C 6.0算出来的不是??
3、如下程序的运行结果是()。(南师大04)
    void main(){
        int x=1,a=0,b=0;
        switch(x){
            case0:b++;
            case1:a++;
            case2:a++;b++;
        }
        printf("a=%d,b=%d\n",a,b);    }
A.  a=2,b=1        B.  a=1,b=1        C.  a=1,b=0        D.  a=2,b=2
TC2.0出的也是 a=0 ,b=0是不是我哪里弄错了?

把这个改成
            case'0':b++;
            case'1':a++;
            case'2':a++;b++;
也是一样的结果,很不明白……

[ 本帖最后由 fedcab123 于 2011-9-15 14:11 编辑 ]
搜索更多相关主题的帖子: void 
2011-09-15 14:07
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
收藏
得分:0 
void main(){
        int x=1,a=0,b=0;
        switch(x){
            case 0:b++;
            case 1:a++;
            case 2:a++;b++;
        }
        printf("a=%d,b=%d\n",a,b);    }
case后少了个空格

[ 本帖最后由 hanxiaokun 于 2011-9-15 14:13 编辑 ]
2011-09-15 14:11
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
case #。你少了case和#之间的空格。

重剑无锋,大巧不工
2011-09-15 14:14
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
case0:b++;
case1:a++;
case2:a++;b++;

不是应该写成
程序代码:
case 0:b++;
case 1:a++;
case 2:a++;b++;

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-15 14:15
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
收藏
得分:0 
哦,谢谢各位,看来我的基础记的还是不牢固啊

又丢人了
2011-09-15 14:27
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
收藏
得分:0 
' '单引号是括什么的呢?看过这个给忘记了,因为是看的视频,也不知道去哪里找,再帮我解答一下呗~~谢谢!
2011-09-15 14:28
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
因为switch缺失default时会跳过,所以变量没变化

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 14:31
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 6楼 fedcab123
字符

重剑无锋,大巧不工
2011-09-15 14:33
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
收藏
得分:0 
哦,谢谢两位大侠的再次解说,一会还会有不会的题发出来,欢迎再来解说~~
2011-09-15 14:38
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
switch 语句,又称开关语句.使用 switch 语句直接处理多个 分支(当然包括两个分支).其一般形式为: 引用 switch(表达式) { case 常量表达式 1: 语句 1; break; case 常量表达式 2: 语句 2; break; …… case 常量表达式 n: 语句 n; break; default: 语句 n+1; break; }
switch 语句的执行流程是:首先计算 switch 后面圆括号中表达式的值,然后用此值依次与各 个 case 的常量表达式比较,若圆括号中表达式的值与某个 case 后面的常量表达式的值相等, 就执行此 case 后面的语句,执行后遇 break 语句就退出 switch 语句;若圆括号中表达式的值 与所有 case 后面的常量表达式都不等,则执行 default 后面的语句 n+1,然后退出 switch 语 句,程序流程转向开关语句的下一个语句.如下程序,可以根据输入的考试成绩的等级,输出百 分制分数段: 引用 switch(grade) { case 'A': /*注意,这里是冒号:并不是分号;*/
printf("85-100\n"); break; /*每一个 case 语句后都要跟一个 break 用来退出 switch 语句*/ case 'B': /*每一个 case 后的常量表达式必须是不同的值以保证分支的唯一性

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 14:40
快速回复:这个题的结果 不是A么?为什么我用C 6.0算出来的不是??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017599 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved