题目
(1分)以下程序段的运行结果是( )。int s=15;switch(s/4)(case 1:printf("One ");case 2:printf("Two ");case 3:printf("Three ");default:printf("Over ");)A. ThreeB. Two OverC. Three OverD. One Over
(1分)以下程序段的运行结果是( )。int s=15;switch(s/4){case 1:printf("One ");case 2:printf("Two ");case 3:printf("Three ");default:printf("Over ");}
A. Three
B. Two Over
C. Three Over
D. One Over
题目解答
答案
C. Three Over
解析
本题考查C语言switch语句的执行流程,特别是无break语句时的默认 fall-through 行为。解题关键在于:
- 计算s/4的值,确定匹配的case;
- 分析无break时的执行顺序,即后续case和default是否会执行。
步骤1:计算s/4的值
- 题目中
int s=15,因此s/4的值为15/4=3(整数除法自动舍去小数部分)。
步骤2:匹配switch条件
switch(s/4)的值为3,匹配到case 3,执行printf("Three ");。
步骤3:分析后续执行
- 无break语句:执行完
case 3后,程序会继续执行后续所有未被跳过的代码块。 - 后续代码块包括
default分支,因此会执行printf("Over ");。
最终输出
- 输出结果为
Three Over,对应选项C。