c语言问题,选c.求解释

[复制链接]
查看11 | 回复1 | 2011-5-18 11:22:45 | 显示全部楼层 |阅读模式
.有以下程序:
        main()
        {inti=0;
        for(i=3;i=5;i=i2)
        switch(i%5)
        {case0:printf(“*”);
        case1:printf(“#”);break;
        default:printf(“!”);break;
        case2:printf(“
        }
        }
程序的输出结果是:()
a)*#b)!defds123c)!*#d)*#*
回复

使用道具 举报

千问 | 2011-5-18 11:22:45 | 显示全部楼层
1.第一次循环,i=3,i%5=3,执行default:printf(“!”);break;输出\"!\";
2.第二次循环,i=5,i%5=0,执行case0:printf(“*”);输出\"*\";,接着执行case1:printf(“#”);break;输出#;
在这里要注意,执行完一个case后面的语句后,流程控制转移到下一个case继续执行。“case常量表达是”只是起到语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面的表达式的值找到匹配的入口标号,就从此标号开始执行下去,不在进行判断。
因此,应该在执行一个case语句后,使流程跳出switch结构,即种植swtich语句执行,可以用一个break语句来跳出switch结构。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行