这道简单的C语言题,为什么选D?

来源:百度知道 编辑:UC知道 时间:2024/06/04 13:31:43
已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是?(注:<CR>表示回车)
int a1,a2; char c1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
A)1020AB<CR> B)10 20<CR>
AB<CR>
C)10 20 AB<CR>
D)10 20AB<CR>

答案是D请详细解释一下为什么选D
A为什么不对?

如果选A,系统认为你输入的第一个数是1020。
后面就。。。

你是想以空格分开输入这四个值吧
INT型不在乎这些
可你要是输入CHAR型就不可以了,系统会把空格也当成你输入的一个值的.

现在你明白了吧

这要考虑到缓冲区的问题