已知int a,b;double c;则以下语句中错误的函数调用是

来源:百度知道 编辑:UC知道 时间:2024/06/20 16:34:05
已知int a,b;double c;则以下语句中错误的函数调用是
A)scanf("%d,%x,%lf",&a,&b,&c);
B)scanf("%d,%d,%le",&a,&b,&c);
C)scanf("%o,%x,%o",&a,&b);
D)scanf("%d,%o,%e",&a,&b,&c);
为什么?说的详细一点哦

答案: D
解析: 1. 对整数而言,可以是8、10、16进制,分别可以用 %x, %d, %x 来表示格式化输入/出;
2. 对浮点数而言,float 只能用 %e 或者 %f 来表示输入/出,%e 将数据按照科学计数法表示。double 只能用 %le 或者 %lf 来表示输入,但是可以用 %e, %f, %le, %lf 表示输出,这是由于 float 和 double 所占字节数不一决定。
3. 如果像选项C里,则表示将前两个输入赋值到 a 和 b中,多余的舍弃。

C

%d 读入十进制整数
%o 读入八进制整数
%x 读入十六进制整数
%f 读入一个浮点数
%e 读入一个浮点数
在之前加l代表长度修饰符 输入"长"数据
接下来就很容易看出来了。

C是对的 只是有一个像是多余而已
答案是D

c 实行数据是一指数形式存储的