下列程序的输出结果是【 】。 #define PR(a)printf("%d\t",(int)(a)) #define PRINT(a)PR(a);printf("ok!") main()

admin2009-02-15  35

问题 下列程序的输出结果是【  】。
          #define PR(a)printf("%d\t",(int)(a))
          #define PRINT(a)PR(a);printf("ok!")
          main()
          { int i,a=1;
            for(i=0;i<3;i++)
            PRINT(a+i);
            printf("\n");}

选项

答案1 2 3 ok!

解析 本题主要考查了printf函数用在了宏替换中。宏替换不是函数调用,只是一种简单的字符替代。所以本题中PRINT(a+i)展开为:printf(“%d\t”,(int) (a+i)),当i=0时,输出1;当i=1时,输出2;当i=2时;输出3;for循环结束后输出ok!。
转载请注明原文地址:https://jikaoti.com/ti/cdK0FFFM
0

最新回复(0)