有以下程序: #include<stdio.h> main() { int c; while((c=getchar())!=’\n’) switch(c-’2’) {case 1:putchar(c+4); c

admin2009-04-15  26

问题 有以下程序:    #include<stdio.h>    main()    {  int c;    while((c=getchar())!=’\n’)    switch(c-’2’)    {case 1:putchar(c+4);     case 2:putchar(c+4);break;     case 3:putchar(c+4);     case 4:putchar(c+4);break;    }    printf("\n");    }    输入以下数据,<CR>代表一个回车符,    2743<CR>    程序的输出结果是(  )。

选项 A、877
B、966
C、778
D、766

答案1

解析 本题通过一个while循环向键盘缓冲区读取字符,直到读到的字符是回车键结束循环。当读到的c为’2’时,c-’2’为0, switch语句中没有case 0:所以没有输出,继续读下一个;当c为’7’时,c-’2’=5,也没有输出;当c为’4’时,c-’2’=2,执行case 2:后面的语句输出一个字符c+4=’4’+4=’8’;当c为’3’时,c-’2’=1,执行case 1:后面的语句,连续输出两次c+4=’3’+4=’7’。故程序输出结果是877,应该选择A。
转载请注明原文地址:https://jikaoti.com/ti/dZI0FFFM
0

最新回复(0)