看板 TransCSI 關於我們 聯絡資訊
※ 引述《ysbh (烏龜回娘家)》之銘言: : 下面的題目已經有答案,只是不知道答案正確不正確 : 每一題皆有一些問題,請各位大大不吝指導 : 小弟的問題皆在 ☆請問: 之後 : (D)029.下列那一種程式語言不具有Operator overloading?(A)C (B)Ada (C)C (D)以上 : 皆有 : ☆請問:Operator Overloading是什麼?能舉個例子嗎?而哪一些程式語言支援?哪一些 : 程式言語不支援? 選項A跟C是一樣的...囧rz Ada不太清楚說...應該是可以的 運算子多載就是說一個運算子不限定只對應一種資料型態 例如說C/C++裡 int a = 1; char b = 'A'; 此時 a+a 合法; b+b 也合法 但如果今天一個程式語言不接受運算子多載,又 '+' 只能用於整數運算 會變成 a+a 合法但 b+b 不合法 : (C)030.在Bottom-up的Compiler設計中以下何者為正確?(A)以產生的Finite state : machine的狀態數目而言,LR(1)>=LALR(1)>=SLR(1)=LR(0) (B)Yacc是使用LR(1)的處理方 : 法 (C)以對程式的處理能力是LR(1)>=LALR(1)>=SLR(1)>=LR(0) (D)建立LR(1)的Parser時 : 一定要先產生LALR(1) : ☆題目完全看不懂XD,可否針對LR()、LALR()、SLR()稍作說明 看不懂+1...轉學考應該不考Compiler吧... : (A)031.在C語言中若是要於程式執行時決定Array的大小,要使用那種變數? : (A)Heap-dynamic variable (B)Stack-dynamic variable (C)Static variable (D)以上 : 皆非 : ☆請問:這三種宣告的適用時機為何? 很簡單是C 選項A跟B很難說明耶...簡單說就是馬上分配一塊記憶體空間這樣子 像是 cout<<"ABCDE"; 就是讓系統馬上分配一塊記憶體空間存"ABCDE"字串並印出來 或是 char a[] = "ABCDE"; 讓系統分一塊記憶體空間存"ABCDE"字串由a指向該空間的第 一個位置 是Heap或Stack要看Compiler設計吧 靜態變數是希望一個變數在記憶體的分配上不會因為離開了該變數的有效範圍就重新分配 簡單說一旦宣佈了一個變數是靜態變數,則該變數所分派到的記憶體位置從第一次宣告到 程式結束前都不會改變,也不會有記憶體使用相同位置。 其實如果要於程式執行時決定Array的大小,也就是宣告一個陣列為動態陣列的話 像是 int dyn_arr[var]; 的話要符合以下兩個條件: 1. var要被宣告為整數常數或其他整數變數,像: const int var; static int var; extern int var; int var; 2. var 要在動態陣列宣告前就能確定數值 : (A)032.關於Pointer或Reference資料型態的使用,以下何者為正確?(A)C語言的Pointer : 使用可能會產生Dangling pointer (B)C++語言的Pointer使用不會產生Dangling : pointer (C)Java語言可能會產生Dangling pointer (D)Java語言的Pointer使用可能會產 : 生Lost heap-dynamic variable : ☆請問:Dangling pointer和Lost heap-dynamic variable各是何義? Dangling pointer:http://en.wikipedia.org/wiki/Wild_pointer Lost heap-dynamic variable不是一個字詞... 答案A一定對,B一定錯 JAVA我不熟所以C跟D不知道 : (B)033.關於程式語言中Short-Circuit Evaluation,以下何者為非?(A)通常只用在 : Relational expression而非Arithmetic expression (B)C語言若有進行Relational : expression的運算,不一定會啟用Short-Circuit Evaluation (C) C++語言若有進行 : Relational expression的運算,一定會啟用Short-Circuit Evaluation (D)Ada程式語言 : 提供程式設計師來控制Short-Circuit Evaluation的啟動 : ☆請問:Short-Circuit Evaluation是什麼? http://0rz.tw/XmcjU 拜託你Google一下吧...維基百科也有英文版可以查 : (B)035.在Multithreaded process的操作系統中,以下哪一些項目是屬於同一個Process : 的Thread共享的?(a)Register values(b)Heap memory (c)Global variables (d)Stack : memory : (A)b (B)bc (C)abc (D)abcd : ☆請問:這四種各用於何處? 轉學考沒聽說考到OS的... 不過這或許是我等下的考試內容,我先筆記一下= = : (D)036.以下敘述何者為錯誤?(A)l-value為一變數其儲存位置的位址 (B)Dynamic type : binding是在一個變數第一次被給予值時決定變數的型態(type) (C)Fortran程式語言對變 : 數的型態可以採用Implication variable declaration (D)Java程式語言對變數的型態可 : 以採用Implication variable declaration : ☆請問:是否可以針對各選項做說明 由請PL(程式語言)強者,這邊我上課沒專心聽... 我懷疑你是要考轉大3或是研究所吧... : (D)042.下列敘述中,請選出正確的。(A)Attribute grammar大量使用於現今程式語言編 : 譯器設計 (B)Extended BNF(EBNF)的定義能力比Context free grammar(CFG)強 (C)使用 : Context free grammar(CFG)無法將一般算式中的Operator precedence及Associativity : 定義出來 (D)C語言中若變數未宣告就使用,是一種Semantics error(語法錯誤) : ☆請問:是否可以針對各選項做說明 你去找老師或翻書吧 前面扯到自動機&自然語言,最後一個選項卻是PL...= = : (A)043.副程式名當作副程式的參數,關於被傳入的副程式執行時的參考環境(Reference : environment),以下那一方法(A)Shallow binding (B)Deep binding (C)Ad hoc : binding (D)以下皆非 : ☆請問:這三種方法各是什麼?適用時機為何? 看看系統程式或PL相關書籍,我相信書上有講 許多學校都會用相同的書來上課,看那幾本就對了 : (D)044.關於Generic Subprograms,以下何者為非?(A)Ada有提供 (B)C++有提供,稱為 : template function (C)C++的template function的實體化是於第一次呼叫function時作 : 用 (D)C++若同一個template function實體化出兩個不同的function,則目的程式碼中只 : 產生一個function : ☆請問:什麼是Generic Subprograms? Google吧... 我認為你的問題很多都可以在書上或Google找到 另外轉學考好像不會考那麼難... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.92.133
zptdaniel:第一題應該是把其中一個C改成C++,答案應該是D沒錯. 04/27 09:19
zptdaniel:因為C其實也有operator overloading. *就是一個例子 04/27 09:20
zptdaniel:對指標加上*的話是取值,對兩個數值使用*則是相乘 04/27 09:20
RJking:我沒說沒有阿... 04/27 21:25
zptdaniel:喔~沒看清楚嘛^_^ 04/27 21:28
ysbh:請問依你所說~VB是否也支援Operator overloading呢? 04/27 21:40
ysbh:如 "A" & 3 或是 "3" + 5 04/27 21:41
RJking:你說勒? 04/27 22:00
RJking:阿補一下,Ada會檢查型別....Operator有沒有多載應該還是有 04/27 22:01
MiniADrift:推RJking大的熱心.... 05/15 08:19