以下不合法的scanf函数调用语句是( )

若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()。
A) scanf("%d%lx,%le",&x,&y,&z);
B) scanf("%2d * %d%lf",&x,&y,&z);
C) scanf("%x% * d%x",&x,&y);
D) scanf("%x%o%6.2f",&x,&y,&z);
正确答案是D,求详细解答。

A项中,表示输入一个十进制整数,一个十六进制长整数和一个十进制长浮点数
B项中,表示输入一个两位十进制数整数,读入一个*号,读入一个十进制整数,读入一个十进制长浮点数。
C项中,表示读入一个十六进制整数放入x中,读入一个十进制整数并忽略,读一个十六进制整数放入y中。
D项中,表示,读入一个十六进制整数,一个八进制整数和一个浮点数。但是scanf()不能指定浮点数的精度,即 %6.2f错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-13
6.2f 在输入时不能指定 double的精度