《计算机等级考试二级C语言辅导.ppt》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言辅导.ppt(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院计算机等级考试二级语言考前辅导计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院主要内容一、试卷分析一、试卷分析二、语言概述二、语言概述三、数据类型及其运算三、数据类型及其运算四、语句四、语句五、数组五、数组六、函数六、函数七、编译预处理七、编译预处理八、指针八、指针九、结构体与共用体九、结构体与共用体十、文件十、文件十一、主要算法分析十一、主
2、要算法分析计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院C语言复习考试的五大要点了解试卷,胸中有数 深刻理解,强化概念 归纳整理,适当记忆 注重实践,融会贯通 多做练习,查漏补缺 计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点命题基本原则及考核点语法:一、源程序结构一、源程序结构二、基本类型数据的表示和引用二、基本类型数据的表示和引用1.系统预定义数据类型系统预定义
3、数据类型2.基本类型常量的表示基本类型常量的表示3.基本类型变量的声明和直接引用基本类型变量的声明和直接引用4.基本类型变量的间接引用(指针应用)基本类型变量的间接引用(指针应用)三、表达式三、表达式四、标准输入四、标准输入/输出输出五、语句五、语句计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点命题基本原则及考核点难题难题:语法语法:单选,基本概念填空,阅读程序部分算法和数据结构的综合应用算法和数据结构的综合应用:阅读程序完善程序上机上机填空改错:语法错,语义错,算法错
4、编程:主函数,功能函数计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点命题基本原则及考核点语法:六、函数六、函数1.函数定义函数定义2.函数声明函数声明3.函数直接调用、间接调用(指针应用)函数直接调用、间接调用(指针应用)4.递归函数的定义与调用执行流程递归函数的定义与调用执行流程 5.标识符作用域规则标识符作用域规则 七、构造类型数据成员的引用七、构造类型数据成员的引用1.数组声明和数组元素的直接引用数组声明和数组元素的直接引用2.结构定义、结构变量声明和结构变量成员
5、的直接引用结构定义、结构变量声明和结构变量成员的直接引用3.数组元素、结构变量成员的间接引用(指针应用)数组元素、结构变量成员的间接引用(指针应用)八、文件输入八、文件输入/输出输出九、预处理命令九、预处理命令计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点一、常用算法一、常用算法1.分类分类(排序排序)算法算法冒泡冒泡,选择选择,插入插入2.检索检索(查找查找)算法算法(1)无序数据序列的查找无序数据序列的查找(见遍历算法见遍历算法)(2)有序数据序列的查找有序数据序列
6、的查找:二分法二分法3.遍历算法遍历算法(1)一维数组和二维数组的遍历一维数组和二维数组的遍历(2)单向链表的遍历单向链表的遍历(3)文件的遍历文件的遍历4.其它基本算法其它基本算法递推法递推法,穷举法穷举法,二分法二分法,牛顿法求方程根牛顿法求方程根,梯形法求定积分等梯形法求定积分等.计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点二、典型问题二、典型问题数值问题数值问题1.素数问题素数问题2.求因子求因子3.整数拆位、反序数、回文数整数拆位、反序数、回文数4.最大公约
7、数最大公约数,最小公倍数最小公倍数5.求最值、平均值求最值、平均值6.累加累加,累乘、阶乘、级数累乘、阶乘、级数(近似值计算近似值计算)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点三、典型问题三、典型问题一维数组数据处理一维数组数据处理1.生成(数列)生成(数列)2.变换(编码变换(编码/解码,压缩解码,压缩/还原还原,循环移位等)3.查找(指定值,最大值,最小值)4.排序5.插入(一个数)6.删除(一个数,重复的多个数)7.更新(一个数)更新(一个数)8.统计统计9
8、.合并(两个数列)合并(两个数列)10.集合运算集合运算 11.模拟高精度算术运算模拟高精度算术运算计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、典型问题四、典型问题字符串数据处理字符串数据处理1.子串查找,子串查找,2.子串统计,子串统计,3.子串删除,子串删除,4.子串替换子串替换,5.整型/实型机器数与字符串表示相互转换6.字符串变换(编码字符串变换(编码/解码,压缩解码,压缩/还原)还原)命题基本原则及考核点计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算
9、机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点命题基本原则及考核点五、典型问题五、典型问题二维数组数据处理数据处理1.生成(矩阵)生成(矩阵)2.变换(改变数值,改变数据存储位置)变换(改变数值,改变数据存储位置)3.查找(指定值,最小值,最大值)查找(指定值,最小值,最大值)4.排序(按行排序,按列排序)排序(按行排序,按列排序)5.插入(一个数,一行数,一列数)插入(一个数,一行数,一列数)6.删除(一个数,一行数,一列数)删除(一个数,一行数,一列数)7.更新(一个数,一行数,一列数)更新(一个数,一行数,一列数)8.统计统计9.合
10、并(两个矩阵)合并(两个矩阵)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院命题基本原则及考核点命题基本原则及考核点六、典型问题六、典型问题一维结构数组数据处理数据处理1.查找查找(直接查找,通过指向结构数组的指针数组查找)(直接查找,通过指向结构数组的指针数组查找)2.排序排序(结构数组排序,指向结构数组的指针数组排序)(结构数组排序,指向结构数组的指针数组排序)3.插入(一条记录)插入(一条记录)4.删除(一条记录)删除(一条记录)5.更新(一条记录)更新(一条记录)6.统计统计计算机
11、等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院笔试形式基础知识基础知识和和c语言程序设计语言程序设计两部分组成两部分组成基础知识全部为基础知识全部为单选题单选题c语言程序设计部分分为语言程序设计部分分为单选题单选题和和填空题填空题答题要求:答题要求:单选题单选题的答案必须涂划在的答案必须涂划在专用答题卡上专用答题卡上;填空题填空题的答案必须写在的答案必须写在专用答题纸上专用答题纸上(填空时注意:填空时注意:每个填空要每个填空要按标号顺序填按标号顺序填,一空占一行,不是一题,一空占一行,不是一题一
12、行;因为一行;因为有的题目一题包含多个空有的题目一题包含多个空)。计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院上机考试形式上机题总分为上机题总分为填空题填空题 改错题改错题:改错题中所:改错题中所存在的错误存在的错误主要是主要是语法错误语法错误(如数组如数组的声明错误、函数定义错误等的声明错误、函数定义错误等)、运行错误运行错误(如包含不正确如包含不正确的头文件的头文件)、逻辑错误逻辑错误等。等。编程题:编程题程序中,通常都涉及一个编程题:编程题程序中,通常都涉及一个有一定难度的有一定难
13、度的算法算法,考生须按题目要求实现,考生须按题目要求实现计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院二、C语言概述、C程序的结构、程序的结构、main函数函数一个程序可由多个函数构成,其中必有唯一的一个主函数。一个程序可由多个函数构成,其中必有唯一的一个主函数。它是整个程序的入口,也是整个程序的出口。它是整个程序的入口,也是整个程序的出口。、标识符的命名规则、标识符的命名规则规则:字母或下划线开始的字母、下划线和数字串。规则:字母或下划线开始的字母、下划线和数字串。语句中的保留字不能作为
14、标识符。(教材语句中的保留字不能作为标识符。(教材375)所有的函数名可以作为标识符。所有的函数名可以作为标识符。、C程序的上机过程程序的上机过程编辑编辑编译编译连接连接运行运行计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算1、常量、变量、常量、变量常量:固定不变的量。常量:固定不变的量。整型常量:整型常量:十进制(十进制(29)、八进制()、八进制(029)和十六进制()和十六进制(0 x29)实型常量:实型常量:小数表示(小数表示(123.456)、指数表示)、指数
15、表示(1.23456e+002)字符常量:字符常量:普普通通字字符符(A a 2 +,)、转转义义字字符符(qqq xhh)符号常量:(一般用大写字符表示)符号常量:(一般用大写字符表示)#define PI 3.1415936计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算(续一)变量:变量:整型:整型:基本整型:基本整型:2字节字节int (-32768-+32767)无符号基本整型:无符号基本整型:2字节字节unsigned int (065535)长整型:长整型:
16、4字节字节 long int 或或long无符号长整型:无符号长整型:4字节字节 unsigned long int 或或 unsigned long实型:实型:单精度单精度:4字节字节float双精度双精度:8字节字节 double字符型:字符型:有符号字符有符号字符:1字节字节char (-128127)无符号字符无符号字符:1字节字节 unsigned char (0255)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算(续二)2、不同类型数据之间的混合运算、不同
17、类型数据之间的混合运算 表达式值的类型由该式子中最长的数据类型决定。表达式值的类型由该式子中最长的数据类型决定。float 型无条件转换成型无条件转换成double型。型。char型无条件转换成型无条件转换成int型。型。*注意强制类型转换的用法。(类型名)注意强制类型转换的用法。(类型名)(int)x+y 等价于(等价于(int)x)+y参与运算的数据类型改变了,参与运算的数据类型改变了,x的类型不变。的类型不变。3、算术运算符和运算表达式(、算术运算符和运算表达式(+-*/%)/:a/b a,b都是整型都是整型 结果是整型结果是整型%:a%b a,b 都必须是整型都必须是整型计算机等级考试
18、二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算(续三)4、赋值运算符和赋值表达式(右结合性)、赋值运算符和赋值表达式(右结合性)号号 左边只能出现变量,具有强制类型转换作用左边只能出现变量,具有强制类型转换作用if (c=getchar()!=n)复合赋值运算复合赋值运算a*=x+y 等价于等价于a=a*(x+y)5、逗号运算符和逗号表达式、逗号运算符和逗号表达式 加加;号构成表达式语句号构成表达式语句作为其它语句的一部分或函数的参数时要加括号作为其它语句的一部分或函数的参数时要加括
19、号6、表达式的类型识别、表达式的类型识别7、有关运算符、有关运算符功能:优先级:结合性:表达式的值:功能:优先级:结合性:表达式的值:计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算(续四)8、关系运算符和关系表达式、关系运算符和关系表达式 =(6级级)=!=(7级级)注意:注意:等于零和不等于零的表示方式等于零和不等于零的表示方式a !a两个实数判相等和判不相等的方法两个实数判相等和判不相等的方法ax&xb 不能写成不能写成ax b?x:y?m:n y应先与后面的运算符
20、结合应先与后面的运算符结合12、位运算符、位运算符(按位取反(按位取反2级)级)&(按位与(按位与8级)级)(按位异或(按位异或9级)级)|(按位或(按位或10级)级)13、数学算式的数学算式的C语言表示语言表示计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院三、数据类型及其运算(续八)14、输入输出函数、输入输出函数输入函数:输入函数:getchar()gets()scanf()输出函数:输出函数:putchar()puts()printf()注意:注意:1)getchar()是无参函数,
21、从输入设备读取一个字符,包括不是无参函数,从输入设备读取一个字符,包括不可显示字符(一般形式可显示字符(一般形式c=getchar())。)。2)gets()和和puts()函数只有一个参数,且为字符串的首地址。函数只有一个参数,且为字符串的首地址。3)scanf()函数的格式控制符中的普通字符照原样输入。函数的格式控制符中的普通字符照原样输入。4)printf()函数中的实参的求值顺序从右向左。函数中的实参的求值顺序从右向左。计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语句、表达式
22、语句、表达式语句、函数调用语句、函数调用语句、复合语句、复合语句、空语句、空语句、控制语句、控制语句计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语句(选择语句)(一)(一)if 语句一般格式语句一般格式if(表达式)语句(表达式)语句或或if(表达式)语句(表达式)语句1 else语句语句2注意:注意:“表达式表达式”应有括号,且可为各种类型的表达式应有括号,且可为各种类型的表达式“语句语句”如是复合语句应有括号如是复合语句应有括号“语句语句”还可以是还可以是 if 语句语句数学分段
23、函数的求值问题数学分段函数的求值问题繁琐的二维数组填值问题(结合循环语句,几乎每次都考)繁琐的二维数组填值问题(结合循环语句,几乎每次都考)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语句(选择语句_续)(二)(二)switch 语句一般格式语句一般格式switch(表达式)(表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;case 常量表达式常量表达式n:语句语句n;break;default:语句语句n+
24、1;注意:注意:执行流程执行流程“语句语句”可为多个单个语句,此时不必加大括号可为多个单个语句,此时不必加大括号default 语句可缺省语句可缺省switch 语句嵌套使用时,语句嵌套使用时,break语句只跳出它所处的哪层语句只跳出它所处的哪层switch整型、字符型或枚举类型根据需要选择计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语句(循环语句_1)(一)当型循环语句一般格式(一)当型循环语句一般格式while(表达式)语句(表达式)语句注意:注意:“表达式表达式”应有括号应有
25、括号“语句语句”为复合语句时应加大括号为复合语句时应加大括号在语句中应有使在语句中应有使“表达式表达式”趋于不成立的语句存在趋于不成立的语句存在在复合语句中含有在复合语句中含有break和和continue语句时的情况:语句时的情况:while (表达式)(表达式)break;continue;计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语句(循环语句_2)(二)直到型循环语句一般格式(二)直到型循环语句一般格式do 语句语句 while (表达式)(表达式);注意注意:无论表达式是
26、否成立,循环体至少执行一遍无论表达式是否成立,循环体至少执行一遍 “表达式表达式”应有括号,后面的应有括号,后面的“;”号不能丢号不能丢 “语句语句”为复合语句时应加大括号为复合语句时应加大括号 在语句中应有使在语句中应有使“表达式表达式”趋于不成立的语句存在趋于不成立的语句存在 在复合语句中含有在复合语句中含有break和和continue语句时的情况:语句时的情况:do break;continue;while (表达式)(表达式);计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院四、语
27、句(循环语句_3)(二)(二)for 型循环语句一般格式型循环语句一般格式for (表达式(表达式1;表达式;表达式2;表达式;表达式3)语句语句注意注意:“语句语句”为复合语句时应加大括号为复合语句时应加大括号在语句中应有使在语句中应有使“表达式表达式2”趋于不成立的语句存在趋于不成立的语句存在在复合语句中含有在复合语句中含有break和和continue语句时的情况:语句时的情况:繁琐的二维数组填值问题(结合循环语句,几乎每次都考)繁琐的二维数组填值问题(结合循环语句,几乎每次都考)三种循环语句相互嵌套使用的情况三种循环语句相互嵌套使用的情况计算机等级考试二级语言计算机等级考试二级语言计算
28、机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院五、数组(一维数组)(一)一维数组(一)一维数组定义:定义:类型名数组名类型名数组名常量表达式常量表达式;定义并初始化:定义并初始化:类型名数组名类型名数组名常量表达式常量表达式表达式列表;表达式列表;或:类型名数组名或:类型名数组名表达式列表;表达式列表;引用:引用:只能引用下标变量。只能引用下标变量。注意:注意:、不能定义动态数组如:、不能定义动态数组如:int n;int an;、只能在定义数组的时候初始化,以后不可整体赋值、只能在定义数组的时候初始化,以后不可整体赋值、除字符数组外,
29、不可整体引用数组、除字符数组外,不可整体引用数组、一般用单循环语句引用数组元素、一般用单循环语句引用数组元素、内存中连续存储,数组名为其存储的首地址、内存中连续存储,数组名为其存储的首地址计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院五、数组(二维数组)(二)二维数组(二)二维数组定义:定义:类型名数组名类型名数组名常量表达式常量表达式1常量表达式常量表达式2;定义并初始化:定义并初始化:类型名数组名类型名数组名常量表达式常量表达式;引用:引用:只能引用下标变量。只能引用下标变量。注意:注
30、意:、不能定义动态数组、不能定义动态数组、只能在定义数组的时候初始化,以后不可整体赋值、只能在定义数组的时候初始化,以后不可整体赋值、不可整体引用数组、不可整体引用数组、一般用双重循环语句引用数组元素、一般用双重循环语句引用数组元素、按行在内存中连续存储,数组名为行的行地址,、按行在内存中连续存储,数组名为行的行地址,ai为为第第i行第个元素的地址如:行第个元素的地址如:int a33 引用引用 a05 正确正确、与双重循环语句一起应用(二维数组填值问题)、与双重循环语句一起应用(二维数组填值问题)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与
31、软件学院计算机与软件学院计算机与软件学院计算机与软件学院五、数组(字符数组)(三)字符数组(一维、二维)(三)字符数组(一维、二维)具有普通一维数组和二维数组的性质。具有普通一维数组和二维数组的性质。特点:特点:、可以定义时初始化,也可以后用、可以定义时初始化,也可以后用strcpy()赋值。赋值。、可以引用下标变量,也可整体引用(一维)、可以引用下标变量,也可整体引用(一维)、一般用于存放字符串、一般用于存放字符串、字符串的基本概念、字符串的基本概念)串结束符)串结束符 )内存单元地址)内存单元地址字符串字符串、字符串操作函数的使用、字符串操作函数的使用)串长度(编程实现)串长度(编程实现)
32、串复制(赋值)串复制(赋值)串拼接(编程实现)串拼接(编程实现)串比较(不能用关系运算符)串比较(不能用关系运算符)、字符串的输入和输出、字符串的输入和输出(char c20;))gets(c);和和 scanf(“%s”,c);区别区别、二维字符数组的引用有下标引用法和数组名加第一维下标引用法、二维字符数组的引用有下标引用法和数组名加第一维下标引用法计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数主要内容主要内容(一一)、函数的定义、函数的定义(二二)、函数的参数、函数的参数(三三
33、)、函数的返回值、函数的返回值(四四)、函数的调用、函数的调用(五五)、数组作为函数的参数、数组作为函数的参数(六六)、局部变量和全局变量、局部变量和全局变量(七七)、变量的存储类别、变量的存储类别计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(函数的定义)(一一)、函数的定义、函数的定义函数可理解为一个程序段,给予一定的输入就会产生一定的函数可理解为一个程序段,给予一定的输入就会产生一定的输出。函数的定义就是在使用函数前对函数功能的完整性描述。输出。函数的定义就是在使用函数前对函
34、数功能的完整性描述。一般形式:一般形式:函数类型函数名(参数列表)函数类型函数名(参数列表)函数体函数体 注意:注意:、函数的定义就是函数的说明、函数的定义就是函数的说明、函数由、函数由“头部头部”和和“函数体函数体”构成构成、函数类型指函数返回值的类型(可以无返回值、函数类型指函数返回值的类型(可以无返回值void)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(函数的参数)(二二)、函数的参数、函数的参数 参数列表中的参数为形式参数,它们和函数体中定义的变量参数列表中的参数为形
35、式参数,它们和函数体中定义的变量一起构成该函数的局部变量,形参是接受数据的通道,由于是第一起构成该函数的局部变量,形参是接受数据的通道,由于是第一次出现,因此要作类型说明。一次出现,因此要作类型说明。注意:注意:、形参要一一说明、形参要一一说明、实参和形参要做到类型、顺序和数量一致、实参和形参要做到类型、顺序和数量一致、实参和形参可以同名,但它们都是所处函数内部的局部数据、实参和形参可以同名,但它们都是所处函数内部的局部数据、实参可以是常量、量变、函数和表达式,形参只能是变量、实参可以是常量、量变、函数和表达式,形参只能是变量、在发生函数调用时,实参是将值(或地址)赋给形参的、在发生函数调用时
36、,实参是将值(或地址)赋给形参的计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(函数的返回值)(三三)、函数的返回值、函数的返回值通过调用函数,从被调函数中得到的值称函数的返回值。通过调用函数,从被调函数中得到的值称函数的返回值。注意:注意:、调用函数得到返回值有三种途径:、调用函数得到返回值有三种途径:)在被调用函数中用)在被调用函数中用return语句可以(且只可)得到一个返回值语句可以(且只可)得到一个返回值 )使用全局变量,全局变量对所有函数都有效)使用全局变量,全局变量对
37、所有函数都有效 )实参和形参采用地址复用的方法(考点)实参和形参采用地址复用的方法(考点)、被调用函数有时没有返回值,此时定义为、被调用函数有时没有返回值,此时定义为void型型、被调用函数返回值类型由函数的类型确定、被调用函数返回值类型由函数的类型确定、return表达式;表达式;、被调用函数返回后,在主调函数中继续执行调用语句的下一、被调用函数返回后,在主调函数中继续执行调用语句的下一个语句个语句计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(函数的调用)(四四)、函数的调用、
38、函数的调用函数调用是将程序的执行流程转向被调用函数,函数调用是将程序的执行流程转向被调用函数,被调用函数执行完毕后再回到主调用函数继续执行。被调用函数执行完毕后再回到主调用函数继续执行。注意:注意:、根据被调用函数的类型函数调用有三种形式:、根据被调用函数的类型函数调用有三种形式:)函数调用作为表达式的一部分(被调用函数有返回值)函数调用作为表达式的一部分(被调用函数有返回值)函数调用作为其它函数的参数(被调用函数有返回值)函数调用作为其它函数的参数(被调用函数有返回值)函数调用加)函数调用加“;”号构成函数调用语句(被调用函数无号构成函数调用语句(被调用函数无返回值)返回值)、函数调用的形式
39、、函数调用的形式)嵌套调用)嵌套调用)递归调用:递归函数的编程特点)递归调用:递归函数的编程特点递归函数的阅读特点递归函数的阅读特点计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函 数(数组作函数的参数_1)(五五)、数组作为函数的参数、数组作为函数的参数由于可以从数组名得到数组在内存储单元存储的起始位置,由于可以从数组名得到数组在内存储单元存储的起始位置,它是一个地址常量,因此在计论数组作为函数参数时结合指针一它是一个地址常量,因此在计论数组作为函数参数时结合指针一并讨论。并讨论。(
40、)一维数组(指向变量的指针)作为函数的参数,在实参和形()一维数组(指向变量的指针)作为函数的参数,在实参和形参位置上共有四种情况参位置上共有四种情况:(假定:(假定int a 10;int *p;)实参(调用点)实参(调用点)形参(定义点)形参(定义点)x=max(a,10);地址复用关系地址复用关系 int max(int b,int n)x=max(a,10);赋值调用关系赋值调用关系 int max(int*p,int n)x=max(p=a,10);地址复用关系地址复用关系 int max(int b,int n)x=max(p=a,10);赋值调用关系赋值调用关系 int max(
41、int*p1,int n)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函 数(数组作函数的参数_2)()二维数组(指向行的指针)作为函数的参数,在实参和形参位置()二维数组(指向行的指针)作为函数的参数,在实参和形参位置 上共有四种情况上共有四种情况:(假定:(假定int a 34;int (*p)4;)实参(调用点)实参(调用点)形参(定义点)形参(定义点)x=max(a,3,4);地址复用关系地址复用关系 int max(int b4,int m,int n)x=max(a,3,
42、4);赋值调用关系赋值调用关系 int max(int(*p)4,int m,int n)x=max(p=a,3,4);地址复用关系地址复用关系 int max(int b4,int m,int n)x=max(p=a,3,4);赋值调用关系赋值调用关系 int max(int(*p1)4,int m,int n)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(局部和全局变量)(六六)、局部变量和全局变量(变量的空间观)、局部变量和全局变量(变量的空间观)局部变量局部变量、某函数内
43、部定义的变量,只在该函数内部有效、某函数内部定义的变量,只在该函数内部有效、分程序(复合语句)内部定义的变量,只在分程序中有效、分程序(复合语句)内部定义的变量,只在分程序中有效、形参属于局部变量、形参属于局部变量全局变量全局变量、函数外部定义的变量,作用范围从定义点开始到程序最后、函数外部定义的变量,作用范围从定义点开始到程序最后定义点之前的函数可用定义点之前的函数可用extern进行申明来扩展其作用范围进行申明来扩展其作用范围、在全局变量的作用范围内如遇同名的宏定义,则在宏定义、在全局变量的作用范围内如遇同名的宏定义,则在宏定义之后,同名应该用宏名置换(之后,同名应该用宏名置换(2004年
44、秋选择题年秋选择题26题)题)计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院六、函数(变量的存储类别)(七七)、变量的存储类别(变量的时间观)、变量的存储类别(变量的时间观)存储方法分两大类:存储方法分两大类:、静态存储区:、静态存储区:全局变量全局变量(程序开始执行赋值程序开始执行赋值)、局部静态变量局部静态变量(编译时赋初值,只赋一次编译时赋初值,只赋一次)、动态存储区:、动态存储区:局部变量局部变量(含形参、函数内定义的变量和分程序中定义的变量含形参、函数内定义的变量和分程序中定义的
45、变量)具体分四种:具体分四种:、自动变量、自动变量auto 动态局部变量动态局部变量、static 申明的变量申明的变量 静态局部变量静态局部变量、register 变量变量 动态局部变量动态局部变量、extern 申明变量申明变量 扩展全局变量作用范围扩展全局变量作用范围计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院七、编译预处理处理工作在编译前完成。处理工作在编译前完成。(一一)、宏定义、宏定义用宏体置换程序中的宏名。不要将宏体化简后代入,有嵌套用宏体置换程序中的宏名。不要将宏体化简后
46、代入,有嵌套定义的宏名需逐层代入。定义的宏名需逐层代入。(二二)、文件包含、文件包含 和和“”的搜索包含文件区别:的搜索包含文件区别:在库函数头文件所在库函数头文件所在的目录中寻找(标准方式)、在的目录中寻找(标准方式)、“”先在用户的当前目录中寻找,先在用户的当前目录中寻找,找不至再按标准方式寻找。找不至再按标准方式寻找。文件包含不但可以包含函数的头文件,也可包含文件包含不但可以包含函数的头文件,也可包含*.文件。文件。(三三)、条件编译、条件编译计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软
47、件学院八、指针(基本概念)(一一)、地址和指针、地址和指针变量变量i地址变量地址变量 i_point (存储其它变量地址的变量存储其它变量地址的变量)指针变量作为函数的参数指针变量作为函数的参数i_point2000i2000指针变量指针变量i_point 指向变量指向变量 i计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院八、指针(数组和指针)(二二)、数组的指针和指向数组的指针变量、数组的指针和指向数组的指针变量由于数组连续存放的特性,当指针指向数组(即数组元素)时,由于数组连续存放的特
48、性,当指针指向数组(即数组元素)时,通过指针指向的连续变化来指向数组中不同的元素以获取对数组元通过指针指向的连续变化来指向数组中不同的元素以获取对数组元素的操作。素的操作。例:例:int a5,*p;int a5,*p;p=&a3;p=&a3;*p a3*p a3 *p的计算结果找到了整型数组成员的计算结果找到了整型数组成员a3 *&a3 a3 *&a3 a3 对对a3a3的地址的地址作间接存取运算,结果为变量作间接存取运算,结果为变量a3a3&*p&a3&*p&a3对对*p p的计算结果的计算结果进行取址运算得到进行取址运算得到a3a3的地址的地址a0 a1 a2a3a4p计算机等级考试二级
49、语言计算机等级考试二级语言计算机等级考试二级语言计算机等级考试二级语言计算机与软件学院计算机与软件学院计算机与软件学院计算机与软件学院八、指针(数组和指针_续)数组名作函数参数数组名作函数参数 实参(调用点)实参(调用点)形参(定义点)形参(定义点)x=max(a,10);地址复用关系地址复用关系 int max(int b,int n)x=max(a,10);赋值调用关系赋值调用关系 int max(int*p,int n)x=max(p=a,10);地址复用关系地址复用关系 int max(int b,int n)x=max(p=a,10);赋值调用关系赋值调用关系 int max(int
50、*p1,int n)指向多维数组的指针指向多维数组的指针 实参(调用点)实参(调用点)形参(定义点)形参(定义点)x=max(a,3,4);地址复用关系地址复用关系 int max(int b4,int m,int n)x=max(a,3,4);赋值调用关系赋值调用关系 int max(int(*p)4,int m,int n)x=max(p=a,3,4);地址复用关系地址复用关系 int max(int b4,int m,int n)x=max(p=a,3,4);赋值调用关系赋值调用关系 int max(int(*p1)4,int m,int n)计算机等级考试二级语言计算机等级考试二级语言