返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 7, 主题|小节 2
进行中

7.1 关系运算符的基础魔法

2025年9月22日
课 进展
0% 完成

“小朋友们,”我笑着说,”今天我们要学习一种新的魔法 – 关系运算!这就像是给计算机装上了一双眼睛,让它能够判断数字之间的关系。”

小明好奇地问:”这和我们比较谁高谁矮一样吗?”

“没错!让我们来看看计算机是如何进行比较的!”

[图片:六个关系运算符的图形化展示,每个运算符配有简单示例]

7.1.1 六个神奇的比较符号

[图片:一个表格,展示六个关系运算符的符号、含义和示例]

// 1. 大于:>
printf("%dn", 5 > 3);     // 输出:1(表示真)
printf("%dn", 3 > 5);     // 输出:0(表示假)

// 2. 大于等于:>=
printf("%dn", 5 >= 5);    // 输出:1(等于也是大于等于)
printf("%dn", 4 >= 5);    // 输出:0(既不大于也不等于)

// 3. 小于:<
printf("%dn", 3 < 5);     // 输出:1(表示真)
printf("%dn", 5 < 5);     // 输出:0(等于不是小于)

// 4. 小于等于:<=
printf("%dn", 3 <= 3);    // 输出:1(等于也是小于等于)
printf("%dn", 4 <= 3);    // 输出:0(大于不是小于等于)

// 5. 等于:==  (注意是两个等号!)
printf("%dn", 4 == 4);    // 输出:1(完全相等)
printf("%dn", 4 == 5);    // 输出:0(不相等)

// 6. 不等于:!=
printf("%dn", 4 != 5);    // 输出:1(确实不相等)
printf("%dn", 5 != 5);    // 输出:0(相等所以不是不等于)

7.1.2 关系运算的结果特点

[图片:展示关系运算结果只有0和1的概念图,用红绿灯表示真假]

小丽举手问道:”小C老师,为什么比较的结果都是0和1呢?”

“这是计算机的一个重要约定:

  • 1表示’真’(True):比较结果成立
  • 0表示’假’(False):比较结果不成立”
int a = 10;

// 基本比较
printf("%dn", a > 5);      // 输出:1(10确实大于5)
printf("%dn", a < 5);      // 输出:0(10不小于5)

// 结果永远是0或1
printf("%dn", 100 > 50);   // 输出:1(即使差很多,结果也是1)
printf("%dn", 100 < 50);   // 输出:0(即使差很多,结果也是0)

// 多个数字的比较
int b = 20, c = 30;
printf("%dn", b > a);      // 输出:1(20大于10)
printf("%dn", b > c);      // 输出:0(20不大于30)

7.1.3 等号相关的特殊情况

[图片:对比展示单等号和双等号的区别,使用箭头表示赋值,天平表示比较]

“小朋友们要特别注意,”我强调道,”在C++中,一个等号和两个等号是完全不同的魔法!”

int x = 5;    // 一个等号是赋值
printf("%dn", x == 5);   // 两个等号是判断相等

// 常见错误示范
int y;
printf("%dn", y = 5);    // 这是赋值,不是判断!输出:5
printf("%dn", y == 5);   // 这才是判断相等,输出:1

// 不等于的使用
printf("%dn", 5 != 6);   // 输出:1(5确实不等于6)
printf("%dn", 5 != 5);   // 输出:0(5等于5,所以不是不等于)

练习题:

  1. 选择题:以下哪个表达式的结果为1?
    A. 5 = 5
    B. 5 == 6
    C. 5 != 5
    D. 5 != 6

正确答案:D
解析:A是错误语法(单等号用于赋值),B和C的比较结果为假(0),只有D的比较结果为真(1)。

  1. 判断题:表达式 x = 5 和 x == 5 的含义是相同的。

正确答案:×
解析:x = 5 是赋值操作,将5赋值给x;而x == 5 是判断x是否等于5的关系运算。