非欧切尔 2022-11-03 12:42 采纳率: 90.5%
浏览 31
已结题

为什么选A呀?有人可以解释一下吗?

单选题

设有定义:int a,b; float x,y; ,则以下选项中对语句所作的注释叙述错误的是()。

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); /* 格式串中允许加入格式符以外的字符串 */

  • 写回答

2条回答 默认 最新

  • 於黾 2022-11-03 14:18
    关注

    那就一项一项来呗
    A
    scanf("%d%d%f", &a, &b); /* 多余的格式符%f完全不起作用 */
    不是不起作用,是你输入3个数,但是只有前2个数赋值给了a和b,但是如果你只输入2个数,程序依然处于阻塞状态不会往下走
    B
    scanf("%d%d", &a, &b, &x); /* 多余的输入项不能获得输入数据 */
    变量x没有对应的输入项,不能获得赋值,你可以在控制台输入3个数据,但只有前2个会被读入,第三个会驻留在缓冲区里,直到再次调用scanf被读入(比如循环读)
    C
    scanf("%d%f%d", &a, &b, &x); /* 输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */
    c语言比较古早,不智能,它不管你变量是什么类型,只看你使用什么符号来读,你告诉它按照float型读,它就把输入数据按照float型组成4个字节放进你提供的地址里,这个地址是&b,但是其实b是int型,这会造成数据全乱码了
    D
    scanf("Input:%d%d", &a, &b); /* 格式串中允许加入格式符以外的字符串 */
    Input:部分是直接输出的,不格式化,这当然是允许的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日

悬赏问题

  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab