#include <stdio.h> #define ADD(x) x + x main() { int m = 1, n = 2, k = 3, sum; sum = ADD(m + n) * k; printf("sum = %d\n", sum); }
sum = 9
sum = 10
sum = 12
sum = 18
ADD ( x ) x + x sum = ADD ( m + n ) * k
把 m+n 作为 x ,替换得到 m+n+m+n*k
将 m = 1 , n = 2 , k = 3带入得: 1+2+1+2*3 = 10
选B
#define是C++语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。
由于宏定义的优先级别高于其它的运算符(包括+ - * /等)
所以在该题中
先调用ADD ( m + n ),即 m + n + m + n *k。
由m = 1 , n = 2 ,k = 3得该结果为10,
'Define. 无脑使用不进行运算
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
答案选B
宏定义:原样替换
ADD ( x ) x + x
sum = ADD ( m + n ) * k
替换结果为
把 m+n 作为 x ,替换得到 m+n+m+n*k
将 m = 1 , n = 2 , k = 3带入得:
1+2+1+2*3 = 10