有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B #define PRINT(Y) printf("y=%d\n",Y) 有以下程序 #include"init.txt" ma

admin2009-03-17  27

问题 有一个名为init.txt的文件,内容如下:    #define HDY(A,B)    A/B    #define PRINT(Y)    printf("y=%d\n",Y)    有以下程序    #include"init.txt"    main()    { int a=1,b=2,c=3,d=4,k;      k=HDY(a+c,b+d);      PRINT(k);    }    下面针对该程序的叙述正确的是  

选项 A、编译出错
B、运行出错
C、运行结果为y=0
D、运行结果为y=6

答案D

解析 本题考查的是带参数的宏定义。不仅要进行简单的字符替换,还要进行参数替换。根据宏替换的规则,本题在进行替换宏HDY时,没有像所希望的那样将HDY(a+c,b+d)替换成(a+c)/(b+ d),而是替换成了“a+c/b+d”,因此结果k为6。
转载请注明原文地址:https://kaotiyun.com/show/BYXp777K
0

最新回复(0)