作者forris (乔巴)
看板TransCSI
标题[问题] 程式
时间Wed Dec 26 12:44:39 2007
1. #define DOUBLE(x) 2*x
#define PRINT(int) printf("int=%d\n",int)
#include <stdio.h>
main()
{
int m1=1,m2=2;
m1=DOUBLE(m1+m2);
PRINT(m1);
}
问程式输出为何?
(a) m1=5 (b) m1=8 (c) int=5 (d)int=8
为什麽是 c 而不是 d?
2. #include <stdio.h>
main()
{
int m1=123,m2=5;
do {m1%=m2;} while(m2--);
printf("%d\n",m1);
}
问程式输出为何?
(a)0 (b)1
(c)本程式编译时,complier 发出错误讯息,不能执行而无输出结果产生
(d)本程式执行时,发生错误,故无输出结果产生
为什麽是 d ? 难道是 while 的叙述要是 boolean type?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.116.194.99
1F:推 MrTang:第一题我用COMPILER去跑是INT=4耶... 12/26 15:49
2F:推 MrTang:怪怪.... 12/26 15:55
3F:推 MrTang:第二题我也是跟你想的一样.... 12/26 15:57
4F:→ MrTang:因为WHILE里面是做条件判断... 12/26 15:58
5F:推 alanpin:第一题:2*1+2=4 解题关键:define只是作"展开"的动作 12/26 17:03
6F:→ ccler:5对,4也对,看compile而定 12/26 18:24