有以下程序  #include <stdio.h>  main()  {char *s="01234";   while(*(++s)!=’\0’)   {switch(*s-’0’)   {case 0:   case 1:putchar(*s+1)

admin2022-04-01  22

问题 有以下程序
 #include <stdio.h>
 main()
 {char *s="01234";
  while(*(++s)!=’\0’)
  {switch(*s-’0’)
   {case 0:
   case 1:putchar(*s+1);break;
   case 2:putchar(*s+1);break;
   case 3:putchar(*s+1)l;
   default:putchar(*s+1);break;
   }
  }
 }
 程序执行后的输出结果是(          )。

选项 A、22345
B、2345
C、12345
D、23445

答案D

解析 程序首先定义一个字符指针s,指向一个常量字符串“01234”;接着while循环的循环条件每次将s指向下一个字符,然后判断s指向的字符是否为空字符‘\0’,若不是,则执行循环体,将当前字符与‘0’的ASCII码差值作为switch语句的常量表达式,执行对应的casc语句;指针s指向空字符‘\0’时则终止循环,程序结束。从常量字符串“01234”可知,循环过程中s指向的各个字符分别是:‘1’、‘2’、‘3’、‘4’。当*s是‘1’时,*s-‘0’的值为1,执行case1语句,输出*s+l即字符‘2’;当*s是‘2’时,*s-‘0’的值为2,执行case2语句,输出:*s+l即字符‘3’;当*s是‘3’时,*s-‘0’的值为3,执行case3和default语句,两次输出*s+1即字符‘4’;当*s是‘4’时,*s-‘0’的值为4,执行default语句,输出*s+l即字符‘5’;综上程序输出结果为:23445,本题答案为D。
转载请注明原文地址:https://jikaoti.com/ti/Jqd0FFFM
0

最新回复(0)