分别运行下列两段程序后,y1和y2的值是( )。(2012年嵌入式系统设计师下半年)

分别运行下列两段程序后,y1y2的值是(    )。(2012年嵌入式系统设计师下半年)
程序段1:
#define f(x) x*x
float x, y1;
x=2.0;
y1=x/f(x);
程序段2:
#define f(x) (x*x)
float x, y2;
x=2.0;
y2=x/f(x);
A.y1=2.0,y2=0.5B. y1=0.5,y2=2.0
C.y1=2.0,y2=1.0        D.y1=1.0,y2=2.0


参考答案:A
参考解析:本题考查程序设计中有关宏定义相关的基础知识。
    由“#define”引出的宏定义,用来定义常量或宏函数,是一个符号替换的概念。程序段1中,预编译时,出现函数f(x)的地方用x*x替换,程序段2中,预编译时,出现函数f(x)的地方用(x*x)替换。因此,y1=x/f(x),预编译时替换为y1=x/x*x,按照运算符的计算顺序,首先执行x/x,因此程序执行结果y1=2.0;y2=x/f(x),预编译时替换为y1=x/(x*x),程序执行结果y2=0.5。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,转载需标明出处。
如果您有更好的解答,欢迎留言评论。

本文链接:https://ruankaoti.com/post/3875.html

评论

阅读更多

微信扫码,加入打卡学习群,分享学习资料