非欧切尔 2022-11-03 12:42 采纳率: 90.4%
浏览 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 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加