12.必答[填空题] int a=1,b=2,c;c=a+=b,1; 请问c变量的值是多少? (进阶) 13.必答[填空题]设int x=1.y=2,a=3;有三目运算符: a=6?x++:y++; 请问运算结束后a变量的值是多少? (进阶) 请写出a++自加的6个语言点。(高阶)
时间: 2023-03-22 17:03:44 浏览: 77
12. 代码中的赋值语句为:c = (a = b, 1),这是一个逗号运算符的应用,它的运算规则是先计算逗号左侧的表达式 a = b,再计算逗号右侧的表达式 1,并将最终的结果赋值给变量 c。因为逗号运算符的优先级最低,所以表达式中的赋值运算符会先被计算,因此先执行 a = b,将变量 a 的值赋为 2,然后再计算逗号右侧的表达式 1,将结果 1 赋值给变量 c。因此最终变量 a 的值为 2,变量 b 的值为 2,变量 c 的值为 1。
13. 代码中的三目运算符的运算规则是先判断条件表达式的值,如果为真,则计算冒号左侧的表达式的值并返回;否则计算冒号右侧的表达式的值并返回。因此,在本题中,如果 a=6,则返回变量 x 的值,即 1;否则返回变量 y 的值,即 2。因为 a=3,所以条件表达式的值为真,所以最终结果为 1。
以下是 a 自加的六种语言点:
1. Java: a += 6;
2. C++: a += 6;
3. Python: a += 6;
4. JavaScript: a += 6;
5. C#: a += 6;
6. Ruby: a += 6;
相关问题
12.必答[填空题] int a=1,b=2,c;c=a+=b,1; 请问c变量的值是多少? (进阶) 13.必答[填空题]设int x=1.y=2,a=3;有三目运算符: a=6?x++:y++; 请问运算结束后a变量的值是多少? (进阶)
12. 这道题是关于运算符优先级的问题。在这里,赋值运算符“=”的优先级高于逗号运算符“,”。所以这条语句的执行顺序是从右到左,首先执行a=b,然后把这个表达式的结果1赋值给c。因此,a和b都被赋值为2,而c的值为1。
13. 这条语句包含了条件运算符“? :”,也称为三元运算符。它的基本形式是:条件表达式 ? 表达式1 : 表达式2。如果条件表达式的值为真,则返回表达式1的值,否则返回表达式2的值。在这里,如果a的值等于6,则x的值为3,否则y的值为2。因此,最终的结果取决于a的值。无论最终结果是x还是y,都不会对a的值产生影响,因为a没有在条件运算符中使用。所以a的值仍然为3。
C语言 宏定义EX(a,b)填空: a=a+b,实现x和y值的交换
可以使用以下宏定义实现x和y值的交换:
```
#define EX(a,b) do { \
a = a + b; \
b = a - b; \
a = a - b; \
} while (0)
```
使用方法:
```
int x = 10;
int y = 20;
EX(x, y);
printf("x=%d, y=%d\n", x, y); // 输出 x=20, y=10
```