c语言有一道题不会做,求高手解,最好分析一下。

有以下程序 #include<stdio.h> main() { char a,b,c,d; scanf(“%c%c”,&a,&b); c=getchar(); d=getchar(); printf(“%c%c%c%c \ n”,a,b,c,d); } 当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符) 12<CR> 34<CR> 则输出结果是 A)1234 B)12 C)12 3 D)12 34

答案是:C
因为scanf("%c%c",&a,&b);接收的是1和2,在输入后按了“回车”
这个回车符会传递到下一句,也就是:c=getchar(); ,这样 c 赋值为回车符了;
d=getchar(); 接着就是这句,你输入34的时候,d 只接收单个字符,也就是 3 ;
所以最后的输出是:
12
3
温馨提示:答案为网友推荐,仅供参考
相似回答