☰
C语言运算符表达式作业错题整理
2026/10/15 2:16:57 网站建设 项目流程

1
题目:以下不能正确表示代数式4cd/ab的C语言表达式是( )
A. 4cd/a/b
B. cd/a/b4
C. c/a/bd4
D. 4cd/a*b

✅答案:D
解析: 它看的是优先级,*和/优先级相等,所以从左到右,不可以看成数学那种,必须一个一个往后算
2

题目:表达式 (int)((double)9/2)-(9)%2 的值是______。
A.0 B.3 C.4 D.5

✅答案:B
解析:

  1. (double)9 → 9.0; 9.0 / 2 = 4.5
  2. (int)4.5 强制转整型,直接截断小数得到 4
  3. 9 % 2 = 1
  4. 4 - 1 = 3
    一定要注意到底是/还是%,不要看岔眼了

3

题目:下面程序的运行结果是

c

#include<stdio.h>
void main()
{
int y=5, x=14;
y=((x=3*y,x+6),x-1);
printf(“x=%d,y=%d”,x,y);
}

A. x=27,y=27
B. x=12,y=13
C. x=15,y=14
D. x=y=27

✅答案:C
解析:逗号运算符,从左往右执行,整个表达式的值 = 最右侧表达式的值

  1. x = 3y = 35 = 15
  2. x+6 计算得到21,但x本身值不变,仍然是15
  3. x-1 = 14 ,这个就是逗号表达式最终结果,赋值给y
    结果: x=15,y=14

注意:那个x+6是没用的,是专门放在那里吓人的

4

题目:设有定义: int x=2; ,以下表达式中,值不为6的是______。
A. x*=x+1
B. x++,2x
C. x
=(1+x)
D. 2*x,x+=2

✅答案:D
解析:逗号表达式,结果取最右边。
A: x = x*(x+1) =23=6 (后面一个x保留了原值)
B: x++ 后x=3, 2
x = 6
C: x = x*(1+x)=23=6
D: 2
x 算出4(不改变x);然后 x += 2 ,x变成4,整个表达式结果是4。
注意:2*x是没用的,放在那里忽悠人

5

题目:表达式 a+=a-=a=9 的值是( )
A.9 B.-9 C.18 D.0

✅答案:D
解析:复合赋值运算符,从右向左计算
复合一定是从右往左,然后把每一项展开。

  1. a=9 ;
  2. a -= a → a = a-a = 0 ;
  3. a += a → a =0+0 =0

6

题目:以下关于运算符优先顺序的描述中正确的是
A. 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符
B. 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符
C. 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
D. 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符

✅答案:C
解析:优先级从高→低:算术 > 关系 > 逻辑 > 赋值。
题干 < 代表优先级低于,所以:赋值 < 逻辑 < 关系 < 算术。

口诀:算术最高(加减乘除),然后关系(大于小于等于),再逻辑(或与),(赋值,复合)最低。

7

题目:设x、y、t均为int型变量,则执行语句: x=y=3;t=++x||++y; 后,y的值为
A.不定值 B.4 C.3 D.1

✅答案:C
解析: || 逻辑短路:左边表达式为真,右侧完全不执行(非0为真,是真的就直接短路)
&&它如果要正确,要两边都对。但是只要前一个错了,后面就不用看

  1. ++x ,x自增为4,非0 →条件为真
  2. ++y 不会执行,y保持原值3。

8

题目:设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A.3 B.4 C.11 D.12

✅答案:A
解析:后置自增 x++:先用原值参与计算,整个表达式算完,x才+1(先运算,x再加1,一定是x而不是表达式)

  1. 代入x原值11: 11 * 1 / 3
  2. int整数除法,直接舍弃小数:11/3 = 3
  3. 表达式运算结束之后,x才变成12

⚠️重点区分:表达式结果=3;变量x最终值=12。选择题最爱在这里挖坑。

记忆口诀: x++ 先运算后加1; ++x 先加后运算。

9

题目:判断字符型变量x是否是大写字母的正确表达式是___
A. ‘A’ <= x <= ‘Z’
B. (x>=A) && (x <= Z)
C. (‘A’<= x) && (‘Z’ >= x)
D. (x >=‘A’) && (x <=‘Z’)

✅答案:D
解析:
A错误,C语言不支持连续比较;
B错误,A、Z没有单引号,会被当成未定义变量;
C逻辑写反;
D标准写法,x大于等于’A’并且小于等于’Z’。

###10
题目:若有说明和语句: int a=5; a++; 此处表达式 a++ 的值是
A.7 B.6 C.5 D.4

✅答案:C
解析:后置 a++ ,表达式本身的值是自增前的原值5;运算结束,变量a才变成6。

坑:题目问【表达式的值】,不是问变量a最后的值!

📌 错题核心总结

  1. 后置自增 x++ :先用旧值计算整个表达式,全部算完之后变量才+1。题目区分两个概念:表达式的值 vs 变量最终值,这是选择题头号坑。
  2. 逗号运算符:从左往右执行,整个表达式结果 = 最右边式子的值。
  3. 逻辑短路 || 和 && : A||B A为真,B不执行; A&&B A为假,B不执行。
  4. 复合赋值 += -= 运算顺序从右向左。
  5. 整数除法:int/int,直接截断小数,不四舍五入。
  6. 连续比较不能简写,不能写 ‘A’<=x<=‘Z’ ,必须用 && 连接。

竹杖芒鞋轻胜马,一蓑烟雨任平生。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询