A、scanf(%d%d%f,&a,&b); /* 多余的格式符%f完全不起作用 */
B、scanf(%d%d,&a,&b,&x); /* 多余的输入项不能获得输入数据 */
C、scanf(%d%f%d,&a,&b,&x); /* 输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */
D、scanf(Input:%d%d,&a,&b); /* 格式串中允许加入格式符以外的字符串 */
查看答案
正确答案
试题解析
A项中%f是起作用的,程序从键盘正确的读入前两个数据并且保存在指定的地址,读入第三个数据后,将其放入缓冲区,然后寻找应该存放的地址,因为没有找到,程序会发生错误而中断,注释错误。B项由于scanf只接收两个数据,所以变量x得不到赋值,注释正确。C项scanf会按照float类型读取输入的第二个数据并且保存为int类型,由于两种类型的存储形式与所占内存单元均不同,b得不到正确的赋值,注释正确。D项在使用scanf函数时,如果除了格式说明字符和附加格式字符外,还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符,注释正确。答案选择A选项。