阅读下面的C语言程序,请给出正确的输出结果________。 #include #define N 10 #define s(x) x*x #define f(x) (x*x) #define g(x)

admin2018-01-24  53

问题 阅读下面的C语言程序,请给出正确的输出结果________。
    #include
    #define N 10
    #define s(x)  x*x
    #define f(x)    (x*x)
    #define g(x)    ((x)*(x))
main()
  {    int  i1,i2,i3,i4;
    i1=1000/s(N);
    i2=1000/f(N);
    i3=f(N+1);
    i4=g(N+1);
    printf(”i1=%d,i2=%d,i3=%d,i4=%d\n”,i1,i2,i3,i4);
  }

选项 A、i1=1000,i2=10,i3=21,i4=121
B、i1=10,i2=10,i3=121,i4=121
C、i1=1000,i2=1000,i3=21,i4=21
D、i1=10,i2=1000,i3=121,i4=21

答案A

解析 本题考查宏概念,以及宏替换相关的基础知识。
    表达式1000/s(N)宏替换后为:1000/10*10,因此结果为1000,而不是期待的10。
    表达式1000/f(N)宏替换后为:1000/(10*10),因此结果为10,是期待的结果。
    表达式f(N+1)宏替换后为:(10+1*10+1),因此结果为21,而不是期待的121。
    表达式g(N+1)宏替换后为:((10+1)*(10+1)),结果为121,是期待的结果。
    因此,题中程序运行结果为“1l=1000,i2=10,i3=21,i4=121”。
转载请注明原文地址:https://jikaoti.com/ti/HiI7FFFM
0

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