神奇的小布丁 发表于 2014-8-26 14:33:04

C语言第三章考核题有几道不会,求讲解

5、语句int i=3;k=(i++)+(i++)+(i++);执行过后k,i的值为多少?19. 若从键盘输入876 543.0 回车 ,a和b的值分别是
设有定义:int a; float b;执行scanf("%2d%f", &a,&b);

   答案为什么是87和6.000000?
20. 以下C程序正确的运行结果是(答案的u表示一个空格)

[*]#include<stdio.h>

[*]

[*]main()

[*]{

[*]      int y=2456;

[*]

[*]      printf("y=%3o",y);

[*]}
[*]A.y=uuu2456
[*]

[*]B.y=uuu4630
[*]

[*]C.y=2456
[*]

[*]D.y=4630
答案为何是D?

流行语 发表于 2014-8-26 14:33:05

第一个问题:咱们鱼C论坛了有很详细的讲解,你搜索一下。
第二个问题:scanf("%2d%f"),%2d说明的是整数只取两位
第三个问题:printf("y=%3o");说明输出的数据需要转换成八进制。

神奇的小布丁 发表于 2014-8-26 18:47:23

流行语 发表于 2014-8-26 17:45
第一个问题:咱们鱼C论坛了有很详细的讲解,你搜索一下。
第二个问题:scanf("%2d%f"),%2d说明的是整数只 ...

第一题不懂怎么搜啊,我刚来这个网站,还不怎么熟悉,求指引:loveliness:
还有,第二题,其实我是想问那个6.000000来着,没有问清楚:shy:
第三个问题我懂了

流行语 发表于 2014-8-26 19:13:27

第一个问题我认为真正写代码的时候不会这么做的。
因为你整数只取了两位,所以浮点数只能从6开始获取直到空格结束。控制串中的空白符使 scanf() 在输入流中读,但不保存结果,直到发现非空白字符为止,所以%f只能是6.000000.

神奇的小布丁 发表于 2014-8-26 19:18:57

流行语 发表于 2014-8-26 19:13
第一个问题我认为真正写代码的时候不会这么做的。
因为你整数只取了两位,所以浮点数只能从6开始获取直到 ...

没看懂:{:5_96:}

流行语 发表于 2014-8-26 19:22:54

你先上百度查一下吧。现在忙啊

神奇的小布丁 发表于 2014-8-26 19:24:22

流行语 发表于 2014-8-26 19:22
你先上百度查一下吧。现在忙啊

好的吧{:9_241:}

神奇的小布丁 发表于 2014-8-26 19:41:36

流行语 发表于 2014-8-26 17:45
第一个问题:咱们鱼C论坛了有很详细的讲解,你搜索一下。
第二个问题:scanf("%2d%f"),%2d说明的是整数只 ...

三克油!我全懂了{:9_227:}

oggplay 发表于 2014-8-26 19:49:05

那里的答案哦??

流行语 发表于 2014-8-26 21:42:16

懂了就OK了。

神奇的小布丁 发表于 2014-8-26 21:46:03

oggplay 发表于 2014-8-26 19:49
那里的答案哦??

啊咧,谢谢你哦!
不过跟我范了同样一个错误呢→_→ 快注意!仔细看输入的是 876 543.0 六的后面有空格键哦,所以,六后面的数字就没法读取了呢,{:5_109:}
我一开始没有注意那个空格,所以才不懂,最后竟然发现空格这货,发现竟然是自己粗心才会这样,当时是哭笑不得啊啊啊 啊啊 啊啊 啊{:5_100:}

流行语 发表于 2014-8-28 17:10:24

以后细心点,不要让这种错误绑住自己的脚步。

神奇的小布丁 发表于 2014-8-28 21:04:31

流行语 发表于 2014-8-28 17:10
以后细心点,不要让这种错误绑住自己的脚步。

嗯啦{:5_91:}
页: [1]
查看完整版本: C语言第三章考核题有几道不会,求讲解