一个c语言题目 急

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:55:34
#define P 3
#define F(int x){return (P*x*x);}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是
A 192
B 29
C 25
D 编译出错

答案是编译出错 为什么呢

选 D 编译出错 并非少了#include <stdio.h>

行 #define F(int x){return (P*x*x);} 定义错误!
编译时提示 错误xx: 无效的宏参数分隔符

答案: http://www.blog.edu.cn/UploadFiles/2007-6/63801583.doc

全国计算机等级考试二级笔试试卷基础部分和C语言程序设计
选择题第24题

参考百度地址:

http://www.baidu.com/baidu?word=%23define+P+3+%0D%0A%23define+F%28int+x%29%7Breturn+%28P*x*x%29%3B%7D+%0D%0Amain%28%29+%0D%0A%7B+%0D%0Aprintf%28%22%25d%5Cn%22%2CF%283%2B5%29%29%3B+%0D%0A%7D&tn=max2_cb

B
3*3+5*3+5
一般这种题目就是这么考,不会选d

太杂了 不符合语言的习惯 看起来很乱
你按正规的方法写看看
还有就是没头文件

F(int x){return (P*x*x);}
在F(int x)的后面应该是空格的吧。
#define 只能是用来进行宏定义的。
好像没办法传参数。所以建议是可以用函数调用来实现。

#define F(int x){return (P*x*x);}