一道C语言题,请大家帮帮忙,详细解释一下,谢谢
(43)有以下程序#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2)...
(43)有以下程序
#include <stdio.h>
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(“%d %d\n”,i1,i2);
}
程序的运行结果是________。
A)12 12 B)11 7 C)11 11 D)12 7 展开
#include <stdio.h>
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(“%d %d\n”,i1,i2);
}
程序的运行结果是________。
A)12 12 B)11 7 C)11 11 D)12 7 展开
6个回答
展开全部
呵呵,常考的一个题目。#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=7
B
变换的题型:
#define M (N+1)
那么这个括号也要替换进去的。这是出题的经常弄的陷阱
f(2)=2*(N+1)=2*(5+1)=12
f(1+1)=1+1*M=1+1*(N+1)=1+1*(5+1)=7
记住仅仅只是字符的替换
一: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=7
B
变换的题型:
#define M (N+1)
那么这个括号也要替换进去的。这是出题的经常弄的陷阱
f(2)=2*(N+1)=2*(5+1)=12
f(1+1)=1+1*M=1+1*(N+1)=1+1*(5+1)=7
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B。简单替换M和N.
i1 = (2*5+1)
i2 = (1+1 * 5 + 1)
i1 = (2*5+1)
i2 = (1+1 * 5 + 1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-22
展开全部
B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询