[问题] 朋友转学考题目

楼主: HenryLiKing (HenryLiKing)   2016-05-18 11:09:30
开发平台(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):
如果有违反版规 告知后立刻改善
谢谢大家
作者: CaptainH (Cannon)   2016-05-18 11:16:00
烂学校的烂题目 配上烂解答
作者: PhysiAndMath (老师说要爱数学)   2016-05-18 11:36:00
这compiler能过吗?
作者: loveflames (咕啾咕啾魔法阵)   2016-05-18 11:42:00
这解答可以扔了
作者: Caesar08 (Caesar)   2016-05-18 11:47:00
a. 是对的 b. compile不会过,这学校不要读了
作者: hichcock (快乐一整年 ^^~~~)   2016-05-18 11:50:00
107学年起程式设计 列国中必修课程....唉~~~~
作者: MasTerNBHD (NBHD)   2016-05-18 12:04:00
哈 这种题目XD
作者: kerwinhui (kezza)   2016-05-18 12:46:00
题目都写明只是C-like而已,为什么还会以为有compiler?
作者: chuegou (chuegou)   2016-05-18 12:49:00
如果要达成解答,函式的输入值在C里面实际要怎么写?
作者: loveflames (咕啾咕啾魔法阵)   2016-05-18 12:50:00
compiler能不能过在其次,重点在解答乱写
作者: chuegou (chuegou)   2016-05-18 12:51:00
void aabb(int* x, int* y, int* z){ ...(略) }这样好像也不太对?
作者: Schottky (顺风相送)   2016-05-18 12:53:00
7F> C-like program 就没有 compiler ?假设的语言还是会有假设的 compiler 啊没有 reference 的东西要怎么 call by reference ?
作者: Caesar08 (Caesar)   2016-05-18 12:56:00
你code不能误差太多阿。你拿reference去接r value,是要怎么通过compile?就算你真的拿r value reference去接(x+y),l value reference去接y与z,答案也不是那样。光是看x值会改变,就可以不用去这学校了我以上讲的还是C++-like,如果是C-like,那reference跟本不存在
作者: bibo9901 (function(){})()   2016-05-18 13:16:00
超白痴的... 这老师不知道printf的 "f" 是 format ?既然只是pseudo-code干嘛要写print"f"然后为什么aabb前面需要function 但 main 不用?
作者: feeya (24 August 升格为乡民)   2016-05-18 13:31:00
虚拟码过度简化 题意应该是 aabb(x=x+y,y=y,z=z);
作者: PhysiAndMath (老师说要爱数学)   2016-05-18 14:09:00
呼叫的时候写x+ y 或x=x+ y差很多捏!我们就不用替出题者编理由了
作者: prismwu   2016-05-18 16:13:00
@compiler: 吃我 r ref
作者: gonnaberay (将要成为雷)   2016-05-18 16:58:00
超烂...
作者: ksks5222 (Prue)   2016-05-18 18:11:00
没资料型态,这样能通过吗?
作者: tinlans ( )   2016-05-18 21:14:00
这是“程式语言”或“计算机概论”里和程式语言相关章节会出现的考题类型。题目就写 C-like program 了...它考的是程式语言的概念,不用在意能不能编译 XD它跟程式设计不是同一门课,圣经本是小熊书Programming Languages Concepts and Constructs“print 出来的X是5而不是2”这句请描述清楚一点,哪里有写 print 出来是 5?图也拍不完整 XD还有为什么你内文会写 codeblocks 和 iostream...五楼讲的那个我记得是个叫 scratch 的程式,用鼠标拉的XD
作者: shadow0326 (非议)   2016-05-18 21:27:00
退一百步先不管编译问题好了 foo(x+y)的call by ref到底是什么意思?
作者: tinlans ( )   2016-05-18 21:29:00
照片上的内容我目前没看到什么异常的地方。就是 (x+y) 运算结果的 reference所以进入 aabb 以后,aabb 的参数 x 代表的就是 5。z = z + x 就是 z = 5 + 6,所以 z 是 11。然后不用太执著 C-like,C-like 有很意思,syntax 某部分像 C,譬如使用 { } 而不是 begin end,这也能算 XDC-like 有很多意思没有说全部的语法语意跟 C 必须都很像,这就是 PL 考题。这题目其实贴 CSSE 板比较适合,可惜那边没人了 XD对 C++ programmer 来讲 rvalue ref 是 C++11 以后才支援的东西,但这个“概念”在几十年前就存在于 PL 领域。对 PL 学科来说,rvalue ref 不过就是一种 ref 罢了。C++ 只是原本不支援它,并不代表这是多新奇的东西。
作者: Caesar08 (Caesar)   2016-05-18 21:53:00
如果你用r value reference就可以说得通。问题是x的结果再怎么样,x都不会变成5
作者: tinlans ( )   2016-05-18 22:41:00
原来照片下半部我没看到,输出结果:5 5 11 当然是错的但是这解答是谁给的?刚刚图只开到 z = 6 -> 11 这边,难怪我看不懂原 po 问啥刚看到 x = 2, y = 3 -> 5, z = 6 -> 11 这三格,我以为解答就是 2 5 11,刚刚重新点开才发现下面没开到 XD
作者: bibo9901 (function(){})()   2016-05-19 03:23:00
转学考没考PL(吧) 应该是程式设计之类的搞不好这个语言的operator+会mutate它的左算子呀XDD
作者: tinlans ( )   2016-05-19 03:52:00
计概含 PL,以前预官考试也会涵盖到我觉得解答不是校方提供的,因为题目英文解答中文而且题目开头写“例”,很像参考书或补习班讲义大一计概其实是资讯科学导论,连 CPU 排程跟数位逻辑都在范围内所以造就以前管院教 office 结果预官考完骂老师的闹剧
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-05-19 10:01:00
以前某校的计算机概论也是讲点BCD,再写网页老师整天忙选举 常常是他的博士生来上课
作者: me356500 (呵呵)   2016-05-19 22:42:00
不好意思 aabb是什么 我怎看不懂啊 没看到上面有
作者: tinlans ( )   2016-05-20 01:10:00
最近 imgur 开图怪怪的 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com