几个C语言题不会做...哥哥们帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:19:30
请给出解题过程,十分感谢!!!

1 以下程序运行结果是?
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}

2 以下程序输出结果是?
#include<stdio.h>
#define F(y) 3.84+y
#define PR(a) printf("%d",(int)(a))
#define PRINT(a) PR(a);putchar('\n')
main()
{ int x=2;
PRINT(F(3)*x);
}

3 以下程序的输出结果为?
#define PT 5.5
#definr S(x) PT*x*x
main()
{ int a=1,b=2;
printf("%4.1f\n",s(a+b));
}

--------------------------
类似于第2题这种宏嵌套使用:PRINT(F(3)*x)
是由里到外先带出F(3) 再带PRINTF()
还是由外向里先带PRINTF(a)再带F(3)
我自己做的答案是
(1)100
(2)9
(3)09.5
不知道有问题不

明白了 ,你应该是第一提没弄明白,第一提K=10*(x)<(y)?(x):(y),现在能看明白不?也就是K=(10*(x))<(y)?(x):(y)

宏嵌套很简单 里外都一样的 因为宏没有运算功能 只是把代码写进去 记住没运算功能意思是又返回的值也不要返回 除非有;才可以把语句执行而有运算功能

1.150
2.13(由里到外先带出F(3) 再带PRINTF())
3.49.5