题目
在C语言中,a=a+1;a+1=a;a+=1;1=a+1;a++;++a;都是正确的语句。A.对B.错
在C语言中,
a=a+1;
a+1=a;
a+=1;
1=a+1;
a++;
++a;
都是正确的语句。
A.对
B.错
题目解答
答案
在C语言中,以下是每个表达式的解析:
a = a + 1;:这是正确的。它将变量a的值增加1,并将新值赋回给a。
a + 1 = a;:这是错误的。在C语言中,a + 1不是一个左值[1](lvalue),也就是说它不能出现在赋值运算符的左边。只有变量或者可以引用内存位置的表达式才能被赋值。
a += 1;:这是正确的。它是a = a + 1;的简写形式,将变量a的值增加1。
1 = a + 1;:这是错误的。与第二个表达式相同,1不是一个左值,不能被赋值。
a++;:这是正确的。它是对变量a进行后置自增操作,意味着先返回变量的当前值,然后将变量的值加1。
++a;:这也是正确的。它是对变量a进行前置自增操作,意味着先将变量的值加1,然后返回新值。
综上,第2和第4个表达式是错误的,故答案选B。
解析
步骤 1:分析每个语句的正确性
- a = a + 1;:这是正确的。它将变量a的值增加1,并将新值赋回给a。
- a + 1 = a;:这是错误的。在C语言中,a + 1不是一个左值,也就是说它不能出现在赋值运算符的左边。只有变量或者可以引用内存位置的表达式才能被赋值。
- a += 1;:这是正确的。它是a = a + 1;的简写形式,将变量a的值增加1。
- 1 = a + 1;:这是错误的。与第二个表达式相同,1不是一个左值,不能被赋值。
- a++;:这是正确的。它是对变量a进行后置自增操作,意味着先返回变量的当前值,然后将变量的值加1。
- ++a;:这也是正确的。它是对变量a进行前置自增操作,意味着先将变量的值加1,然后返回新值。
步骤 2:总结
- 第2和第4个表达式是错误的,因此整个陈述是错误的。
- a = a + 1;:这是正确的。它将变量a的值增加1,并将新值赋回给a。
- a + 1 = a;:这是错误的。在C语言中,a + 1不是一个左值,也就是说它不能出现在赋值运算符的左边。只有变量或者可以引用内存位置的表达式才能被赋值。
- a += 1;:这是正确的。它是a = a + 1;的简写形式,将变量a的值增加1。
- 1 = a + 1;:这是错误的。与第二个表达式相同,1不是一个左值,不能被赋值。
- a++;:这是正确的。它是对变量a进行后置自增操作,意味着先返回变量的当前值,然后将变量的值加1。
- ++a;:这也是正确的。它是对变量a进行前置自增操作,意味着先将变量的值加1,然后返回新值。
步骤 2:总结
- 第2和第4个表达式是错误的,因此整个陈述是错误的。