《C语言概述课件汇总全书电子教案完整版课件(最新).ppt》由会员分享,可在线阅读,更多相关《C语言概述课件汇总全书电子教案完整版课件(最新).ppt(491页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、主要内容:主要内容:(思考题)(思考题)1.为什么要学为什么要学C语言?语言?2.C语言程序的基本结构是?语言程序的基本结构是?3.如何用如何用C语言编程解决实际语言编程解决实际问题?问题?Ch1.1程序与程序设计语言程序与程序设计语言l问题问题1:计算机为什么能工作?比如,图书查:计算机为什么能工作?比如,图书查询、售票系统、一卡通系统等。询、售票系统、一卡通系统等。l答:软件与硬件(裸机)配合,即由程序控答:软件与硬件(裸机)配合,即由程序控制硬件执行一系列的操作。制硬件执行一系列的操作。l问题问题2:什么是程序?什么是程序设计语言?:什么是程序?什么是程序设计语言?l答:程序是指用计算机
2、语言编写的能完成特答:程序是指用计算机语言编写的能完成特定功能的一系列操作的集合。定功能的一系列操作的集合。l计算机能够识别的语言即程序设计语言。计算机能够识别的语言即程序设计语言。l问题问题3:为什么要学习:为什么要学习C语言?语言?l答:答:C语言是程序设计语言中的常青树。语言是程序设计语言中的常青树。几乎所有的处理器芯片都支持几乎所有的处理器芯片都支持C语言,语言,而用于计算机的只占不足而用于计算机的只占不足20%,其他广泛用,其他广泛用于其它智能设备、电器等。于其它智能设备、电器等。是理工科学生的最佳编程入门语言。是理工科学生的最佳编程入门语言。Ch1.1程序与程序设计语言程序与程序设
3、计语言Ch1.2C语言语言程序程序结构结构C程序功能演示:程序功能演示:l例例1.1输出一行信息。输出一行信息。l例例1.2求任意两数之和。求任意两数之和。l例例1.3小学生算术练习系统。小学生算术练习系统。l例例1.4计时器。计时器。Ch1.2C语言程序结构语言程序结构例例1.1输出一行信息输出一行信息:This is a C program.This is a C program.#include/*主函数主函数*/intmain()printf(ThisisaCprogram.n);/输出语句输出语句return0;l说明:说明:l主函数主函数main()main()、分号、注释、函数体
4、、分号、注释、函数体 Ch1.2C语言程序结构语言程序结构例例1.2 求任意两个整数之和。求任意两个整数之和。#include#include /包含输入输出函数的头文件包含输入输出函数的头文件int main()int main()int a,b,sum;int a,b,sum;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);sum=a+b;sum=a+b;printf(sum is%d printf(sum is%dn,sum);n,sum);return 0;return 0;/*/*可可执行执行语句语句 */说明性语句:定义说明性语句:定义3 3个整型变量个整型
5、变量例例1.3 求求2个数中较大者。个数中较大者。#include#include int main()int main()int max(int x,int y);int max(int x,int y);/*/*对被调用函数对被调用函数maxmax的声明的声明*/int a,b,c int a,b,c;/*/*定义变量定义变量a a、b b、c*/c*/scanfscanf(d,d,d,&a,&b);d,&a,&b);/*/*输入变量输入变量a a和和b b的值的值*/c=c=max(a,b);max(a,b);/*/*调用调用maxmax函数函数,结果赋给结果赋给c*/c*/printf
6、printf(max=(max=dn,cdn,c););/*/*输出输出c c的值的值*/return 0;return 0;int max(int x,int y)int z;if (xy)z=x;else z=y;return(z);说明:功能复杂的程序可说明:功能复杂的程序可用多个函数实现,如用多个函数实现,如本程本程序包括主函数序包括主函数mainmain和被调和被调用函数用函数maxmax两个函数。两个函数。(1)(1)C C程序的基本组成单位是程序的基本组成单位是函数函数(主函数、被调用函数)主函数、被调用函数)Ch1.2C语言程序结构语言程序结构小结小结(2)(2)函数:一个函数
7、由函数:一个函数由函数头函数头和和函数体函数体两部分组成。两部分组成。函数体包括两部分函数体包括两部分 :声明部分、执行部分。声明部分、执行部分。int max(int x,int y)int z;if (xy)z=x;else z=y;return(z);(3)(3)一个程序一个程序有且仅有一个有且仅有一个main()main()函数函数。因为:因为:C C程序程序总是从总是从mainmain函数开始执行函数开始执行的的 Ch1.2C语言程序结构语言程序结构小结小结(4)C(4)C语言的语句以分号结束。语言的语句以分号结束。(5)C(5)C程序书写格式自由程序书写格式自由,一行内可以写几个语
8、句一行内可以写几个语句,一一个语句可以分写在多行上,个语句可以分写在多行上,C C程序没有行号。程序没有行号。注意合理的缩进,遵循注意合理的缩进,遵循规范的程序设计风格规范的程序设计风格。(6)C(6)C语言本身没有输入输出语句。语言本身没有输入输出语句。输入和输出的操作是由库函数输入和输出的操作是由库函数scanfscanf和和printfprintf等等函数来完成的。函数来完成的。(7)(7)注释注释:两种形式,两种形式,/*/常用于一段程序的注释,常用于一段程序的注释,/常用于对本行语句作注释。常用于对本行语句作注释。Ch1.3C语言语言的基本语法单位的基本语法单位(2)(2)关键字关键
9、字 (3)(3)运算符运算符 (4 4)流程控制语句)流程控制语句 (5 5)函数)函数(1)(1)标识符:标识符:程序中的变量名、函数名、符号常量名程序中的变量名、函数名、符号常量名等统称为标识符等统称为标识符l标识符的命名规则:标识符的命名规则:只能由字母、数字和下划线三种字符组成,且不只能由字母、数字和下划线三种字符组成,且不能以数字开头;能以数字开头;不能与关键字同名;不能与关键字同名;尽量做到尽量做到“见名知义见名知义”,比如:变量,比如:变量studentstudent表示表示学生,学生,namename表示姓名等。表示姓名等。练一练:下列标识符,哪一组是合法的?为什么?练一练:下
10、列标识符,哪一组是合法的?为什么?A.sum 2day _total B.month Student_name lotus_1_2_ C.while if intD._sum no*3&aaE.M.D.John¥123 stu-score 思考:如何编写程序来解决实际问题思考:如何编写程序来解决实际问题?比如:比如:计算任意两数的平均值,计算任意两数的平均值,找出任意输入的两个数的较大者,找出任意输入的两个数的较大者,求求5!等等。!等等。解题思路:先找解决问题的方法,后用C语言编程实现。Ch1.4用用C语言编程语言编程解决问题的一般过程解决问题的一般过程1.分析问题分析问题l从两个方面分析:
11、从两个方面分析:(1)数据分析:数据分析:分析任务中要处理的数分析任务中要处理的数据及其类型据及其类型(2)功能分析:明确要实现的功能,即功能分析:明确要实现的功能,即数据从哪里来、进行怎样的数据处数据从哪里来、进行怎样的数据处理、处理结果送到哪里。理、处理结果送到哪里。l Ch1.4.1分析问题与设计算法分析问题与设计算法例例1.4 计算任意两数的平均值。计算任意两数的平均值。(1 1)定义数据:设用)定义数据:设用a a和和b b表示输入的任意两个数,表示输入的任意两个数,用用averageaverage表示平均值。表示平均值。(2 2)算法:)算法:步骤步骤1 1:先输入两个数,分别存入
12、:先输入两个数,分别存入a a和和b b。步骤步骤2 2:将:将a a和和b b相加再除以相加再除以2 2,将结果送入,将结果送入averageaverage。步骤步骤3 3:将结果:将结果averageaverage的值输出。的值输出。Ch1.4.1分析问题与设计算法分析问题与设计算法2.设计算法设计算法l 解决问题的操作步骤就是算法。解决问题的操作步骤就是算法。起止框起止框判断框判断框处理框处理框输入输入/输出框输出框注释框注释框流向线流向线连接点连接点用自然语言描述算法可读性较差,常用流程图用自然语言描述算法可读性较差,常用流程图表示。表示。Ch1.4.1分析问题与设计算法分析问题与设计
13、算法三种基本结构:三种基本结构:顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构 结构化程序设计:用这三种基本结构作为表示结构化程序设计:用这三种基本结构作为表示一个良好算法的基本单元。一个良好算法的基本单元。Ch1.4.1分析问题与设计算法分析问题与设计算法(a)顺序结构(b)选择结构(c)循环结构三种基本结构的流程图表示:Ch1.4.1分析问题与设计算法分析问题与设计算法l例例1.4找出任意输入的找出任意输入的两个数的较大者。两个数的较大者。l数据定义:数据定义:l设输入的两个数分设输入的两个数分别用别用a和和b表示。表示。Ch1.4.1分析问题与设计算法分析问题与设计算法例例1.
14、5 求求5!的流程图。的流程图。数据定义:设用t表示部分积,i表示每次要乘的15之间的一个数。Ch1.4.1分析问题与设计算法分析问题与设计算法编辑:编辑:输入输入/修改源程序修改源程序.编译:编译:翻译并检查语法错误翻译并检查语法错误.连接连接:与库函数和其他函数:与库函数和其他函数等连接成可执行文件。等连接成可执行文件。运行运行:提示:提示:在在VC+6.0VC+6.0下编辑的源下编辑的源程序文件名为程序文件名为f.cppf.cppCh1.4.2编写编写C程序程序与上机调试与上机调试阶段小结与思考阶段小结与思考l小结:小结:1.C C语言是程序设计语言中最常用的一种,语言是程序设计语言中最
15、常用的一种,2.C 2.C语言程序的基本组成单位是函数,每个程序有且只语言程序的基本组成单位是函数,每个程序有且只有一个有一个main()main()函数;函数;3.3.用用C C语言编程解决问题的基本步骤:分析问题、编语言编程解决问题的基本步骤:分析问题、编写程序、调试运行写程序、调试运行 4.C 4.C程序的运行包括程序的运行包括4 4个基本步骤;个基本步骤;1.一个C程序的执行是从()。A.本程序的本程序的main函数开始,到函数开始,到main函数结束函数结束B.本程序文件的第一个函数开始,到本程序本程序文件的第一个函数开始,到本程序文件的最后一个函数结束文件的最后一个函数结束C.本程
16、序的本程序的main函数开始,到本程序文件的函数开始,到本程序文件的最后一个函数结束最后一个函数结束D.本程序的第一个函数开始,到本程序本程序的第一个函数开始,到本程序main函数结束函数结束随堂练习随堂练习2.以下叙述不正确的是()。A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面随堂练习随堂练习2.1为什么要用数据类型和运算符为什么要用数据类型和运算符例例2.1输入任意半径,计算圆的周长和面积。输入任意半径,计算圆的周长和面积。思路:思路:先分析算法先分析算法(包括数据说明包括数据说明
17、),后编程序;,后编程序;数据说明:数据说明:设用设用r表示半径、表示半径、length表示周长、表示周长、area表示面积。表示面积。算法:算法:(1)输入半径;)输入半径;(2)计算周长、面积)计算周长、面积(3)输出结果)输出结果实例:实例:例例2.1输入任意半径,计算圆的周长和面积。输入任意半径,计算圆的周长和面积。#define PI 3.1415926#define PI 3.1415926#include#include intint main()main()double r,length,area;/double r,length,area;/定义变量定义变量 printfpr
18、intf(n enter the radius:);/n enter the radius:);/提示提示 scanfscanf(%lf,&r);/(%lf,&r);/输入半径输入半径 length=2*PI*r;/length=2*PI*r;/计算周长计算周长 area=PI*r*r;/area=PI*r*r;/计算面积计算面积 printfprintf(n r=%f,length=%f,area=%f n,(n r=%f,length=%f,area=%f n,r,length,arear,length,area);/);/输出结果输出结果 return 0;return 0;问题提出:问
19、题提出:为何要用数据类型和运算符为何要用数据类型和运算符【结合结合例例2.1分析分析】如何数据说明定义变量?如何数据说明定义变量?如何根据算法编写程序呢?如何根据算法编写程序呢?即:在即:在C语言中,语言中,l如何描述要处理的数据如何描述要处理的数据?数据类型数据类型l如何描述对数据的基本操作如何描述对数据的基本操作?l运算符运算符2.2.1C的的数据类型数据类型【了解了解】数据类型数据类型构造类型构造类型指针类型指针类型空类型(空类型(无值类型)无值类型)voidvoid枚举类型枚举类型 enumenum数组类型数组类型结构类型结构类型 structstruct联合类型联合类型 unionu
20、nion基本类型基本类型整型整型 intint字符型字符型 charchar实型(浮点型)实型(浮点型)单精度实型单精度实型 floatfloat双精度实型双精度实型 double数据类型预习检测:数据类型预习检测:假设程序中要用变量假设程序中要用变量age表示学生的年龄,表示学生的年龄,则变量则变量age应该定义为()类型。应该定义为()类型。1 char 2 int 3 float 4 double2.2.2常量与变量常量与变量l数据类型用于描述要处理的数据类型用于描述要处理的数据。数据。如如整数、实数、字符数据等。整数、实数、字符数据等。程序程序中数据有两种表现形式:中数据有两种表现形式
21、:常量与变量常量与变量 符号常量符号常量符号常量符号常量:用用#define#define指令定义一个符号名称代表一个指令定义一个符号名称代表一个常量。如常量。如 PI PI 代表代表 3.1415926 3.1415926使用符号常量的好处:提高可读性,便于修改。使用符号常量的好处:提高可读性,便于修改。2.2.2常量与变量常量与变量(一)(一)常量和符号常量常量和符号常量在程序运行过程中在程序运行过程中,其值不能被改变的量其值不能被改变的量称为常量。称为常量。比如:比如:2 2,15001500,-3 -3 是整型常量是整型常量 2.5 2.5,-5.78-5.78,是实型常量是实型常量
22、A A,*是字符常量是字符常量 提示:符号常量一般用提示:符号常量一般用大写大写,而变量名一般用小写,以示区别。,而变量名一般用小写,以示区别。(二)变量(二)变量变量代表内存中具有特定属性的一个存储单变量代表内存中具有特定属性的一个存储单元,它是用来存放数据的,这就是变量的值,元,它是用来存放数据的,这就是变量的值,在程序运行期间,这些值是可以改变的。在程序运行期间,这些值是可以改变的。可以将变量看作一个存放数据的可以将变量看作一个存放数据的“容器容器”2.2.2常量与变量常量与变量 (三)常变量:(三)常变量:const int a=3;const int a=3;如何区分不同的变量呢?如
23、何区分不同的变量呢?变量名变量名 如何给变量起名呢?如何给变量起名呢?【下页:标识符的命名规则下页:标识符的命名规则】2.2.3整型数据整型数据l基本整型:基本整型:intl修饰符:修饰符:long,short,unsigned共六种共六种(了解了解)有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型(signed)int(signed)short(int)(signed)long(int)unsigned intunsigned short(int)unsigned long(int)如何描述整如何描述整型数据?型数据?2.2.3整型整型数据数据l整型变量整型变量:
24、用于存放整型数据。用于存放整型数据。例如例如:inta,b;/定义变量、为整型定义变量、为整型unsignedshortc,d;/定义无符号短整型变量,定义无符号短整型变量,dlonge,f;/指定变量、为长整型指定变量、为长整型l整型常量:如整型常量:如2,2L多个变量之间多个变量之间以逗号分开以逗号分开2.2.3整型整型数据数据l例例3.2设程序中要处理的数据为:设程序中要处理的数据为:1024和和65536,分别用变量分别用变量x和和y保存,问:如何定义保存,问:如何定义x和和y?结论:根据数据的类型和大小确定变量的具体类型。结论:根据数据的类型和大小确定变量的具体类型。int x;lo
25、ng y;l不同类型的数据所占的存储空间不同、表示的不同类型的数据所占的存储空间不同、表示的数据的范围不同。数据的范围不同。【详见表详见表3.2,了解,了解】l应用:应用:根据实际要处理的数据大小根据实际要处理的数据大小合理选择数合理选择数据类型。据类型。分析:如何正确使用各种类型分析:如何正确使用各种类型?重重点点2.2.4实型(浮实型(浮点点型)数型)数据据不同类型的数据所占的存储空间不同、表示的不同类型的数据所占的存储空间不同、表示的数据的范围不同。数据的范围不同。【详见表详见表3.43.4,了解,了解】l单精度(单精度(floatfloat型)型)l双精度(双精度(doubledoub
26、le型)型)l长双精度型(长双精度型(long doublelong double)如何描述实型数据?如何描述实型数据?2.2.4实型实型数据数据(一)实型常量的表示方法(一)实型常量的表示方法两种表两种表示形式示形式小数小数指数指数0.1230.1233 3e-3e-3 3*10 3*10-3-3 注意注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数1e31e3 1.8e-31.8e-3 -123e-6 -123e-6 e3 2.1e3.5 e3 2.1e3.5 提示:提示:C C编译系统将浮点型常量作为编译系统将浮点型常量作为双双精度精度来处理。来处理。如在数的后面加字母如在数
27、的后面加字母f f或或F F,则表示,则表示floatfloat型(如型(如1.65f,654.87F1.65f,654.87F)。)。l思考;思考;12.312.3是什么类型的数是什么类型的数据?据?2.2.4实型数据实型数据l实型变量是用来保存实型数据的。实型变量是用来保存实型数据的。l实型变量的定义:如实型变量的定义:如floatx;doublearea;l例例3.4有两个数据有两个数据123.5和和123.456789e10,设分别,设分别用变量用变量m和和n表示,如何定义变量?表示,如何定义变量?(二)(二)实型变量实型变量float m;double n;m=123.5;n=123
28、.456789e10;结论:根据数据的类型和大小确定变量的具体类型。结论:根据数据的类型和大小确定变量的具体类型。2.2.5字符型字符型数据数据(一)(一)字符常量字符常量(1)用单引号包含的一个字符,存储时占一个字节a,A,1,$abc、”a”(2)(2)用单引号包含的转义字符。如用单引号包含的转义字符。如n,tn,t转义字符:以转义字符:以“”开头的特殊字符。开头的特殊字符。【详见表3.1】如何描述符号数据?如何描述符号数据?字符类型字符类型 char2.2.5字符型字符型数据数据(二)字符变量(二)字符变量字字符符型型变变量量用用来来存存放放字字符符,一一个个字字符符变变量量在在内存中占
29、一个字节,只能放一个字符。内存中占一个字节,只能放一个字符。字符变量的定义形式如下:字符变量的定义形式如下:char c1,c2;char c1,c2;2.2.5字符型数据字符型数据(三)(三)字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法字符变量保存的实际上是字符的字符变量保存的实际上是字符的ASCIIASCII代码。代码。比如,比如,c c a;da;db;b;等价于等价于 c=97;d=98;c=97;d=98;结论:字符型数据和整型结论:字符型数据和整型数据之间在一定范围内可数据之间在一定范围内可以通用以通用。#includeintmain()charc,
30、d;c=a;d=b;printf(n%c%c,c,d);printf(n%d%dn,c,d);return0;运行结果:运行结果:ab9798l例例2.2定义字符变量定义字符变量c和和d,分别用于保存字符,分别用于保存字符a和和b,然后按照字符和数值两种形式输出变量的值。,然后按照字符和数值两种形式输出变量的值。数据类型数据类型小结小结l如何描述程序要处理的数据?如何描述程序要处理的数据?l基本数据如整数、实数、字符如何表示?基本数据如整数、实数、字符如何表示?l如何确定数据的类型?如何确定数据的类型?应用:如何确定数据的类型?应用:如何确定数据的类型?l练习:练习:如何定义年龄如何定义年龄a
31、ge、成绩、成绩score、性、性别别sex三个变量三个变量?l讨论讨论:要表示一个班的学生成绩,用常量还要表示一个班的学生成绩,用常量还是变量?是变量?问题问题2:l如何表示对数据的基本操作?如何表示对数据的基本操作?使用运算符组成表达式使用运算符组成表达式l学习提示:掌握运算符的功能、操作数的个数及类型、优先级和结合方向。2.3用基本运算符实现简单操作用基本运算符实现简单操作l运算符规定了对数据的基本操作。运算符规定了对数据的基本操作。l语言中共提供了丰富的运算符,以后逐步语言中共提供了丰富的运算符,以后逐步学习。学习。l本章学习基本的运算符:本章学习基本的运算符:l 算术运算符、赋值运算
32、符算术运算符、赋值运算符2.3.1算术运算术运算符算符和表和表达式达式(1)基本的算术运算符和表达式)基本的算术运算符和表达式 问题:问题:如何表示数学中常用的算数运算?即如何将如何表示数学中常用的算数运算?即如何将算数表达式写成算数表达式写成C C语言中的表达式?语言中的表达式?比如,比如,a+b a+b5-c5-c2 2 表达式预习检测:请将数学中的表达式 a+b5-c2写成C语言中的表达式2.3.1算术运算符和表达式算术运算符和表达式 (加法运算符,如加法运算符,如:、)、)(减法运算符,如减法运算符,如:、)、)*(乘法运算符。如(乘法运算符。如:*)(除法运算符。如除法运算符。如:)
33、(模运算符,或称求余运算符,两侧均应为模运算符,或称求余运算符,两侧均应为整型数据整型数据,如如:的值为)。的值为)。2.3.1算术运算符和算术表达式算术运算符和算术表达式操作数:操作数:2 2个,即双目运算符,除求余(个,即双目运算符,除求余(%)运算符外,)运算符外,其余四种运算符的操作数可以为整型或实型。其余四种运算符的操作数可以为整型或实型。加(加(+)、减()、减(-)也可作为数据的正负号,只需一个操作数。)也可作为数据的正负号,只需一个操作数。优先级:优先级:先乘除,后加减先乘除,后加减结合性结合性:从左向右从左向右 提示:两个提示:两个同类型数据同类型数据的算术运算结果仍为原来的
34、类型。的算术运算结果仍为原来的类型。如如 7/3 7/3 2 2 2.4/1.2 2.4/1.2 2.0 2.0计算计算 25/425/4 与与 25%425%4 的值。A.6 6B.6.25 6C.6 1D.6.25 12.3.1算术运算算术运算符和算术表达式符和算术表达式说明:说明:C C语言中没有乘方、开方等运算符,通过语言中没有乘方、开方等运算符,通过调用数学函数来实现。调用数学函数来实现。如:如:sqrtsqrt(x)(x)表示表示 x x的开平方的开平方 pow(pow(x,yx,y)表示表示 x xy y l思考:如何表示乘方、开方、求正弦等数学运算?思考:如何表示乘方、开方、求
35、正弦等数学运算?2.3.1算术运算符和算术表达式算术运算符和算术表达式(2)(2)自增(自增(+)、自减()、自减(-)运算符)运算符 单目运算符,单目运算符,功能:功能:使变量的值增或减,使变量的值增或减,即即i=i+1i=i+1或或i=i-1i=i-1如如:前缀用法:,(在使用之前,前缀用法:,(在使用之前,先使的值加(减)先使的值加(减)后缀用法:,(在使用之后,后缀用法:,(在使用之后,使的值加(减)使的值加(减)2.3.1算术运算算术运算符和算术表达式符和算术表达式i+i+与与+i+i的区别:的区别:;i i的值先变成的值先变成4,4,再赋给再赋给,j,j的值均为的值均为 ;先将先将
36、 i i的值的值3 3赋给赋给,的值为,然后变为的值为,然后变为练习:设练习:设 intint i i=6,j=6,k=6,=6,j=6,k=6,h=6,m,n,x,y;h=6,m,n,x,y;m=m=i i+;n=+j;x=k-;+;n=+j;x=k-;y=-h;y=-h;则执行上述语句后,各变量的值则执行上述语句后,各变量的值为:为:i i=7,j=7=7,j=7,k=5k=5,m=6,n=7m=6,n=7,x=6,h=5,y=5x=6,h=5,y=52.3.1算术运算符和算术表达式算术运算符和算术表达式提示:提示:和的结合方向是和的结合方向是“自右至左自右至左”。应用提示:为避免误解,不
37、要写成应用提示:为避免误解,不要写成i+ji+j的形式,而的形式,而应写成应写成 (i+)+j(i+)+j的形式的形式.应用:应用:自增(减)运算符常用于循环语句中使循环变量自增(减)运算符常用于循环语句中使循环变量自动加。也用于指针变量,使指针指向下一个地址。自动加。也用于指针变量,使指针指向下一个地址。2.3.2不同类型数据间的混合运算不同类型数据间的混合运算l问题:当一个表达式中包含不同类型的数据问题:当一个表达式中包含不同类型的数据时,如何计算?时,如何计算?如:如:1+3.5 5-1.0/21+3.5 5-1.0/2(1)隐式转换:(每一步运)隐式转换:(每一步运算前)当参加运算的两
38、个操算前)当参加运算的两个操作数类型不同时,系统自动作数类型不同时,系统自动进行类型转换,转换规则如进行类型转换,转换规则如图图(低类型转换为高类型低类型转换为高类型。)。练习:练习:设设int a=3,b=2;float c=4;int a=3,b=2;float c=4;计算计算/*.5.5aa2.3.2不同类型不同类型数据间的混合运算数据间的混合运算l问题:当自动转换不能满足用户需要时,如何处问题:当自动转换不能满足用户需要时,如何处理?理?如:如:float r float r;r=1.53r=1.53;编译时提示编译时提示“警告警告 ”:warning:truncation from
39、 const double to warning:truncation from const double to floatfloatl(2)强制类型转换:当自动转换不能满足用户需)强制类型转换:当自动转换不能满足用户需要时,可以使用强制类型转换运算符将数据转换要时,可以使用强制类型转换运算符将数据转换成指定的类型。成指定的类型。改为:改为:r=(float)1.5;r=(float)1.5;2.3.3赋值运算符和赋值表达式赋值运算符和赋值表达式问题:如何将要处理的数据送给变量?问题:如何将要处理的数据送给变量?比如,将学生成绩比如,将学生成绩96送给变量送给变量score(设(设 float
40、 score;)方法一:从键盘等输入方法一:从键盘等输入scanf(%f,&score);方法二:给变量赋值方法二:给变量赋值 score=96;/或者初始化 float score=96;(3)结合方向结合方向:自右向左 例如例如:a=b=5 等价于 a=(b=5)分析分析 (4)优先级优先级:比算术运算符低。如:x=a/4+2(2 2)赋值表达式的值:)赋值表达式的值:即赋给左边变量的值。如:即赋给左边变量的值。如:表达式表达式b*b*的值的值:27:27提示:提示:当右边表达式的值与左边变量的类型不同时,首先当右边表达式的值与左边变量的类型不同时,首先将右边表达式的值转换为左边变量的类型
41、,然后赋值。分析:将右边表达式的值转换为左边变量的类型,然后赋值。分析:float c,d;c=3*4;d=2.5;float c,d;c=3*4;d=2.5;(1)(1)赋值运算符赋值运算符:赋值表达式:变量赋值表达式:变量=表达式表达式 如:如:int a,b=9;int a,b=9;表达式:表达式:a=b*3a=b*3 执行过程:执行过程:计算计算“”右边表达式的值,右边表达式的值,赋给左边的变量。赋给左边的变量。重点重点2.3.3赋值运算符和赋值表达式赋值运算符和赋值表达式 (5)(5)复合赋值运算符与复合赋值表达式复合赋值运算符与复合赋值表达式 在在赋赋值值符符“”之之前前加加上上其
42、其他他双双目目运运算算符符,即即构构成成复合赋值运算符。如:复合赋值运算符。如:+=*=/=+=*=/=复合赋值表达式:复合赋值表达式:变量变量op=op=表达式表达式 等价于:等价于:变量变量=变量变量 op op(表达式)(表达式)例如例如:等价于等价于 +练习:练习:*等价的表达式等价的表达式?等价的表达式等价的表达式?提示:注意计算时合理使用括号,以保证原来的表达式的含义。*(+)2.3.4变变量初量初始化始化 (1)(1)语言允许在定义变量的同时语言允许在定义变量的同时给给变量变量赋初值赋初值。如如:int a=3;/int a=3;/指定为整型变量,初值为指定为整型变量,初值为 f
43、loat f=3.56;/float f=3.56;/指定为浮点型变量,初值为指定为浮点型变量,初值为.56 .56 char c=a;/char c=a;/指定为字符变量,初值为指定为字符变量,初值为a a(2 2)如果对几个变量赋以同一个初值,)如果对几个变量赋以同一个初值,应写成:应写成:int a=3,b=3,c=3;/int a=3,b=3,c=3;/表示表示,b,b,的初值都是的初值都是 不能写成不能写成 int a=b=c=3;/why?int a=b=c=3;/why?第二章第二章第二阶段小结第二阶段小结l如何描述算术运算、赋值操作等基本操作?如何描述算术运算、赋值操作等基本操
44、作?l算术运算符和表达式、赋值运算符和表达式算术运算符和表达式、赋值运算符和表达式l重点掌握运算符的功能、操作数、优先级和结合方向。重点掌握运算符的功能、操作数、优先级和结合方向。l当一个表达式中含有不同类型的数当一个表达式中含有不同类型的数据时,如何计算?据时,如何计算?自动转换规则:低类型转自动转换规则:低类型转换成高类型换成高类型作业作业l上机:上机:习题习题p25第二题第二题l课下练习课下练习:第一题:第一题预习预习l如何输入数据、如何输出结果?如何设如何输入数据、如何输出结果?如何设置输出格式?置输出格式?l比如,将习题比如,将习题7改为:用户输入圆的半改为:用户输入圆的半径和圆柱体
45、的高度,计算圆周长、圆面径和圆柱体的高度,计算圆周长、圆面积、圆球表面积、圆球体积和圆柱体体积、圆球表面积、圆球体积和圆柱体体积。积。问题:用程序处理数据的一问题:用程序处理数据的一般过程包括哪几步?般过程包括哪几步?例1:将用户给出的华氏温度转换成摄氏温度。分析问题:(1)数据定义:设f表示华氏温度,c表示摄氏温度。(2)算法描述:输入华氏温度输入华氏温度f;按照转换公式按照转换公式c=5/9*(f-32)计算;计算;输出结果。输出结果。编写程序:编写程序:#includeintmain()floatf,c;printf(enteraFahrenheit:);scanf(%f,&f);/输入
46、华氏温度输入华氏温度c=(float)5.0/9*(f-32);/计算计算printf(f=%f,c=%f,f,c);/输出结果输出结果return0;简单程序分析:简单程序分析:1.数据说明:定义变量数据说明:定义变量2.数据处理:数据处理:(1)数据的输入数据的输入(2)计算处理计算处理(3)结果的输出结果的输出问题:如何实现数据的输入和结果的输出呢?主要内容主要内容简单的输入输出简单的输入输出学习要求:学习要求:学会根据要处理的数据的类型不同合理学会根据要处理的数据的类型不同合理选用合适的输入选用合适的输入/输出函数和格式。输出函数和格式。Ch3简单的输入输出简单的输入输出ch3.1数据
47、的输入数据的输入/输出概念输出概念l例例3.1中用中用scanf()实现了数据的输入,用实现了数据的输入,用printf()实现实现了数据的输出。了数据的输出。l输入输出输入输出:相对于计算机的主机。相对于计算机的主机。输入输入是指从计算机的外部设备将数据读入主机是指从计算机的外部设备将数据读入主机,输出输出是指将数据从主机送到外设(显示器、打印机、是指将数据从主机送到外设(显示器、打印机、磁盘等)。磁盘等)。输入设备输入设备(如键盘)(如键盘)主机主机输出设备输出设备(如显示器)(如显示器)输入输入输出输出ch3.1数据的输入数据的输入/输出实现输出实现l输入输出的实现:输入输出的实现:调用
48、库函数调用库函数l输入输出函数的使用:输入输出函数的使用:编程时必须先将输编程时必须先将输入输出函数所在的入输出函数所在的头文件:头文件:stdio.h stdio.h 包含包含进本程序中。使用命令:进本程序中。使用命令:#includel约定:约定:C C语言中的标准输入输出设备约定为语言中的标准输入输出设备约定为用户终端,即键盘和显示器。用户终端,即键盘和显示器。Ch3.2.1格式输出函数格式输出函数l1.printf()函数的一般调用格式:函数的一般调用格式:printf(格式控制字符串格式控制字符串,输出表列);输出表列);如前面例题中:如前面例题中:printf(nenteraFah
49、renheit:);printf(f=%f,c=%f,f,c);提示:格式控制串包含两部分,即格式控制符、提示:格式控制串包含两部分,即格式控制符、普通字符。普通字符。其中,普通字符原样输出,而每个格式控制符其中,普通字符原样输出,而每个格式控制符控制输出表列中的一个数据的输出格式。控制输出表列中的一个数据的输出格式。#includeintmain()inta=354,b=-2;printf(n%d%d,a,b);printf(n%d,%d,a,b);printf(na=%d,b=%d,a,b);printf(na=%dnb=%d,a,b);printf(n%6d%6d,a,b);printf
50、(n%-6d%-6d,a,b);printf(n%6dn%6d,a,b);return0;理解以上几种格式的使用,理解以上几种格式的使用,添加:添加:float x=1.25,b=289.4766;输出输出控制小数位数为控制小数位数为2位。位。将将float改为改为double,并比较并比较double和和float的区别的区别*/printf()中格式字符的作用:中格式字符的作用:理解常用的格式控制符:理解常用的格式控制符:%d%f%c%6d%6.2f%lf%ld具体的格式说明符参见具体的格式说明符参见P74表表3.6其他格式符的使用:对照例题,上机调试,熟其他格式符的使用:对照例题,上机调