分别运行下列两段程序后,y1和y2的值是( )。 程序段1: #define f(x) x*x float x, y1; x= 2.0; y1 =x/f(x); 程序段2:

admin2018-01-24  57

问题 分别运行下列两段程序后,y1和y2的值是(        )。
    程序段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.5
B、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),预编译时替换为yl=x/(x*x),程序执行结果y2=0.5。
转载请注明原文地址:https://kaotiyun.com/show/5DWZ777K
0

相关试题推荐
最新回复(0)