有下列程序: #include<stdio.h> main() { int a=123456,b; while(a) { b=a%10; a/=10; switc

admin2022-10-25  27

问题 有下列程序:
     #include<stdio.h>
     main()
     {
     int a=123456,b;
     while(a)
     {
       b=a%10;
     a/=10;
     switch(b)
     {
     default:printf(”%d”,b++);
     case 1:break;
     case 2:printf(”%d”,b++);break;
     case 3:printf(”%d”,b++);
     case 4:printf(”%d”,b++);
     ease 5:printf(”%d”,b++);
     }
   }
}
     程序执行后的输出结果是(          )。

选项 A、654321
B、65432
C、65453452
D、654534521

答案 C

解析 程序首先定义整型变量a和b,a的初值为123456。接着通过while,循环,判断a的值是否为0,若不为0,则执行循环体。每次循环将a当前值的个位数字(a%10)赋给b,a自身除以10。再通过switch语句判断b的值执行对应分支语句。所以对应a的每个个位数,b的取值为6,5,4,3,2,1。当b取值为6时,执行default,输出6,接着继续执行case1,通过break退出switch语句。执行下一次循环,当b取值为5时,执行case5输出5。执行下一次循环,当b取值为4时,执行case 4输出4,继续执行case 5输出5。接着执行下一次循环,当b取值为3时,执行case 3输出3,执行case 4输出4,执行case 5输出5;当b取值为2时,执行case 2输出2,通过break退出switch语句;当b取值为1时,执行break,此时a的值为0,循环终止。综上,程序输出结果为65453452。本题答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/aCkp777K
0

最新回复(0)