1 / 30

第三章

第三章. C 数据及其表达式. 回顾. 程序是为执行一项任务而编写的有序指令集 算法是解决问题的具体方法和步骤 流程图是算法的图形化表现形式 C 程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序 进制间的转换 补码. 目标. 理解变量和常量的含义 熟悉基本数据类型 - int 、 char 、 float 和 double 使用算术运算符 理解赋值运算符、逗号运算符 理解类型转换. C 语言中的基本元素. 程序. 常量是在程序中保持不变的量. 指令. 常量用于定义具有如下特点的数据:

Download Presentation

第三章

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. 回顾 • 程序是为执行一项任务而编写的有序指令集 • 算法是解决问题的具体方法和步骤 • 流程图是算法的图形化表现形式 • C程序的编译和运行过程 • 编译器将源程序转换成机器能理解的程序 • 连接器用于连接相关的目标文件以生成可执行程序 • 进制间的转换 • 补码

  3. 目标 • 理解变量和常量的含义 • 熟悉基本数据类型- int、char、float 和 double • 使用算术运算符 • 理解赋值运算符、逗号运算符 • 理解类型转换

  4. C语言中的基本元素 程序 常量是在程序中保持不变的量 指令 常量用于定义具有如下特点的数据: • 在程序中保持不变 • 在程序内部频繁使用 • 需要用比较简单的方式替代某些值 标识符 关键字 常量 运算符 分隔符 等

  5. 内存 变量 程序 编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。 10 9.5 0.5 存储 Rate 通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。 Rate * 5% 将值存储为DiscAmt Rate-DiscAmt 将值存储为Result

  6. 声明和使用变量 • 声明变量: Datatype variablename; • 定义时初始化变量: Datatype variablename = value; • 定义后初始化变量: variablename = value; 给变量赋值,除了给一个直接的值以外,还可以通过计算获得。

  7. 变量命名 • 变量的命名规则: • 变量名可以由字母、数字和 _(下划线)组合而成 • 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 • 变量名必须以字母或_(下划线)开头 • 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) • C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 • C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量 在 C 语言中,变量命名需要遵循一定的规则 有效名称 无效名称 principal 123rate lastname zip code cost_price city currency$ marks_3 discount%

  8. 基本数据类型 数据 数据类型 数值 非数值 Africa 2.175 char 整型 非整型 123 9/12/2003 int float The quick brown fox 整型 非整型 Jackie Chan short int double 非数值 数值 long int 999 9002.12 数据属于不同类别 TRUE

  9. 整型

  10. 使用整型变量 • 声明: int page_number; long int population; unsigned int age; • 可按如下方式初始化: page_number=0; int max_marks = 100; 三种整型常量(整常熟)表示法: 十进制 :16 八进制 :016 十六进制 :0x16 在同一语句中可以声明多个类型相同的变量: int page_number, copies, paper_width;

  11. 单精度浮点型 float 在 C语言中用于存储单精度浮点数 • 声明: float selling_price; • 初始化: float selling_price = 11.3; selling_price = 65.90; float 32 位 10-38至10+38 ,7位有效数字 两种浮点型(实数)常量表示法: 十进制形式 :41.235, -12.0, .5 指数形式 :2e4, 1.8e-3, -123e-6, 3.5e+4

  12. 内存 float double 双精度浮点型 213.5671435568967 • 声明: • double pressure_level; • 初始化: • pressure_level = 213.5671435568967; • double dvalue = 35.4; 64位 16位有效数字 取值范围:10-308至 10308

  13. 字符型 在线保险单 年龄:_____ 保险总额:_____ 性别:_____ 数值型 23 int/float 98340 字符型 ' M ' char

  14. "2" ' ' '5' 'p' '$' 有效的字符型值 '2' 正确 X '2' + '2' = 4

  15. 声明: char sex; • 初始化: sex=‘m’; char sex=‘m’; 字符在内存中按照ASCII码存放的;

  16. ASCII码表

  17. 字符型数据和整型数据通用 • 在0~255范围内,字符型数据和整型数据是通用的。字符型数据可以以字符形式输出,也可以以整数形式输出 main() { char c1,c2=‘B’; int a1; c1=97; a1=‘b’-32; printf("%c,%d\n",c1,c1); printf("%c,%d\n",a1,a1); } 运行结果: a,97 B,66

  18. 转义字符

  19. 算术运算符 算术 运算符 操作数 操作数 一元 二元运算符 二元 + % * / - 5/3=? 5%3=?

  20. 算术运算符 算术 num++ num=num+1 ++ ++num --num num++ num-- 一元 前缀 后缀 -- num=num-1 num-- 二元

  21. 算术运算符 num2 = 6; num1 = 6; num1 = num1 + 1; num2 = num1; num2 = 5; num1 = 6; num2 = num1; num1 = num1 + 1; num1 = num1 - 1; num2 = num1; num2 = 4; num1 = 4; num2 = num1; num1 = num1 - 1; num2 = 5; num1 = 4;

  22. 运算符的优先级和结合性 • 优先级 1. C语言规定了各种运算的优先级。 2. 优先级的规定符合思维习惯。 例如在算术运算中,先 * / 后 + -。 3. 利用()提高程序的可读性。 • 结合性 运算符号和运算对象的结合方向。 例如算术运算符的结合性是从左向右,所以7-5是用7减去5得2,而不是5减去7得-2。

  23. 赋值运算 赋值表达式: 将表达式的值存入变量所表示的内存单元中。 变量=表达式 赋值运算符:= 复合赋值运算符: += <<= -= >>= *= &= /= ∧= %= |= (结合性← ) a+=b a=a+b 已知:int a=12; a+= a-=a * a; (1)a=a-a*a=-132 (2)a=a+(-132)

  24. 说明: • 结合方向:自右向左 • 优先级:14 • 左侧必须是变量,不能是常量或表达式 • 例 3=x-2*y; • a+b=3; • 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型 例 int i; i=2.56; //结果i=2; 例: a=12; a+=a-=a*a • 赋值表达式的值与变量值相等,且可嵌套 • 例float f; • int i; • i=10; • f=i; • 则f=10.0 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) //表达式值为5,a,b,c值为5 // b=5;a=5 //表达式值11,c=6,a=11 例: int a=2; a%=4-1; a+=a*=a-=a*=3; //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2 < >

  25. 逗号运算 • 逗号表达式的一般形式 表达式1,表达式2,……,表达式n 将两个以上的表达式连接成逗号表达式。 • 逗号表达式的运算过程 是从左向右,依次对表达式求值。 • 逗号表达式的值 逗号表达式的值是表达式n的值。 例:x= a=3 * 5,a* 4 ;则:x=15,a=15 。 x= (a=3*5,a*4);则:x=60, a =15 。

  26. 说明: • 结合性:从左向右 • 优先级:15 • 逗号表达式的值:等于表达式n的值 • 用途:常用于循环for语句中 • 例 a=3*5,a*4 • a=3*5,a*4,a+5 • 例 x=(a=3,6*3) • x=a=3,6*a • 例 a=1;b=2;c=3; • printf(“%d,%d,%d”,a,b,c); • printf(“%d,%d,%d”,(a,b,c),b,c); //a=15,表达式值60 //a=15,表达式值20 //赋值表达式,表达式值18,x=18 //逗号表达式,表达式值18,x=3 //1,2,3 //3,2,3

  27. 类型转换 • 自动类型转换 • 原则:把表示范围小的类型的值转换到表示范围大的类型的值 • short  int  long  float  double • 强制类型转换 • 语法:(类型名) 变量或数值 • 例如:int a = 5, b = 3;float qu = (float)a / b; qu=a/b;

  28. 已知:int i=3; long e=4; float f=1.5; douible d=2.0; f = 10 + ‘a’ + i * f - d / e f = 107 + 4.5- 0.5 f = 111.5 - 0.5 f = 111.0

  29. 总结 1 • 常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据 • C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型 • 整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型

  30. 总结 2 • 单精度浮点型和双精度浮点型变量可以存储实数,但双精度型取值范围要比单精度型大的多 • 字符型变量可以存储单个字符,其值是该字符的ASCII 码 • 算术运算符提供运算功能,包括+、-、*、/、%、++和— • 逗号运算符于赋值运算符的优先级与结合性

More Related