问题 单项选择题

有一个名为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=O

D.运行结果为Y=6

答案

参考答案:D

解析:本题考查的是带参数的宏定义。不仅要进行简单的字符替换,还要进行参数替换。根据宏替换的规则,本题在进行替换宏HDY时,没有像所希望的那样将HDY(a+c,b+d)替换成(a+c)/(b+d),而是替换成了"a+e/b+d",因此结果k为6。

单项选择题
单项选择题