[考题] 求解计算机概论两题

楼主: happybean (豆子)   2014-11-23 12:22:38
如题请版上高手帮忙解惑
1. 94年高考三级第一试 资讯考科的专业知识测验(资料结构、程式语言),第57题
有一C程式中定义了以下宏(macro):
#define sum(a, b)a+b
#define prod(a, b)a * b
则当以下两行叙述执行结束时,ans1和ans2之值分别为何?
ans1=10 * sum(1, 2);
ans2=prod(3+4, 5);
(A)ans1=12, ans2=23 (B)ans1=12, ans2=25
(C)ans1=30, ans2=23 (D)ans1=30, ans2=35
=> 答案为何为(A) ??
2. 新思路学习评量题目
若以下程式采用静态领域规则来决定变量的领域,则其执行结果为何?
program Main;
var x : integer;
procedure p1;
procedure p2;
var x : integer;
begin {p2}
x:= 0
p1
end; {p2}
begin {p1}
while x < 2 do
begin
write(x);
x := x + 1;
p2
end;
write(x)
end; {p1}
begin {Main}
x := 0;
p1
end
(A) 0 1 2 2
(B) 0 1 2 2 2
(C) 上述程式在编译时会有错误,因为程式中使用了一个未经宣告的变量
(D) 程式将产生无穷尽(infinite )的结果,因为这个程式包含了一个无穷递回。
=> 答案为何为(B) ??
如留言难以解释,再烦请版上大大站内私信解答,谢谢^^
作者: okstephen1 (ㄌㄩㄝ)   2014-11-23 13:42:00
宏你就把程式码直接带进去 ans1=10*a+b

Links booklink

Contact Us: admin [ a t ] ucptt.com