課程名稱︰程式設計
課程性質︰選修
課程教師︰陳光華
開課學院:文學院
開課系所︰圖資系
考試日期(年月日)︰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