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

admin2022-04-02  54

问题 有下列程序
 #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++);
       case 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,接着继续执行case 1,break退出switch。执行下一次循环,当b取值为5时,执行case 5输出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/thkp777K
0

最新回复(0)