sjfb.net
当前位置:首页 >> 以下程序输出的结果是: #DEFinE pt 5.5 #DEFinE s(... >>

以下程序输出的结果是: #DEFinE pt 5.5 #DEFinE s(...

你的程序不完整。

#define PT 3.5; #define S(X) PT*X*X; main() { int a=1,b=2; printf("%4.1f\n",S(a+b)) } S(a+b)就是 PT*a+b*a+b = 3.5*a+b*a+b = 3.5*1+2*1+2= 7.5 你写的#define S(x) PT*X*X; 中,S(x) 要改成与后面 的大写 X一致啊

#define PT 5.5 就是把PT直接换成5.5然后再编译。 main() { int a=1,b=2; printf("%4.1f\n",S(a+b)) S(a+b)就是 PT*a+b*a+b = 5.5*a+b*a+b = 5.5+2+2 = 9.5

#define S(x) PT*x*x //括号里的x和PT*x*x里的x是对应的 //就是说用括号里的内容替代右边相应的内容 S(a+b)就是把上面x原封不动的替换成a+b,即PT*a+b*a+b PT* x * x //与x一一对应 如果是这样的宏 #define S(x) PT*(x)*(x) 则S(a+b)就是PT*(a+b)...

因为宏定义#define语句属于编译预处理,它不属于c语言语句。c语言规定每一条语句后面要加上分号,但编译预处理不是c语言语句,所以不必遵守此规定。

答案选B啊 宏是原样子替换并不会计算。而且题目中的宏竟然还有分号 那句printf就被宏扩展成 printf("%4.1f\n",3.5 ;*1+2*1+2;); 函数里面有两个分号了 所以语法错误 打字不易 谢谢采纳

代码中间有汉字字符。 最简单的方式就是全部重新敲一遍。 另外, printf打错了。 其他的没什么问题。 PS 如果你是想联系, 那么这样写可以。 如果想得到正确结果 需要 #define S(x) PT*(x)*(x)

#include #define PT 3.5; #define S(x) PT*(x)*(x) int main() {int a=1,b=2;printf("%4.1f\n",S(a+b));return 0;}

很少有这样定义的。 define是宏定义,定义后 P等效于3.5; 注意这里有一个分号。 一般不这样做。 否则 比如 m=P+3; 就会被翻译成 m=3.5;+3; 导致编译错误。 更常见的是 #define P 3.5 不加结尾分号。

宏定义一个函数 类似于: #define PTxn 1 #define PTX(PTxn) if(PTxn)A=0; else A=1;

网站首页 | 网站地图
All rights reserved Powered by www.sjfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com