《《C语言程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计》PPT课件.ppt(276页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计语言程序设计教材分析本书内容共有11章,可分为三部分。第1、2章为第一部分,为初学者的入门知识,使读者对c语言编写程序的步骤、方法和程序结构及算法描述有一个大致的了解。第3第5章为第二部分,是程序设计的基础部分,使读者详细了解c语言的基本数据类型和表达式以及c语言的控制结构。掌握了第一、二部分的内容,读者可以完成简单的程序设计。第6章第11章为第三部分,讲述了模块化程序设计的概念和实现的方法,为程序设计提供了更多、更方便的途径,为进行综合程序设计奠定了基础。每一个章节里都有详细的程序范例来说明程序的设计思想、语句的概念、作用、含义和使用方法,使学生能够由浅入深系统地学习c语言的知
2、识,同时掌握一定的编程方法。成绩考核成绩考核成绩考核方法:成绩考核方法:期末成绩期末成绩=平时成绩平时成绩20%+期末考试期末考试80%;注:平时成绩包括:上课情况、作业情况、上机作业完注:平时成绩包括:上课情况、作业情况、上机作业完成情况等。成情况等。学习学习C的忠告的忠告上机实践上机实践(编程编程)!(Try!)C语言程序设计教程语言程序设计教程第第1章章 引言引言 第第2章章 程序的简单算法制定程序的简单算法制定第第3章章 基本程序语句基本程序语句第第4章章 选择结构选择结构第第5章章 循环结构循环结构 第第6章章 函数与编译预处理函数与编译预处理第第7章章 数组数组第第8章章 指针指针
3、第第9章章 构造数据类型构造数据类型 第第10章章 文件文件第第11章章 位运算位运算C语言程序设计课程的任务1.指导学生掌握C程序设计语言的基础知识;2.培养学生综合分析并编制程序解决实际应用问题的能力;3.培养学生契而不舍的解决问题的精神以及认真的学习态度。通常我们把设计、书写及检查调试程序的过程称为程序设计。应当指出,简单的程序设计应包括以下几个部分:确定数据结构确定算法编写代码调试并运行整理并写出文档资料第一章引言1.1C语言的特点1.2简单的C语言程序介绍1.3C语言程序的结构1.4C程序设计语言的执行1.1C语言的特点C语言有9种控制语句,32个关键字。运算符丰富。共有34种运算符
4、数据结构类型丰富。具有结构化的控制语句语法限制不太严格,程序设计自由度大。C语言允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。生成目标代码质量高,程序执行效率高。C语言编写的程序可移植性好。1.2简单的C语言程序介绍/*/*在屏幕上输出在屏幕上输出在屏幕上输出在屏幕上输出This is a C program.This is a C program.*/*/#include void main()printf(“This is a C program.n”);注释注释/*在屏幕上输出在屏幕上输出This is a C program.*/C程序中的“/*/”之间的内容称为注释,是
5、程序编写者给程序阅读者留下的一些说明(注释),以帮助阅读者理解程序。编译器不对注释进行编译,只将它们当作空白看待。本程序的第1行中的注释为“ex101.c”,是说明本书编写时将这个程序保存在文件中。库函数与文件包含命令include#include n库函数库函数:系统提供的标准函数,程序可直接使用;n使用库函数必须将其有关说明信息写入程序使用库函数必须将其有关说明信息写入程序。为了用户方便,系统定义库函数时,把一类相关库函数的说明信息,分别写在一些文件中。本例中使用了库函数printf,其有关说明信息写在文件中。所以在程序的开始加入了#includeinclude n使用使用C语言的语言的库
6、函数,库函数,库函数,库函数,要在程序前面加上要在程序前面加上类似类似#include include 的的的的预处理命令预处理命令预处理命令预处理命令main函数任何任何C程序都程序都必须有且只能有一个主函数必须有且只能有一个主函数必须有且只能有一个主函数必须有且只能有一个主函数main()main(),它是程序的入口,它是程序的入口,也是程序的出口。其中,也是程序的出口。其中,main是是函数名函数名函数名函数名,()内可以包含一些内可以包含一些参数参数参数参数;的内容称为的内容称为函数体函数体函数体函数体,其包含若干条其包含若干条C C程序语句程序语句程序语句程序语句;不同语句之间用;不
7、同语句之间用分号分号分号分号分隔;一般情况下,每个程序都由一至多个函数组成;分隔;一般情况下,每个程序都由一至多个函数组成;表示表示main函数函数没有返回值没有返回值函数名函数名函数体函数体语句语句voidvoid main main()printf(“This is a C program.n”);printf(“This is a C program.n”);演示ex101语句printf(“This is a C program.n”);C语言的主函数体由一些语句组成。每个语句由一个分号结束。如本例中,主函数的一个语句:printf(“This is a C program.n”);说
8、明:说明:n函数printf是系统系统提供的一个库函数,printf函函数的功能是向数的功能是向显示器显示器输出一段信息输出一段信息,具体内容括在双引号内具体内容括在双引号内;n参数中的“n”代表一个命令:输出完这行字符后换行,不是要求显示的文字。例例2 写出以下程序的运行结果写出以下程序的运行结果写出以下程序的输出结果写出以下程序的输出结果#include void main()printf(“Hellon”);printf(“world!n”);演示ex102例例3 四则运算编程四则运算编程#includeintadd(intx,inty);main()inta,b,c;scanf(%d%
9、d,&a,&b);c=add(a,b);/*函数调用语句*/printf(c=%d,c);intadd(intx,inty)return(x+y);演示ex103演示ex104讨论减、乘、除的编程输入函数Scanf()函数说明函数定义1.4 C程序设计语言的执行程序设计语言的执行对于对于C语言程序来说,这一过程一般分为语言程序来说,这一过程一般分为4步:步:第第1步:编辑源程序;步:编辑源程序;第第2步:编译;步:编译;第第3步:链接;步:链接;第第4步:执行;步:执行;(整个过程如下图整个过程如下图)编编编编 辑辑辑辑(e e e ed d d di i i it t t t)编辑器编辑器编
10、辑器编辑器预预预预处处处处理理理理编编编编 译译译译(c c c co o o om m m mp p p pi i i il l l le e e e)编译器编译器编译器编译器库函数和库函数和库函数和库函数和其他目标模其他目标模其他目标模其他目标模块块块块链链链链 接接接接(l l l li i i in n n nk k k k)链接器链接器链接器链接器出错出错出错出错出错出错出错出错执执执执 行行行行(e e e ex x x xc c c cu u u ut t t te e e e/r r r ru u u un n n n)结果结果结果结果出错出错出错出错出错出错出错出错调试调试调
11、试调试debugdebugdebugdebug编编 译译编译就是把用编译就是把用C语言描述的程序翻译成计算机可以直接理语言描述的程序翻译成计算机可以直接理解并执行的机器语言命令组成的程序。解并执行的机器语言命令组成的程序。C语言的编译过程语言的编译过程分为分为两个阶段两个阶段:首先首先是编译预处理,系统要先扫描程序,是编译预处理,系统要先扫描程序,处理所有预处理命令,如把文件包含命令要求的文件包含处理所有预处理命令,如把文件包含命令要求的文件包含(嵌入)到程序中。(嵌入)到程序中。然后然后才开始编译。编译后得到的文件才开始编译。编译后得到的文件称为目标文件。目标文件就是用机器语言描述的文件。称
12、为目标文件。目标文件就是用机器语言描述的文件。C语言的目标文件的后缀为语言的目标文件的后缀为.obj。目标文件的主文件名,一。目标文件的主文件名,一般与源程序文件名相同。般与源程序文件名相同。在编译过程中,还要对源程序中的语法和逻辑结构进行检在编译过程中,还要对源程序中的语法和逻辑结构进行检查。编译任务是由称做编译器(查。编译任务是由称做编译器(compiler)的软件完成的。)的软件完成的。程序在编译过程中,也可能发现错误。这时要重新进入编程序在编译过程中,也可能发现错误。这时要重新进入编辑器进行编辑。辑器进行编辑。链链 接接链接是将与当前程序有关的、已经有的几个目标模块链接链接是将与当前程
13、序有关的、已经有的几个目标模块链接在一起,形成一个完整的程序代码文件。这些已经有的目在一起,形成一个完整的程序代码文件。这些已经有的目标模块有:标模块有:库函数:如前面使用的库函数:如前面使用的printf;对于大的程序,常常分成几个模块,分别编写、编辑和对于大的程序,常常分成几个模块,分别编写、编辑和编译,形成不同的目标模块。编译,形成不同的目标模块。经正确链接所生成的文件才是可执行文件。可执行文件的经正确链接所生成的文件才是可执行文件。可执行文件的文件名后缀为文件名后缀为.exe(有的系统为(有的系统为.out)。完成链接过程的)。完成链接过程的软件称为链接器(软件称为链接器(linker
14、)。)。程序在连接过程中,也可能发现错误。这时也要重新进入程序在连接过程中,也可能发现错误。这时也要重新进入编辑器进行编辑。编辑器进行编辑。执执 行行链接后得到的可执行文件名,对操作系统链接后得到的可执行文件名,对操作系统来说,相当于一条命令。在操作系统提供来说,相当于一条命令。在操作系统提供的命令界面上打入这个命令,就可以开始的命令界面上打入这个命令,就可以开始执行这个程序。执行这个程序。C语言的集成开发环境语言的集成开发环境Turboc2.0Turboc+(选用)Vc+等(1)打开Turboc+运行环境。界面如图:从图可以看到在集成环境的上部,有一行“主菜单”,其中包括下面10个菜单项:F
15、ileEditSearchRunCompileProjectOptionsDebugWindowHelp分别代表:文件操作、编辑、查找、运行、编译、项目文件、选项、调试、窗口、帮助等功能。用户可通过以上菜单项来选择使用TurboC集成环境所提供的各项主要功能。(2)编辑源程序。在File菜单下选择NEW子菜单项命令,系统的光标处于等待输入C源程序状态。输入完源程序后,选择File菜单下选择Saveas子菜单项命令进行保存,在随后弹出的保存文件对话框中,输入文件名*.c后按“”(3)编译源程序选择Compile主菜单项并在其下拉子菜单中选择Compile命令,则进行编译。若源程序无语错误,生成可
16、执行文件EXE;若源程序有语法错误,在Message窗口显示错误信息,此时没有生成可执行文件,应回到第2步,修改程序的错误,直到无语法错误、生成可执行文件。返回(4)连接程序在Compile菜单中,选择Link子菜单项命令,程序将被连接成可执行程序。注:按F9键,可一次完成编译和连接。(5)执行程序。选择Run子菜单命令,或按快捷键Ctrl+F9。(6)看结果。程序运行后看结果必须选择File菜单下的DOSShell命令或者按快捷键Alt+F5,才能看到运行的结果。如程序未得到预期的结果,应回到第2步,修改程序的错误。(7)退出TurboC+,File-Quit菜单命令或按Alt+X。总结:简
17、单总结:简单C语言程序设计步骤语言程序设计步骤1.分析问题,设计解决方案分析问题,设计解决方案分析问题,设计解决方案分析问题,设计解决方案2.了解和编写了解和编写了解和编写了解和编写C C语言程序代码语言程序代码语言程序代码语言程序代码3.上机调试(编辑、编译、链接、执行)上机调试(编辑、编译、链接、执行)上机调试(编辑、编译、链接、执行)上机调试(编辑、编译、链接、执行)理论课的主理论课的主理论课的主理论课的主要内容要内容要内容要内容 实验课的主要内容实验课的主要内容实验课的主要内容实验课的主要内容 上述每个步骤都可能出现很多错误,上述每个步骤都可能出现很多错误,上述每个步骤都可能出现很多错
18、误,上述每个步骤都可能出现很多错误,具体有三种错误:语法错误、逻辑错误、具体有三种错误:语法错误、逻辑错误、具体有三种错误:语法错误、逻辑错误、具体有三种错误:语法错误、逻辑错误、运行错误。总之,出现错误就要进行运行错误。总之,出现错误就要进行运行错误。总之,出现错误就要进行运行错误。总之,出现错误就要进行调调调调试试试试。作作 业业1、在屏幕上输出如下图形:、在屏幕上输出如下图形:25要求:写出程序,并上机调试,尽量保证要求:写出程序,并上机调试,尽量保证程序能够得到正确结果。程序能够得到正确结果。复习本讲内容复习本讲内容(第一章),预习教材第二章。(第一章),预习教材第二章。第二章程序的简
19、单算法制定2.1结构化程序的算法制定2.2结构化程序的算法描述2.3算法制定的范例2.1结构化程序的算法制定利用计算机处理问题简述2.1 结构化程序的算法制定结构化程序的算法制定例2.1从键盘输入3个数,找出其中最小的那个数。分析:1、需变量的个数-3个2、先比较a,b的值,把小的存在min中。3、再用min与c比较,把数值小的存放在min中。如果ab则min=a,否则min=b;如果c0-4ac0(双实根)(双实根)X1=X1=X2=X2=如果如果 b b2 2-4ac=0-4ac=0(单实根)(单实根)X1=X2=X1=X2=如果如果 b b2 2-4ac0-4ac=60)printf(“
20、Passed!”);elseprintf(“Failed”);算法可采用自然语言、流程图、N-S图、PAD图、伪代码等方法来描述。示例:根据学生成绩输出评定结果。一、算法(algorithm)二、算法与流程图二、算法与流程图传统流程图特点:直观形象;使用流线。缺点:占面积大,使用流线任意转移,易出现“乱麻”现象,造成编程与阅读程序困难。二、算法与流程图二、算法与流程图N-S结构化流程图77年美学者和提出。特点 取消流线 不允许流程任意转移,只能从上而下顺序执行 规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算法(结构化设计)。优点 算法清晰,流程不会无规律乱转移。二、算法与流
21、程图二、算法与流程图三种基本结构通常情况下,程序中的语句是以所编写的顺序一句接一句通常情况下,程序中的语句是以所编写的顺序一句接一句地执行,这种执行方法称为地执行,这种执行方法称为“顺序执行顺序执行”。许多。许多C C语句能够语句能够让程序员指定不按编写顺序执行下一条执行语句,这种执让程序员指定不按编写顺序执行下一条执行语句,这种执行方法称为行方法称为“控制转移控制转移”。BohmBohm和和JacopiniJacopini的研究证实,所有的程序都能够只用三种的研究证实,所有的程序都能够只用三种控制结构编写,即控制结构编写,即 顺序结构顺序结构 选择结构(选择结构(selection stru
22、ctureselection structure)循环结构(循环结构(repetition structurerepetition structure)顺序结构是顺序结构是C C语言的基本结构,除非指示转移,否则计算语言的基本结构,除非指示转移,否则计算机自动以语句编写的顺序一句一句地执行机自动以语句编写的顺序一句一句地执行C C语句。语句。任何任何C C语言程序都是由七种控制结构(顺序结构、三种选择语言程序都是由七种控制结构(顺序结构、三种选择结构和三种循环结构)构成的。结构和三种循环结构)构成的。二、算法与流程图二、算法与流程图三种基本结构顺序结构A块、B块顺序执行(每块代表一个或一组操作
23、)二、算法与流程图二、算法与流程图三种基本结构选择结构 条件p成立时执行a块(否则执行b块)uif 选择结构选择结构 条件为真时执行某个指定的操作,条件为假时跳过该操作(单路选择)uififelseelse选择结构选择结构 条件为真时执行某个指定的操作,为假时执行另一个指定的操作(双路选择)uswitchswitch选择结构选择结构 根据表达式的值执行众多不同操作中的某个指定的操作(多路选择)二、算法与流程图二、算法与流程图三种基本结构循环结构分当型和直到型两类。当型先判断,只要条件为真就反复执行A块,为假则结束循环。直到型先执行A块,再判断条件是否为真,为真则继续执行循环体,为假则结束循环。
24、C语言提供了三种循环结构,即while循环结构,dowhile循环结构和for循环结构。2.2.3PAD图PAD(ProblemAnalysisDiagram)另一种被广泛使用的一种算法的图形表示法。PAD图可以看成是二维的,它能展现算法的层次结构。(顺序结构很简单,在此未画图。)2.3算法制定范例例例2.4 把从键盘输入的大写字母转换成小写把从键盘输入的大写字母转换成小写字母,输出结果。字母,输出结果。问题:问题:1、描述算法、描述算法2、根据算法编写、根据算法编写C程序程序3、运行检查程序是否正确。、运行检查程序是否正确。演示演示ex2022.3算法制定范例例2.5已知实数a和b,计算u的
25、值:u=(r+s)2。其中,当ab时,r=a2-b2,s=a/b;当ab时,r=b2-a2,s=a/b+4。算法(算法(自然语言描述自然语言描述):):从键盘输入实数从键盘输入实数a和和b。如果如果ab,则,则r=a2-b2,s=a/b;否则,否则,r=b2-a2,s=a/b+4。计算计算u的值:的值:u=(r+s)2。输出输出u的值。的值。开始输入a,babTFr=a*a-b*bs=a/br=b*b-a*as=a/b+4结束u=(r+s)*(r+s)输出u的值流程图输入实数a,babFTr=a*a-b*bs=a/br=b*b-a*as=a/b+4计算的值:u=(r+s)*(r+s)输出u的值
26、N-S图输入实数a,babr=a*a-b*bs=a/br=b*b-a*as=a/b+4计算u=(r+s)*(r+s)输出u的值PAD图/*例例2.5*/#includemain()float a,b,r,s,u;printf(请输入变量请输入变量a、b的值:的值:);scanf(%f%f,&a,&b);if(ab)r=a*a-b*b;s=a/b;elser=b*b-a*a;s=a/b+4;u=(r+s)*(r+s);printf(所计算的所计算的u的值为:的值为:%f,u);C语言描述小结:小结:本章主要介绍了程序算法的制定方法:自然语言、本章主要介绍了程序算法的制定方法:自然语言、流程图、流
27、程图、N-SN-S图和图和PADPAD图。通过用这些方法表示解题图。通过用这些方法表示解题思路。思路。作业:作业:用流程图、用流程图、N-SN-S图和图和PADPAD图描述问题的算法:图描述问题的算法:从键盘输入从键盘输入3 3个整数个整数a,b,c,a,b,c,输出其中的最大的数。输出其中的最大的数。第三章 基本程序语句C C语言的数据类型简介语言的数据类型简介几个基本概念几个基本概念 C C语言的三种基本数据类型语言的三种基本数据类型基本运算符和表达式基本运算符和表达式C C基本语句基本语句数据的输出数据的输出数据的输入数据的输入 简单程序设计简单程序设计举例举例3.1 C3.1 C语言的
28、数据类型简介语言的数据类型简介 字符型(字符型(charchar)整型(整型(short,int,long,unsignedshort,int,long,unsigned)单精度型(单精度型(floatfloat)实型实型 双精度型(双精度型(doubledouble)枚举类型(枚举类型(enumenum)数组类型(数组类型()构造类型构造类型 结构体类型(结构体类型(structstruct)共用体类型(共用体类型(unionunion)指针类型(指针类型(*)空类型(空类型(voidvoid)基本类型基本类型数据类型数据类型C语言的数据结构几个基本概念几个基本概念3.2.1 3.2.1 标
29、识符标识符 1标识符概念标识符概念:是用来标识名称标识名称的,可以用来标识变量名、符号常量名、函数名、类型名、数组名、文件名等。C语言规定标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。如:Day,month,student,name_1,s2,_12,_t13 注意注意:1)1)C C语言中大写字母和小写字母被认为是两个不语言中大写字母和小写字母被认为是两个不同的字符,大写字母同的字符,大写字母AA与小写字母与小写字母aa则则表示不同的标识符。表示不同的标识符。2)2)采用采用“见名知义见名知义”的原则的原则几个基本概念几个基本概念3.2.1 3.2.1 标识符标识符2标
30、识符的分类 关键字关键字(代表固定含义,不能另做他用。书代表固定含义,不能另做他用。书P P2121)分为三类分为三类 预预定定义标识义标识符符(有特定含义,包括有特定含义,包括C C语言库函数名语言库函数名 和变异预处理命令允许另做他用,但标识符失去原义和变异预处理命令允许另做他用,但标识符失去原义)用户标识符用户标识符(用户自己定义,不能使用关键字,可用户自己定义,不能使用关键字,可 以使用预定义标识符,建议不要使用预定义标识符以使用预定义标识符,建议不要使用预定义标识符)几个基本概念几个基本概念3.2.2 3.2.2 常量常量在程序运行中在程序运行中,其数值不能被改变的量其数值不能被改变
31、的量1 1直接常量:直接常量:是在程序中直接引用的数据是在程序中直接引用的数据 2 2符号常量:符号常量:符号常量是用标识符来代表一个数据符号常量是用标识符来代表一个数据 符号常量的定义形式符号常量的定义形式:#define#define 符号常量标识符符号常量标识符 常量数据常量数据 例如例如几个基本概念几个基本概念3.2.3 3.2.3 变量变量变量是指以量是指以标识符符为名字,其名字,其值可以改可以改变的量。的量。1、定义形式:类型标识符变量名1,变量名2,变量名3.;例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;自己设定,满足标自己设定,满足标识符的
32、规定。识符的规定。如:如:int,int,float,charfloat,char;不可省;不可省变量分为整型、实型、字符型等。变量分为整型、实型、字符型等。几个基本概念几个基本概念3.2.3 3.2.3 变量变量2、变量初始化在说明变量的同时给变量一个初始值。int a=5,b=3;int a,b,c;a=b=c=3;int a=b=c=3;例如例如注意:注意:在同一程序块中,变量不能被重复定义;使用变量时必须“先定义,后使用”。C C语言的三种基本数据类型语言的三种基本数据类型3.3.1 3.3.1 整型数据整型数据1 1、整型常量:、整型常量:(1)(1)十进制形式十进制形式:与数学上的
33、整数表示相同;与数学上的整数表示相同;例如例如:12,-100,0:12,-100,0(2)(2)八进制形式八进制形式:在数码前加数字在数码前加数字0 0;例如例如:012=1*8:012=1*81 1+2*8+2*80 0=10(=10(十进制)十进制)(3)(3)十六进制形式十六进制形式:在数码前加在数码前加0X0X(数字数字0和字母和字母X)。)。例如例如:0 x12=1*16:0 x12=1*161 1+2*16+2*160 0=18(=18(十进制)十进制)*八进制的数码范围为八进制的数码范围为07;018 *十六进制的十六进制的数码除了数字数码除了数字0 09 9外外,还使用英文字
34、母还使用英文字母a f(或或A F)表示表示1015。如:如:0 x1e C C语言的三种基本数据类型语言的三种基本数据类型2、整型变量()整型变量分类()整型变量分类根据数据所占的二进制位数分为:int、short、long;同样存储长度的数据又分unsigned、signed;故可组合出六种类型。()整型数据的存储方式()整型数据的存储方式 数据在内存中是以二进制形式存储的。C语言中,一个int型数据通常用两个字节存放,其中最高位用来存放整数的符号,若最高位为0则表示该数为正数,若最高位为1则表示该数为负数。如:int i=-1;则存放形式为:1 1 1 1 1 1 1 1 1 1 1 1
35、 1 1 1 1 C C语言的三种基本数据类型语言的三种基本数据类型3、值域:变量允许存放的数值范围 由机器中数据的存储长度决定。VC 6.0 所支持的整型数据 类型名称所占位数数值范围signedint8*4-21474836482147483647signedshortint8*2-3276832767signedlongint8*4-21474836482147483647unsignedint8*404294967295unsignedshortint8*2065535unsignedlongint8*404294967295 C C语言的三种基本数据类型语言的三种基本数据类型例:例:
36、P24思考:运行结果是否正确,说明理由!思考:运行结果是否正确,说明理由!#includemain()int a,b,c,d;unsigned u,v;a=1;b=3;c=6;d=-7;u=a+b;v=c+d;printf(u=%d,v=%un,u,v);C C语言的三种基本数据类型语言的三种基本数据类型3.3.2 实型数据实型数据1 1、实型常量:、实型常量:(1)(1)十进制小数形式:十进制小数形式:由数字和小数点组成;由数字和小数点组成;例如例如:3.4 ,4.,.3 :3.4 ,4.,.3 (2)(2)指数形式指数形式:“十进制小数十进制小数”+“e(+“e(或或E)”+“E)”+“十
37、进制数整数十进制数整数”。例如例如 表示表示1010-6 。规范化指数形式:规范化指数形式:小数点不能单独出现;小数点不能单独出现;0.0.0 .0 .e e或或E E的两边必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数;如:如:6E0.2 6E0.2 e5e5 2、实型变量(分类和值域):、实型变量(分类和值域):关键字关键字 字节数字节数 取值范围取值范围 精度精度(位位)1010-38 101038 7 71010-308 1010308 1515注意注意 C C语言的三种基本数据类型语言的三种基本数据类型字符型数据字符型数据1 1、常量:、常量:(1)(1)用单引号括
38、起来的一个字符;如:用单引号括起来的一个字符;如:A、1、?等等。(2)(2)用单引号括起来的由反斜杠用单引号括起来的由反斜杠()引导的转义字符。引导的转义字符。字符形式字符形式 功能功能 n n 换行换行 t t 横向跳格横向跳格 b b 退格退格 r r 回车回车 反斜杠字符反斜杠字符 单引号字符单引号字符 dddddd 8 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符 xhhxhh 16 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符例如:字符例如:字符A A的的ASCIIASCII码为:码为:65D65D(十进制)(十进制)=41H=
39、41H(十六进制)(十六进制)=101Q=101Q(八进制)(八进制)字符字符A A可以表示为可以表示为AA、x41x41、101101。#includemain()charc1=a,c2=b,c3=c,c4=101,c5=116;printf(a%cb%ctc%ctabcn,c1,c2,c3);printf(tb%c%c,c4,c5);转义字符的应用转义字符的应用演示ex304 C C语言的三种基本数据类型语言的三种基本数据类型2、变量的分类和值域:分类:char 和 unsigned char;值域:每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符
40、)。3、字符串常量:是用一对双引号括起来的字符序列。如:“SHANGHAI”,“FGHijk”,“CHINA”。字符串常量的存放:每个字符均以其ASCII码存放,且在最后加一个“空字符”a与与“a”的区别。的区别。注意注意 基本运算符和表达式基本运算符和表达式3.4.1 C运算符简介按操作功能运算符大致可分为算术运算符、关系运算符、逻辑运算符、按位运算符以及其它运算符如赋值运算符、条件运算符、逗号运算符等。表达式是由操作数和运算符组成的序列。算术运算符+-*/%关系运算符=!=逻辑运算符!&位运算符|&赋值运算符=条件运算符?:逗号运算符,指针运算符*和&求字节数运算符sizeof强制类型转换
41、运算符分量运算符下标运算符其它运算符号 基本运算符和表达式基本运算符和表达式算术运算符和算术表达式 1、基本的算术运算符 +(加):3+4、+3 -(减):3-5、-5 *(乘):3*5 /(除):5/2的值为2;的值为;%(取余):5%3的值为2;-5%3的值为-2;5%(-3)的值为2;-5%(-3)的值为-2;12.3%3 若a能被b整除,则有:a%b=0 整型数据相除,结果整型。5/3为1求余运算两侧为整型数据参与运算的数有一个是实型,则结果为实型 基本运算符和表达式基本运算符和表达式2.算术表达式用算术运算符和括符将操作数连接起来的式子。优先级:()*、/、%+、-结合性:从左至右;
42、表达式的值:数值型(int、long、unsigned、double);例如:例如:已知:已知:float a=2.0;int b=6,c=3;求解:求解:a*b/c-1.5+a+(b-5)=?double float long unsigned int char,short float a=2.0;int b=6,c=3;float a=2.0;int b=6,c=3;a*b/c-1.5+a+(b-5)a*b/c-1.5+a+(b-5)/3/314.0 4.0 2.5 2.5 +97(int)+97(int)99.5 99.5 +1+1(double)(double)基本运算符和表达式基本运
43、算符和表达式3.4.3 赋值运算符和赋值表达式1 1、赋值运算符、赋值运算符 =2 2、赋赋值值表表达达式式:用用赋赋值值运运算算符符将将变变量量和和表表达达式式连连接接起起来来的的式式子子一般形式为:一般形式为:赋值运算符赋值运算符 优先级:优先级:赋值运算符的优先级比算术运算符低。赋值运算符的优先级比算术运算符低。结合性:自右至左(右结合性)。结合性:自右至左(右结合性)。求求值值规规则则:先先计计算算“=”=”右右边边表表达达式式的的值值,再再将将其其值值赋赋给给左左边边的的变量变量。表达式的值:赋值号左边变量的值即为赋值表达式的值。表达式的值:赋值号左边变量的值即为赋值表达式的值。例如
44、例如:(1)x=(y=12)/4y值为12,x值为3,表达式的值为3(2)x=y=12/4y值为3,x值为3,表达式的值为3(3)x=(y=12/4)y值为3,x值为3,表达式的值为3(4)(x=y)=12/4 基本运算符和表达式基本运算符和表达式3、复合赋值运算符*=、/=、%=、+=、-=等注意:复合运算符是一个运算符,但功能上,是两个运算符功能的组合。例如:(1)a+=b相当于a=a+ba*=b相当于a=a*ba*=b+c相当于a=a*(b+c)而不是a=a*b+c(2)设a=12,计算表达式a+=a-=a*12和a+=a-=a*=12的值 基本运算符和表达式基本运算符和表达式4赋值时的
45、类型转换赋值时的类型转换实实型型数数据据赋赋给给整整型型(字字符符型型)变变量量:去去掉掉小小数数部部分分;如如:intf=23.457;变量变量f的值为的值为23。整型(字符型)数据赋给实型变量:整型(字符型)数据赋给实型变量:补足有效位补足有效位。字符型数据赋给整型变量:将字符数据(字符型数据赋给整型变量:将字符数据(8位)放到整型变量的低位)放到整型变量的低8位中,高位中,高8位进行位进行“符号扩展符号扩展”。一个int、short、long、unsigned型数据赋给一个char型变量:截取低8位赋给字符型变量。带符号的整型数据(int型)赋给long型变量:进行符号扩展。带符号的lo
46、ng型数据赋给int型变量时,只截取低16位赋给int变量。unsignedint型数据赋给longint变量:高位补0。int型数据赋给unsignedint变量:内存情况不变,但若是负数,其符号位也作为数值赋给unsigned型变量。基本运算符和表达式基本运算符和表达式5 5、自增与自减运算符、自增与自减运算符 单目运算符,运算对象是变量,不是表达式或者常量+i,-i:先使变量i的值增1(或减1),再使用变量i的值作为整个表达式的值来参加其它的运算;i+,i-:先使用变量i的值进行其它运算,再使变量i的值增1(或减1)。(1)i+;+i;(2)i=3;j=i+;(3)i=3;j=+i;等价
47、于等价于 i=i+1;i=i+1;j=i;i+;j=i;i+;所以所以i i的值为的值为4 4,j j的值为的值为3 3。i+;j=i;i+;j=i;所以所以i i的值为的值为4 4,j j的值为的值为4 4。例如:例如:基本运算符和表达式基本运算符和表达式5、自增与自减运算符自增与自减运算符结合性:自右至左。如:i=2;j=-i+;等价于:j=-(i+);即:j=-i;i+;“+”与”-“是同优先级 所以i的值为3,j的值为-2。注意“+”或“-”自增与自减运算符的使用。设i=3,k=(i+)+(i+)+(i+),k=?设i=3,k=(i+)+(+i)+(+i),k=?设i=3,j=4,k=
48、i+j,k=?设i=3;printf(“%d%d”,i,-i+);结果为?基本运算符和表达式基本运算符和表达式3.4.4 关系运算符和关系表达式关系运算符和关系表达式1.6种关系运算符:=!=2.关系表达式:用关系运算符将表达式连接起来的式子优先级:(=)(=!=)结合性:自左至右;表达式的值:若为真,则结果为1;若为假,则结果为0。35的值为0;32的值为0;3+(43)*4的值为3;3+43的值为1;a&|结合性:自左至右;结合性:自左至右;表达式的值:表达式的值:若为真,则结果为若为真,则结果为1 1;若为假,则结果为若为假,则结果为0 0。基本运算符和表达式基本运算符和表达式inta=
49、5;floatb=3.5;!a(0)!(ab)(1)a&b(1)!a&b(0)!a&!b(0)!(a&b)(0)a|b(1)!a|b(1)!a|!b(0)!(a|b)(0)(a0)(0)(a0)(1)例如例如结论:结论:&:只要有一个为假,结果则为假;只要有一个为假,结果则为假;|:只要有一个为真,结果则为真;只要有一个为真,结果则为真;!高高 算术运算符算术运算符 关系运算符关系运算符&和和|赋值运算符赋值运算符 低低 4-04-01&21&28 48 3&2|8 3&2|8 4-!5 基本运算符和表达式基本运算符和表达式注意:注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是
50、在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如:例如:(1)a=0;b=1;c=a+&(b=3);结果:a为1,b为1,c为0。(2)a=1;b=1;c=0;d=-a|b-|(c=b+3);结果:a为0,b为0,c为0,d为1。基本运算符和表达式基本运算符和表达式逻辑表达式一般用于控制语句中的条件:例如:(1)n是小于m的偶数:(2)year是闰年:(能被4整除但不能被100整除或能被400整除)nm&n%2=0(year%4=0&year%100!=0)|year%400=0 基本运算符和表达式基本运算符和表达式3.4.6 条件运算符1 1、条件运算符、条件运算符?和和