一道C语言题,请大家帮帮忙,详细解释一下,谢谢

[复制链接]
查看11 | 回复5 | 2012-3-22 22:31:58 | 显示全部楼层 |阅读模式
#define定义的变量,它定义的变量只是直接地替换,用你的程序来说:i1=f(2)=2*M=2*N+1=2*5+1=11i2=f(1+1)=1+1*M=1+1*N+1=1+1*5+1=7所以最后的结果是B如果把M的定义改成#define M (N+1)那么同上面的分析:i1=f(2)=2*M=2*(N+1)=2*(5+1)=12i2=f(1+1)=1+1*M=1+1*(N+1)=1+1*(5+1)=7这时候答案就是D...
回复

使用道具 举报

千问 | 2012-3-22 22:31:58 | 显示全部楼层
呵呵,常考的一个题目。#define定义的f(x)都会替换成x*m,M会替换成N+1记住仅仅只是字符的替换一:f(2)=2*M=2*N+1=2*5+1=11二:f(1+1)=1+1*M=1+1*N+1=1+1*5+1=7B 变换的题型:#define M (N+1)那么这个括号也要替换进去的。这是出题的经常弄的陷阱...
回复

使用道具 举报

千问 | 2012-3-22 22:31:58 | 显示全部楼层
B。简单替换M和N.i1 = (2*5+1)i2 = (1+1 * 5 + 1)...
回复

使用道具 举报

千问 | 2012-3-22 22:31:58 | 显示全部楼层
B 运行结果...
回复

使用道具 举报

千问 | 2012-3-22 22:31:58 | 显示全部楼层
选D...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行