早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c语言宏代换选择题以下程序段中宏代换后存在错误的是_____A、#definearsize100intarray1[arsize];B、#definePI3.1415926#defineS(r)PI*(r)*(r)……

题目详情
c语言宏代换选择题
以下程序段中宏代换后存在错误的是_____
  A、#define ar_size 100
   int array1[ar_size];
  B、#define PI 3.1415926
   #define S(r) PI*(r)*(r)
     ……
    area=S(a+b);
  C、#define PI 3.1415926;
   #define S(r) (r)*(r)* PI
     ……
    area=S(a+b);
  D、#define PI 3.1415926
    #define S (r) PI*(r)*(r)
      ……
    area=S(a);
答案是D,为什么呢
▼优质解答
答案和解析
D、#define PI 3.1415926
    #define S (r) PI*(r)*(r)
      ……
    area=S(a);‘
因为 你define 的时候是S (r) 有个空格哦 而 area=S(a) 没有空格 所以宏替换会失败的
你如果在linux下编辑 你可以 gcc -E 加上你的程序