求大神三道选择题的具体解题分析,谢谢了,在线等。
1个回答
展开全部
16.
#define SQR(a) 2*a*a 当调用SQR(3 + 4)时宏展开即为2 * 3 + 4 * 3 + 4 = 22
若#define SQR (a) 2 * (a) * (a),即为2 * (3 + 4) * (3 + 4)= 98
17.
a选项中要把n传给p,必须把n的地址传给p,即p = &n;
b选项中scanf要传参数地址而*p是取内容错误。
c选型中虽然传了地址,但此时不是变量n的地址,而是指针变量p的地址。
18.
*是对指针变取内容,所吧b。d选项错误,没有取内容而c中,H没有加单引号不是字符常量
所以选a。
#define SQR(a) 2*a*a 当调用SQR(3 + 4)时宏展开即为2 * 3 + 4 * 3 + 4 = 22
若#define SQR (a) 2 * (a) * (a),即为2 * (3 + 4) * (3 + 4)= 98
17.
a选项中要把n传给p,必须把n的地址传给p,即p = &n;
b选项中scanf要传参数地址而*p是取内容错误。
c选型中虽然传了地址,但此时不是变量n的地址,而是指针变量p的地址。
18.
*是对指针变取内容,所吧b。d选项错误,没有取内容而c中,H没有加单引号不是字符常量
所以选a。
追问
16.为什么调用SQR(3+4)展开是2*3+4*3+4,这个式子怎么得来的?
追答
宏定义不是#define SQR(a) 2*a*a 这个么。
你调用SQR(3 + 4)相当于把 a 换成3 + 4
就为 2 * 3 + 4 * 3 + 4,直接换什么都不要动,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询