C语言:已知有宏定义#define M 3+2 请问表达式3*M*3的值是
A.45 B.27 C.28 D.15
为什么是15 不是45
人气:433 ℃ 时间:2019-10-19 12:40:30
解答
因为编译时遇到宏只是展开,在没有加括号的情况下,3*M*3 展开为 3*3+2*3,所以是15.
一般定义宏都强调注意这点,要加括号
#define M (3+2)
这样就能得到45了.
推荐
- 、设有以下宏定义:#define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为 D .A
- 若有以下宏定义:#define N 3 #define Y(n) ((N+1)*n) ,执行语句“z=2*(N+Y(5+1));”后,Z的值是?
- 设有宏定义命令:#define SUM 2+3 则表达式5+SUM*5的值为() A)50 B)30 C)22 D)20
- 用波长λ=600nm的单色光做杨氏双缝实验,在光屏P处产生第五级亮纹,现将折射率n=1.5的玻璃片放在其中一束光线的光路上,此时p处变成中央亮纹的位置,则此玻璃片的厚度是多少?
- 求方程m2-2mn+14n2=217的自然数解.
- 13根火柴摆成一个英语单词EVEN,每个字母移动一根火柴,使其成为一个四字成语
- 设l直线的方程为Ax+By+c=0(a,b不同时为0),根据下列条件,求出A,B,C应满足的条件
- 什么是过去分词做定语(多点句子和及解析)
猜你喜欢