




文档简介
1、第2章 C语言程序设计基础,2,回顾,程序是为执行一项任务而编写的有序指令集 算法是解决问题的具体方法和步骤 C语言的特点 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序,3,教学目标,理解变量和常量的含义 熟悉基本数据类型:int、char、float和double 了解sizeof运算符 理解表达式 使用算术运算符 掌握赋值运算符的用法 理解类型转换,4,C语言中的基本元素,程序,指令,标识符 关键字 常量 运算符 分隔符 ,常量是在程序中保持不变的量,常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用
2、比较简单的方式替代某些值,5,为什么需要常量,假如不使用常量,直接使用常数,会有什么影响? 程序的可读性变差 容易发生书写错误 修改麻烦 常量只能在定义时赋值,以后不能再改变其值,6,为什么需要常量,要避免直接使用常数 现象与危害: 当常数需要改变时,要修改所有使用它的代码,工作量巨大,还可能有遗漏。 解决方案: 把常数定义为宏、const常量,或枚举常量。 建议使用后两者。,7,整型常量,整型常量有三种不同的表示形式: 十进制:无前缀,无后缀 八进制:在八进制数值前面加前缀“0”,其数码取值为07。例如:023,0457,01324等 十六进制:前缀为“0X”或“0 x”,其数码取值为09、
3、AF或af。例如:0X2A,0XA0,0XFFFF等 当任意整型常量后跟一个字母u或U时,表示是无符号整型。例如,123u,8,浮点型常量,浮点型常量有2种不同的表现形式: 十进制小数形式:由数字和小数点组成,必须要有小数点。例如:0.123,123.,123.0,0.0等。 指数形式:如123e3或123E3都代表123103。注意字母e或E之前必须有数字,且e或E后面的指数必须为整数。规范化的指数形式:在字母e或E之前的小数部分中,小数点左边应有且只能有一位非零的数字,如1.23e5。,9,字符型常量,C语言的字符常量是用单撇号括起来的一个字符,如A,a,$等。 转义字符:以一个字符“”开
4、头的字符序列,代表特殊的含义。,10,符号常量,在C语言中,用一个标识符来表示一个常量,称之为符号常量。 其定义的一般形式为: #define ,#include #define PI 3.14159 main() double s,r; r=5; s = PI * r * r; printf(area s=%f, s); ,11,例:转义字符使用,运行结果,12,变量,程序,编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。,存储 Rate,Rate * 5%,
5、将值存储为DiscAmt,Rate-DiscAmt,10,0.5,将值存储为Result,9.5,13,声明和使用变量,声明变量: DataType VariableName; int age; 定义时初始化变量: DataType VariableName = value; int age=20; 定义后初始化变量: VariableName = value; int age; age=20;,给变量赋值,除了给一个直接的值以外,还可通过计算获得,14,变量命名,在C语言中,变量命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,ci
6、ty,无效名称,123rate,currency$,discount%,zip code,变量的命名规则: 变量名由字母、数字和 _(下划线)组合而成 变量名必须以字母或 _(下划线)开头 变量名通过空白字符(换行符、空格和制表符称为空白字符)分隔开 C语言中的某些词(例如int和float等)称为保留字,具有特殊意义,不能用作变量名 C语言区分大小写,因此变量price与变量PRICE是2个不同的变量,15,基本数据类型,数据属于不同类别,Africa,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,
7、123,Jackie Chan,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,16,整型,17,使用整型变量,声明: int page_number; long int population; unsigned int age; 可按如下方式初始化: page_number = 0; int max_marks = 100;,在同一语句中可声明多个类型相同的变量: int page_number, copies, paper_width;,18,单精度浮点型,float在C语言中用于存储单精度浮点数,float,32位,
8、-3.410-383.410+38 ,7位有效数字,声明: float selling_price; 初始化: float selling_price = 11.3; selling_price = 65.90;,19,双精度浮点型,213.5671435568967,64位,取值范围:-1.710-308 1.7 10308,16位有效数字,声明: double pressure_level; 初始化: pressure_level = 213.5671435568967; double dvalue = 35.4;,double在C语言中用于存储双精度浮点数,20,数据类型所占的位数与机器
9、硬件(CPU)、操作系统、开发环境有关。,21,字符型,在线保险单 年龄:_ 保险总额:_ 性别:_,23,98340.00, M ,数值型,字符型,int/float,char,22,字符型, 5 p $,有效的字符型值,2,2,正确,23,字符型,占 8 位内存,signed 或 unsigned,0至255,示例:,char gender; gender=m;,char gender=m;,24,char型与int型之间的关系,#include main() char ch = b; printf(%c, %dn, ch, ch); ch = b - 32; printf(%c, %dn
10、, ch, ch); ,#include main() char ch = b; printf(%c, %dn, ch, ch); ch = b - (a - A) ; printf(%c, %dn, ch, ch); ,b, 98 B, 66,b, 98 B, 66,例:小写字母转换为大写字母,25,表达式,Sum,=,num1,+,num2,表达式,26,表达式,Z = ( X * 2 ) + ( 5 Y ),27,表达式,表达式由操作数和运算符的组合而成 表达式中的操作数可以是变量、常量或者子表达式 运算符的主要类型有: 算术运算符 赋值运算符 关系运算符 逻辑运算符,28,算术运算符,
11、算术,一元,二元,操作数,操作数,运算符,二元运算符,+,-,*,/,%,29,算术运算符和算术表达式,算术,一元,-,+,num+,num=num+1,num-,num=num-1,+num -num,num+ num-,前缀,后缀,二元,30,例:算术运算符应用,#include main() int a = 5, b = 3, c = 25, d = 12; float qu; int re,in,de; /* 使用算术运算符 */ qu = a / b; / 除法 re = a % b; / 求余(模运算) in = +c; de = -d; printf (商为 %fn,qu); p
12、rintf (余数为 %dn,re); printf (“加 1 后为 %dn,in); printf (减 1 后为 %dn,de); ,输出: 商为 1.000000 余数为 2 加 1 后为 26 减 1 后为 11,31,赋值运算符,变量 表达式;,Height = 177.5; Weight = 78; Gender = m; x = a+b; w = sin(a)+sin(b); y = i+ -j;,最简单的运算符:,=,功能:将一个数据(或表达式的值)赋给一个变量。 注意:赋值符号左边只能是简单变量,不能是表达式,也不允许是常量。,32,复合赋值运算符,假设开始时X都是10,3
13、3,赋值运算符使用,#include main () float book_price = 60.75; / 存放书的价格 printf(n 书的价格 = %f, book_price); book_price += 12.50; printf(n 书的新价格 =%fn, book_price); ,book_price=book_price+12.50;,34,sizeof运算符,示例:,sizeof(int);,float num; sizeof(num);,使用sizeof运算符可获得数据类型或变量占用内存空间的大小。其一般形式为: sizeof(type_name) 或 sizeof(
14、variable_name) sizeof运算符的结果以字节为单位,注意:在32位计算机中,int类型的变量占4字节,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。,35,sizeof使用举例,#include main() printf(Data type Number of bytesn); printf(- -n); printf(char %dn, sizeof(char); printf(int %dn, sizeof(int); printf(short int %dn, sizeof(short); printf(long int %d
15、n, sizeof(long); printf(float %dn, sizeof(float); printf(double %dn, sizeof(double); ,36,用sizeof获得字长,原因: 同种类型在不同的平台其占字节数不尽相同。比如int在16位、32位和64位系统分别占2、4和8个字节。 现象与危害: 在平台间移植时会出现问题,导致数据丢失或者溢出。 解决方案: 用且只用sizeof获得字长。,37,类型溢出,C语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数值,就会产生数值溢出,得到一个不正确的结果。 int的范围是-21474836482147483647
16、 如果超出取值范围,给它一个小于-2147483648或者大于2147483647的数会如何呢?现场编程测验,小蛇能吞下大象吗?,38,类型溢出,生活中的例子: 身份证号码中的出生年 阿利亚娜号火箭发射失败? 现象与危害: 溢出后的数值是可预料的,但不同平台会有所不同。当程序从高位计算机向低位计算机移植(比如从64位系统移植到32位系统)时,以前从不出现的溢出问题可能出现。,39,类型溢出解决方案,解决方案: 预先估算运算结果的可能范围,采用取值范围更大的类型。 1+2+3+ 1!+2!+3!+ 13+23+33+ 如果不需要处理负数,则采用无符号类型。 在运算还没开始之前就判断运算数是否在合
17、理的取值范围内。如果超出,则停止运算,转错误处理。,40,类型转换,自动类型转换 原则:把表示范围小的类型的值转换到表示范围大的类型的值 short int long float double 强制类型转换 语法:(类型名) 变量或数值 例如:int a = 5, b = 3;float qu = (float)a / b;,41,自动类型转换,在进行赋值操作时,会发生类型转换 将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的 如果大类型的值在小类型能容纳的范围之内,则平安无事;但是,浮点数转为整数,会丢失小数部分,非四舍五入。反之,转换后的结果必然是错误的,具体结果与机器和实现
18、方式有关。避免如此使用,好的编译器会发出警告,42,强制类型转换,消除从大到小的警告 l = (long)i; 可以通过“(类型)表达式”的方式把表达式的值转为任意类型 强转时,你必须知道你在做什么 强转与指针,并称C语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将,屠 龙刀,倚 天 剑,43,类型转换举例,#include main() int m = 5; printf(m / 2=%dn, m/2); printf(float)(m/2) = %fn, (float)(m/2); printf(float)m/2 = %fn, (float)m/2); printf(m = %dn, m); ,2个整数运算的结果 还是整数,不是浮点数,44,总结,常量是在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人融资担保协议二零二五年
- 公司股份分配协议书二零二五年
- 2合伙人合同样本
- 借用协议合同样本
- 六年级体育教案
- 乳品销售合同样本
- 二十类典型合同样本
- 个人雇短工合同样本
- 学习房地产项目工程质量管理与监控心得
- 2025物业管理合同协议范本
- 2023年北京市农林科学院事业单位招聘(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- 尿崩症诊疗规范内科学诊疗规范诊疗指南2023版
- 3D打印实训指导书
- 除草机器人简介
- 当代文学第一章1949-1966年的文学思潮
- 抽油井检泵作业课件
- a320飞机空调系统工作原理与使用维护分析
- 施工机具进场检查验收记录
- 《液压与气动技术项目教程》高职配套教学课件
- 2022年七步洗手法操作考核评分标准
- 过敏性紫癜的护理PPT课件(PPT 33页)
评论
0/150
提交评论