精華區beta NTU-Exam 關於我們 聯絡資訊
課程名稱︰程式設計 課程性質︰選修 課程教師︰陳光華 開課學院:文學院 開課系所︰圖資系 考試日期(年月日)︰97.11.12 考試時限(分鐘):180 是否需發放獎勵金:是 (如未明確表示,則不予發放) 試題 : 1. 問答題 (20%) (1)請解釋什麼是語意錯誤 (semantic error) ?什麼是語法錯誤 (syntax error) ? (2)運算子==與=意義上有何不同? (3)i++與++i意義上有何不同? (4)請將下列六種變數型態的所佔的記憶體大小 (sizeof) 排序: int、char、float、long、short、double。 2. 請說明下列程式錯誤並更正。共有五處不同的錯誤,同一種錯誤多次出現仍視為一個 。每行最前面的數字為行數,方便同學作答,非錯誤。(10%) 1 #include <stdio.h> 2 int main() { 3 int num=9, 2num=3; 4 scanf(%d, num); 5 2num = num ++; 6 printf("2num is %d\n" 2num); 7 system(pause"); 8 return; 9 } 3. 請寫出程式執行的結果(20%) #include <stdio.h> void main() { int i=331, j; float f=123.456; printf("%X\n", i); printf("%010.5f \n", f); printf("%.6E \n", f); j= f>i?f:i; printf("%d\n", j); system("pause"); return; } 4. 假設使用者分次執行下列程式,分別輸入'a'、'c'、'B'、'd'與'E',請分別說明各次 執行程式的結果 (10%) #include <stdio.h> void main() { char a; a=getch(); switch(a) { case 'a': printf("A"); case 'b': printf("B"); break; case 'c': printf("C"); default: printf("D"); } printf("\n"); system("pause"); return; } 5. 請依下列運算式,說明運算過程中變數型態的變化,請填入int、char、float、short 、或是double。(10%) char c; short s; int i; double d; float f; c * s + d / f - ( i + c ) ╲ / ╲ ╱ ╲ / ↘ ↙ ↘ ↙ ↘ ↙ ╭───╮ ╭───╮ ╭───╮ │ │ │ │ │ │ ╰───╯ ╰───╯ ╰───╯ ╲ ╱ ╱ ╲ ╱ ╱ ↘ ↙ ╱ ╭────╮ ╱ │ │ ╱ ╰────╯ ╱ ╲ ╱ ╲ ╱ ╲ ╱ ╲ ╱ ↘ ↙ ╭───╮ │ │ ╰───╯ 6. 寫出一個程式可以讀入三個整數,比較三個整數的大小,並列印出最大的整數與最小 的整數。(20%) 輸入:三個整數並以空白間隔,最後並排行。Ex: 5 6 7 輸出:MAX=[數字]換行 Ex: MAX=7 MIN=[數字]換行 Ex: MIN=5 7. 請將下列 do while 迴圈轉換為 while 迴圈以及 for 迴圈。(20%) do { y= func1(x); if (y<0) exit(1); z= func2(y); x=z; } while (z>0); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.140.133