作者HenryLiKing (HenryLiKing)
看板C_and_CPP
标题[问题] 朋友转学考题目
时间Wed May 18 11:09:30 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
codeblocks
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
iostream
问题(Question):
http://i.imgur.com/rLaCXvF.jpg
题目是上面的!
我和我朋友不懂的是为什麽print 出来的X是5而不是2?
谢谢大家
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
如果有违反版规 告知後立刻改善
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.138.53.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1463540973.A.E6A.html
1F:推 CaptainH: 烂学校的烂题目 配上烂解答 05/18 11:16
2F:推 PhysiAndMath: 这compiler能过吗? 05/18 11:36
3F:→ loveflames: 这解答可以扔了 05/18 11:42
4F:→ Caesar08: a. 是对的 b. compile不会过,这学校不要读了 05/18 11:47
5F:→ hichcock: 107学年起程式设计 列国中必修课程....唉~~~~ 05/18 11:50
6F:→ MasTerNBHD: 哈 这种题目XD 05/18 12:04
7F:→ kerwinhui: 题目都写明只是C-like而已,为什麽还会以为有compiler? 05/18 12:46
8F:推 chuegou: 如果要达成解答,函式的输入值在C里面实际要怎麽写? 05/18 12:49
9F:推 loveflames: compiler能不能过在其次,重点在解答乱写 05/18 12:50
10F:→ chuegou: void aabb(int* x, int* y, int* z){ ...(略) } 05/18 12:51
11F:→ chuegou: 这样好像也不太对? 05/18 12:51
12F:→ Schottky: 7F> C-like program 就没有 compiler ? 05/18 12:53
13F:→ Schottky: 假设的语言还是会有假设的 compiler 啊 05/18 12:53
14F:→ Schottky: 没有 reference 的东西要怎麽 call by reference ? 05/18 12:54
15F:→ Caesar08: 你code不能误差太多阿。你拿reference去接r value,是要 05/18 12:56
16F:→ Caesar08: 怎麽通过compile? 05/18 12:56
17F:→ Caesar08: 就算你真的拿r value reference去接(x+y),l value refe 05/18 12:56
18F:→ Caesar08: rence去接y与z,答案也不是那样。光是看x值会改变,就可 05/18 12:56
19F:→ Caesar08: 以不用去这学校了 05/18 12:56
20F:→ Caesar08: 我以上讲的还是C++-like,如果是C-like,那reference跟 05/18 12:58
21F:→ Caesar08: 本不存在 05/18 12:58
22F:→ bibo9901: 超白痴的... 这老师不知道printf的 "f" 是 format ? 05/18 13:16
23F:→ bibo9901: 既然只是pseudo-code干嘛要写print"f" 05/18 13:17
24F:→ bibo9901: 然後为什麽aabb前面需要function 但 main 不用? 05/18 13:18
25F:→ feeya: 虚拟码过度简化 题意应该是 aabb(x=x+y,y=y,z=z); 05/18 13:31
26F:→ PhysiAndMath: 呼叫的时候写x+ y 或x=x+ y差很多捏!我们就不用替 05/18 14:09
27F:→ PhysiAndMath: 出题者编理由了 05/18 14:09
28F:推 prismwu: @compiler: 吃我 r ref 05/18 16:13
29F:→ gonnaberay: 超烂... 05/18 16:58
30F:→ ksks5222: 没资料型态,这样能通过吗? 05/18 18:11
31F:→ tinlans: 这是「程式语言」或「计算机概论」里和程式语言相关章节 05/18 21:14
32F:→ tinlans: 会出现的考题类型。题目就写 C-like program 了... 05/18 21:15
33F:→ tinlans: 它考的是程式语言的概念,不用在意能不能编译 XD 05/18 21:15
34F:→ tinlans: 它跟程式设计不是同一门课,圣经本是小熊书 05/18 21:17
35F:→ tinlans: Programming Languages Concepts and Constructs 05/18 21:18
36F:→ tinlans: 「print 出来的X是5而不是2」这句请描述清楚一点,哪里 05/18 21:22
37F:→ tinlans: 有写 print 出来是 5?图也拍不完整 XD 05/18 21:23
38F:→ tinlans: 还有为什麽你内文会写 codeblocks 和 iostream... 05/18 21:23
39F:→ tinlans: 五楼讲的那个我记得是个叫 scratch 的程式,用滑鼠拉的XD 05/18 21:24
40F:→ shadow0326: 退一百步先不管编译问题好了 foo(x+y)的call by ref到 05/18 21:27
41F:→ shadow0326: 底是什麽意思? 05/18 21:27
42F:→ tinlans: 照片上的内容我目前没看到什麽异常的地方。 05/18 21:29
43F:→ tinlans: 就是 (x+y) 运算结果的 reference 05/18 21:29
44F:→ tinlans: 所以进入 aabb 以後,aabb 的参数 x 代表的就是 5。 05/18 21:33
45F:→ tinlans: z = z + x 就是 z = 5 + 6,所以 z 是 11。 05/18 21:33
46F:→ tinlans: 然後不用太执着 C-like,C-like 有很意思,syntax 某部分 05/18 21:34
47F:→ tinlans: 像 C,譬如使用 { } 而不是 begin end,这也能算 XD 05/18 21:35
48F:→ tinlans: C-like 有很多意思 05/18 21:35
49F:→ tinlans: 没有说全部的语法语意跟 C 必须都很像,这就是 PL 考题。 05/18 21:36
50F:→ tinlans: 这题目其实贴 CSSE 板比较适合,可惜那边没人了 XD 05/18 21:38
51F:→ tinlans: 对 C++ programmer 来讲 rvalue ref 是 C++11 以後才支援 05/18 21:41
52F:→ tinlans: 的东西,但这个「概念」在几十年前就存在於 PL 领域。 05/18 21:42
53F:→ tinlans: 对 PL 学科来说,rvalue ref 不过就是一种 ref 罢了。 05/18 21:42
54F:→ tinlans: C++ 只是原本不支援它,并不代表这是多新奇的东西。 05/18 21:43
55F:→ Caesar08: 如果你用r value reference就可以说得通。问题是x的结果 05/18 21:53
56F:→ Caesar08: 再怎麽样,x都不会变成5 05/18 21:54
57F:→ tinlans: 原来照片下半部我没看到,输出结果:5 5 11 当然是错的 05/18 22:41
58F:→ tinlans: 但是这解答是谁给的? 05/18 22:42
59F:→ tinlans: 刚刚图只开到 z = 6 -> 11 这边,难怪我看不懂原 po 问啥 05/18 22:43
60F:→ tinlans: 刚看到 x = 2, y = 3 -> 5, z = 6 -> 11 这三格,我以为 05/18 22:46
61F:→ tinlans: 解答就是 2 5 11,刚刚重新点开才发现下面没开到 XD 05/18 22:46
62F:→ bibo9901: 转学考没考PL(吧) 应该是程式设计之类的 05/19 03:23
63F:→ bibo9901: 搞不好这个语言的operator+会mutate它的左运算元呀XDD 05/19 03:25
64F:→ tinlans: 计概含 PL,以前预官考试也会涵盖到 05/19 03:52
65F:→ tinlans: 我觉得解答不是校方提供的,因为题目英文解答中文 05/19 03:52
66F:→ tinlans: 而且题目开头写「例」,很像参考书或补习班讲义 05/19 03:54
67F:→ tinlans: 大一计概其实是资讯科学导论,连 CPU 排程跟数位逻辑都在 05/19 03:56
68F:→ tinlans: 范围内 05/19 03:56
69F:→ tinlans: 所以造就以前管院教 office 结果预官考完骂老师的闹剧 05/19 03:57
70F:→ MOONRAKER: 以前某校的计算机概论也是讲点BCD,再写网页 05/19 10:01
71F:→ MOONRAKER: 老师整天忙选举 常常是他的博士生来上课 05/19 10:01
72F:推 me356500: 不好意思 aabb是什麽 我怎看不懂 05/19 22:42
73F:→ me356500: 啊 没看到上面有 05/19 22:43
74F:→ tinlans: 最近 imgur 开图怪怪的 XD 05/20 01:10