看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1463540973.A.E6A.html
CaptainH: 爛學校的爛題目 配上爛解答 05/18 11:16
PhysiAndMath: 這compiler能過嗎? 05/18 11:36
loveflames: 這解答可以扔了 05/18 11:42
Caesar08: a. 是對的 b. compile不會過,這學校不要讀了 05/18 11:47
hichcock: 107學年起程式設計 列國中必修課程....唉~~~~ 05/18 11:50
MasTerNBHD: 哈 這種題目XD 05/18 12:04
kerwinhui: 題目都寫明只是C-like而已,為什麼還會以為有compiler? 05/18 12:46
chuegou: 如果要達成解答,函式的輸入值在C裡面實際要怎麼寫? 05/18 12:49
loveflames: compiler能不能過在其次,重點在解答亂寫 05/18 12:50
chuegou: void aabb(int* x, int* y, int* z){ ...(略) } 05/18 12:51
chuegou: 這樣好像也不太對? 05/18 12:51
Schottky: 7F> C-like program 就沒有 compiler ? 05/18 12:53
Schottky: 假設的語言還是會有假設的 compiler 啊 05/18 12:53
Schottky: 沒有 reference 的東西要怎麼 call by reference ? 05/18 12:54
Caesar08: 你code不能誤差太多阿。你拿reference去接r value,是要 05/18 12:56
Caesar08: 怎麼通過compile? 05/18 12:56
Caesar08: 就算你真的拿r value reference去接(x+y),l value refe 05/18 12:56
Caesar08: rence去接y與z,答案也不是那樣。光是看x值會改變,就可 05/18 12:56
Caesar08: 以不用去這學校了 05/18 12:56
Caesar08: 我以上講的還是C++-like,如果是C-like,那reference跟 05/18 12:58
Caesar08: 本不存在 05/18 12:58
bibo9901: 超白痴的... 這老師不知道printf的 "f" 是 format ? 05/18 13:16
bibo9901: 既然只是pseudo-code幹嘛要寫print"f" 05/18 13:17
bibo9901: 然後為什麼aabb前面需要function 但 main 不用? 05/18 13:18
feeya: 虛擬碼過度簡化 題意應該是 aabb(x=x+y,y=y,z=z); 05/18 13:31
PhysiAndMath: 呼叫的時候寫x+ y 或x=x+ y差很多捏!我們就不用替 05/18 14:09
PhysiAndMath: 出題者編理由了 05/18 14:09
prismwu: @compiler: 吃我 r ref 05/18 16:13
gonnaberay: 超爛... 05/18 16:58
ksks5222: 沒資料型態,這樣能通過嗎? 05/18 18:11
tinlans: 這是「程式語言」或「計算機概論」裡和程式語言相關章節 05/18 21:14
tinlans: 會出現的考題類型。題目就寫 C-like program 了... 05/18 21:15
tinlans: 它考的是程式語言的概念,不用在意能不能編譯 XD 05/18 21:15
tinlans: 它跟程式設計不是同一門課,聖經本是小熊書 05/18 21:17
tinlans: Programming Languages Concepts and Constructs 05/18 21:18
tinlans: 「print 出來的X是5而不是2」這句請描述清楚一點,哪裡 05/18 21:22
tinlans: 有寫 print 出來是 5?圖也拍不完整 XD 05/18 21:23
tinlans: 還有為什麼你內文會寫 codeblocks 和 iostream... 05/18 21:23
tinlans: 五樓講的那個我記得是個叫 scratch 的程式,用滑鼠拉的XD 05/18 21:24
shadow0326: 退一百步先不管編譯問題好了 foo(x+y)的call by ref到 05/18 21:27
shadow0326: 底是什麼意思? 05/18 21:27
tinlans: 照片上的內容我目前沒看到什麼異常的地方。 05/18 21:29
tinlans: 就是 (x+y) 運算結果的 reference 05/18 21:29
tinlans: 所以進入 aabb 以後,aabb 的參數 x 代表的就是 5。 05/18 21:33
tinlans: z = z + x 就是 z = 5 + 6,所以 z 是 11。 05/18 21:33
tinlans: 然後不用太執著 C-like,C-like 有很意思,syntax 某部分 05/18 21:34
tinlans: 像 C,譬如使用 { } 而不是 begin end,這也能算 XD 05/18 21:35
tinlans: C-like 有很多意思 05/18 21:35
tinlans: 沒有說全部的語法語意跟 C 必須都很像,這就是 PL 考題。 05/18 21:36
tinlans: 這題目其實貼 CSSE 板比較適合,可惜那邊沒人了 XD 05/18 21:38
tinlans: 對 C++ programmer 來講 rvalue ref 是 C++11 以後才支援 05/18 21:41
tinlans: 的東西,但這個「概念」在幾十年前就存在於 PL 領域。 05/18 21:42
tinlans: 對 PL 學科來說,rvalue ref 不過就是一種 ref 罷了。 05/18 21:42
tinlans: C++ 只是原本不支援它,並不代表這是多新奇的東西。 05/18 21:43
Caesar08: 如果你用r value reference就可以說得通。問題是x的結果 05/18 21:53
Caesar08: 再怎麼樣,x都不會變成5 05/18 21:54
tinlans: 原來照片下半部我沒看到,輸出結果:5 5 11 當然是錯的 05/18 22:41
tinlans: 但是這解答是誰給的? 05/18 22:42
tinlans: 剛剛圖只開到 z = 6 -> 11 這邊,難怪我看不懂原 po 問啥 05/18 22:43
tinlans: 剛看到 x = 2, y = 3 -> 5, z = 6 -> 11 這三格,我以為 05/18 22:46
tinlans: 解答就是 2 5 11,剛剛重新點開才發現下面沒開到 XD 05/18 22:46
bibo9901: 轉學考沒考PL(吧) 應該是程式設計之類的 05/19 03:23
bibo9901: 搞不好這個語言的operator+會mutate它的左運算元呀XDD 05/19 03:25
tinlans: 計概含 PL,以前預官考試也會涵蓋到 05/19 03:52
tinlans: 我覺得解答不是校方提供的,因為題目英文解答中文 05/19 03:52
tinlans: 而且題目開頭寫「例」,很像參考書或補習班講義 05/19 03:54
tinlans: 大一計概其實是資訊科學導論,連 CPU 排程跟數位邏輯都在 05/19 03:56
tinlans: 範圍內 05/19 03:56
tinlans: 所以造就以前管院教 office 結果預官考完罵老師的鬧劇 05/19 03:57
MOONRAKER: 以前某校的計算機概論也是講點BCD,再寫網頁 05/19 10:01
MOONRAKER: 老師整天忙選舉 常常是他的博士生來上課 05/19 10:01
me356500: 不好意思 aabb是什麼 我怎看不懂 05/19 22:42
me356500: 啊 沒看到上面有 05/19 22:43
tinlans: 最近 imgur 開圖怪怪的 XD 05/20 01:10