作者iay76 (again)
看板NTU-Exam
标题[试题] 97上 陈光华 程式设计 期中考
时间Mon Jan 19 10:53:37 2009
课程名称︰程式设计
课程性质︰选修
课程教师︰陈光华
开课学院:文学院
开课系所︰图资系
考试日期(年月日)︰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
1F:推 abacada :不知道要丢在那 先收进去 麻烦小板主罗~ 01/20 02:16