若有宏定义#define MOD(x,y) x%y; 执行 int z,a=15; float b=100; z=MOD(b,a) peintf("%d\n",z++); 输出什么;
时间: 2024-02-26 13:55:50 浏览: 16
根据宏定义 `#define MOD(x,y) x%y;`,把 `MOD(b,a)` 展开后得到 `b%a;`。
因为 `b` 的类型是 `float`,`a` 的类型是 `int`,所以在执行 `b%a` 时会先将 `b` 转换为 `int` 类型再做取余运算,即 `100%15`,结果为 `10`。
然后,执行语句 `z=10;`,将 `10` 赋值给变量 `z`。接着执行语句 `printf("%d\n",z++);`,先输出 `10`,然后将 `z` 的值加 `1`,此时 `z` 的值为 `11`。
因此,输出 `10`。
相关问题
若有宏定义#define MOD(x,y) x%y; 执行 int z,a=10; float b=100; z=MOD(b,a) peintf("%d\n",z++); 输出什么;
根据宏定义 `#define MOD(x,y) x%y;`,把 `MOD(b,a)` 展开后得到 `b%a;`。
因为 `b` 的类型是 `float`,`a` 的类型是 `int`,所以在执行 `b%a` 时会先将 `b` 转换为 `int` 类型再做取余运算,即 `100%10`,结果为 `0`。
然后,执行语句 `z=0;`,将 `0` 赋值给变量 `z`。接着执行语句 `printf("%d\n",z++);`,先输出 `0`,然后将 `z` 的值加 `1`,此时 `z` 的值为 `1`。
因此,输出 `0`。
用C语言有宏定义#define N 3 #define Y (n) ( (N+1) n) 执行语句 “z=2*(N+Y(5+1));”后输出z的值
根据给出的宏定义,将代码展开:
```
#define N 3
#define Y(n) ((N+1)*(n))
z = 2 * (N + Y(5+1));
z = 2 * (3 + ((3+1)*(5+1)));
z = 2 * (3 + (4*6));
z = 2 * 27;
z = 54;
```
因此,执行完后z的值为54。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)