若运行时从键盘上输入9876543210l,则上面程序的输出结果为(  )

  1. a=98,b=765,c=4321.000000
  2. a=98,b=0,c=0
  3. a=98,b=765.000000,c=4321.000000
  4. a=98,b=765.0,c=4321.0
3 2 收藏


直接登录
最新评论
  • TWang LISP爱好者 2015/12/16

    我觉得没有正确答案
    a=98,b=0,c=0.000000

    这种题目存在的意义是什么,(调用某梗,printf玩的好真能写出google前端吗) ^_^

  • ShadowLin   2015/12/16

    a=98,b=0,c=4321.000000,考的float转成int型

  • 画梦 iOS工程师 2015/12/16

    两个整形%d 一个%f 最像答案的估计是1.

  • 我的运行结果,
    a=98,b=-1419339392,c=765.000000
    (b每次运行都改变)

    如果题目改成 printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
    运行结果,
    a=98,b=765.000000,c=4321.000000

    gcc版本:gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2)

    • 王先生 学生 2015/12/19

      我的编译器昨天答案为第二个 我用的codeblocks 今天又不一样了 但答案就是选B 其实就是考察C语言的控制台读取的一个策略

  • 风之语   2015/12/19

    最烦这种奇淫技巧,有意思吗。

  • 古手梨花 巫女 2015/12/26

    把float传给printf,但printf期待int,好吧,undefined behaviour,什么事情都可以发生。可以崩溃,可以机器冒烟,恶魔可以从程序员或者用户的鼻子里冒出来,你家的猫会怀孕,或者什么事都不发生,或者程序死循环,都可以。

  • codeli   2015/12/27

    b是一个float变量,代码中却用%d来输出,看到这样的代码,一个正常人的反应应该是“代码写错了,应该改正过来”,这才是工作中需要的技能,而不是写一大堆错误百出的代码,然后研究这样运行会是什么结果!我们要做的事情是发现错误,改正错误,避免错误,而不是整天研究一些诸如“如果刹车油门一起踩会怎么样”,“如果在正常行驶中从5档挂到R档会怎样”,“如果打着左转向灯往右转会怎样”的naocan问题

  • bt   2016/01/04

    运行了一下结果是 98 0 4321.000000
    不太明白0L是啥意思,谁给解释一下

  • hstdt   2016/01/04

    int a;float b,c;
    scanf(“%2d%3f%4f”,&a,&b,&c);
    printf(“\na=%d,b=%d,c=%f\n”,a,b,c);//原题(IDE警告)
    printf(“\na=%d,b=%f,c=%f\n”,a,b,c);//按照IDE去除警告后输出

    ====>
    a=98,b=2075201624,c=765.000000
    a=98,b=765.000000,c=4321.000000

    运行于Xcode7.2.