问题
单项选择题
有以下程序:
#include<stdio.h>
main()
int c;
while((c=getchar())!='\n')
switch(c-'3')
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+3);break;
printf("\n");
从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为( )。
A) 77889 B) 77868 C) 776810 D) 77886610
答案
参考答案:A
解析: 题中while循环的条件是:当从键盘读入的字符不是'\n'时,执行while循环。
输入第一个字符3时:执行case 0,什么也不输出;case 1,输出7;case2,输出7;遇到break语句,跳出switch语句。输入第二个字符8时;c-'3'=5,不执行任何语句。输入第三个字符4时:c-'3'=1。执行oase 1。输出8;case 2,输出8;遇到break语句,跳出switch语句。输入第四个字符5时:c-'3'=2,执行case 2,输出9;遇到break语句,跳出switch语句。