MST
星途 面试题库

面试题:C# 中运算符优先级相关问题

请写出以下 C# 表达式的运算结果,并解释运算过程:3 + 5 * 2 / (4 - 1) % 2 + 1。同时说明 C# 中运算符优先级的一般规则。
42.1万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试
  1. 运算结果:6
  2. 运算过程
    • 首先计算括号内的表达式:4 - 1 = 3
    • 然后按照运算符优先级,乘法和除法先于加法和减法进行计算。
      • 5 * 2 = 10
      • 10 / 3 = 3(这里是整数除法,结果取整)。
      • 3 % 2 = 1(取模运算,得到余数)。
    • 最后进行加法运算:
      • 3 + 1 + 1 = 6
  3. C#中运算符优先级的一般规则
    • 最高优先级
      • 基本表达式:括号()内的表达式,成员访问运算符.,数组访问运算符[]等。
      • 单目运算符++(自增),--(自减),!(逻辑非),~(按位取反),+(正号),-(负号)等。
    • 次高优先级
      • 乘除运算符*(乘法),/(除法),%(取模)。
    • 再次高优先级
      • 加减运算符+(加法),-(减法)。
    • 较低优先级
      • 移位运算符<<(左移),>>(右移)。
    • 更低优先级
      • 关系运算符<(小于),>(大于),<=(小于等于),>=(大于等于)。
    • 再低优先级
      • 相等运算符==(等于),!=(不等于)。
    • 更低优先级
      • 按位与运算符&
    • 再低优先级
      • 按位异或运算符^
    • 更低优先级
      • 按位或运算符|
    • 更低优先级
      • 逻辑与运算符&&
    • 最低优先级
      • 逻辑或运算符||
    • 赋值运算符=+=-=等,优先级较低,在表达式运算基本完成后进行赋值操作。