您好,欢迎访问三七文档
《C语言程序设计教程》一、本课程的性质、任务、基本要求:1、性质:专业课2、基本要求:掌握C程序设计的基础知识、基本概念,并能用C编写常用的程序,掌握程序设计的思想和编程技巧。3、知识要求:通过对本课程的学习,学生应达到:(1)了解C语言的基本概念、语法、语义和数据类型的使用特点。(2)掌握最基本算法的设计与实现方法。(3)掌握C语言程序设计的方法及编程技巧。(4)掌握调试程序的基本方法及上机操作实践。4、能力要求:掌握一种C语言运行环境的使用,掌握一般的程序调试方法及程序改错方法,能正确使用C语言编写程序。5、技能要求:利用C语言编程能解决一定的实际问题。二、教学内容:构造类型数据之二——结构体、共用体、枚举总学时:96学时第一章程序设计与C语言4学时第二章数据描述与基本操作10学时第三章C程序的流程设计16学时第四章模块化程序设计18学时第五章构造类型数据之一——数组20学时第六章指针20学时第七章构造类型数据之二——结构体、共用体、枚举8学时第一章程序设计与C语言教学的目的与要求:了解程序设计语言的发展,C语言的发展及特点,掌握C程序的执行过程和简单C程序的书写。重点与难点:C程序的执行过程和简单C程序的认识。第一节程序设计语言一、程序设计语言的发展1、机器语言:一种CPU的指令系统,也称该CPU的机器语言,它是该CPU可以识别的一组由0和1序列构成的指令码。2、汇编语言:用“助记符号”来代替0,1码编程。3、面向过程的高级语言:把解题过程看作是数据被加工的过程,基于这种程序设计语言称为面向过程的程序设计语言4、面向对象的程序设计语言:面向对象的程序设计语言是一种结构模拟方法,对象之间通过互相发送和接收消息进行联系二、程序设计语言的支持环境。三、源程序的编辑、编译、连接和执行1、编辑:编辑是将源程序输入到计算、修改源程序、将修改好的源程序保存到磁盘文件2、编译:编译就是将已编辑好的源程序翻译成二进制的目标代码3、连接:将各模块的二进制目标代码进行系统标准模块经连接处理后,得到具有绝对地址的可执行文件。4、执行:执行一个经过编译和连接的可执行的目标文件。第二节用库函数组装C程序C语言本身语句少,许多功能是通过函数来完成的,C程序特点:1、C程序是由函数组成的,一个完整的程序必须有一个main函数,它称为主函数,程序总是从main函数开始执行的。2、C规定每个语句以分号(;)结束。3、printf函数及scanf函数分别是输入、输出函数。思考题:1、比较机器语言,汇编语言和高级语言,用哪类语言编写的程序执行起来更高效?2、编写一个求三个整数之和的程序,用求两个整数之和的函数实现。第二章数据描述与基本操作教学的目的与要求:掌握C的数据类型,算术运算符,逻辑运算符,关系运算符,条件运算符,逗号运算符的使用,数据的输入与输出。重点与难点:各类运算符的运算规则,数据的输入与输出。第一节数据类型整型基本类型字符型实型(浮点型)单精度型枚举类型双精度型数据类型构造类型指针类型空类型一、数值定点表示与浮点表示形式在C语言中一个以指数形式表示的数表示为数值和指数部分,凡不带指数部分的数称为定点数。二、字符类型数据的表示和存储形式字符类型的数据在内存中以相应的ASCII代码存放。三、数据的存储空间长度及取值范围第二节常量与变量一、常量和符号常量1、常量定义:在程序运行过程中,其值不能被改变的量称为常量。常量常区分不同的类型,如12、0、-3为整型常量,’a’、’D’为字符常量。2、符号常量:用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。常量不同于变量,它的值在作用域内不能改变,也不能再被赋值。二、变量的命名以及使用的注意事项1、变量定义:其值可以改变的量称为变量。2、标识符的命名规范和其它高级语言一样,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,C语言中的标识符命名规范为:①变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划表。②C语言中标识符的长度(字符个数)无统一规定,随系统而不同。许多系统(如IBMPC的MSC)取8个字符,假如程序中出现的变量名长度大于8个字符,则只有前面8个字符有效,后面的不被识别。③C语言有32个关键字(例如if、else、while)它们已有专门含义,不应用采用与它们同名的变量名。④C语言将大写字母和小写字母认为是两个不同字。第三节整型数据一、整型常量整型常量即整常数。C语言整常数可用以下三种表示形式。1、十进制表示。如231、-56.4782、八进制表示。以0开头的数是八进制数。如0123即(123)8=1*82+2*81+3*80=64+16+3=83。3、十六进制表示。以0x开头的数是16进制。如0x123即(123)16=1*162+2*161+3*160=256+32+3=291。二、整型变量整型变量分为:基本型、短整型、长整型、和无符号型四种。1、基本型,以int表示2、短整型,以shortint表示或以short表示3、长整型,以longint表示,或以long表示4、无符号型,存储单元中全部二进制位(bit)用作存放数本身,而不包括符号。无符号型中又分为无符号整型、开符号短整型和无符号长整型,分别以unsignedint、unsignedshort和unsignedlong表示。三、整型数据的取值范围C标准没有具体规定各类型所占内存字节数,各种机器处理上有所不同,以IBMPC为例,数的范围如表2.1所示。表2.1所占位数数的范围Int16-32768~32767即-215~(215-1)short[int]16-32768~32767即-215~(215-1)Long[int]32-2147483648~2147483647即-231~(231-1)Unsigned[int]160~65535即0~(216-1)Unsignedshort160~65535即0~(216-1)unsignedlong320~4294967295即0~(232-1)四、整型常量的分类1、一个整常量,如果其值在-32768~32767范围内,认为它是int型,它可以赋值给int型和longint型变量。2、一个整常量,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是longint型,可以将它赋值给一个longint型变量。3、如果某一计算机系统的C版本确定的shortint与int型在内存中占据的长度相同,则一个int型的常量出同时一个shortint型常量。4、常量中无unsigned型。但一个非负值的整常量可以赋值给unsigned型整变量,只要它的范围不超过变量的取值范围即可。例如:将50000赋给一个unsignedint型变量是可以的,而将70000赋给它是不行的(溢出)。5、在一个整常量后面加一个字母l或L,则认为是longint型常量。第四节实型数据一、实型常量实数在C语言中又称为浮点数。实数有两种表示形式:1、十进制形式。它由数字和小数点组成(注意必须有小数点)。2、指数形式。字母e(或E)之前必须有数字,e后面指数必须为整数。例如:e3、2.1e3.5、.e3、e等都不是合法的指数形式。二、实型变量C实型变量分为单精度(float型)和双精度(double型)两类。在一般系统中,一个单精度型数据在内存中占4个字节(32位),一个double型数据占8个字节。单精度实数提供7位有效数字。第五节字符型数据一、字符常量:1、普通形式的字符常量:用引号(即撇号)括起来的一个字符,如’a’、’D’、’$’、’?’等都是字符常量。2、转义符:以“\”开头的字符序列。二、字符变量字符变量是用来存放字符常量。注意只能存放一个字符。三、字符数据在内存中的存储形式将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身存放到内存单元中去,而是将该字符的相应的ASCII码值存放到存储单元中去。第六节字符串常量字符常量是用一对双引号括起来的零个或多个字符序列。C规定以字符’\0’作为字符串结束标志。所以字符串”a”实际上包含2个字符:’a’、’\0’,因此,把它赋值给一个字符变量c:第七节各类型数据间的混合运算一、几个概念1、提升与降格:由低级的数据转换为高级的数据称为数据提升,相反方向的转换称为降格。2、符号扩展与零扩展:将signed型的整型数提升为较长的signed型时,在增加的各个长度中各个位的状态与原来较短的数据中的符号位相同,即符号位为0时,新增加的位全置为0,否则全置为1。3、最高位失去符号功能与最高位变成符号位:由signed型转换为同一长度的unsigned型时,原来的符号位不再作符号位。4、截去小数与四舍五入:当一个实数转换为整数时,实数的小数部分全部舍去,并按整数形式存储,当由double型转换为float型时,去掉多余的数字,按四舍五入处理。5、丢失精度6、结果不确定与截高位二、不同类型数据的隐式转换1、一般算术转换2、赋值转换3、不同类型数据的显式转换第八节运算符与表达式一、基本算术运算符1、C语言中有5个基本算术运算符,+(加法运算符。如3+5、+3)-(减法运算符。如5-2、-3)*(乘法运算符,如3*5)/(除法运算符,如5/3,5.0/3)%(求余运算符,要求%两侧均为整型数据)2、优先级别:先*、/、%后+、-3、运算量:双元运算量,%前后必须为整数。4、左右结合性:自左至右参预运算。二、自加自减运算符1、C语言中有4种形式的自加自减运算符:++i(先使i加1后使用)i++(先使用后使i加1)--i(先使i减1后使用)i--(先使用后使i减1)2、优先级别:高于算术运算。3、运算量:单元运算量,此运算量必须为变量,所以表达式5++、(x+y)++是错误的。4、左右结合性:自右至左参预运算。三、关系运算符1、C语言提供的关系运算符有:(大于)=(大于或等于)小于)=(小于或等于)==(等于)是!=(不等于)2、优先级别:关系运算符的优先级别低于纯算术类,高于值类。后两个的优先级小于前四个。3、运算量:关系运算符是双元运算符,整型、实型、字符都可以参预运算。4、左右结合性:从左向右的结合方向四、逻辑运算1、C语言提供的逻辑运算符:&&(逻辑与)||(逻辑或)!(逻辑非)2、优先级别:&&与||的优先级别低于关系运算符,高于条件运算符,&&的优先级别高于||,!的优先级别与自加运算符(++)、自减运算符(--)同级。3、运算量:&&和||是双元运算符,!是单元运算符。4、左右结合性:&&和||运算符的结合方向为自左至右,!的结合方向为自右至左。五、赋值运算1、基本的赋值运算符:=(将赋值运算符右侧的表达式赋给左侧的变量)2、自反算术赋值运算符C语言中有5个基本自反算术赋值运算符,+=(a+=3等价于a=a+3)-=(a-=3等价于a=a-3)*=(a*=3等价于a=a*3)/=(a*=3等价于a=a*3)%=(a%=3等价于a=a%3)3、优先级别:赋值运算符与自反算术赋值运算符属于同等级别,低于条件运算符,高于逗号运算符。如对于表达式x%=y+3完全等价于x%=(y+3)。4、运算量:双元运算量,赋值运算符与自反算术赋值运算的第一个量必须为变量,且%=前后必须为整型数据。5、左右结合性:自右至左参预运算。六、条件运算1、条件运算符的基本形式及功能:条件运算是一种在两个表达式的值中选择一个的操作。它的一般形式为:e1?e2:e3它的操作过程为,若e1为真,则表达式的值为e2,若为假表达式的值为e3。2、优先级别:低于逻辑运算,高于赋值运算。3、运算量:三元运算量,e1一般为算术表达式,e2、e3可以是任意类型的表达式,条件表达式的值的类型为e2与e3二者中类型较高的。4、左右结合性:自右至左运算。七、逗号运算1、逗号运算符的基本形式及功能:逗号表达式的一般形式为:表达式1,表达式2。逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个表达式
本文标题:C语言程序设计教程
链接地址:https://www.777doc.com/doc-2908196 .html