一道C语言题目,请给出解题过程

#defineSQR(x)x*xvoidmain(){ints=8,a=2,b=3;s=SQR(a+b)*4;printf("s=%d\n",s);}输出结果是s=20... #define SQR(x) x*x
void main()
{
int s=8,a=2,b=3;
s=SQR(a+b)*4;
printf("s=%d\n",s);
}
输出结果是s=20
展开
 我来答
花式码农
2007-10-19 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4894
采纳率:0%
帮助的人:4715万
展开全部
此题只需做如下修改就可以得到不一样的答案:

#include <stdio.h>
//#define SQR(x) x*x

int SQR(int x)
{
return x*x;
}

int main()
{
int s=8,a=2,b=3;

s=SQR(a+b)*4;

printf("s=%d\n",s);

return 0;
}
//#define SQR(x) x*x 没有返回值,只有函数的形而没有函数的实,所以答案是20,相当的准确,LZ还不错啊,这个题都研究出来了,很容易出错的哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c46e1d0
2007-10-19 · TA获得超过537个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:150万
展开全部
楼上你错的
以来s=SQR(a+b)*4就相当与
s=a+b*a+b*4=2+3*2+3*4=20
只是完全的字符代替
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxcv8356631
2007-10-19 · TA获得超过555个赞
知道答主
回答量:187
采纳率:0%
帮助的人:129万
展开全部
int a[4]={0,4,5,13}, *p;
p=&a[2];
printf("*p++=%d\n",*p++);//*p=4.而*的级别高于++.所以是先输出*p的内容在++.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友923737d75
2007-10-19
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
我完全同意xkfrxh 的做法 这种才是对的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liucheng623
2007-10-19 · TA获得超过294个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:166万
展开全部
xkfrxh说得对,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式