首页 > 试题广场 >

以下代码的输出结果是?

[单选题]
以下代码的输出结果是?
#include<stdio.h>
main() {
    int i = 0;
    switch (i) {
    case 0:
        i++;
        printf("%d..", i);
    case 1:
        printf("%d..", i);
    case 2:
        printf("%d..", i);
    }
}

  • ..1..1..0
  • 0..1..1
  • 1..1..1..
  • 1
switch...case...没有break,一直向下执行,,,,谨记这种情况

发表于 2016-07-26 15:05:42 回复(0)
更多回答
选C,
因为没有break,代码会一直向下执行而不是跳出switch。

case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。
因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出switch语句。
因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。
发表于 2015-08-03 23:16:36 回复(6)
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。     因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直接执行,如果有default语句,它也会执行,(直到遇到break语句才停止执行,退出switch语句)。
因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。
发表于 2016-05-28 17:07:05 回复(0)
虽然编译出来确实是C,但是为什么不是..1..1..1呢?望帮忙解答一下
发表于 2018-06-28 09:33:54 回复(2)
选C,
因为没有break,代码会一直向下执行而不是跳出switch。
发表于 2015-04-16 19:11:58 回复(0)
没break跳出整个循环,switch语句会case 0,case1,case2的都会输出
发表于 2023-01-11 00:30:07 回复(0)
到i++的时候还是0,但是到printf的时候就是1了,然后没有break就继续下一个
发表于 2021-01-21 08:28:14 回复(0)

没有break终止啊


发表于 2020-03-18 00:12:51 回复(0)
case后面的条件判断只在第一次匹配的时候有效,之后都不会起判断作用了。
发表于 2019-06-01 23:18:47 回复(0)
switch....case....因为每个case后面没有break,所有会一直执行下去,直到程序结束。
发表于 2017-06-12 00:23:19 回复(1)
switch....case语句,若没有break,则一直向下执行,遇到default也一样会执行,case不起条件判断的作用,只是程序执行的入口标号
发表于 2016-08-31 17:17:05 回复(0)
1..1..1..
发表于 2015-04-29 23:27:18 回复(0)
c
发表于 2015-04-15 16:55:15 回复(0)