有以下程序  #include<stdio.h>  #define S(x)x*x/x  main()  { int k=6,j=3;   printf("%d,%d\n",S(k+j+2),S(j+k+2);  }  程序运行后的输出结果是(

admin2022-10-24  36

问题 有以下程序
 #include<stdio.h>
 #define S(x)x*x/x
 main()
 {  int k=6,j=3;
    printf("%d,%d\n",S(k+j+2),S(j+k+2);
 }
 程序运行后的输出结果是(          )。

选项 A、11,11
B、29,29
C、26,29
D、121,121

答案B

解析 #define命令是C语言中的一个宏定义命令,为了区分其他标识符,标识符一般使用大写字母。将标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。题目中的s(k+j+2)→k+j+2*k+j+2/k+j+2,经计算可得29;s(j+k+2)→j+k+2*k+j+2/j+k+2,经计算可得29。因此输出为29,29。故本题答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/vnd0FFFM
0

相关试题推荐
最新回复(0)