以下是一道c语言选择题,请问如何解答?写出分析步骤。

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:50:56
已有如下定义和输入语句,若要求a1,a2 ,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是( )。(注;_表示空格,<CR>表示回车)
int a1,a2;char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
printf("a1=%dc1=%ca2=%dc2=%c",a1,c1,a2,c2);
A.10A_20B<CR> B.10_ A_20_B<CR>
C.10A20B<CR> D.10A20_B<CR>
这道题我没有抄错,就是这样的,我运行了一下AC都正确,答案只有A,你能再详细分析以下A答案吗?特别是这句“而一旦字符读入正确后,再读入数字时,之前的空格是可以被忽略的 ”,谢谢了

选择 (A、C)

"%d%c%d%c"中的%d表示整数,%c表示一个字符

输入数字10或20后,必须紧跟着字符A或B
否则如果数字后面跟了空格的话,空格就会被读入到c1或c2中

而一旦字符读入正确后,再读入数字时,之前的空格是可以被忽略的

这个题,答案有两个!,题目中的选项应该哪个给错了吧

补充回答:
说明题目本身就出多了啊!
那句话的意思是:
接收输入的语句是scnaf("%d",&a);时,当你输入" <CR> 12<CR>"
数字12还是能被接收的,12之前的空格或者回车或者tab键,都会被忽略的。

B

没啥可分析的吧,书上这么说的

C