以下程序中,输出值是?

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:38:38
#define M 3
#define N M+1
#define NN N*N/2
main()
{
printf ("%d\n",NN);
}
A 5 B 6 C 7 D 8
答案是6 想不通

首先:NN用N*N/2来代替
再次:N用M+1 代替 就是M+1*M+1/2
最后:M用3来代替 就是3+1*3+1/2=3+3+0=6

N*N/2=M+1*M+1/2再将M代入即可求得NN=6
切不可先将M代入求出N再求NN

NN写出来是3+1*3+1/2由于是int型的运算,取整结果为3+3=6

NN=N*N/2=M+1*M+1/2=3+1*3+1/2=3+3+0=6