高级语言程序设计_第1页
高级语言程序设计_第2页
高级语言程序设计_第3页
高级语言程序设计_第4页
高级语言程序设计_第5页
已阅读5页,还剩467页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录第一章 概述第二章 基本数据类型第三章 基本结构程序设计第六章 结构体与共用体 基础知识(有关概念)一、计算机系统一、计算机系统 由硬件系统和软件系统组成,它们是相辅由硬件系统和软件系统组成,它们是相辅相成,缺一不可的。没有软件控制,硬件系相成,缺一不可的。没有软件控制,硬件系统是一堆费铁,而没有硬件平台支撑的软件,统是一堆费铁,而没有硬件平台支撑的软件,则一事无成。则一事无成。二、程序和程序设计二、程序和程序设计 程序是为完成某一特定功能,由编程人员指程序是为完成某一特定功能,由编程人员指定的、控制计算机按顺序执行一系列动作的、计定的、控制计算机按顺序执行一系列动作的、计算机能够识别的

2、指令集合体。算机能够识别的指令集合体。 程序设计就是为计算机编制程序的过程,它程序设计就是为计算机编制程序的过程,它涉及程序设计方法和程序设计语言等内容。涉及程序设计方法和程序设计语言等内容。三、软件三、软件 软件是与计算机系统的操作有关的计算软件是与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、机程序、规程、规则,以及可能有的文件、文档及数据。(不能认为软件就是程序,程文档及数据。(不能认为软件就是程序,程序只是完整软件产品的一部分)序只是完整软件产品的一部分)四、程序设计语言四、程序设计语言 用于书写计算机程序所使用的语言称为用于书写计算机程序所使用的语言称为程序设计语言

3、。它是由人工设计的语言,是程序设计语言。它是由人工设计的语言,是人与计算机之间交互的工具。人与计算机之间交互的工具。 程序设计语言按照书写形式以及思维方程序设计语言按照书写形式以及思维方式的不同,一般分为低级语言和高级语言两式的不同,一般分为低级语言和高级语言两大类,低级语言包括机器语言和汇编语言。大类,低级语言包括机器语言和汇编语言。1、机器语言、机器语言 是以二进制代码形式(是以二进制代码形式(0和和1)表示的机器)表示的机器基本指令的集合,是计算机系统唯一不需要翻基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。译可以直接识别和执行的程序设计语言。 特点:运算速

4、度快特点:运算速度快 缺点:机器语言随计算机机型的不同而不缺点:机器语言随计算机机型的不同而不同,难阅读、难查错、难修改。同,难阅读、难查错、难修改。 2、汇编语言、汇编语言 用一组字母、数字或字符来代替机器指令用一组字母、数字或字符来代替机器指令的语言称为汇编语言。与机器语言相比,使用的语言称为汇编语言。与机器语言相比,使用汇编语言编写程序可以用助记符来表示指令的汇编语言编写程序可以用助记符来表示指令的操作码和操作对象,也可以用标号和符号来代操作码和操作对象,也可以用标号和符号来代替地址。替地址。 特点与缺点:特点与缺点: 特点:便于识别和记忆,执行效率较高。特点:便于识别和记忆,执行效率较

5、高。 缺点缺点: (1)计算机不能直接执行,必须通过)计算机不能直接执行,必须通过“翻译翻译”程序程序 “汇编程序汇编程序”的帮助,才能转换成相的帮助,才能转换成相应的机器代码,才能被执行。应的机器代码,才能被执行。 (2)不同)不同CPU的指令系统其相应的汇编语言的指令系统其相应的汇编语言不同从而形成了对机器有依赖性。不同从而形成了对机器有依赖性。 3、高级语言、高级语言 是一种接近人们熟悉、习惯的自然语言和是一种接近人们熟悉、习惯的自然语言和数学语言描述的程序设计语言。程序中可以采数学语言描述的程序设计语言。程序中可以采用具有一定含义的数据命名和容易理解的执行用具有一定含义的数据命名和容易

6、理解的执行语句。这些语句易学、易用、易维护,且在一语句。这些语句易学、易用、易维护,且在一定程度上与机器无关,给编程带来了极大的方定程度上与机器无关,给编程带来了极大的方便。便。 特点与缺点:特点与缺点: 特点:程序易设计、理解与维护,容易保特点:程序易设计、理解与维护,容易保证程序正确性。证程序正确性。 缺点:执行速度没有低级语言高,因为计缺点:执行速度没有低级语言高,因为计算机硬件不能直接识别高级语言中的语句,需算机硬件不能直接识别高级语言中的语句,需要先要先“翻译翻译”,再执行。,再执行。五、程序设计步骤五、程序设计步骤 1、明确问题(弄清楚做什么)、明确问题(弄清楚做什么) 2、系统设

7、计(怎么做:抽象出数据结构、系统设计(怎么做:抽象出数据结构设设 计对数据的操作)计对数据的操作) 3、用计算机语言编制程序、用计算机语言编制程序 4、调试程序、调试程序六、机器数及表示方法六、机器数及表示方法 计算机中的数是用二进制来表示和存储计算机中的数是用二进制来表示和存储的,数的符号也是用二进制来表示的(的,数的符号也是用二进制来表示的(1代代表负数;表负数;0代表正数)。代表正数)。 机器数:把一个数连同其符号在内在机机器数:把一个数连同其符号在内在机器中的表示加以数值化,这样的数称为机器器中的表示加以数值化,这样的数称为机器数。数。 机器数的表示方法:机器数的表示方法: 计算机中通

8、常使用计算机中通常使用二进制补码二进制补码 的形式来表的形式来表示一个数。(因为补码运算可以连同符号位一示一个数。(因为补码运算可以连同符号位一起参与运算,这便于运算器的设计与实现)起参与运算,这便于运算器的设计与实现)七、字符表示法七、字符表示法 计算机系统可以识别及处理的字符在机计算机系统可以识别及处理的字符在机器中用二进制数来表示。常采用器中用二进制数来表示。常采用ASCII码码(美国信息交换标准代码)来表示。这种代(美国信息交换标准代码)来表示。这种代码用一个字节(码用一个字节(8位二进制码)来表示一个位二进制码)来表示一个字符,其中低字符,其中低7位为字符的位为字符的ASCII码值,

9、最高码值,最高位一般用作校验位。位一般用作校验位。第 1 章 概述1.1 C语言简介 C语言是一种流行的计算机高级程序设计语言是一种流行的计算机高级程序设计语言,它设计精巧,功能齐全,不仅是开发系语言,它设计精巧,功能齐全,不仅是开发系统软件的理想工具,也是开发应用软件的理想统软件的理想工具,也是开发应用软件的理想程序设计语言。程序设计语言。C语言能够在多种操作系统下运行。语言能够在多种操作系统下运行。 1.2 C语言的特点 C语言之所以能成为应用很广的计算机高级程语言之所以能成为应用很广的计算机高级程序设计语言之一,是因为它有以下特点:序设计语言之一,是因为它有以下特点: 1、语言短小精悍,

10、基本组成部分紧凑、简洁。、语言短小精悍,基本组成部分紧凑、简洁。 C语言只有语言只有32个标准关键字、个标准关键字、42个标准运算符和个标准运算符和9种种控制语句,语言的组成精练、简洁,而且使用方便控制语句,语言的组成精练、简洁,而且使用方便灵活。灵活。 2、运算符丰富,表达能力强。、运算符丰富,表达能力强。C语言具有语言具有“高级语言高级语言”和和“低级语言低级语言”的双重特点的双重特点 ,其,其运算符包含的内容广泛,所生成的表达式简练、运算符包含的内容广泛,所生成的表达式简练、灵活,有利于提高编译效率和目标代码的质量。灵活,有利于提高编译效率和目标代码的质量。 3、数据类型丰富,结构化好。

11、、数据类型丰富,结构化好。 C语言提供了语言提供了编写结构化程序所需要的各种数据类型和控制结编写结构化程序所需要的各种数据类型和控制结构,这些丰富的数据类型和控制结构以及以函数构,这些丰富的数据类型和控制结构以及以函数调用为主的程序设计风格,调用为主的程序设计风格, 保证了利用保证了利用C语言所语言所编写的程序能够具有良好的结构化。编写的程序能够具有良好的结构化。 4、提供了某些接近汇编语言的功能,有利、提供了某些接近汇编语言的功能,有利于编写系统软件。这些功能包括:可以直接访于编写系统软件。这些功能包括:可以直接访问物理地址,并能进行二进制位运算等。问物理地址,并能进行二进制位运算等。 5、

12、C程序所生成的目标代码质量高程序所生成的目标代码质量高 C程序所生成的目标代码的效率仅比用汇编程序所生成的目标代码的效率仅比用汇编语言描述同一个问题低语言描述同一个问题低20%左右,左右,C语言描述问语言描述问题直观、快捷、工作量小、可读性好、易于调试、题直观、快捷、工作量小、可读性好、易于调试、修改和移植。因此,修改和移植。因此,C语言编写的程序执行效率语言编写的程序执行效率高。高。 6、C程序的可移植性好程序的可移植性好 在在C语言提供的语句中,没有直接依赖语言提供的语句中,没有直接依赖与硬件的语句和与硬件有关的操作。因此,与硬件的语句和与硬件有关的操作。因此,用用C程序编写的程序能够很容

13、易地从一种计程序编写的程序能够很容易地从一种计算机环境移植到另一种计算机环境中。算机环境移植到另一种计算机环境中。弱点:弱点: 1、运算符的优先级太多不易记忆,且与日、运算符的优先级太多不易记忆,且与日常习惯不完全一致。常习惯不完全一致。 2、由于语言的语法限制不太严格,在增加、由于语言的语法限制不太严格,在增加了程序设计灵活性的同时,在一定程度上也降低了程序设计灵活性的同时,在一定程度上也降低了某些安全性。(这对程序设计人员提出了更高了某些安全性。(这对程序设计人员提出了更高的要求)的要求) 3、类型检查机制弱,导致有些错误不能在编、类型检查机制弱,导致有些错误不能在编译时发现。译时发现。

14、1.3 C程序结构和书写风格 用用C语言编写的程序,称为语言编写的程序,称为C语言源程序,语言源程序,简称简称C程序。程序。 任何一种计算机语言,与人类自然语言一任何一种计算机语言,与人类自然语言一样,都有特定的语法规则和特定的表现形式。样,都有特定的语法规则和特定的表现形式。用一种计算机语言所编写的程序,其书写格式用一种计算机语言所编写的程序,其书写格式和程序结构的构成规则,就是该种语言特点的和程序结构的构成规则,就是该种语言特点的具体体现。具体体现。 1.3.1 简单简单C程序介绍程序介绍 程序程序1:编写一个:编写一个C程序,程序功能为在标准输出程序,程序功能为在标准输出设备(显示器)上

15、显示指定字符串:设备(显示器)上显示指定字符串: “ welcome to use C ”。 源程序为:源程序为: #include main( ) printf(“ welcome to use C n”) ; 程序运行结果为:程序运行结果为: welcome to use C 程序程序2:计算两个整数之和并显示其结果:计算两个整数之和并显示其结果 #include main( ) int x , y , sum ; x = 32 ; y = 67 ; sum = x + y ; printf(“%d + %d = %d n”, x , y, sum) ; 显示结果格式为显示结果格式为:32

16、+67=99 程序程序3:用函数调用法求任意两个整数中的较大者。:用函数调用法求任意两个整数中的较大者。 #include main( ) int a , b , c ; scanf(“%d,%d” , &a,&b); c=max(a ,b); 运行程序时若输入:运行程序时若输入: printf(“max = %dn”, c); 28,66【回车】【回车】 则运行结果为:则运行结果为: int max(int x , int y) max=66 int z ; if(xy) z=x ; else z=y ; return z ; 1.3.2 C 程序结构程序结构 从前述例子,可

17、总结从前述例子,可总结C程序结构的特点:程序结构的特点: (1)C程序可以由一个或多个函数构成,但程序可以由一个或多个函数构成,但任何一个完整的任何一个完整的C程序都必须包含一个且只能包程序都必须包含一个且只能包含一个主函数(含一个主函数(main函数)。在程序中,无论函数)。在程序中,无论main函数在何位置,执行程序时总是从函数在何位置,执行程序时总是从main函数函数开始执行,且在主函数中结束整个程序的执行,开始执行,且在主函数中结束整个程序的执行,即主函数的结束就是整个程序的结束。即主函数的结束就是整个程序的结束。 (2)函数是程序的基本单位,一个程序功能)函数是程序的基本单位,一个程

18、序功能的实现需通过各个函数的功能来实现,而函数的的实现需通过各个函数的功能来实现,而函数的功能是通过函数之间的相互调用来实现。程序中功能是通过函数之间的相互调用来实现。程序中所使用的函数可以是系统提供的标准库函数,也所使用的函数可以是系统提供的标准库函数,也可以是用户根据需要自定义的函数。可以是用户根据需要自定义的函数。 (3)一个函数是由函数首部和函数体构成,函)一个函数是由函数首部和函数体构成,函数首部包括函数名、函数类型和函数参数等。函数数首部包括函数名、函数类型和函数参数等。函数体是用左右花括号括起来的部分,它包括局部变量体是用左右花括号括起来的部分,它包括局部变量的定义和一组执行语句

19、。函数的功能就是由函数体的定义和一组执行语句。函数的功能就是由函数体中的语句完成的。中的语句完成的。C程序中用到的所有变量都必须程序中用到的所有变量都必须遵循遵循“先定义后使用先定义后使用”的原则,每一个执行语句必的原则,每一个执行语句必须由须由“;”(分号)结束。(分号)结束。 (4)在函数之外还可以包含一个说明部分,称)在函数之外还可以包含一个说明部分,称为外部说明,它可以包括预编译命令、外部变量为外部说明,它可以包括预编译命令、外部变量的说明等。的说明等。 (5)在程序中可以加入注释,格式为:)在程序中可以加入注释,格式为: /* 注注释内容释内容 */ ,注释为非执行语句,它对程序的编

20、译,注释为非执行语句,它对程序的编译和执行结果无任何影响,使用的目的是增强程序和执行结果无任何影响,使用的目的是增强程序的可读性。的可读性。 1.3.3 C 程序的书写风格程序的书写风格 (1)为了提高程序的可读性,在书写程序时)为了提高程序的可读性,在书写程序时建议使用建议使用“锯齿形锯齿形”的书写方式,即根据语句的的书写方式,即根据语句的从属关系,以缩进书写的形式来体现语句的层次从属关系,以缩进书写的形式来体现语句的层次关系。即在语句之前加上适当的空格字符,使处关系。即在语句之前加上适当的空格字符,使处于同一层次的语句从同一列开始书写;于同一层次的语句从同一列开始书写; (2)建议一行只写

21、一个语句()建议一行只写一个语句(C 允许在一行内写允许在一行内写多个语句);多个语句); (3)用小写字母书写程序,大写字母一般用作符)用小写字母书写程序,大写字母一般用作符号常量或其它用途;号常量或其它用途; (4)标识符(变量名、函数名等)的定义应尽)标识符(变量名、函数名等)的定义应尽量做到量做到“见名知意见名知意”; (5)适当地使用输入)适当地使用输入/输出时的提示信息,以增输出时的提示信息,以增强程序的可读性和方便程序的调试强程序的可读性和方便程序的调试。 1.4 1.4 C程序的编辑、编译和运行程序的编辑、编译和运行 从编写一个源程序到在计算机上得到运从编写一个源程序到在计算机

22、上得到运行结果,基本步骤有行结果,基本步骤有编辑、编译、连接和运编辑、编译、连接和运行行,每一步的大致含义是:,每一步的大致含义是: (1)编辑()编辑(输入输入/ /修改源程序的过程修改源程序的过程) 用某种编辑软件,将用某种编辑软件,将C语言源程序输入到计语言源程序输入到计算机,并以文件的形式存入到磁盘(外存)中。算机,并以文件的形式存入到磁盘(外存)中。经过编辑后得到的文件以经过编辑后得到的文件以.C或或.CPP为文件类型为文件类型名,称为名,称为C或或C+源文件源文件。(。(ASCII码组成的文码组成的文件,其中的代码机器不能识别)件,其中的代码机器不能识别) (2)编译()编译(检查

23、程序中语法错误并生成目检查程序中语法错误并生成目标代码的过程标代码的过程) 对编辑的源文件进行编译(翻译)以产生对编辑的源文件进行编译(翻译)以产生目标代码文件(将高级语言源程序翻译成机器目标代码文件(将高级语言源程序翻译成机器代码)。编译的过程同时也是检查源程序中各代码)。编译的过程同时也是检查源程序中各语句是否存在语法错误的过程,当排除了源程语句是否存在语法错误的过程,当排除了源程序中的所有的语法错误后,可得到相应的序中的所有的语法错误后,可得到相应的目标目标文件文件,目标文件以,目标文件以 .OBJ 为文件类型名。为文件类型名。 (3)连接)连接 (将生成的目标代码与库函数等将生成的目标

24、代码与库函数等连接的过程连接的过程) 经过编译后的目标文件是不能直接运行的,经过编译后的目标文件是不能直接运行的,需要经过连接后才能生成可执行代码(需要经过连接后才能生成可执行代码(可执行可执行文件文件),可执行文件是以),可执行文件是以 .EXE 为文件类型名。为文件类型名。 (4) 运行(运行(检查程序逻辑错误及执行程序检查程序逻辑错误及执行程序获得结果的过程获得结果的过程) 通过运行可执行文件(通过运行可执行文件(.exe文件)可获得文件)可获得程序运行结果。若程序中存在逻辑错误,系程序运行结果。若程序中存在逻辑错误,系统将给予提示,此时需对程序进行相应修改,统将给予提示,此时需对程序进

25、行相应修改,再重复(再重复(1)(4)步。)步。 总结上机主要步骤:输入源程序总结上机主要步骤:输入源程序 保存保存源程序源程序 编译源程序编译源程序 连接目标代码连接目标代码 运行程序运行程序 第第 2 2 章章 基本数据类型基本数据类型 任何一种语言都有相应的语法规则,而语法规任何一种语言都有相应的语法规则,而语法规则是由语言的基本元素构成。则是由语言的基本元素构成。C 语言包含以下基本语言包含以下基本元素。元素。 2.1 标识符标识符和关键字和关键字 2.1.1 标识符标识符 (用户定义的标识符用户定义的标识符) C 程序中的每一个变量、数组、函数和文件都程序中的每一个变量、数组、函数和

26、文件都必须有一个唯一的名称用于系统识别和使用,该名必须有一个唯一的名称用于系统识别和使用,该名称被称为标识符。(标识符是一个名字,用来标识称被称为标识符。(标识符是一个名字,用来标识变量、常量、数组、函数和文件的名字)变量、常量、数组、函数和文件的名字) 标识符的定义规则:标识符的定义规则: (1)一个标识符只能由字母、数字和下划线构成,)一个标识符只能由字母、数字和下划线构成,且第一个字符必须是英文字母或下划线。标识符是由且第一个字符必须是英文字母或下划线。标识符是由用户根据实际问题的需要自己定义的;用户根据实际问题的需要自己定义的; (2)在定义标识符时,大、小写字母是有区别的,)在定义标

27、识符时,大、小写字母是有区别的,习惯上,标识符用小写字母表示;习惯上,标识符用小写字母表示; (3)标识符的长度要求随不同的编译系同而不同,)标识符的长度要求随不同的编译系同而不同,一般最好不要超过八个字符;一般最好不要超过八个字符; (4)在定义时,除保证合法性外,最好做到)在定义时,除保证合法性外,最好做到“见见名知意名知意”,以提高程序的可读性。,以提高程序的可读性。 2.1.2 关键字(关键字(系统定义的标识符系统定义的标识符) 关键字是一类具有特定含义,专门用作语言关键字是一类具有特定含义,专门用作语言的特定成分的标识符。在程序设计中常处于特定的特定成分的标识符。在程序设计中常处于特

28、定的位置,不能当作一般的标识符来使用。的位置,不能当作一般的标识符来使用。 在使用关键字时要注意,关键字都是小写的,在使用关键字时要注意,关键字都是小写的,且书写时不能跨行书写。且书写时不能跨行书写。2.2 C C 语言的数据类型 2.2.1 数据类型概念数据类型概念 算法处理的对象是数据,数据就是程序中的算法处理的对象是数据,数据就是程序中的实际数值。数据是以某种特定的形式存在的(如实际数值。数据是以某种特定的形式存在的(如整数、实数、字符等形式)。根据数据的取值范整数、实数、字符等形式)。根据数据的取值范围、可参加的运算以及在计算机中的存储方式等,围、可参加的运算以及在计算机中的存储方式等

29、,可以把数据分为各种不同的可以把数据分为各种不同的类型。类型。 2.2.2 程序的概念程序的概念 一个程序应包含以下两方面的内容:一个程序应包含以下两方面的内容: (1)对数据的描述:即在程序中要指定所使)对数据的描述:即在程序中要指定所使用数据的数据类型和数据的组织形式,即描述数用数据的数据类型和数据的组织形式,即描述数据结构;据结构; (2)对操作的描述:即对数据的操作步骤的)对操作的描述:即对数据的操作步骤的描述,亦即算法描述。描述,亦即算法描述。 即:程序即:程序 = 数据结构数据结构 + 算法算法2.2.3 C 语言的数据类型语言的数据类型 类型列表见教材(整型、实型、字符型等)类型

30、列表见教材(整型、实型、字符型等) C 语言中,语言中,所处理的数据根据用途分为不同所处理的数据根据用途分为不同的数据类型,且分为常量和变量,程序在运行过的数据类型,且分为常量和变量,程序在运行过程中就是通过变量和常量来操作数据的。常量和程中就是通过变量和常量来操作数据的。常量和变量均属于相应的类型。变量均属于相应的类型。在程序中,对所有用到在程序中,对所有用到的数据都必须指定其数据类型,这将关系到数据的数据都必须指定其数据类型,这将关系到数据的正确使用、存储和运算等的正确使用、存储和运算等。2.3 常量、常量及其分类 2.3.1 有关概念有关概念 1、什么是常量?在程序运行过程中,其值不、什

31、么是常量?在程序运行过程中,其值不能被改变的量。能被改变的量。 2、常量的表示方法:直接常量和符号常量、常量的表示方法:直接常量和符号常量 直接常量:在程序中直接出现的常数,例直接常量:在程序中直接出现的常数,例 20,-5,3.14等。其特点是,无需定义,可直接使用;等。其特点是,无需定义,可直接使用; 符号常量:用一个标识符来代表一个常量符号常量:用一个标识符来代表一个常量(该标识符用大写字母表示),在定义了标识符(该标识符用大写字母表示),在定义了标识符以后,它在程序运行过程中恒代表常量的值。其以后,它在程序运行过程中恒代表常量的值。其特点是:需要定义标识符以及它所代表的值,在特点是:需

32、要定义标识符以及它所代表的值,在程序中使用标识符表示常量值(宏替换)。程序中使用标识符表示常量值(宏替换)。 3、常量的类型、常量的类型 即为在程序中存在的类型。例在语句即为在程序中存在的类型。例在语句 lenth = 2*3.14*r; 中,中,2为整型常量;为整型常量;3.14为实型常量。为实型常量。 4、常量的特点、常量的特点 对于符号常量而言,它一旦被定义,其值在对于符号常量而言,它一旦被定义,其值在程序中不能被改变,即不能被再赋值。程序中不能被改变,即不能被再赋值。 提示:在程序中应尽量使用符号常量,其好处提示:在程序中应尽量使用符号常量,其好处是:是: (1)含义清楚,在一个规范的

33、程序中不提倡使)含义清楚,在一个规范的程序中不提倡使用更多的直接常量,过多的常数将导致其含义的用更多的直接常量,过多的常数将导致其含义的混乱,而应该根据常量的用途尽量使用混乱,而应该根据常量的用途尽量使用“见名知见名知意意”的符号常量;的符号常量; (2)在需要改变一个常量的值时能做到)在需要改变一个常量的值时能做到“一一 改改全改全改”。 例:例:#define PRICE 30 main( ) int num ,total ; num = 10 ; total = num* PRICE ; printf(“total=%d”, total); 2.3.2 常量的分类常量的分类 1、整型常量

34、、整型常量 即通常使用的整常数,在即通常使用的整常数,在 C 语言中有三种表语言中有三种表示方法:十进制、八进制和十六进制。亦即,这示方法:十进制、八进制和十六进制。亦即,这三种表示方法的常数可出现在三种表示方法的常数可出现在 C 表达式中。表达式中。 2、实型常量、实型常量 即通常使用的小数,有两种表示方法:十进即通常使用的小数,有两种表示方法:十进制表示法和指数表示法。前者使用普遍,后者主制表示法和指数表示法。前者使用普遍,后者主要用于表示高精度小数。要用于表示高精度小数。 3、字符型常量字符型常量 即为一个即为一个 C 语言系统能够识别的单字符,其语言系统能够识别的单字符,其表示方法为用

35、一对表示方法为用一对单引号单引号 括起来的一个单字符。括起来的一个单字符。字符型常量有两种:字符型常量有两种: (1)作为字符处理的字符常量(例)作为字符处理的字符常量(例: A、 s、+、# 、9等)等) 特点:此类常量表现形式为字符,但它们在存特点:此类常量表现形式为字符,但它们在存储时是按字符在机内的编码值储时是按字符在机内的编码值(ASCII码值码值)存储的,存储的,因此,在因此,在 C 语言中:语言中: 字符常量可以参与数值运算字符常量可以参与数值运算 可以把一个字符常量赋给某个字符变量或整型变可以把一个字符常量赋给某个字符变量或整型变量(一个字符常量可视为一个字节的整数)量(一个字

36、符常量可视为一个字节的整数) (2)起控制作用的特殊字符(转义字符)起控制作用的特殊字符(转义字符) (例(例 n、t 等)等) 特点:此类常量用于作为控制代码和输出特殊字特点:此类常量用于作为控制代码和输出特殊字符。(在程序中不能像可显示字符一样直接表示字符)符。(在程序中不能像可显示字符一样直接表示字符) 控制代码:例控制代码:例 n 表示回车;表示回车; t 表示跳格;表示跳格;b表示退格等;表示退格等; 特殊字符:输出在特殊字符:输出在C语言中有特定含义的字符,例语言中有特定含义的字符,例单引号(单引号( )、双引号()、双引号(“ ”)、反斜线()、反斜线()等。)等。例:语句例:语

37、句printf(“happy”);将输出;将输出 “happy” 4、字符串常量、字符串常量 字符串常量是由字符串常量是由0个或多个字符构成的字符个或多个字符构成的字符序列。字符串的表示是用一对序列。字符串的表示是用一对双引号双引号 括起来的括起来的字符序列。字符序列。 有关字符串的概念:有关字符串的概念: 空串:由零个字符构成的字符串,表示方空串:由零个字符构成的字符串,表示方法为法为 “”“”。 字符串长度:字符串中双引号内字符的个字符串长度:字符串中双引号内字符的个数。数。 字符串常量的存储:在字符串常量的存储:在 C 语言中,是用语言中,是用字字符数组符数组来存储字符串的,数组中的每一

38、个元素存来存储字符串的,数组中的每一个元素存放一个字符。为了保证字符串存取的正确性,在放一个字符。为了保证字符串存取的正确性,在存储字符串时,系统将自动地在字符串的最后加存储字符串时,系统将自动地在字符串的最后加上一个上一个 “空字符空字符” (0),该字符称为字符),该字符称为字符串结束标记,用来表示字符串的结束(该字符不串结束标记,用来表示字符串的结束(该字符不可显示,亦不产生任何控制作用故称空操作符)。可显示,亦不产生任何控制作用故称空操作符)。所以所以,用来存储字符串的存储单元应该比字符串用来存储字符串的存储单元应该比字符串长度至少多一个字节长度至少多一个字节,用以存放,用以存放 0

39、字符。提字符。提示:示:a 和和 “a” 有两点不同:表示和存储。有两点不同:表示和存储。 字符常量与字符串常量的区别:表示方法字符常量与字符串常量的区别:表示方法不同;存储方式不同,不能把一个字符串赋给不同;存储方式不同,不能把一个字符串赋给一个字符变量。一个字符变量。 字符串常量的使用:可由两种方式实现,字符串常量的使用:可由两种方式实现,一是直接使用本身;二是通过对字符数组元素一是直接使用本身;二是通过对字符数组元素的引用。的引用。(见下例见下例) 举例:举例:直接使用例直接使用例输出指定字符串:输出指定字符串:“ How do you do ! ” 。使用语句使用语句 : printf

40、(“ How do you do !”) ;字符数组元素引用例字符数组元素引用例-输出同上字符串,方法为:输出同上字符串,方法为: 定义字符数组定义字符数组 : char a20 = “How do you do !”; 输出:输出:for ( i = 0 ; i 20 ; i+) printf(“ %c” , a i ) ; 或者:或者:for ( i = 0 ; ai!= 0; i+) printf(“ %c” , a i ) ; 2.4 变量及变量分类变量及变量分类 2.4.1 有关概念有关概念 1、什么是变量?、什么是变量? 指指在程序运行过程中其值可以被改变的量在程序运行过程中其值可

41、以被改变的量。在在 C 语言中,语言中,一个变量实质上就是一个存储空间,一个变量实质上就是一个存储空间,在此空间中可进行数据的存储和读取访问。在此空间中可进行数据的存储和读取访问。 一个变量具有三个方面的含义:一是变量的名一个变量具有三个方面的含义:一是变量的名字;二是变量的存储单元地址;三是变量的值。字;二是变量的存储单元地址;三是变量的值。2、变量的定义、变量的定义 由于变量在程序中可代表各种类型的数据,由于变量在程序中可代表各种类型的数据,而不同类型的数据又有着不同的存储方式和相而不同类型的数据又有着不同的存储方式和相应的运算规则,因而,应的运算规则,因而,在程序中用到的所有在程序中用到

42、的所有变量都必须在使用之前进行定义,未定义变量都必须在使用之前进行定义,未定义的变量是不能使用的。的变量是不能使用的。 定义变量的一般形式是:定义变量的一般形式是: 数据类型说明符数据类型说明符 变量名变量名 / 变量名表;变量名表; 其中:其中: “ 说明符说明符 ” 表示被定义的变量为何种类型,表示被定义的变量为何种类型,系统将根据该类型为其分配相应的内存单元;系统将根据该类型为其分配相应的内存单元; “ 变量名变量名 ”是一个合法的标识符,程序中是一个合法的标识符,程序中对变量的访问,均是通过变量名进行的。对变量的访问,均是通过变量名进行的。 变量先定义后使用的目的是:变量先定义后使用的

43、目的是: (1)保证变量名使用的正确性)保证变量名使用的正确性 未定义的变量编译系统将不接受,因而不可能用未定义的变量编译系统将不接受,因而不可能用到未经定义的变量;到未经定义的变量; (2)保证变量存储的正确性)保证变量存储的正确性 不同类型的变量将占用不同数量的存储单元,有不同类型的变量将占用不同数量的存储单元,有了存储的正确性,才会有访问的正确性;了存储的正确性,才会有访问的正确性; (3)保证变量运算的合法性)保证变量运算的合法性 不同类型的变量可进行的运算有所不同,类型的不同类型的变量可进行的运算有所不同,类型的确定将可以避免某些非法运算。确定将可以避免某些非法运算。 2.4.2 变

44、量的分类变量的分类 1、整型变量、整型变量 整型变量用来存放整型数据(整型常量整型变量用来存放整型数据(整型常量 )。根)。根据整型数据不同的数据长度及其相应的取值范围,据整型数据不同的数据长度及其相应的取值范围,可将整型变量分为多种类型。可将整型变量分为多种类型。(分类有:(分类有:int、short int、long int、 unsigned int等)等) 2、实型变量、实型变量 实型变量用来存放实型数据(实型常量实型变量用来存放实型数据(实型常量 )。)。(分类有:(分类有:float、 double等)等) 3、字符型变量(、字符型变量(char) 字符型变量用来存放字符型常量,一

45、个字符型字符型变量用来存放字符型常量,一个字符型变量在内存中占一个字节。即一个字符变量只可存变量在内存中占一个字节。即一个字符变量只可存放一个单字符。放一个单字符。 字符型变量使用注意:字符型变量使用注意: (1)由于字符型变量只能存放一个字符,所以)由于字符型变量只能存放一个字符,所以不能将一个字符串赋给一个字符变量;赋给字符变不能将一个字符串赋给一个字符变量;赋给字符变量的值只能是用单引号括起来的单字符或者与字符量的值只能是用单引号括起来的单字符或者与字符相应的相应的 ASCII 码。码。 (赋值问题赋值问题) (2)字符型数据的存储和使用)字符型数据的存储和使用 存储:一个字符型变量获得

46、值后,其存储单存储:一个字符型变量获得值后,其存储单元中存放的是字符对应的元中存放的是字符对应的 ASCII 码(整数),而码(整数),而非字符本身。(非字符本身。(存储方式存储方式) 例:例: char a ; ( 定义字符型变量定义字符型变量 a) a = B; (将字符(将字符 B 赋给变量赋给变量 a ) 此时变量此时变量 a 中存放的是整数中存放的是整数 66(二进制),(二进制),而非字符而非字符 B本身。本身。 使用:由于字符型变量的值实际是一个整使用:由于字符型变量的值实际是一个整数,所以字符型数据与整型数据之间存在一数,所以字符型数据与整型数据之间存在一定的通用性,具体体现在

47、:(定的通用性,具体体现在:(使用特点使用特点) 在输出字符型数据时,可以以两种方式在输出字符型数据时,可以以两种方式输出输出-整数形式(字符的整数形式(字符的ASCII 码)和字符码)和字符形式(形式( ASCII 码对应的字符),不同的输出码对应的字符),不同的输出形式由不同的数据格式来决定形式由不同的数据格式来决定;(见下例);(见下例) 例:大小写字母的转换例:大小写字母的转换 main( ) char c1, c2 ; 运行结果为:运行结果为: c1 = a ; 65 , 66 c2 = b ; A , B c1 = c1-32 ; c2 = c2-32 ; printf(“%d ,

48、 %dn ” , c1 ,c2); printf(“%c , %cn ” , c1 ,c2); 字符型数据和整型数据可以相互赋值并进行字符型数据和整型数据可以相互赋值并进行混合运算,混合运算,但要注意这两种数据的取值但要注意这两种数据的取值范围是不同的范围是不同的(即要注意变量的类型和赋(即要注意变量的类型和赋值的合法性)。值的合法性)。 2.5 运算符和表达式运算符和表达式 基本概念:基本概念: 1、运算符:是一种对所给的运算对象(操作数)、运算符:是一种对所给的运算对象(操作数)进行何种运算的符号。进行何种运算的符号。 根据参与运算的操作数的个数不同,根据参与运算的操作数的个数不同,C 运

49、算符可运算符可分为三类:分为三类: (1)单目运算符)单目运算符-仅有一个操作数参与运算(!、仅有一个操作数参与运算(!、+、- 等)等) (2)双目运算符)双目运算符-两个操作数参与运算(两个操作数参与运算(+、-、| 等)等) (3)三目运算符)三目运算符-三个操作数参与运算(?三个操作数参与运算(? :唯一一个)唯一一个) 2、表达式:用运算符(包括圆括号)将运算、表达式:用运算符(包括圆括号)将运算对象连接起来,符合对象连接起来,符合 C 语法规则的式子称为表达语法规则的式子称为表达式。式。 表达式是用来求解和运算的,它总能返回一表达式是用来求解和运算的,它总能返回一个值,作为表达式的

50、结果。表达式是构成个值,作为表达式的结果。表达式是构成 C 语句语句的重要组成部分。的重要组成部分。 3、运算符的优先级和结合性、运算符的优先级和结合性 对同一个表达式,不同的运算起点和运算顺序将对同一个表达式,不同的运算起点和运算顺序将导致不同的运算结果。导致不同的运算结果。 优先级:优先级:一个表达式中若有多种运算(多个运算一个表达式中若有多种运算(多个运算符),则计算是有先后顺序的,这种运算的先后顺序符),则计算是有先后顺序的,这种运算的先后顺序称为相应运算符的优先级(用小括号可以人为地改变称为相应运算符的优先级(用小括号可以人为地改变运算符的优先级)。运算符的优先级)。 结合性:结合性

51、:当一个运算对象(操作数)的两侧的运当一个运算对象(操作数)的两侧的运算符的优先级别相同时,进行运算的结合方向称为运算符的优先级别相同时,进行运算的结合方向称为运算符的结合性。一般分为左结合(自左向右)和右结算符的结合性。一般分为左结合(自左向右)和右结合(自右向左)。合(自右向左)。 例:例:a + b * c / d e 3+5 9 & 8-8= =0 4、数据类型之间的转换(用于表达式计算和赋值、数据类型之间的转换(用于表达式计算和赋值运算)运算) C 语言在对表达式进行运算时,运算的原则是:语言在对表达式进行运算时,运算的原则是:要求表达式中参与运算的数据的数据类型相同。但要求

52、表达式中参与运算的数据的数据类型相同。但 C 语言的语法允许不同类型的数据出现在一个表达式中语言的语法允许不同类型的数据出现在一个表达式中进行混合运算,其中的原理为:在运算之前,系统将进行混合运算,其中的原理为:在运算之前,系统将对参加运算的各数据进行类型转换,使它们成为相同对参加运算的各数据进行类型转换,使它们成为相同的类型,再进行运算。的类型,再进行运算。 类型的转换有两种方式:类型的转换有两种方式:自动类型转换和强制自动类型转换和强制类型转换类型转换。 (1)自动类型转换自动类型转换 亦称作隐式类型转换,即在编译时,系统按亦称作隐式类型转换,即在编译时,系统按照一定的规则自动完成转换。照

53、一定的规则自动完成转换。 转换规则是:转换规则是:根据各数据数据类型的级别根据各数据数据类型的级别高低,将较低级别类型转换为较高级别类型,高低,将较低级别类型转换为较高级别类型,然后进行运算,运算结果为较高级别类型然后进行运算,运算结果为较高级别类型。 各类型的级别规定:各类型的级别规定:高高 double float long(int) unsigned(int) 低低 int char , short 其中:其中:横向箭头横向箭头表示表示必定转换,例在对字符型必定转换,例在对字符型或短整型数据进行运算时或短整型数据进行运算时必定是先转换成必定是先转换成 int 型再型再进行运算;进行运算;

54、纵向箭头纵向箭头表示表示当运算对象类型不相同时当运算对象类型不相同时转换的方向。转换的方向。使用说明:使用说明: 在类型转换时,非逐级转换。例一个在类型转换时,非逐级转换。例一个 int 数数据与一个据与一个 long 型数据进行运算时,是直接将型数据进行运算时,是直接将 int 型转换为型转换为 long 型,而非逐级转换。型,而非逐级转换。 数据类型的各种转换只影响表达式的运算结数据类型的各种转换只影响表达式的运算结果,并不改变原变量所定义的类型。果,并不改变原变量所定义的类型。 若进行混合运算,务必要明确所需若进行混合运算,务必要明确所需 计算结计算结果果 的数据类型,否则将可能影响结果

55、的准确性或的数据类型,否则将可能影响结果的准确性或正确性。正确性。 (2)强制类型转换)强制类型转换 亦称作显示类型转换。即根据程序功能的需要,亦称作显示类型转换。即根据程序功能的需要,直接将某数据转换成指定的数据类型。直接将某数据转换成指定的数据类型。 转换方法:在被转换数据(变量或表达式)前转换方法:在被转换数据(变量或表达式)前加上加上 “目标目标”类型说明符(类型转换运算符)。类型说明符(类型转换运算符)。 一般形式是:一般形式是: (目标类型名)(表达式(目标类型名)(表达式 ) 或或 (目标类型名)变量名(目标类型名)变量名使用说明:使用说明: 强制类型转换形式中的表达式,一定要用

56、括号强制类型转换形式中的表达式,一定要用括号将表达式括起来,否则仅对紧随强制转换运算符的将表达式括起来,否则仅对紧随强制转换运算符的变量进行类型转换。而对单一数值或变量进行强制变量进行类型转换。而对单一数值或变量进行强制转换,可不要括号。转换,可不要括号。例:例:( int) ( 16 .5+10.3) ( int) 16.5+10.3 其结其结果不一样。果不一样。为了获得为了获得 5/2 = 2.5的结果,方法之一是使用的结果,方法之一是使用强制强制类型转换:类型转换: (float)5/2 或或 5/ (float) 2 实现实现。 强制类型转换强制类型转换的结果是一个指定类型的中的结果是

57、一个指定类型的中间值,而原来变量的类型未被改变。间值,而原来变量的类型未被改变。 强制类型转换是一种不安全的转换,当强强制类型转换是一种不安全的转换,当强制类型转换出现在将高类型转换为低类型时,有制类型转换出现在将高类型转换为低类型时,有可能造成数据精度的损失。可能造成数据精度的损失。例:例:double f = 3.85 ; int h ; h = (int) f ;第二周实验题第二周实验题一、编程求以下表达式的值,假设:一、编程求以下表达式的值,假设:a=6, b=8, x=16.98, y=3.71、x+a % b+(float)(a*a+b*b)+( int )x / ( int )y

58、2、(flaot)(a+b)/2+( int )x % ( int )y二、编程,从二、编程,从键盘输入键盘输入一个摄氏温度一个摄氏温度c,将其转换为华氏温度,将其转换为华氏温度f和和 绝对温度绝对温度k,输出转换结果。(提示:定义变量,输出转换结果。(提示:定义变量c、f、k,输,输 出结果要求有文字说明)出结果要求有文字说明) 转换公式为:转换公式为: f = 9/5c+32 k = 273.16+c2.6 算术运算符和算术表达式算术运算符和算术表达式 C 语言中的算术运算有语言中的算术运算有基本算术运算和自增基本算术运算和自增1 1 自自减减1 1 运算。运算。 1、基本算术运算符、基本

59、算术运算符(1)运算符:)运算符:+、-、*、/、%(2) 算术表达式:用算术运算符将数值型运算对算术表达式:用算术运算符将数值型运算对象连接起来的,符合象连接起来的,符合C语法规则的式子。语法规则的式子。(3)算术运算符的优先级和结合性)算术运算符的优先级和结合性 优先级:优先级: *、/、% +、- 结合性:自左向右(左结合)结合性:自左向右(左结合) (4)使用说明:)使用说明: 对于除法运算符对于除法运算符 “/ ” ,若参与运算的两个操,若参与运算的两个操作数均为整数,其结果取其商的整数部份,舍去作数均为整数,其结果取其商的整数部份,舍去小数部分(截尾取整)。(除数和被除数允许是小数

60、部分(截尾取整)。(除数和被除数允许是整型或实型)整型或实型) 例:表达式例:表达式 1/2 的值为的值为0,而非,而非 0.5 对于取余运算符对于取余运算符 “ %”,要求参与运算的两,要求参与运算的两个操作数都必须为整数,不能用于实型数。个操作数都必须为整数,不能用于实型数。 2、自增、自增1和自减和自减1运算符运算符 它们是为变量的增它们是为变量的增1和减和减1提供的紧凑而简便提供的紧凑而简便的格式。的格式。 (1)运算符:)运算符:+、- - (单目运算符)(单目运算符) 例:例:n+ 等价于等价于 n = n+1 -x 等价于等价于 x = x-1 (2) 使用说明:使用说明: +、- -运算符的运算对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论