热门搜索 :
考研考公

计算机二级C语言。6.5怎么来的

发布网友 发布时间:2022-03-01 09:09

我来回答

5个回答

热心网友 时间:2022-03-01 10:38

用预编译命令#define 定义常量并嵌套的话,系统是不会给你加“括号”的。比如:
#define a 40;
#define b 20;
#define c a+2;
#define d a*c;
其中,d应该是:d=40*40+2=162,而不是d=40*(40+2).
同理,你所给题目中,y=3*Q+2/2=8.5(已经用VC++6.0检测过,结果为8.5,检测程序如下:
#include"stdio.h"
#define Q 2.5
#define P Q+2
#define T 3*P
int main(void)
{float y=T/2;
printf("y=%f",y);
return 0;}
)

热心网友 时间:2022-03-01 11:56

编译器替换宏时是比较机械的:
Q+2先被替换成2.5+2这是P的定义,T的定义用P替换为3*2.5+2
y=T/2;最终被替换为y=3*2.5+2/2;用的值是8.5

热心网友 时间:2022-03-01 13:31

答案错了
y=3*2.5+2/2
y==8.5

热心网友 时间:2022-03-01 15:22

3*2.5+2/2 =8.5
答案应该是错的

热心网友 时间:2022-03-01 17:30

不知道是不是答案有误,我运行出来的结果是8.5.
y=t/2; // y=3*q+2 /2 ——> y=3*2.5+2/2
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top