《C语言编程基础》PPT课件.ppt

上传人:M****1 文档编号:569315482 上传时间:2024-07-28 格式:PPT 页数:77 大小:1.28MB
返回 下载 相关 举报
《C语言编程基础》PPT课件.ppt_第1页
第1页 / 共77页
《C语言编程基础》PPT课件.ppt_第2页
第2页 / 共77页
《C语言编程基础》PPT课件.ppt_第3页
第3页 / 共77页
《C语言编程基础》PPT课件.ppt_第4页
第4页 / 共77页
《C语言编程基础》PPT课件.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《《C语言编程基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言编程基础》PPT课件.ppt(77页珍藏版)》请在金锄头文库上搜索。

1、第五讲第五讲 C语言编程基础(语言编程基础(1)2主要内容n编程环境编程环境nC语言程序基本框架语言程序基本框架n标识符和关键字标识符和关键字n数据类型、变量、常量数据类型、变量、常量n运算符和表达式运算符和表达式计算机程序计算机程序n计算机的工作是由程序来控制的。计算机的工作是由程序来控制的。n程序程序描述了计算机处理数据、解决问题的过程,描述了计算机处理数据、解决问题的过程,这是程序的实质。这是程序的实质。n程序设计程序设计的将人们制定的对实际问题的解决方的将人们制定的对实际问题的解决方案用程序设计语言表达出来,并由计算机执行案用程序设计语言表达出来,并由计算机执行得出结果。得出结果。n程

2、序设计语言程序设计语言(也被称为(也被称为“编程语言编程语言”,Programming Language)是人们描述(编制)是人们描述(编制)程序所使用的规范和方法(语言)。程序所使用的规范和方法(语言)。n机器语言、汇编语言、高级语言机器语言与汇编语言机器语言与汇编语言n由计算机硬件系统可以识别的二进制指由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。令组成的语言称为机器语言。n计算机发展的初期,软件工程师们只能用机器语言来编计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之写程序。这一阶段,在人类的自然语言和计算机编程语言之间存

3、在着巨大的鸿沟。间存在着巨大的鸿沟。n汇编语言将机器指令映射为一些可以被汇编语言将机器指令映射为一些可以被人读懂的助记符,如人读懂的助记符,如ADDADD、SUBSUB等。等。n此时编程语言与人类自然语言间的鸿沟略有缩小,但仍此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。要考虑大量的机器细节。高级语言高级语言n高级语言屏蔽了机器的细节,采用人容高级语言屏蔽了机器的细节,采用人容易理解的形式对解题过程进行描述。用高易理解的形式对解题过程进行描述。用高级语言来书写程序使得

4、程序设计者不必考级语言来书写程序使得程序设计者不必考虑很多的计算机硬件细节,而是以熟悉的虑很多的计算机硬件细节,而是以熟悉的语句和数学公式来表达程序设计的结果。语句和数学公式来表达程序设计的结果。易于学习、易于掌握。易于学习、易于掌握。6高级语言及其程序的执行高级语言及其程序的执行n用高级语言书写的程序不可能直接在计算用高级语言书写的程序不可能直接在计算机上执行,需要将它翻译成机器语言指令机上执行,需要将它翻译成机器语言指令程序。程序。n翻译的方式有两种:翻译的方式有两种:n编译(编译(Compilation)方式)方式n解释(解释(Interpretation)方式)方式75 高级语言及其程

5、序的执行高级语言及其程序的执行n编译方式编译方式是设法把高级语言程序(也称为是设法把高级语言程序(也称为“源程序源程序”)翻)翻译转换成为可以由计算机直接执行的机器语言指令程序,译转换成为可以由计算机直接执行的机器语言指令程序,经连接装配后转变为经连接装配后转变为“可执行程序可执行程序”(Executable Program)。)。n人们实现了高级语言人们实现了高级语言“编译器编译器”(Compiler)完成这种翻完成这种翻译工作。编译器把高级语言程序看成是译工作。编译器把高级语言程序看成是符合一定语法结构符合一定语法结构的符号串的符号串,对它进行加工变换。,对它进行加工变换。8 编译器对源程

6、序的加工一般分为两个阶段:编译器对源程序的加工一般分为两个阶段:n1 1、编译、编译将将源程序翻译成二进制机器语言。编译后得到的结果为源程序翻译成二进制机器语言。编译后得到的结果为目标文件。目标文件。n 2 2、连接连接目标模块与其他一些基本模块(通用目标程序模块,由目标模块与其他一些基本模块(通用目标程序模块,由编译软件或其他人提供)连接在一起,最终形成编译软件或其他人提供)连接在一起,最终形成“可执可执行程序行程序”(executable programexecutable program),后缀,后缀“.exe.exe”。这。这样的程序就可以在计算机上实际运行了。样的程序就可以在计算机上

7、实际运行了。高级语言的编译过程高级语言的编译过程高级语言编译过程高级语言编译过程源程序源程序(文本文件)(文本文件)*.CPP目标文件目标文件(二进制文件)(二进制文件)*.OBJ可执行文件可执行文件(二进制文件)(二进制文件)*.EXE库文件库文件(各种函数)(各种函数)编译编译连接连接compilelink10机器语言指令机器语言指令高级语言程序的解释过程高级语言程序的解释过程n解释方式解释方式n由一种称为由一种称为“解释器解释器”(InterpreterInterpreter)软件实现。软件实现。解释器在工作方式上与编译器解释器在工作方式上与编译器不同,它不事先对源程序进行不同,它不事先

8、对源程序进行翻译,而是在执行时即时对源翻译,而是在执行时即时对源程序的语句进行分析和解释,程序的语句进行分析和解释,实现源程序所描述的功能。实现源程序所描述的功能。 11应用较广泛的高级语言应用较广泛的高级语言nFORTRAN、PASCAL、C / C+nCOBOL、BASIC、ADA、JAVA12C C语言简介语言简介nC 是由美国贝尔实验室的是由美国贝尔实验室的 Dennis Retchie 在在 1972 年设计年设计开发的,开发目的是想成为一种编制开发的,开发目的是想成为一种编制“系统程序系统程序”的工具语言。的工具语言。nRetchie 等人首先用自己发明的等人首先用自己发明的 C

9、语言编写了语言编写了 UNIX 操作操作系统。以后系统。以后 C 语言逐步发展成为开发系统软件的主要语言。语言逐步发展成为开发系统软件的主要语言。n许多常见的软件系统,例如,在中国使用很广泛的计算机许多常见的软件系统,例如,在中国使用很广泛的计算机辅助设计软件辅助设计软件 AUTOCAD,数学软件系统,数学软件系统 Mathematica 等,等,以及许多语言编译系统本身,其软件系统的全部或者部分程序以及许多语言编译系统本身,其软件系统的全部或者部分程序就是用就是用 C 语言开发的。语言开发的。nC 语言已成为最重要的软件系统开发语言,由此可见语言已成为最重要的软件系统开发语言,由此可见 C

10、语语言在计算机领域地位之重要。言在计算机领域地位之重要。 C+C+语言语言nC+ 是在是在 C 语言基础上发展出的一种语言基础上发展出的一种“面向对象面向对象”语言。语言。它是由它是由 Bjarne Stroustrup 在美国贝尔实验室开发的(在美国贝尔实验室开发的(1983)。)。nC+ 是是 C 语言的一个扩充,它一方面修正了语言的一个扩充,它一方面修正了 C 的一些弱的一些弱点和不足,使用起来更方便可靠;另一方面,也是更重要的,点和不足,使用起来更方便可靠;另一方面,也是更重要的,这种语言以支持这种语言以支持“面向对象”(Object-Oreinted,简称为,简称为OO)的程序设计方

11、法为基本目标,提供了一套支持面向对象)的程序设计方法为基本目标,提供了一套支持面向对象程序设计的机制,如程序设计的机制,如“类类”(class)、)、“对象对象”(object)等)等等。等。n面向对象的方法被认为是开发复杂软件系统的一种有效途面向对象的方法被认为是开发复杂软件系统的一种有效途径,径, OO 程序设计语言也已经被广泛接受。程序设计语言也已经被广泛接受。C+ 是目前使用最是目前使用最广泛的一种面向对象的程序设计语言。广泛的一种面向对象的程序设计语言。 13VC+6.0编程环境编程环境Visual C+ 6.0是微软公司是微软公司1998年推出的开发年推出的开发工具。它不仅可以作为

12、工具。它不仅可以作为C/C+的编译器,同时还的编译器,同时还是一个基于是一个基于Windows操作系统的可视化集成开发操作系统的可视化集成开发环境。由于功能强大,开发界面友好,一直都是专环境。由于功能强大,开发界面友好,一直都是专业程序员开发软件的首选工具之一。业程序员开发软件的首选工具之一。启动启动VC+编译系统编译系统VC+编译编译系统界面系统界面单击单击“File”菜菜单中单中“New”命命令令选择选择“Files”选项选项卡卡选择选择C+源源文件命令文件命令输入文件名输入文件名输入文件输入文件存放位置存放位置单击选择单击选择驱动器驱动器选择驱动选择驱动器或目录器或目录C+源文件源文件编

13、辑界面编辑界面输入输入C+源代码源代码可以将此源可以将此源代码另起文代码另起文件名存盘件名存盘选择编译命令,将源文选择编译命令,将源文件件.cpp生成生成.obj文件文件如果编译出错,会出现提示信息,如果编译出错,会出现提示信息,指出错误的位置及种类指出错误的位置及种类错误所在行错误所在行错误的原因错误的原因双击错误双击错误所在行所在行光标移到该行光标移到该行生成可执生成可执行文件行文件通过后单通过后单击该命令击该命令运行程序运行程序运行结果显示运行结果显示在在DOS屏上屏上二、二、C语言基础语言基础p 程序结构程序结构p 基本元素:标识符和关键字基本元素:标识符和关键字p 变量、常量和数据类

14、型变量、常量和数据类型p 运算符和表达式运算符和表达式p 语句及控制流语句及控制流p C语言标准库函数语言标准库函数语言规范语言规范开发库开发库26n#includenint main ( ) nn int a,b,sum;n scanf(“%d%d”, &a,&b);n sum = a+b;n printf(“%d”, sum);n 求两个整数之和求两个整数之和预处理命令:文件包含预处理命令:文件包含主函数主函数/*求圆的面积求圆的面积*/#define PI 3.14159 #include #include float getArea(float r); int main(int arg

15、c, char* argv) float s1,s2; float r1,r2;printf(“请输入第一个圆的半径:请输入第一个圆的半径:”); scanf(“%f”, &r1); s1 = 3.14159f * r1 * r1; printf(“n第一个半径为第一个半径为%f的圆的面积为:的圆的面积为:%fn”, r1,s1); r2 = 104.6f; s2 = getArea(r2); printf(“n第二个半径为第二个半径为%f的圆的面积为:的圆的面积为:%fn”, r2,s2); float getArea(float r) float s; s = (float)(PI * p

16、ow(r, 2); return s;1、C程序基本框架程序基本框架预处理命令及自定义函数声明预处理命令及自定义函数声明int main( ) 说明部分说明部分 执行部分执行部分自定义函数自定义函数函数函数/ /主函数主函数 main( ) main( ) nC语言是一种语言是一种函数式语言函数式语言,它的一个函数实际上就是一个,它的一个函数实际上就是一个功能模块功能模块C程序的基本组成是函数。程序的基本组成是函数。n一个一个C程序是由一个固定名称为程序是由一个固定名称为main的主函数和若干个其的主函数和若干个其他函数(可没有)组成。他函数(可没有)组成。n一个一个C程序必须有一个、也只能有

17、一个主函数。程序必须有一个、也只能有一个主函数。n主函数在程序中的位置可以任意,但程序执行时总是从主主函数在程序中的位置可以任意,但程序执行时总是从主函数开始,在主函数内结束。函数开始,在主函数内结束。int main() C程序基本元素程序基本元素函数函数/主函数主函数函数调用函数调用nC语言程序是通过语言程序是通过函数的调用函数的调用来完成复杂功能。来完成复杂功能。n主函数可以调用其他各种函数(包括标准库主函数可以调用其他各种函数(包括标准库函数和用户自己编写的函数),但其他函数函数和用户自己编写的函数),但其他函数不要调用主函数。其他函数相互之间遵循一不要调用主函数。其他函数相互之间遵循

18、一定的规则是可以相互调用的。定的规则是可以相互调用的。C程序基本元素程序基本元素函数函数/主函数主函数函数的调用函数的调用主函数主函数main()标准库函数标准库函数自定义函数自定义函数自定义函数自定义函数自定义函数自定义函数其他函数其他函数n标准库函数:随标准库函数:随C语言环境语言环境一起提供的各种标准的一起提供的各种标准的通用功能函数,只能调用通用功能函数,只能调用(先文件包含:先文件包含:#include ) 。例:例:n自编(定义)函数:自编(定义)函数:必须先定义(声明),后调用。必须先定义(声明),后调用。例:例:C程序基本元素程序基本元素函数函数函数的一般形式函数的一般形式返回

19、值类型返回值类型 函数名函数名(参数列表参数列表) 语句语句float getArea(float r) float s; s = (float)(PI * pow(r, 2); return s;n变量:变量:存放数据的容器,有不同的数据类型。存放数据的容器,有不同的数据类型。n语句:语句:一个单一命令是一条语句(一个单一命令是一条语句(Statement),),由分号由分号(;)结尾)结尾。n代码段:代码段:用大括号(用大括号( )围起来的多条语句构成一个)围起来的多条语句构成一个代码段。代码段。C程序基本元素程序基本元素变量变量/语句语句/代码段代码段编译预处理编译预处理宏定义宏定义形式

20、:形式:#define PI 3.14159 PI 符号常量(宏名,最好用大写,以区别一般变量)符号常量(宏名,最好用大写,以区别一般变量)3.14159 宏体(可以是一个表达式)宏体(可以是一个表达式)n作用:作用:用简单符号代表宏体部份内容(编译时会先自动替换)用简单符号代表宏体部份内容(编译时会先自动替换),可用作常量定义或其他作用,可用作常量定义或其他作用n意义:意义:直观直观/多次使用多次使用/便于修改便于修改n注意:注意: #define 可出现在程序的任一位置(可出现在程序的任一位置(作用范围:作用范围:由此由此行到程序末尾),宏定义不是行到程序末尾),宏定义不是C语句,不必在行

21、末加分号,语句,不必在行末加分号,否则会连分号一起置换。否则会连分号一起置换。C程序基本元素程序基本元素编译预处理编译预处理形式:形式:#include #include #include #include “stdafx.hstdafx.h”nC C语言是一种语言是一种“装配式装配式”语言,许多常规的工作如输入、语言,许多常规的工作如输入、输出、数学函数等,往往事先由人做成各种输出、数学函数等,往往事先由人做成各种“程序模块程序模块”(.lib)(.lib),并将其定义存放在各种所谓,并将其定义存放在各种所谓“头文件头文件”(.h)(.h)中。中。n文件包含的作用,就是根据需要把相应的某个文

22、件包含的作用,就是根据需要把相应的某个“头文件头文件”定义所涉及的定义所涉及的“程序模块程序模块”在编译时先整体嵌入所编在编译时先整体嵌入所编的程序中。的程序中。n用户也可以将自己设计的程序模块等做成用户也可以将自己设计的程序模块等做成“程序模块程序模块”及及“头文件头文件”,供其他程序,供其他程序“包含包含”(调用)。(调用)。编译预处理编译预处理文件包含文件包含使用使用“文件包含文件包含”功能的优点功能的优点n支持程序模块的共享支持程序模块的共享n提高程序设计效率和程序可靠性提高程序设计效率和程序可靠性n减少程序员重复劳动量减少程序员重复劳动量 C提供了三百多个标准库函数,分别由若干个提供

23、了三百多个标准库函数,分别由若干个头文件头文件进行进行说明:说明:nstdio.h 标准输入标准输入/输出函数输出函数nmath.h 数学函数数学函数nstdlib.h 常用函数常用函数n 一个优秀的程序员不应是事无巨细都要从头做起的一个优秀的程序员不应是事无巨细都要从头做起的“工匠工匠”,而应是一个,而应是一个“策划师策划师” ” + “+ “组装师组装师”。所以。所以 ,逐步熟悉并掌握常用函数的功能及使用,是学习,逐步熟悉并掌握常用函数的功能及使用,是学习C C程程序设计的一个重要内容。序设计的一个重要内容。n注释:注释:为了增加程序的可读性而附加的说明性为了增加程序的可读性而附加的说明性

24、文字,文字,它们在编译时会被忽略它们在编译时会被忽略。n1、单行注释、单行注释/ ,从该符号至行末均为注释的内容,从该符号至行末均为注释的内容n2、多行注释、多行注释/* */,用来说明更多的内容,包括算法等,用来说明更多的内容,包括算法等.C程序基本元素程序基本元素注释注释C语言程序由一个或多个函数组成。语言程序由一个或多个函数组成。C程序的各种程序的各种功能是通过功能是通过函数调用函数调用来完成的。来完成的。每个每个C程序必须有一个、也只能有一个主函数程序必须有一个、也只能有一个主函数main()。不管主函数在程序中的位置如何,程序执行总是从不管主函数在程序中的位置如何,程序执行总是从主函

25、数开始,在主函数内结束。主函数开始,在主函数内结束。每条语句必须每条语句必须用分号用分号“;”结束结束。编译预处理命令编译预处理命令(宏定义、文件包含宏定义、文件包含)不是语句,行不是语句,行末不能用分号结束。末不能用分号结束。C语言本身没有输入语言本身没有输入/输出语句,其功能须通过调用输出语句,其功能须通过调用相关函数来实现。相关函数来实现。C程序基本框架程序基本框架总结总结n标识符(标识符(Identifier) 程序员对程序中的各基本元素加以命名时使用的程序员对程序中的各基本元素加以命名时使用的命名记号命名记号,包括:,包括:数据类型名、变量名、常量名、数据类型名、变量名、常量名、函数

26、名、宏名、函数名、宏名、 2、标识符和关键字、标识符和关键字n标识符的组成规则标识符的组成规则 C语言中,标识符是以语言中,标识符是以字母,下划线字母,下划线( _ ) 开始开始的一的一个字符序列,后面可以跟个字符序列,后面可以跟字母,下划线,数字字母,下划线,数字。n合法的标识符合法的标识符identifier userName User_Name define sys_ value _Name name1n非法的标识符非法的标识符2mailroom# a%bc !abcn关键字关键字(Key words):具有专门的意义和用途,不能具有专门的意义和用途,不能当作一般的标识符使用。当作一般的

27、标识符使用。C语言中的关键字有:语言中的关键字有: int、 char、 float、 double、 short、 long、 unsigned、 struct、 union、 enum、 auto、 extern、 register、 static、 typedef、 goto、 return、 sizeof、 break、 continue、 if、 else、 do、 while、 for、 switch、 case、 default、 void、 entry、 include、 define、 undef、 ifdef、 ifndef、 endif、line 在在C+C+中中,还还会

28、会有有一一些些新新的的关关键键字字。不不同同语语言言的的关关键键字字不不完完全相同,但基本相似。全相同,但基本相似。关键字关键字关键字基本分类关键字基本分类n基本数据和返回值类型:基本数据和返回值类型:int, void, returnn构造数据类型定义:构造数据类型定义: typedef, struct, union, n控制流:控制流:if, else, switch, case, for, break, goto, n编译预处理:编译预处理:include, define, n变量长度:变量长度:sizeof注意:注意:n在在C语言中,标识符是区分大小写的。语言中,标识符是区分大小写的。

29、name和和Name是不同的标识符。是不同的标识符。n所有的关键字都是小写字母构成的。所有的关键字都是小写字母构成的。n不必死记这些关键字,当理解每个关键词的含义不必死记这些关键字,当理解每个关键词的含义后,自然就记住了所有的关键词。后,自然就记住了所有的关键词。2、标识符和关键字、标识符和关键字3、数据类型、变量和常量、数据类型、变量和常量q 数据类型(数据类型(Data Type)n 基本数据类型(基本数据类型(Primary Data Types)n 构造数据类型(构造数据类型(Composite Data Types)q 常量(常量(Constant)q 变量变量(Variable)p

30、 基本数据类型(基本数据类型(Primary Data Types)p 构造数据类型(构造数据类型(Composite Data Types)3、数据类型、变量和常量、数据类型、变量和常量数据类型数据类型 C语言中支持的基本数据类型包括:语言中支持的基本数据类型包括:3、数据类型、变量和常量、数据类型、变量和常量基本数据类型基本数据类型一个数据类型所占的具体字节数,可以通过一个数据类型所占的具体字节数,可以通过sizeofsizeof运算符来确定。运算符来确定。数据类型说明数据类型说明数据类型标识符数据类型标识符所占位数所占位数其他其他字符类型字符类型char8位(位(1字节)字节)还可以用还

31、可以用unsigned来限定来限定char类型和类型和所有整数类型。所有整数类型。 unsigned限定的数限定的数总是正数或零。总是正数或零。整数类型整数类型int与机器相关,现在通与机器相关,现在通常为常为32位位(4字节字节)短整数类型短整数类型shortint的一半的一半长整数类型长整数类型longint的的2倍,但现在与倍,但现在与int一样,为一样,为32位位 单精度浮点类型单精度浮点类型float32位(位(4字节)字节)双精度浮点类型双精度浮点类型double64位(位(8字节)字节)无类型无类型void函数无返回值函数无返回值 字符的存储通常用其二进制编码(如字符的存储通常用

32、其二进制编码(如ASCII码码/8位、汉位、汉字内码字内码/16位)来表示,所以字符数据类型位)来表示,所以字符数据类型char只占只占8位,位,它可以表示一个它可以表示一个ASCII字符,对于汉字字符,则需要将字符,对于汉字字符,则需要将2个个char数据当作一个整体。数据当作一个整体。 对于字符的显示,则需要操作系统的协助才能完成。对于字符的显示,则需要操作系统的协助才能完成。n printf(“北京大学北京大学 Peking University”);n char a = a; /a = 97, a的的ASCII码码n printf(“%c”, a);变量和常量变量和常量 数据是计算机程

33、序处理的主要对象,数据是计算机程序处理的主要对象,在程序中数据是以在程序中数据是以常量常量和和变量变量的形式出的形式出现。常量和变量的区别仅在于程序执行现。常量和变量的区别仅在于程序执行过程中变量的值是可以改变的,而常量过程中变量的值是可以改变的,而常量的值不能改变。的值不能改变。 C C中的常量值是用中的常量值是用文字串文字串表示的,它区分为不同的类型:表示的,它区分为不同的类型:p整型整型(int)常量常量:十进制:十进制:123,-123八进制:以八进制:以0开头,如:开头,如:023,055十六进制:以十六进制:以0x开头,如:开头,如:0x20,0x7fp长整型长整型(long)常量

34、常量:123l,-123Lp单精度单精度(float)浮点常量浮点常量:1.23f,-1.23e12fp双精度双精度(double)浮点常量浮点常量:1.23,-1.23e12p字符字符(char)常量常量:用:用单引号对单引号对括起来的一个字符,如括起来的一个字符,如a注意:字符注意:字符 、”、不能直接用单引号对括起来。不能直接用单引号对括起来。p字符串常量字符串常量:用用双引号对双引号对括起来的一个字符序列,如括起来的一个字符序列,如 This is a constant string.。 常量常量指数形式表示法指数形式表示法和数学中的变量有所不同,程序中的变量和数学中的变量有所不同,程

35、序中的变量代表内存中代表内存中某个某个“存储单元存储单元”或某块内存区域(若干个连续的存储或某块内存区域(若干个连续的存储单元),可以用来存放数据,通常用一个名字来标识。单元),可以用来存放数据,通常用一个名字来标识。在程序中使用变量,涉及到三种情况:在程序中使用变量,涉及到三种情况:n变量的定义:变量的定义:指定变量的数据类型,并用一个标识符来对指定变量的数据类型,并用一个标识符来对它命名,这个标识符就是它命名,这个标识符就是变量名。变量名。n变量的赋值:变量的赋值:把数值存放到某个变量所指示的内存区域。把数值存放到某个变量所指示的内存区域。n变量的引用:变量的引用:使用某个变量中存储的数据

36、。使用某个变量中存储的数据。变量变量n格式:格式:数据类型数据类型 变量名变量名 , 变量名变量名2,变量名,变量名3;例:例:char a;int n;int x, y, z;n变量的名字必须是一个合法的标识符,每个变量的名字作为变量的名字必须是一个合法的标识符,每个变量的名字作为它的唯一标识。它的唯一标识。n变量的初始化变量的初始化在定义变量的同时给它赋值。在定义变量的同时给它赋值。变量定义变量定义n给变量指定一个数值的过程称为变量的给变量指定一个数值的过程称为变量的赋值赋值,这个过程可以,这个过程可以通过通过赋值语句赋值语句完成:完成:n n = 26;n x = 19;注:注:n变量定

37、义后,其变量定义后,其初值初值是不确定的(内存区域里可能是有内容是不确定的(内存区域里可能是有内容的)。的)。n也可以在变量定义的同时对变量进行初始化:也可以在变量定义的同时对变量进行初始化:nchar a = a;nint n = 5;nint x, y=4, z;nfloat score = 95.5;变量赋值变量赋值n 变量里存储的数据可以用来参与运算,这一过程称变量里存储的数据可以用来参与运算,这一过程称为变量的引用。为变量的引用。但在引用变量前,一定要先对变量但在引用变量前,一定要先对变量进行赋值,进行赋值,例如:例如: int totalFee = 0 ; /变量赋值变量赋值 in

38、t tuitionFee = 5000 ; /变量赋值变量赋值 int travelExpense = 300 ; /变量赋值变量赋值 int livingExpense = 1000 ; /变量赋值变量赋值 int others = 1000 ; /变量赋值变量赋值 /变量引用变量引用 totalFee = tuitionFee + travelExpense + livingExpense + others ;变量引用变量引用例例9.1 变量的使用变量的使用1 #include 2 int main( )3 int USDollar = 0;4 int RMB = 0;5 USDollar

39、 = 20 ;6 RMB = USDollar * 8 ;7 printf(“%dn”,RMB);8 return 0;9 主存储器主存储器USDollar0主存储器主存储器USDollar0RMB0主存储器主存储器USDollar20RMB0主存储器主存储器USDollar20RMB160字符型变量定义示例:字符型变量定义示例:nchar c1; 无初值无初值nchar c2 = 0; 赋初值为字符赋初值为字符0nchar c3 = 100; 用整数赋初值,是字符的用整数赋初值,是字符的ASCII码,码, 此处为此处为d几种不同类型变量的定义示例几种不同类型变量的定义示例在进行文字处理时,有

40、些符号在屏幕上是不能显示出来的。在进行文字处理时,有些符号在屏幕上是不能显示出来的。如:如:“回车回车”、 “退格退格” 、“制表符制表符”等,在程序中也无法用等,在程序中也无法用一个一般形式的字符表示,只能采用特殊形式来表示。一个一般形式的字符表示,只能采用特殊形式来表示。表示方法为:以表示方法为:以“”+字符。字符。n反斜线反斜线(Backslash)n退格(退格(Backspace)bn回车(回车(Carriage return)rn进纸符(进纸符(Form feed)fn制表符(制表符(Form feed)tn换行换行(New line)nn单引号单引号(Single quote)n一

41、些特殊字符的常量表示法:一些特殊字符的常量表示法:p 整型变量定义示例:整型变量定义示例:nshort s = 10;nint num1, num2;nint x = 123, y; nlong len1, len2 = 3L; 必须在数字后加必须在数字后加l或或Lnlong y = 123L; 必须在数字后加必须在数字后加l或或Lnlong z = 123l; 必须在数字后加必须在数字后加l或或Ln浮点数变量定义示例:浮点数变量定义示例:nfloat len;nfloat len1 = 127.0f; 必须在数字后加必须在数字后加f或或Fnfloat len2 = 4.0e38F; 错误!错

42、误!32位浮点数不能超过位浮点数不能超过 3.4028234663852886e38(数值常量的科学计数法:(数值常量的科学计数法:1.0x108, 1.0e8 或或 1.0E8)ndouble score1; ndouble score2 = 127.0; 赋初值为赋初值为127 C语言的运算符十分丰富,这使得语言的运算符十分丰富,这使得C能够灵活的处能够灵活的处理各种运算。理各种运算。4、运算符与表达式、运算符与表达式n算术运算符:算术运算符:(负号负号), +,*,/,%(取余数取余数),+,n关系运算符:关系运算符: ,=, (在结构数据类型及指针中用到在结构数据类型及指针中用到)n下

43、标运算符下标运算符 index (在数组中用到在数组中用到)n数据长度运算符数据长度运算符 sizeof (以字节为单位以字节为单位)int a;sizeof(int); sizeof(a);n分隔符分隔符 , (函数参数分隔,变量定义等函数参数分隔,变量定义等)int a, b, c;int max( int a, int b, int c);n强制类型转换运算符强制类型转换运算符 (DataType)int year = (int) ceil(x/2);n函数调用运算符函数调用运算符 () nscanf(“%d”, &a);n 4、运算符与表达式、运算符与表达式表达式表达式 根据运算符的不

44、同,表达式也有不同的类型:根据运算符的不同,表达式也有不同的类型:n算术表达式算术表达式 (算术运算算术运算)n关系表达式关系表达式 (主要用于条件判断主要用于条件判断)n逻辑表达式逻辑表达式 (主要用于条件判断主要用于条件判断)n位运算表达式位运算表达式 (二进制逻辑运算二进制逻辑运算)n赋值表达式赋值表达式 (与存储访问相关与存储访问相关)n条件表达式条件表达式 (用于条件判断用于条件判断)算术运算与算术表达式算术运算与算术表达式算术运算符:算术运算符:(负号负号), +,*,/,%,+,说明:说明:1、(除法运算符。如、(除法运算符。如5/3 )若整数相除,结果取整。如若整数相除,结果取

45、整。如5/3的结果为的结果为1;4/5结果结果为为0。2、(模运算符,或称求余运算符。两数相除,以余、(模运算符,或称求余运算符。两数相除,以余数为结果,如数为结果,如7%4的值为的值为3 )。)。要求两个操作数均为整数。要求两个操作数均为整数。算术运算与算术表达式算术运算与算术表达式3、+ (自加自加)、 (自减自减):变量的值加:变量的值加1或减或减1。说明:说明:1)只适合于变量,不适合于常量或表达式,例如:)只适合于变量,不适合于常量或表达式,例如:5+ 或或 (a+b)- 都是不正确的。都是不正确的。2)这两个运算符可用在变量之前或变量之后,如)这两个运算符可用在变量之前或变量之后,

46、如i+ 和和+i。对变量来说,这二种情况的效果都是一样。对变量来说,这二种情况的效果都是一样的,都是使变量的,都是使变量i加加1。但在表达式中,则它们的含义不同:但在表达式中,则它们的含义不同:如果运算符在前(前缀运算),先进行自加或自减运算,再如果运算符在前(前缀运算),先进行自加或自减运算,再参与其他运算;参与其他运算;如果运算符在后(后缀运算),先以原值参与如果运算符在后(后缀运算),先以原值参与其他运算,然后自加或自减。其他运算,然后自加或自减。算术运算与算术表达式算术运算与算术表达式例:设语句执行前,例:设语句执行前,i=5; j = +i; 执行后执行后i=6,,j的值是的值是6。

47、(先给变量加。(先给变量加1,再使用变量),再使用变量) j = i+; 执行后执行后i=6,j=5。(先使用变量,再给变。(先使用变量,再给变量加量加1) j = (i+)*(i+); 执行后执行后i=7,j=25。 j = (+i)*(+i); 执行后执行后i=7,j=49。4、关系运算与、关系运算与关系表达式关系表达式关系运算就是两个数之间的比较关系运算就是两个数之间的比较 : (大于大于), = (大于等于大于等于), y, (x+1) = 4, (-3+a-b*5) 1) & (x=20) | (逻辑或逻辑或):当:当2个操作数有一个为非个操作数有一个为非0或真时,或真时,结果为结果

48、为1(真),否则结果为(真),否则结果为0(假),如:(假),如:(x 20) ! (逻辑非逻辑非):将一个非:将一个非0或为真的操作数变为或为真的操作数变为0,或,或将将0或为假的操作数变为或为假的操作数变为1,如:,如:!(xy)说明:说明:1、逻辑运算符连接的表达式通常为关系表达式,、逻辑运算符连接的表达式通常为关系表达式,但也可以是任意表达式。例如:但也可以是任意表达式。例如: (x1) & (x=20) 关系运算的结果作为操作数关系运算的结果作为操作数(x=5)|(y=0) 赋值运算的结果作为操作数赋值运算的结果作为操作数 2、 逻辑运算逻辑运算&和和|连接的表达式是自左向右连接的表

49、达式是自左向右求值的,一旦知道结果的真、假值,求值马上停止。求值的,一旦知道结果的真、假值,求值马上停止。3、在判断一个逻辑量是否为、在判断一个逻辑量是否为“真真”时,采取的标时,采取的标准是:准是: 如果其值是如果其值是0就认为是就认为是“假假”,如果其值是非,如果其值是非0就认为是就认为是“真真”。4、位运算与、位运算与位运算表达式位运算表达式 位运算即按二进制位分别进行的运算。位运算即按二进制位分别进行的运算。 & (按位与按位与),| (按位或按位或), (按位异或按位异或),! (按位非按位非) 例:例:3&8 3590 0 0 0 1 0 0 00 0 0 0 0 0 1 1&0

50、0 0 0 0 0 0 00 0 0 0 1 0 0 10 0 1 0 0 0 1 10 0 1 0 1 0 1 0移位运算移位运算 (左移左移):将二进制数值向左移动若干位,移出去的位:将二进制数值向左移动若干位,移出去的位丢弃,空出的位用丢弃,空出的位用0填补。填补。例:例:3 (右移右移),将操作数的二进制数值向右移动若干位,将操作数的二进制数值向右移动若干位,移出去的位丢弃,空出的位用符号位(对有符号数)或移出去的位丢弃,空出的位用符号位(对有符号数)或0(对无符号数)来填补。(对无符号数)来填补。 例:例:-32 结果:结果:-1有符号数:有符号数:有符号整数做位移运算时,符号位是不

51、参与有符号整数做位移运算时,符号位是不参与移动的。左移时,空出的位用移动的。左移时,空出的位用0填补;右移时,空出的位用填补;右移时,空出的位用符号位填补。符号位填补。无符号数:无符号数:没有符号位,不管左移或右移,空出的位用没有符号位,不管左移或右移,空出的位用0填补。填补。位移运算的实质(在不发生溢出时):左移:位移运算的实质(在不发生溢出时):左移:xn,相当于,相当于 x/2n赋值运算与赋值运算与赋值表达式赋值表达式 “”是是C语言的语言的基本赋值基本赋值运算符,基本的赋值表达式形式运算符,基本的赋值表达式形式为:为:“变量变量 表达式表达式”,它将表达式的值赋给变量。,它将表达式的值

52、赋给变量。如:如: x = y+1, a=b=c=1 C语言中除了基本的赋值运算符外,还有一系列语言中除了基本的赋值运算符外,还有一系列复合赋值复合赋值运算符:运算符: +=,=,*=,/=,%=,=,y)? x : y表达式计算中的数据类型转换表达式计算中的数据类型转换在表达式中常遇到不同类型数据之间进行在表达式中常遇到不同类型数据之间进行运算,如:运算,如:10+a+1.5-8765.1234*b在进行运算时,不同类型的数据要先转换在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则:成同一类型,然后进行运算。转换的规则:“由低向高由低向高”,如图所示。如图所示。表达式

53、计算中的数据类型转换表达式计算中的数据类型转换 也可以根据需要也可以根据需要强制转化强制转化为某一类型(利用强制类型转为某一类型(利用强制类型转换运算符)。换运算符)。强制类型转换的一般形式为强制类型转换的一般形式为:(类型名)(表达式)(类型名)(表达式)例:例: (int)x (float)(a+b)在把容量大的类型转换为容量小的类型时必须注意:在把容量大的类型转换为容量小的类型时必须注意:n 转换过程中可能导致溢出或损失精度转换过程中可能导致溢出或损失精度n double a = 4.0e40;n int b = (int)a; /b , , ( ) 9) 2)+ , - , ! , ,

54、 -, sizeof 10) |3)* , / , % 11) &4) + , - 12) |5) , , = , = 14) = , += , -= , *= , /= , 7) = , != %= , = , &= , |= 8) & = , 运算符的优先级和结合性运算符的优先级和结合性运算符与表达式运算符与表达式求表达式的值求表达式的值!(-6/5/(3-8%4)*3%2/1)=0)结果为结果为0(1=01=1)|(1+2*3/4%5=2)&(1+2=4)结果为结果为1未执行运算未执行运算总结总结p 程序设计语言的组成程序设计语言的组成p C程序基本框架:程序基本框架:预编译处理、函数、语句、注释预编译处理、函数、语句、注释p C语言基本规范:语言基本规范:n 标识符、关键字标识符、关键字n 数据类型、变量、常量数据类型、变量、常量n 运算符、表达式运算符、表达式

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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