| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:关于C语言宏定义的问题
只看楼主 加入收藏
zjy93513
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-6-14
收藏
得分:0 
回复 8楼 包头师范学校
  我也是这么认为的   但是好像答案是D   这是2009年3月的全国计算机等级考试C的  好像那个的答案也是D  奇怪
2012-09-01 14:07
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
以下是引用zjy93513在2012-9-1 14:07:04的发言:

  我也是这么认为的   但是好像答案是D   这是2009年3月的全国计算机等级考试C的  好像那个的答案也是D  奇怪
错题一道。无需纠结。
2012-09-01 16:47
maoxiaojian
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-1
收藏
得分:1 
选C
2012-09-01 18:20
学习爱好者
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-7-10
收藏
得分:1 
回复 9楼 zklhp
加括号
2012-09-01 19:05
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:1 
程序代码:
#include<stdio.h>
#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*1+2*1+2
计算结果为7.5

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-09-01 20:34
justNPC
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:311
注 册:2012-8-11
收藏
得分:1 
选c啊 宏只替换
替换后是 PT*a+b*a+b
2012-09-01 20:44
菜鸟7号
Rank: 2
等 级:论坛游民
帖 子:21
专家分:17
注 册:2011-8-29
收藏
得分:1 
选c : PT*x*x  --->  PT*a+b*a+b =3.5*1+2*1+2
所以宏定义一般要加括号:  PT *(x)*(x) ---> PT*(a+b)*(a+b) =3.5*(1+2)*(1+2)=31.5
2012-09-02 20:37
twl286367926
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-8-16
收藏
得分:1 
改成:#define S(x)  PT*(x)*(x)  答案是:B 31.5
2012-09-04 16:17
快速回复:关于C语言宏定义的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031142 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved