第2章C语言程序设计基础

上传人:m**** 文档编号:579271145 上传时间:2024-08-26 格式:PPT 页数:57 大小:1.83MB
返回 下载 相关 举报
第2章C语言程序设计基础_第1页
第1页 / 共57页
第2章C语言程序设计基础_第2页
第2页 / 共57页
第2章C语言程序设计基础_第3页
第3页 / 共57页
第2章C语言程序设计基础_第4页
第4页 / 共57页
第2章C语言程序设计基础_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第2章C语言程序设计基础》由会员分享,可在线阅读,更多相关《第2章C语言程序设计基础(57页珍藏版)》请在金锄头文库上搜索。

1、第第第第2 2章章章章 C C语言程序设计基础语言程序设计基础语言程序设计基础语言程序设计基础要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家2回顾回顾C语言的特点语言的特点C程序的编译和运行过程程序的编译和运行过程编译器将源程序转换成机器能理解的程序编译器将源程序转换成机器能理解的程序连接器用于连接相关的目标文件以生成可执行程序连接器用于连接相关的目标文件以生成可执行程序要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家3教学目标教学目标算法的表示方法算法的表示方法理解变量和常量的含义理解变量和常量的含义熟悉基本数据类型熟悉基本数据类型int、char、float和和d

2、ouble掌握掌握算术运算符和算术运算符和赋值运算符的用法赋值运算符的用法理解表达式理解表达式理解类型转换理解类型转换要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家4算法算法著名计算机科学家沃思提出一个公式: 数据结构数据结构 + + 算法算法 = = 程序程序算法:算法: 为解决一个具体问题而采取的为解决一个具体问题而采取的确定确定的的有限有限的操作步的操作步骤,仅指计算机能执行的算法骤,仅指计算机能执行的算法对数据的描述:数据结构对数据的描述:数据结构(data structure)对操作的描述:算法对操作的描述:算法(algorithm)要学蜜蜂采百花,问遍百家成行家要学蜜

3、蜂采百花,问遍百家成行家5算法的特性算法的特性有穷性有穷性在合理的时间内完成在合理的时间内完成确定性(无歧义)确定性(无歧义)如果如果x0,则输出,则输出Yes;如果;如果x0,则输出,则输出No;可行性(有效性)可行性(有效性)能有效执行能有效执行负数开平方负数开平方没有输入或有多个输入没有输入或有多个输入有一个或多个输出有一个或多个输出有足够的情报有足够的情报要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家6算法的表示方法算法的表示方法自然语言描述自然语言描述流程图流程图在在1966年,年,Bohra与与Jacopini提出提出N-S图图1973年,美国学者年,美国学者I.Na

4、ssi和和B.Shneiderman提出提出伪代码伪代码要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家7例例1 有两个存储单元有两个存储单元a和和b,要求将它们的值互换。,要求将它们的值互换。 分析:分析:按存储器的性质,如果将单元按存储器的性质,如果将单元a的值直接送到单元的值直接送到单元b中,那么就会覆盖掉中,那么就会覆盖掉b原来的内容,因此,需要借助一个原来的内容,因此,需要借助一个临时单元临时单元c来交换。来交换。 具体算法如下:具体算法如下:步骤步骤1: 将单元将单元a的值送给单元的值送给单元c;步骤步骤2: 将单元将单元b的值送给单元的值送给单元a;步骤步骤3: 将单

5、元将单元c的值送给单元的值送给单元b。自然语言描述自然语言描述要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家8例例2 求求1+2+3+4+10。 步骤步骤1: 将将0送到送到S中;中;步骤步骤2: 将将1送到送到n中;中;步骤步骤3: 把把n的值加到的值加到S中;中;步骤步骤4: n增增1;步骤步骤5: 若若n10则转回步骤则转回步骤3,否则执行步骤,否则执行步骤6;步骤步骤6: 输出输出S的值。的值。自然语言描述自然语言描述要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家9流程图通常采用一些几何图形来代表各种类型的操作,流程图通常采用一些几何图形来代表各种类型的操作

6、,在图形内标明文字或符号来表示操作的内容,并用箭头在图形内标明文字或符号来表示操作的内容,并用箭头来表示操作的顺序。来表示操作的顺序。 用流程图表示算法,用流程图表示算法,直观形象,易于理解直观形象,易于理解,但由于流程,但由于流程图允许使用箭头随意跳转,对表示算法的层次结构图允许使用箭头随意跳转,对表示算法的层次结构非常非常不利不利,且流程图占的篇幅,且流程图占的篇幅较大较大,作图工作量也,作图工作量也很大很大。 流程图流程图起止框起止框输入输入/输出框输出框判断框判断框处理框处理框流程线流程线连接点连接点要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家10顺序结构流程图表示方法

7、顺序结构流程图表示方法BA要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家11选择结构流程图表示方法选择结构流程图表示方法BN如果如果 成绩成绩60 n1 = ns+n = s0 = sn 10输出输出s是是否否流程图流程图要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家14针对流程图存在的缺点,针对流程图存在的缺点,I. Nassi和和B. Shneiderman提出提出了结构化程序设计的流程图,称为了结构化程序设计的流程图,称为N-S图,更能体现结构图,更能体现结构化程序设计的思想。化程序设计的思想。推荐使用推荐使用N-S图图。 N-S图完全去掉了流程线,算法的所有

8、处理步骤都写在一图完全去掉了流程线,算法的所有处理步骤都写在一个大矩形框内(个大矩形框内(表示简单、符合结构化思想表示简单、符合结构化思想)(象堆积(象堆积木)木)结构化程序设计的三种基本结构结构化程序设计的三种基本结构顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构 N-S图(盒图)图(盒图)要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家15结构化程序设计的三种基本结构具有以下共同的特点:结构化程序设计的三种基本结构具有以下共同的特点:只有一个入口;只有一个入口;只有一个出口;只有一个出口;结构内的每一部分都有机会被执行到;结构内的每一部分都有机会被执行到;结构内不存在

9、结构内不存在“死循环死循环”。N-S图(盒图)图(盒图)要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家16将例将例2求求1+2+3+4+10用用N-S图进行描述。图进行描述。0s1n n10n+ssn+1n 输输出出sN-S图(盒图)图(盒图)要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家17将将求求10个任意整数中的最个任意整数中的最大数大数 用用N-S图图进行描述。进行描述。输输入入max 1n nmax? F xmax n+1n输输出出maxN-S图(盒图)图(盒图)要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家18程序设计步骤程序设计步骤根据实

10、际问题设计应用程序大致要经过以下四个步骤:根据实际问题设计应用程序大致要经过以下四个步骤: 分析问题分析问题 画流程图或画流程图或N-S图图 编写程序编写程序 运行并调试程序运行并调试程序 采用采用自顶向下、逐步细化自顶向下、逐步细化的的结构化分析结构化分析的方法的方法要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家19例例3求三个数中的最大数。求三个数中的最大数。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家20数据类型(数据类型(DataType)数据为什么要区分类型?数据为什么要区分类型?不同类型的数据代表不同的不同类型的数据代表不同的数据表示形式数据表示形式

11、合法的取值范围合法的取值范围占用内存空间大小占用内存空间大小可参与的运算种类可参与的运算种类要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家21数据类型数据类型在在C语言中,数据类型一般包括语言中,数据类型一般包括基本数据类型基本数据类型、构造数据类型构造数据类型、指针类型指针类型和和空类型空类型等四大类。等四大类。数据类型数据类型指针类型指针类型构造类型构造类型基本类型基本类型空类型空类型 void整型整型 int (含枚举类型)(含枚举类型)实型(浮点型)实型(浮点型)字符型字符型 char数组数组结构体结构体共用体共用体单精度单精度 float 双精度双精度 double要学

12、蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家22一个简单的一个简单的C程序例子程序例子#include /*函数功能函数功能:计算两个整数相加之和计算两个整数相加之和 入口参数入口参数:整型数据整型数据a和和b 返回值:返回值: 整型数整型数a和和b之和之和*/int Add(int a, int b)return (a + b);/*主函数主函数*/main()int x, y, sum = 0;printf(Input two integers:);scanf(%d%d, &x, &y); /*输入两个整型数输入两个整型数x和和y*/sum = Add(x, y); /*调用函

13、数调用函数Add计算计算x和和y相加之和相加之和*/printf(sum = %dn, sum); /*输出输出x和和y相加之和相加之和*/并列的两个函数并列的两个函数并列的两个函数并列的两个函数其中一个是其中一个是其中一个是其中一个是程序的入口程序的入口程序的入口程序的入口程序注释程序注释程序注释程序注释要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家23C语言中的基本元素语言中的基本元素程序程序语句语句标识符标识符关键字关键字常量、变量常量、变量运算符运算符分隔符分隔符关键字(关键字(Keyword)又称为保留字又称为保留字数据类型修饰符数据类型修饰符int,控制语句控制语句r

14、eturn等等标识符(标识符(Identifier)系统预定义标识符,系统预定义标识符,main,printf等等用户自定义标识符,用户自定义标识符,Add,x,y等等运算符(运算符(Operator)34种,种,+分隔符(分隔符(Separator)空格、回车空格、回车/换行、逗号等换行、逗号等其它符号其它符号大花括号大花括号“”和和“”“/*”和和“*/”是程序注释所需的定界符是程序注释所需的定界符数据(数据(Data)变量(变量(Variable)常量(常量(Constant)要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家24常量常量常量常量是在程序中保持不变的量常量区分为

15、不同类型:常量区分为不同类型:整型、实型、字符型和字符串型整型、实型、字符型和字符串型如如12、3.2、a、hello 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家25整型常量整型常量整型常量有三种不同的表示形式:整型常量有三种不同的表示形式:十进制十进制:无前缀,无后缀:无前缀,无后缀八进制八进制:在八进制数值前面加前缀:在八进制数值前面加前缀“0”,其数码取值为,其数码取值为07。例如:例如:023,0457,01324等等十六进制十六进制:前缀为:前缀为“0X”或或“0x”,其数码取值为,其数码取值为09、AF或或af。例如:例如:0X2A,0XA0,0XFFFF等等当任

16、意整型常量后跟一个字母当任意整型常量后跟一个字母u或或U时,表示是时,表示是无符号整型无符号整型。例如:例如:123u当任意整型常量后跟一个字母当任意整型常量后跟一个字母l或或L时,表示是时,表示是长整型长整型。例如:例如:123L要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家26实型常量实型常量实型(浮点型)常量有实型(浮点型)常量有2种不同的表现形式种不同的表现形式:小数形式小数形式:由数字和小数点组成,必须要有小数点。例如:由数字和小数点组成,必须要有小数点。例如:0.123,123.,123.0,0.0等。等。指数形式指数形式:如:如123e3或或123E3都代表都代表1

17、23103。注意字母。注意字母e或或E之前必须有数字,且之前必须有数字,且e或或E后面的指数必须为整数。规范化后面的指数必须为整数。规范化的指数形式:在字母的指数形式:在字母e或或E之前的小数部分中,小数点左边之前的小数部分中,小数点左边应有一位且只能有一位非零的数字,如应有一位且只能有一位非零的数字,如1.23e5。要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家27字符型常量字符型常量C语言的字符常量是用单撇号括起来的一个字符,如语言的字符常量是用单撇号括起来的一个字符,如A,a,$等。等。转义字符:以一个字符转义字符:以一个字符“”开头的字符序列,代表特殊的含开头的字符序列,

18、代表特殊的含义。义。要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家28八进制数字表示(八进制数字表示(ddd):):1233注意数字的取值范围注意数字的取值范围十六进制数字表示(十六进制数字表示(xdd):):xFFx5说明:字符可用对应的编码(整数)表示说明:字符可用对应的编码(整数)表示如:用如:用065530x35表示表示5C中经常将字符常量等价为整数参与运算:中经常将字符常量等价为整数参与运算:如:如:A+32结果为结果为a0-48为为0字符型常量字符型常量要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家29字符串由若干字符(含转义字符)组成,用字符串由若干字

19、符(含转义字符)组成,用双引号双引号界定界定如:如:hello a 123 n Tomtis078n 含几个字符?含几个字符?没有长度为零的字符(没有长度为零的字符(),但有长度为零的字符串),但有长度为零的字符串()注:双引号在一行内成对出现,长字符串可写在多行上,注:双引号在一行内成对出现,长字符串可写在多行上,C会自动连接为整体。例如:会自动连接为整体。例如:hello, Im yu. Who are you? 输出显示:输出显示:hello, Im yu. Who are you?字符串常量字符串常量要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家30符号常量符号常量在在C

20、语言中,用一个语言中,用一个标识符标识符来表示一个常量,称之为符号常量来表示一个常量,称之为符号常量一般形式为:一般形式为:#define#include #define PI 3.14159main()double s,r;r=5;s = PI * r * r; printf(area s=%f,s);要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家31声明和使用变量声明和使用变量声明变量:声明变量:Datatype variablename; 如: int age;定义后给变量赋值:定义后给变量赋值:variablename = value; 如:age=20;定义时初始化变量

21、:定义时初始化变量:Datatype variablename = value; 如:int age=20;给变量赋值,除了给一个直接的值以外,还可以通过计算获得给变量赋值,除了给一个直接的值以外,还可以通过计算获得要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家32变量的命名规则:变量的命名规则:变量名可以由字母、数字和变量名可以由字母、数字和_(下划线)组合而成(下划线)组合而成变量名不能包含除变量名不能包含除_以外的任何特殊字符,如:以外的任何特殊字符,如:%、#、逗号、逗号、空格等空格等变量名必须以字母或变量名必须以字母或_(下划线)开头(下划线)开头变量名不能包含空白字符

22、(换行符、空格和制表符称为空白字符)变量名不能包含空白字符(换行符、空格和制表符称为空白字符)C语言中的某些词(例如语言中的某些词(例如int和和float等)称为保留字,具有特殊等)称为保留字,具有特殊意义,不能用作变量名意义,不能用作变量名C语言区分大小写,因此变量语言区分大小写,因此变量price与变量与变量PRICE是两个不同是两个不同的变量的变量变量命名变量命名在 C 语言中,变量命名需要遵循一定的规则(标识符标识符)有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip c

23、ode要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家33使用整型变量使用整型变量声明:声明:int page_number;long int population;unsigned int age;初始化:初始化:intmax_marks=100;在同一语句中可以声明多个类型相同的变量:在同一语句中可以声明多个类型相同的变量:int page_number, copies, paper_width;要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家34单精度实型单精度实型float 在 C 语言中用于存储单精度实数float32 位-3.410-383.410+38 ,

24、7位有效数字声明:声明:floatselling_price;初始化:初始化:floatselling_price=11.3;要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家35双精度实型双精度实型内存floatdouble213.5671435568967 64位位取值范围:取值范围:-1.710-308 1.7 1030816 位有效数字声明:声明:doublepressure_level;初始化:初始化:doublepressure_level=213.5671435568967;double 在 C 语言中用于存储双精度实数213.5671要学蜜蜂采百花,问遍百家成行家要学

25、蜜蜂采百花,问遍百家成行家36short intintlongfloatdoubleTurbo C2B2B4B4B8BVC+6.02B4B4B4B8B数据类型所占的位数与机器硬件(数据类型所占的位数与机器硬件(CPU)、操作系统、开发环)、操作系统、开发环境有关。境有关。基本数据类型与环境间的关系基本数据类型与环境间的关系要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家37字符型字符型占 8 位内存char gender;gender=m;char gender=m;值值符号符号值值符号符号值值符号符号0空字符空字符44,9132空格空格45-9233!46.933447/9435

26、#48 570 995-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL (Delete键键)43+65 90A Z要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家38char型与型与int型之间的关系型之间的关系#include main()char ch = b; printf(%c, %dn, ch, ch);ch = b - 32; printf(%c, %dn, ch, ch);#include main()char ch = b; printf(%c, %dn, ch, ch); ch = b - (a - A) ;

27、 printf(%c, %dn, ch, ch);b, 98B, 66 b, 98B, 66 例:小写字母转换为大写字母例:小写字母转换为大写字母要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家39函数函数C语言提供了丰富的内部函数,又叫库函数,也称标语言提供了丰富的内部函数,又叫库函数,也称标准函数,其定义按函数类型存放在不同的准函数,其定义按函数类型存放在不同的“头文件头文件”中,中,使用时应该在源文件中的开始位置包含上相应的头文件。使用时应该在源文件中的开始位置包含上相应的头文件。例如,使用数学函数时,应该在源文件中的开始位置例如,使用数学函数时,应该在源文件中的开始位置使用

28、使用#include math.h 把头文件把头文件math.h包含到源文件中。包含到源文件中。引用内部函数时,只需要写出相应的函数名,并在后引用内部函数时,只需要写出相应的函数名,并在后面的括号中给出所要计算的自变量值,即可得到所需要的面的括号中给出所要计算的自变量值,即可得到所需要的函数值。例如,函数值。例如,sqrt(4.0)得得2.0,fabs(-100.0) 得得100.0。使用标准函数时,必须使用标准函数时,必须注意注意以下两点:以下两点:(1)使用三角函数时,必须注意角度的单位是)使用三角函数时,必须注意角度的单位是“弧度弧度”;(2)引用标准函数时,自变量要写在)引用标准函数时

29、,自变量要写在括号括号里面,自变量里面,自变量可以是常量、变量或表达式。可以是常量、变量或表达式。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家40常用的标准数学函数常用的标准数学函数函数名函数名功功 能能函数名函数名功功 能能sqrt(x)计算计算x的平方根,的平方根,x应大于等于应大于等于0 exp(x)计算计算ex的值的值fabs(x)计算计算x的绝对值的绝对值pow(x,y)计算计算xy的值的值log(x)计算计算lnx的值的值sin(x)计算计算sinx的值,的值,x为弧度值为弧度值log10(x)计算计算lgx的值的值cos(x)计算计算cosx的值,的值,x为弧度

30、值为弧度值要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家41表达式表达式表达式由表达式由操作数操作数和和运算符运算符的组合而成的组合而成表达式中的操作数可以是变量、常量或者子表达式表达式中的操作数可以是变量、常量或者子表达式表达式是表达式是常量常量、变量变量、数组元素数组元素、函数函数等运算对象和运算符以等运算对象和运算符以及括号的有意义组合。类似数学算式或公式,但写法有所不同。及括号的有意义组合。类似数学算式或公式,但写法有所不同。运算符的类型有:运算符的类型有:算术运算符算术运算符 +-*/%+- 指针运算符指针运算符*&关系运算符关系运算符 =!=求字节数运算符求字节数运算

31、符sizeof逻辑运算符逻辑运算符 !&| 强制类型转换运算符强制类型转换运算符(类型)类型)位运算符位运算符|&分量运算符分量运算符-赋值运算符赋值运算符 =下标运算符下标运算符条件运算符条件运算符 ?:其他其他逗号运算符逗号运算符 ,注意注意:运算符具有:运算符具有优先级优先级和和结合性结合性。要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家42算术运算符算术运算符算术 一元一元 二元二元操作数操作数运算符两个整数相除,其值为整数两个整数相除,其值为整数,如,如 5 / 3值为值为1操作数中有一个为实数时,结果为操作数中有一个为实数时,结果为 double 型型%(模(求余)运

32、算符(模(求余)运算符): %两侧均为整型数据两侧均为整型数据要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家43算术运算符和算术表达式算术运算符和算术表达式算术一元一元-+num+ num=num+1num- num=num-1+num-numnum+num-前缀前缀后缀后缀二元二元表达式如何计算结果 (num1=5)num2=+num1;num1=num1+1;num2=num1;num2=6;num1=6;num2=num1+;num2=num1;num1=num1+1;num2=5;num1=6;num2=-num1;num1=num1-1;num2=num1;num2=4

33、;num1=4;num2=num1-;num2=num1;num1=num1-1;num2=5;num1=4;要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家44例:算术运算符和算术表达式应用例:算术运算符和算术表达式应用#includemain()inta=5,b=3,c=25,d=12;floatqu;intre,in,de;/*使用算术运算符使用算术运算符*/qu=a/b;/除法除法re=a%b;/求模求模in=+c;de=-d;printf(商为商为%fn,qu);printf(余数为余数为%dn,re);printf(“加加 1 1 后为后为%dn,in);printf(

34、减减 1 1 后为后为%dn,de);商为 1.000000余数为 2加 1 后为 26减 1 后为 11要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家45赋值运算符和赋值表达式赋值运算符和赋值表达式变量变量 表达式表达式Height = 177.5Weight = 78Gender = mx = a+bw = sin(a)+sin(b)y = i+ -j作用是将一个数据(或表达式的值)赋给一个变作用是将一个数据(或表达式的值)赋给一个变量。注意:赋值符号左边只能是变量,不能是表达量。注意:赋值符号左边只能是变量,不能是表达式,也不允许是常量。式,也不允许是常量。要学蜜蜂采百花,

35、问遍百家成行家要学蜜蜂采百花,问遍百家成行家46复合赋值运算符复合赋值运算符运算符运算符表达式表达式计计算算结结果(假果(假设设 X=10X=10)+=X += 5X = X + 515-=X -= 5X = X - 55*=X *= 5X = X * 550/=X /= 5X = X / 52%=X %= 5X = X % 50要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家47赋值运算符和赋值表达式使用赋值运算符和赋值表达式使用#include main () float book_price = 60.75; /存放书的价格 printf(n 书的价格 = %f,book_p

36、rice); book_price += 12.50; printf(n 书的新价格 =%fn,book_price);book_price=book_price+12.50;要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家48逗号运算符与逗号表达式逗号运算符与逗号表达式形式:表达式形式:表达式1, 表达式表达式2作用:用于连接表达式作用:用于连接表达式计算过程:先求解表达式计算过程:先求解表达式1,再求解表达式,再求解表达式2。整个逗号表。整个逗号表 达式的值是表达式达式的值是表达式2的值。的值。如如: 3+5, 6+8 例例: x=(a=3, 6*3) x=a=3,6*a逗号表

37、达式可组合逗号表达式可组合 逗号运算符的优先级最低,结合方向自左到右逗号运算符的优先级最低,结合方向自左到右并不是任何地方出现的逗号都是逗号运算符并不是任何地方出现的逗号都是逗号运算符如:如:printf(%d, %d, %dn, a, b, c );如:如:(a=3*5, a*4), a+5要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家49类型溢出类型溢出C语言直接提供的任何类型都有取值范围。当向其赋超语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数值,就会产生数值溢出,得到一个不正确过此范围的数值,就会产生数值溢出,得到一个不正确的结果。的结果。int的范围是的范围

38、是-21474836482147483647如果超出取值范围,给它一个小于如果超出取值范围,给它一个小于-2147483648或者大于或者大于2147483647的数会如何呢?编程测验的数会如何呢?编程测验小蛇能吞下小蛇能吞下小蛇能吞下小蛇能吞下大象吗?大象吗?大象吗?大象吗?要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家50类型溢出解决方案类型溢出解决方案解决方案:解决方案:预先估算运算结果的可能范围,采用取值范围更大的类型。预先估算运算结果的可能范围,采用取值范围更大的类型。1+2+3+1!+2!+3!+13+23+33+如果不需要处理负数,则采用无符号类型。如果不需要处理负

39、数,则采用无符号类型。在运算还没开始之前就判断运算数是否在合理的取值范围内。如在运算还没开始之前就判断运算数是否在合理的取值范围内。如果超出,则停止运算,转错误处理。果超出,则停止运算,转错误处理。要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家51运算符的优先级和结合性运算符的优先级和结合性优先级:优先级:+、-、+、-、sizeof() *、/、%+、-=、+=、-=、*=、/=、%=,结合性:结合性: 右结合右结合+、-、+、-、sizeof()=、+=、-=、*=、/=、%=左结合左结合*、/、%、+、-、,、,要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家5

40、2自动类型转换doublefloatlongunsignedintchar,short低高说明: :必定的转换运算对象类型不同时转换例例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i* f - d / l例例 int i; float f; double d; long l;要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家53强制类型转换强制类

41、型转换一般形式:一般形式:(类型名类型名)(表达式)表达式)例例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6说明说明:强制转换得到所需类型的中间变量,原变量类型不变:强制转换得到所需类型的中间变量,原变量类型不变 强制类型转换强制类型转换与与指针指针,并称,并称C语言两大神器,用好了可以呼风语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将唤雨,用坏了就损兵折将屠屠屠屠龙龙龙龙刀刀刀刀倚倚倚倚天天天天剑剑剑剑要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家54类型转换举例类型转换举例#include main() int m = 5; pr

42、intf(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);两个整数运算的结果两个整数运算的结果还是整数,不是实数还是整数,不是实数要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家55类型转换举例类型转换举例#include main() float x; int i; x=3.6; i=(int)x; printf(x=%f, i=%d, x, i);精度损失问题较高类型向较低类型转换时可能发生要学蜜蜂采百

43、花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家56总结总结算法的表示方法算法的表示方法常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据量可以引用存储在内存中的数据C语言中的基本数据类型包括整型、单精度实型、双精度实型和字符型语言中的基本数据类型包括整型、单精度实型、双精度实型和字符型整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型单精度实型和双精度实型变量可以存储实数,但双精度型取值范围要比单单精度实型和双

44、精度实型变量可以存储实数,但双精度型取值范围要比单精度型大的多精度型大的多字符型变量可以存储单个字符,其值是该字符的字符型变量可以存储单个字符,其值是该字符的ASCII码码表达式是操作数和运算符的集合表达式是操作数和运算符的集合赋值运算符的语法如下:赋值运算符的语法如下:variable = expression算术运算符提供运算功能,包括算术运算符提供运算功能,包括+、-、*、/、%、+和和-要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家57作业作业习题习题2:2.12.5描述算法描述算法2.102.13、2.15、2.16做在书上做在书上2.18先写出结果,再上机验证先写出结果,再上机验证

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号