知识点8:关系运算符

知识点分析

(1) C语言中的关系运算符:

运算符 含义 优先级
< 小于 点击查看
<= 小于或等于 点击查看
> 大于 点击查看
>= 大于或等于 点击查看
== 等于 点击查看
!= 不等于 点击查看

(2) C语言关系运算表达式的结果:

C语言的关系运算表达式的结果只有 1 或 0。不存在 TRUE 和 FALSE。

(3) C语言中的关系运算符的优先级低于算术运算符。

(4)关系运算符的优先级:

① "<"、 "<="、 ">"、 ">=" 的优先级相同。

② "=="、"!=" 的优先级相同。

③ "<"、 "<="、 ">"、 ">=" 的优先级高于 "=="、"!="。

巩固提高

1.下列程序的运行结果是

#include<stdio.h>
int main()
{
int a=10, b=8;
printf("%d", a!=b);
getchar();
return 0;
}
运行结果:1
解析:因为 a != b (10 != 8) 为真,所以结果为 1。

2.下列程序的运行结果是

#include<stdio.h>

int main()
{
int a=100, b=435, c=-77;
printf("%d", a>b && b>c && c>a);
getchar();
return 0; }
运行结果:0
解析:表达式 a>b && b>c && c>a 为假(0)。

知识点9:逻辑运算符

知识点分析

C语言中的逻辑表达式用于判断条件是否成立,并且在控制程序流程时非常有用。

(1)逻辑运算符: C语言中有三种逻辑运算符,分别是逻辑与(&&)、逻辑或(||)和逻辑非(。

(2)真假值: 在 C语言中,0表示假,非0表示真。

(3)短路求值: 在逻辑运算中,如果第一个操作数已经可以确定表达式的值,则不会计算第二个操作数。

(4)运算顺序: C语言中的逻辑运算符具有特定的优先级和结合性。逻辑非运算符的优先级最高,其次是逻辑与,最后是逻辑或。

巩固提高

1.下列程序的运行结果是

#include<stdio.h>

int main()
{
int a=65;
char b='A';
printf("%d", a==b);
getchar();
return 0;
}
运行结果:1
解析:因为 a(65) 和 b('A'的ASCII值65) 相等,所以 a==b 为真(1)。

2.下列程序的运行结果是

#include<stdio.h>

int main()
{
int a=1, b=2, c=3, d=55;
d = a++ && b++ || c-- && 0;
printf("%d", a+b+c+d);
getchar();
return 0;
}
运行结果:9
解析:
- a++ && b++ 为真(1),发生短路求值,后续表达式不再计算
- a=2, b=3, c=3
- d=1
- a+b+c+d = 2+3+3+1 = 9

知识点10:赋值运算符

知识点分析

(1)赋值运算符: C语言中的基本赋值运算符是等号(=)。

(2)复合赋值运算符: 包括 +=、-=、*=、/=、%= 等。

(3)赋值运算符的优先级: 赋值运算符的优先级较低。

(4)多重赋值: 可以同时给多个变量赋值,例如 a=b=c=10。

(5)赋值运算符的类型转换: 右侧表达式类型与左侧变量不同时,会进行自动类型转换。

巩固提高

下列程序的运行结果是

#include<stdio.h>

int main()
{
char a=65, b=97;
int aa, bb;
aa = a; bb = b;
printf("%d%c", aa, bb);
getchar();
return 0;
}
运行结果:65a
解析:
- aa = a (65) 所以 %d 输出 65
- bb = b (97) 所以 %c 输出 'a' (ASCII 97)

知识点11:逗号运算符

知识点分析

(1)逗号运算符的语法: expression1, expression2

(2)运算顺序: 从左到右计算,保留最后一个表达式的结果作为整个逗号运算的结果。

(3)使用场景:

  • 在 for 循环中同时初始化、条件判断和更新变量
  • 在函数调用中传递多个参数
  • 在赋值语句中赋值给多个变量

(4)注意事项:

  • 在复杂表达式中应使用括号明确运算顺序
  • 不应与逗号分隔符混淆

巩固提高

1.下列程序的运行结果是

#include<stdio.h>

int main()
{
int a,b,c,d;
a=1; b=2, c=3;
d = (a, b);
printf("%d", d);
getchar();
return 0;
}
运行结果:2
解析:逗号运算符返回最后一个表达式的值,所以 d = b = 2。

2.下列程序的运行结果是

#include<stdio.h>

int main()
{
int a=1, b=2, c=3;
a = b = c, a = b + c;
printf("%d %d %d", a, b, c);
getchar();
return 0;
}
运行结果:6 3 3
解析:
- 先执行 b = c (b=3)
- 再执行 a = b + c (a=3+3=6)
注意:变式题目如下
修正:题目应为 a = (b = c, a = b + c); 注意:原题未加括号,需按顺序计算。
进入专题练习