计算机等级考试二级C语言数学与计算机学院计算机等级考试二级C语言考前辅导计算机等级考试二级C语言数学与计算机学院C语言复习考试的五大要点•了解试卷,胸中有数•深刻理解,强化概念•归纳整理,适当记忆•注重实践,融会贯通•多做练习,查漏补缺计算机等级考试二级C语言数学与计算机学院主要内容第1部分试卷分析第2部分C语言概述第3部分数据类型及其运算第4部分语句第5部分数组第6部分函数第7部分编译预处理第8部分指针第9部分结构体与共用体第10部分位运算第11部分文件第12部分主要算法计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点一、源程序结构二、基本类型数据的表示和引用1.系统预定义数据类型2.基本类型常量的表示3.基本类型变量的声明和直接引用4.基本类型变量的间接引用(指针应用)三、表达式四、标准输入/输出五、语句第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点•难题:•语法:–单选,–阅读程序部分•算法和数据结构的综合应用:–阅读程序–完善程序•上机–填空–改错:语法错,语义错,算法错–编程:主函数,功能函数第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点六、函数1.函数定义2.函数声明3.函数直接调用、间接调用(指针应用)4.递归函数的定义与调用执行流程5.标识符作用域规则七、构造类型数据成员的引用1.数组声明和数组元素的直接引用2.结构定义、结构变量声明和结构变量成员的直接引用3.数组元素、结构变量成员的间接引用(指针应用)八、文件输入/输出九、预处理命令第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点一、常用算法1.分类(排序)算法冒泡,选择,插入2.检索(查找)算法(1)无序数据序列的查找(见遍历算法)(2)有序数据序列的查找:二分法3.遍历算法(1)一维数组和二维数组的遍历(2)单向链表的遍历(3)文件的遍历4.其它基本算法递推法,穷举法,二分法,牛顿法求方程根,梯形法求定积分等.第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点二、典型问题·数值问题1.素数问题2.求因子3.整数拆位、反序数、回文数4.最大公约数,最小公倍数5.求最值、平均值6.累加,累乘、阶乘、级数(近似值计算)第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点三、典型问题·一维数组数据处理1.生成(数列)2.变换(编码/解码,压缩/还原,循环移位等)3.查找(指定值,最大值,最小值)4.排序5.插入(一个数)6.删除(一个数,重复的多个数)7.更新(一个数)8.统计9.合并(两个数列)10.集合运算11.模拟高精度算术运算第1部分试卷分析计算机等级考试二级C语言数学与计算机学院四、典型问题·字符串数据处理1.子串查找,2.子串统计,3.子串删除,4.子串替换,5.整型/实型机器数与字符串表示相互转换6.字符串变换(编码/解码,压缩/还原)命题基本原则及考核点第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点五、典型问题·二维数组数据处理1.生成(矩阵)2.变换(改变数值,改变数据存储位置)3.查找(指定值,最小值,最大值)4.排序(按行排序,按列排序)5.插入(一个数,一行数,一列数)6.删除(一个数,一行数,一列数)7.更新(一个数,一行数,一列数)8.统计9.合并(两个矩阵)第1部分试卷分析计算机等级考试二级C语言数学与计算机学院命题基本原则及考核点六、典型问题·一维结构数组数据处理1.查找(直接查找,通过指向结构数组的指针数组查找)2.排序(结构数组排序,指向结构数组的指针数组排序)3.插入(一条记录)4.删除(一条记录)5.更新(一条记录)6.统计第1部分试卷分析计算机等级考试二级C语言数学与计算机学院单项选择题•基础知识和c语言程序设计两部分组成•单选题总分40分•答题要求:–进入单选题答题时,键盘被锁定,不可以进入到其他界面,其实就是将原来的笔试部分移到计算机上做;–单项选择题做完提交后不可以再做,也即进入单选题答题后只有全部做完了,才可以退出,一旦退出则不可以再进入;–可以根据自己的情况选择先做上机操作题,再做单项选择题。第1部分试卷分析计算机等级考试二级C语言数学与计算机学院上机考试形式•上机题总分为60•程序填空题•程序改错题:改错题中所存在的错误主要是语法错误(如数组的声明错误、函数定义错误等)、运行错误(如包含不正确的头文件)、逻辑错误等。•编程题:编程题程序中,通常都涉及一个有一定难度的算法,考生须按题目要求实现第1部分试卷分析计算机等级考试二级C语言数学与计算机学院上机考试注意事项1、填空2、改错题可能出现的情况(四个错误)***函数调用(类型、调用方式、参数对应等)*文件包含缺少*变量的使用*前面提到的其它注意事项***主要算法3、编程题(算法+文件操作)***一定是文件操作题(五个要素)*文件名,输出位置一定按题目要求进行*算法有一定难度(一般都是小算法的综合)计算机等级考试二级C语言数学与计算机学院1、C程序的结构、main函数一个C程序可由多个函数构成,其中必有唯一的一个主函数。它是整个程序的入口,也是整个程序的出口。2、标识符的命名规则规则:字母或下划线开始的字母、下划线和数字串。C语句中的保留字不能作为标识符。(教材P375)所有的函数名可以作为标识符。3、C程序的上机过程编辑编译连接运行第2部分C语言概述计算机等级考试二级C语言数学与计算机学院1、常量、变量•常量:固定不变的量。•整型常量:十进制(29)、八进制(029)和十六进制(0x29)•实型常量:小数表示(123.456)、指数表示(1.23456e+002)•字符常量:普通字符(‘A’‘a’‘2’‘+’‘,’)、转义字符(‘\qqq’‘\xhh’)•符号常量:(一般用大写字符表示)#definePI3.1415936第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续一)•变量:•整型:基本整型:2字节int(-32768--+32767)无符号基本整型:2字节unsignedint(0—65535)长整型:4字节longint或long无符号长整型:4字节unsignedlongint或unsignedlong•实型:单精度:4字节float双精度:8字节double•字符型:有符号字符:1字节char(-128—127)无符号字符:1字节unsignedchar(0—255)第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续二)2、不同类型数据之间的混合运算表达式值的类型由该式子中最长的数据类型决定。float型无条件转换成double型。char型无条件转换成int型。*注意强制类型转换的用法。(类型名)(int)x+y等价于((int)x)+y参与运算的数据类型改变了,x的类型不变。3、算术运算符和运算表达式(+-*/%)/:a/ba,b都是整型结果是整型%:a%ba,b都必须是整型第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续三)4、赋值运算符和赋值表达式(右结合性)‘=’号左边只能出现变量,具有强制类型转换作用if((c=getchar())!=‘\n’)……复合赋值运算a*=x+y等价于a=a*(x+y)5、逗号运算符和逗号表达式加‘;’号构成表达式语句作为其它语句的一部分或函数的参数时要加括号6、表达式的类型识别7、有关运算符功能:优先级:结合性:表达式的值:第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续四)8、关系运算符和关系表达式==(6级)==!=(7级)注意:等于零和不等于零的表示方式a!a两个实数判相等和判不相等的方法ax&&xb不能写成axb形式a==b不能写成a=b形式在多分枝if语句中的作用第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续五)9、逻辑运算符和逻辑表达式!(2级)&&(11级)||(12级)注意:a&&b&&c和a||b||c表达式!优先级比算术运算高!(a&&b&&c)等价于!a||!b||!c!(a||b||c)等价于!a&&!b&&!c复杂逻辑表达式出现在算术表达式中第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续六)10、自增自减运算符(右结合性)++--(2级)注意:a++和++a的区别对整型、实型和字符型都可进行在运算符为多个字符时,尽可能多地自左而右组成完整的运算符tc对含运算符++和--等表达式的处理形如printf(“%d%d\n”,i,i++);中函数参数求值出现在其它表达式中注意值的变化第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续七)11、条件运算符和条件表达式(右结合性)?:(13级)注意:唯一三目运算符不能和if语句完全等价右结合性ab?x:y?m:ny应先与后面的运算符结合12、位运算符~(按位取反2级)&(按位与8级)^(按位异或9级)|(按位或10级)13、数学算式的C语言表示第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院三、数据类型及其运算(续八)14、输入输出函数输入函数:getchar()gets()scanf()输出函数:putchar()puts()printf()注意:1)getchar()是无参函数,从输入设备读取一个字符,包括不可显示字符(一般形式c=getchar())。2)gets()和puts()函数只有一个参数,且为字符串的首地址。3)scanf()函数的格式控制符中的普通字符照原样输入。4)printf()函数中的实参的求值顺序从右向左。第3部分数据类型及其运算计算机等级考试二级C语言数学与计算机学院四、语句1、表达式语句2、函数调用语句3、复合语句4、空语句5、控制语句第4部分语句计算机等级考试二级C语言数学与计算机学院四、语句(选择语句)(一)if语句一般格式if(表达式)语句或if(表达式)语句1else语句2注意:“表达式”应有括号,且可为各种类型的表达式“语句”如是复合语句应有括号“语句”还可以是if语句数学分段函数的求值问题繁琐的二维数组填值问题(结合循环语句,几乎每次都考)第4部分语句计算机等级考试二级C语言数学与计算机学院四、语句(选择语句_续)(二)switch语句一般格式switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;……case常量表达式n:语句n;break;default:语句n+1;}注意:执行流程“语句”可为多个单个语句,此时不必加大括号default语句可缺省switch语句嵌套使用时,break语句只跳出它所处的哪层switch整型、字符型或枚举类型根据需要选择第4部分语句计算机等级考试二级C语言数学与计算机学院四、语句(循环语句_1)(一)当型循环语句一般格式while(表达式)语句注意:“表达式”应有括号“语句”为复合语句时应加大括号在语句中应有使“表达式”趋于不成立的语句存在在复合语句中含有break和continue语句时的情况:while(表达式){……break;……continue;}第4部分语句计算机等级考试二级C语言数学与计算机学院四、语句(循环语句_2)(二)直到型循环语句一般格式do语句while(表达式);注意:无论表达式是否成立,循环体至少执行一遍“表达式”应有括号,后面的“;”号不能丢“语句”为复合语句时应加大括号在语句中应有使“表达式”趋于不成立的语句存在在复合语句中含有break和continue语句时的情况:do{……break;……continue;}while(表达式);第4部分语句计算机等级考试二级C语言数学与计算