[课业] 铁路 107 高员三级 程式语言 第五题

楼主: usisiu (你看看你)   2018-06-19 16:28:01
题目出处:107年 铁路特考 高员三级 资讯处理 程式语言 第五题
(一)请问下列C程式执行的结果是什么? (10分)
#include <stdio.h>
int a,b;
void main(){
a=4;
b=30;
printf("Before the switch statement, a=%d.\n",a);
switch(a){
case 1:a=a*10;break;
case 2:a=a*10;break;
case 3:a=a*10;
while(a<b) case 4:{a=a+5;}break;
case 5:a=a*10;break;
default:
b=a*10;break;
}//end of switch
printf("after the switch statement, a=%d.\n",a);
}
疑惑点:
我在考试的时候,看不懂 while(a<b) case 4:{a=a+5;}break;
所以直接跳过,直接看到 default: b=a*10;break; 这一段,
因此我的答案是写
Before the switch statement, a=4.
after the switch statement, a=4.
但是我用编译器跑过一次,发现答案是
Before the switch statement, a=4.
after the switch statement, a=34.
怀疑跟 while(a<b) case 4:{a=a+5;}break; 这一句程式码有关
但是我又无法解释为什么,第一次看到这一种程式码,
请问 while(a<b) case 4:{a=a+5;}break; 这一段程式码要如何解释?
先谢谢各位先进
作者: m24737779 (幸运之星)   2018-06-23 00:54:00
case 4(a==4)时,执行while(a<b)循环内容a=a+5。之后break跳出switch判断式。我那时是这样想的。

Links booklink

Contact Us: admin [ a t ] ucptt.com