#define M(y*y+3*y) main( ){ int S,y; printf(“input a number:”); scanf(“%d”,&y); s=3*M+4*M+5*M; printf(“s=%d\n”,s)

admin2014-10-20  5

问题 #define M(y*y+3*y)
  main(    ){
  int S,y;
  printf(“input a number:”);
  scanf(“%d”,&y);
  s=3*M+4*M+5*M;
  printf(“s=%d\n”,s);
  }
对上面程序,如果从键盘上输入2,则结果为(    )。

选项 A、24
B、10
C、2
D、120

答案D

解析 上例程序中首先进行宏定义,定义M来替代表达式(y*y+3*y),则M为10,在s=3*M+4*M+5*M中作了宏调用。在预处理时经宏展开后该语句变为:s=3*(y*y+3*y)+4*(y*y+3*y)+5*(y*y+3*y);则s=3*10+4*10+5*10=120,所以结果为D
转载请注明原文地址:https://jikaoti.com/ti/MP9fFFFM
0

随机试题
最新回复(0)