当前位置:文档之家› 第三章运算符表达式和条件语句.

第三章运算符表达式和条件语句.

28
运算符优先级 2-2
运算符
() !, ++, --, sizeof *, /, % +, <, <=, >, >=
描述
圆括号 逻辑非,递增, 递减,求数据 类型的大小 乘法,除法,取余 加法,减法 小于,小于等于,大于,大于等 于
结合性
自左向右 自右向左 自左向右 自左向右 自左向右
= =, !=
==
12
条件结构 2-2
if-else 语句的一般形式为:
if (<条件>) { <语句块> } else { <语句块> }
如果条件为真,执行 if 后面的一个语句或一组语句; 如果条件为假,则执行 else 后面的语句。
13
if-else语句的示例
#include <stdio.h> void main() { int num; printf("\n请输入一个整数:"); scanf ("%d",&num); if((num % 2) == 0) printf("%d 是一个偶数。\n",num); else printf("%d 是一个奇数。\n",num); }
26
sizeof 运算符
使用 sizeof 运算符可以获得数据类型占用内存空 间的大小。其一般形式为: sizeof(type_name) sizeof 运算符的结果以字节为单位显示
float num; sizeof(num);
sizeof 运算符 返回的大小
sizeof(int);
2
27
4
注意:在32位计算机中,int类型的变量占4字节的内存大 小,和long类型的大小一样,所以现在基本上可以直接使 用int类型,而不需要使用long类型。
输出: 书的价格 = 60.750000 书的新价格 = 73.250000
9
关系运算符 3-1
关系运算符用于测试两个操作数或两个表达式 之间的关系,其中操作数可以是变量、常量或 表达式。
操作数
关系运算符
操作数
关系表达式的 计算结果 = 逻辑值(真或假) 在C语言中,“0”表示“假”,“非0”表示 “真”
2
目标
理解表达式 掌握赋值运算符的用法 熟练使用关系运算符 掌握简单的条件语句的使用 熟练使用逻辑运算符 了解sizeof运算符 理解运算符的优先级
达式 3-2
操作数
运算符
操作数
Z = ( X * 2 ) + ( 5 – Y )
表达式 表达式
表达式
5
表达式 3-3
表达式由操作数和运算符的组合而成 表达式中的操作数可以是变量、常量或者子表达式 运算符的主要类型有: • 算术运算符 • 赋值运算符 • 关系运算符 • 逻辑运算符
33
总结 2-2
逻辑运算符用于组合多个条件(&& 和 ||)或者为 某一条件取反(!) sizeof运算符用于在程序中测试某一数据类型占 用多少字节 在复杂表达式中,通过运算符的优先级确定各种 运算符的执行顺序
34
作业
问题
输入年青人信息:年龄、性别、婚姻状况、职业 如果婚姻状况为未婚且为男性,介绍女朋友 如果婚姻状况为未婚且为女性,介绍男朋友
22
使用&&运算符的示例
#include <stdio.h> 内存 void main() num { 问题描述: char a; T 要求用户输入一个字符,用程序判断该字符是否为小写字 printf("\n请输入一个字符:"); 母 ,并输出相应的信息。 scanf("%c",&a); if(a>='a' && a<='z') printf("您输入的字符是小写字母\n",a); else printf("您输入的字符不是小写字母\n",a); }
请输入一个数:90 该数能被 5 整除
24
小结2
问题:
输入商品的个数和购买商品的金额。 如果商品个数大于10,并且购买商品金额大于1000;则按总金额 的10%折扣。 试编程输出折扣金额和折扣后实付金额
25
# include <stdio.h> void main() { int item; float tot_amt,discount, pay_amt; printf("\n 请输入购买商品的件数:"); scanf("%d",&item); printf("\n 请输入购物总金额:"); scanf("%f",&tot_amt); if(item >= 10 && tot_amt >= 10000) { discount =(float) (tot_amt * 0.10); } else { discount = 0.0; } pay_amt = tot_amt - discount; printf("\n 可得到折扣额 = %1.2f $.\n ", discount); printf("\n 折扣后应付金额 = %1.2f $.\n ", pay_amt); }
char int short int long float double
1 2 2 4 4 8
运算符优先级 2-1
当我们遇到一个复杂表达式时,需要确定先执行哪种 运算,此时就需要考虑运算符的优先级 z
=
x
+
y

g
*
h
* (t/20)+
65

r % 2
先算哪部分 加? 要解决此问题,需要使用: 减? 取余? 运算符优先级 除? 括号?
计算 X=X+5 X=X-5 X=X*5 X=X/5
结果(假设 X=10) 15 5 50 2
%=
X %= 5
X=X%5
0
8
示例
#include <stdio.h> void main () book_price=book_price+12.50; { float book_price = 60.75; printf("\n 书的价格 = %f",book_price); book_price += 12.50; printf("\n 书的新价格 =%f\n",book_price); }
32
总结 2-1
表达式是操作数和运算符的集合 赋值运算符的语法如下:variable = expression 关系运算符运用测试两个操作数之间的关系 关系表达式计算出的值始终为逻辑真(非0)或逻 辑假(0) 条件结构解决了程序种需要根据不同情况进行判 断的情况 条件语句中需要提供判断条件,该条件要求返回 逻辑值(真或假)
第三章
运算符
回顾
常量在程序中不能被更改,而变量在程序中可以被更改 C语言中的基本数据类型包括整型、单精度浮点型、双精度 浮点型和字符型 整型分为短整型、整型、长整型,每种整型又可分为有符 号型和无符号型 单精度浮点型和双精度浮点型变量可以存储实数 字符型变量可以存储单个字符,其值是该字符的ASCII 码 算术运算符提供运算功能,包括+、-、*、/、%、++、-printf() 和 scanf() 函数属于格式输入输出函数 getchar() 和 putchar() 函数用来输入输出单个字符的函数
留级 留级 留级 升级
考勤率达到 75% No Yes No Yes
18
逻辑“与”运算符 &&
所有学科及格 考勤率达到 75%
No No Yes Yes
留级 留级
留级
No Yes No Yes
表达式 1
表达式 2
结果
0
0
0
0
1 1
1
0 1
0
0 1
升级
19
逻辑“或”运算符 ||
信用卡
No No Yes Yes
请输入年份:2005 2005 年不是闰年
30
小结3
问题:
键盘输入运算符(+、-) 输入两个数 如果输入运算符为“+”,则执行加法运算 如果输入运算符为“-”,则执行减法运算 输出运算结果
31
# include <stdio.h> void main() { int num1, num2, result; char operator; printf("\n请输入一个算术运算符字符:\n"); scanf("%c", &operator); printf("\n请输入第一个整数:\n"); scanf("%d", &num1); printf("\n请输入第二个整数:\n"); scanf("%d", &num2); if(operator == '-') { result = num1 - num2; } if(operator == '+') { result = num1 + num2; } printf("\n结果为 %d。\n", result); }
16
逻辑运算符
逻辑运算符用于连接一个或多个条件,判断这些 条件是否成立 逻辑运算符的类型为:
运算
逻辑“与” 逻辑“或” 逻辑“非”
运算符
相关主题