欧莱雅玻尿酸乳液价格:C 语言问题~~~

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/08 13:03:58
若定义a1,a2为int型数据,c1,c2为char型数据,且scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 正确的输入格式为【 】。(其中□表示空格)
(A)10A□20B<回车> (B)10□A□20□B<回车>
(C)10□A20B<回车> (D)10A20□B<回车>
选哪个为什么??谢谢!!

正确答案A
B和C:10后面的空格会被认为是c1
D:20后面的空格会被认为是c2

选B

2楼说的没错,正确答案应该选A。
也如2楼所说,B和C:10后面的空格会被认为是c1,因为C1是字符型。
D错同上,不过是C2为空格。

我写了几句程序,你可以把这个程序运行,然后把ABCD试一下结果,你就明白了。
#include <stdio.h>
main()
{
int a1,a2;
char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
printf("a1=%d\nc1=%c\na2=%d\nc2=%c\n",a1,c1,a2,c2);
}

就是选A,在定义了字符型的时候只要有一个非数字输入就赋值给该变量。

选A
在C中空格是作为char型的数据
char和int交替输入的时候可以不用空格,回车等作间隔的,因为它们是不同类的,C可以自动识别(虽然两者有一定的联系).
你看题目就知道了,只要是该输入字母的地方打空格的答案就是错的