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

为什么选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 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理