1 / 23

C 语言程序设计

C 语言程序设计. 视频课程. 讲师:成少雷. 概述. 一 、赋值运算符. 三 、逻辑运算符. 二 、关系运算符. 四 、条件运算符. 赋值运算符. 赋值运算符: 简单赋值 (=) 复合赋值运算符 复合算术赋值 (+=,-=,*=,/=,%=) 复合位运算赋值 (&=,|=,^=,>>=,<<=). 简单赋值运算符. 简单赋值 使用形式 含义:将右操作数的值赋给左操作数 优先级:倒数第二,仅高于逗号运算符 结合性:从右向左 注意: 左操作数必须为 可修改的左值 赋值表达式的 值为左操作数的值

satin
Télécharger la présentation

C 语言程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C语言程序设计 视频课程 讲师:成少雷

  2. 概述 一、赋值运算符 三、逻辑运算符 二、关系运算符 四、条件运算符

  3. 赋值运算符 • 赋值运算符: • 简单赋值(=) • 复合赋值运算符 • 复合算术赋值(+=,-=,*=,/=,%=) • 复合位运算赋值(&=,|=,^=,>>=,<<=)

  4. 简单赋值运算符 • 简单赋值 • 使用形式 • 含义:将右操作数的值赋给左操作数 • 优先级:倒数第二,仅高于逗号运算符 • 结合性:从右向左 • 注意: • 左操作数必须为可修改的左值 • 赋值表达式的值为左操作数的值 • 如果右操作数类型和左操作数不同 则将右操作数转换成左操作数类型 再赋值。 左操作数 = 右操作数 int a = 0,b = 5; double c = 2.5; b = a + 5; b+1 = a; 5 = b; a = c ;

  5. 复合赋值运算符 • 复合赋值(op=) • 使用形式: • 等价形式: • 示例 • 已知int a = 1, b =4, c = 6;请计算下列表达式的值,并给出计算后a,b,c的值。 • a = b = c = 2; • b /= a + 1; • c+= c -= b *= c 左操作数 op= 右操作数 左操作数 =左操作数 op (右操作数)

  6. 概述 一、赋值运算符 三、逻辑运算符 二、关系运算符 四、条件运算符

  7. 关系运算符和关系表达式 • 关系运算 比较的哲学 豹子 斑马 VS

  8. 关系运算符 • 书写的时候运算符>=、<=、!=、==中间不能有空格,否则会犯语法错误;

  9. 看看学到哪里了

  10. 关系表达式 • 关系表达式的值为逻辑值,即“真”或“假” • 关系表达式为真则值为1,否则值为0; • C99中新增了一个布尔类型_Bool,布尔变量只有两个值,真(1),假(0); • 示例: 设有int a=3,b=2,c=1,d=0;请分析下面表达式的值 • a==b>c • d==a>b+c • d=a>b+c • a<b<c • a<b == c<d

  11. 使用简单的判断 • 简单的判断语句格式为: • 含义:如果表达式的值为真则执行花括号里的语句。 • 良好风格: • 花括号中的语句要缩进; • 小括号里不能有分号。 /*判断 x 是否为负数*/ if(x < 0) { printf(“x is negative\n”); } if (表达式) { 语句; } /*判断整数x是否为奇数*/ if(x %2!=0 ) printf(“x is odd\n”); /* 实数判等*/ double x; …… if(fabs(x-10.0) < FLT_EPSILON) printf(“x is zero\n”);

  12. 找别扭 • 一定要分清=和== • 下面的写法能起点作用 • inta = 1;if (a = 0)printf("OK"); • int a=0;if (a = 0)printf("OK"); • inta = 1;if (a == 0)printf("OK"); • int a=0;if (a == 0)printf("OK"); 编译出错 • inta = 0;if (0 == a)printf("OK"); • inta = 0;if (0 = a)printf("OK");

  13. 概述 一、赋值运算符 三、逻辑运算符 二、关系运算符 四、条件运算符

  14. 逻辑运算 计算机系女生征友的告示 征友告示 凡追我者,请先看以下条件,判断自已是否符合条件,符合条件者,方可得以见本小姐一面: • a= 富和盖茨有一比; • b = 帅胜德华留三分; • 逻辑运算中逻辑二字指的是指表达式之间的连接方式(与、或、非),一般使用逻辑运算将多个关系运算结合起来构成复杂条件。

  15. 逻辑运算符 • 逻辑运算符:与(&&)、或(||)、非(!) • 优先级:非(!) > 与(&&) >或 (||) • 结合性 非(右结合);与和或(左结合) • 运算规则 • 在逻辑运算中,0为假,非0为真

  16. 看看学到哪了?

  17. 逻辑表达式 • 通过逻辑运算符连接的表达式,被称为逻辑表达式。 • 逻辑运算的结果1表示逻辑真,0表示逻辑假。 • 短路计算 • 在表达式a&&b中,如果表达式a为0,则不计算右操作数b • 在表达式a||b中,如果表达式a为1,则不计算右操作数b 已知: int a=1, b=0, c = 4;请计算下列表达式的值 (1) a || b && 0 (2) !a && (5>3)||b (3) a && b && c (4) a>c && b == c

  18. 课堂练习 • a介于1和5之间但不等于3; • a不在1和9之间; • 变量score1、score2中存放着两个成绩,用关系表达式和逻辑运算符表示“两个成绩全都及格”、“两个成绩中有及格成绩”、“第一个成绩不及格”; • 写出判断字符变量ch的值是否为小写字母的表达式; • 实型变量x1和x2中存放着两门课程的成绩,写出判断其中有一门成绩等于90的表达式 • 设整型变量 year表示任意年份,请判断该年是否是闰年。

  19. 概述 一、赋值运算符 三、逻辑运算符 二、关系运算符 四、条件运算符

  20. 条件运算符 • 条件运算符(?:) • 一般形式:操作数1?操作数2:操作数3 • 运算过程: • 对操作数1求值。 • 若操作数1的结果非0,则对操作数2求值(不需要对操作数3 进行求值),并将该值作为条件表达式的最终结果。 • 若操作数1的结果为0,则只需对操作数3求值(而不需要对操作数2进行求值),并将该值作为条件表达式的结果。 • 设有int a = 3, b = 4, c; 试分析语句c = a > b ? a : b;执行后,c 的值?

  21. 动手练习 • 编写一个程序,任意输入三个数,输出三个数中最大的。 #include <stdio.h> #include <stdlib.h> int main(void) { inta,b,c; int max; printf("请输入三个数:"); scanf("%d%d%d",&a,&b,&c); max = a>b?a:b; max = max > c?max:c; printf("三个数中最大的是:%d\n",max); system("pause"); return 0; }

  22. 小结 1 2 3 3 4 4 5 赋值运算符 关系运算符 逻辑运算符 条件运算符

  23. THANKS!

More Related