[問題] 朋友轉學考題目

作者: HenryLiKing (HenryLiKing)   2016-05-18 11:09:30
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
codeblocks
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
iostream
問題(Question):


題目是上面的!
我和我朋友不懂的是為什麼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