有以下程序 #include #define F(x) 2.84+x #define PR(a) printf("%d" ,(int)(a)) #define PRINT(a) PR(a);putchar(’\n’) main() { PRINT( F(

admin2015-07-28  29

问题 有以下程序
#include
#define F(x) 2.84+x
#define PR(a) printf("%d" ,(int)(a))
#define PRINT(a) PR(a);putchar(’\n’)
main()
{
PRINT( F(5)*2 );
}
程序运行后的输出结果是( )。

选项 A、12
B、13
C、15
D、11

答案A

解析 宏替换是使用宏名代替一个字符串,是一种机械、简单的置换,所以语句"PRINT(F(5)*2);"可用字符串"PR(F(5)*2);putchar(?\n?);"替换,而语句"PR(F(5)*2);"可以用字符串"printf("%d",(int)(F(5)*2))",即为"printf("%d" ,(int)(2.84+5*2)",所以输出结果为12,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/W7Jp777K
0

最新回复(0)