一、了解试卷,胸中有数 综观近几年全国计算机等级二级基础部分和C语言程序设计的题目,笔试中大多数考题是与大纲要求的基本内容一致的,难度不高,但内容十分广泛,应牢固掌握。所以,全面复习非常重要。 二、深刻理解,强化概念 对于计算机的基础知识和体系,应注意理解,切忌死记硬背。例如,可以把计算机硬件系统的结构图与实物对照着去理解:控制器和运算器常常集成在一起,称为CPU;存储器分为两种:内存和外存,只有内存才能与CPU直接打交道;所有这些部件又由总线将其联结为一体,这种计算机又称为总线式计算机;又如,计算机之所以称为电脑,就是因为计算机的硬件结构、处理问题的方式和人的大脑结构以及处理问题的方式基本一致。采用对照、总结、联想的方法来复习这些内容,比死记硬背效果要好得多。 三、归纳整理,适当记忆 另一部分需要记忆的知识是计算机基础知识、基本概念。这些内容看似不起眼,但如果不适当加以记忆,考试时因此失分十分可惜。如:1946年至今,计算机发展已经历了四个时代,这四个时代是如何划分的?一个计算机系统都由哪几部分组成?各部分关系怎样?我们可以在理解的基础上归纳整理,适当记忆。需要适当记忆的内容对初学者来说还有许多,如在C语言中有几类不同类型的数据,各类数据在机器内部是如何存储的?C语言中的运算符都有哪些?运算的优先级别、结合方向怎样等。 四、注重实践,融会贯通 计算机是一门理论性、实践性都很强的学科,对二级考试的参加者来说,基础理论方面要求不是特别深入,卷面中的题目大多数都可以上机实践。因此,注重实践,更显得重要。考生应在对基本知识理解的同时注意多上机实践,通过实践,将所学知识融会贯通。 五、多做练习,查漏补缺 在认真地学完考试指定用书后,你可能已雄心勃勃,充满信心。但千万别高兴过早。再找一些题集,认真地测试一下,一则可以看看你究竟学习得如何,二则可以查漏补缺,将还没有掌握的内容补起来,以备正式考试时万无一失。即使在平时,也应这样。多做练习,多加思考,在解题中下功夫,是学好计算机的关键。我国著名数学家华罗庚说过:“学数学不做练习,好比入宝山而空返。”学习计算机也是同样的道理。
全国计算机等级考试二级C语言上机考试具有三种题型:程序填空、程序修改和程序设计,其中程序填空30分,程序修改30分,程序设计40分。[1]从以往的机试的情况来看,许多考生在程序设计题目上失分比较严重,而程序设计题占总分值的40%,一旦答错,如果程序填空和程序修改又不能取得满分的话,就不能通过上机考试。2007年9月,教育部考试中心对现有的全国计算机等级考试大纲进行了改革,二级C语言上机考试时间由60分钟增加到了90分钟,编程环境由以前的TC2.0改为VC++6.0。[2]本文根据对近几年来二级C语言上机考试中的程序设计题进行归类总结,提出相应的策略,并对考生应对2007新大纲以后的C语言上机环境给出一些建议。2 对以往考试的分析历年的全国计算机等级考试中二级C语言上机考试程序设计题目全部出自于由南开大学出版社编写南开100题,每次考试教育部考试中心会对题库做相应的改动,增加一些新的题型或题目,考试中,考生随机抽取一套进行测试。笔者对2005年4月至2007年9月2004版新大纲以后的6次考试中的程序设计题目进行了总结,将这些题目一共分成了6大类,对每种类型的题目进行了分析。2.1 对一维数组和字符串的操作该类型的题目在以往的机试中所占比例最大,为40%,考生应对该知识点做全面的复习和掌握。一维数组可以分为数值型和字符型,其中数值型数组的数据类型为整型和实型,字符型数组的数据类型为字符型,我们通常会把字符型数组叫做字符串,但是应该注意字符型数组与字符串之间是存在区别的,也就是’\0’结束标志问题。在复习该部分的时候,考生应该掌握以下两个问题:(1)对一维数组的操作对一维数组进行操作的时候,不可避免的要访问相关的数组元素,在C语言中访问数组元素一般采取单层循环的方法进行遍历,假设数组长度为n,数组下标是在0到(n-1)之间的,考生应该牢固掌握在一维数组中求最大值、最小值,移动元素,查找特定值,存储数组元素的方法。(2)对字符串的操作该类问题是每次考试的重点和难点,特别是将字符串同指针结合起来以后,难度就更大了。考生在解决此类问题是应特别注意字符串的结束标志’\0’,它不仅仅用来作为字符串的结束标志,而且在对字符串进行操作的时候,它也是循环的结束标志。考生在复习该部分的时候,应该注意这样的几个基本问题:大小字母转换、奇偶数判别、删除或添加指定的字符和字符的移动。此外,考生应该牢固掌握指针的特性及字符串操作函数的使用和实现方法,特别是字符串连接函数与求子串函数,在以往的考试中多次要求考生自己编写,考生应对该知识点做重点掌握。2.2 数值计算该类型的题目在历年的机试中占22%,考查的机率也非常高。该类题目一般给定一个数列计算公式,然后要求考生编写一个函数类实现求数列的前n项的值、累加和或者积。在解决该类的问题,首先要找到给定数列的变化规律,然后根据其变化规律来编写一个单层或者双层的循环来求其相应的值。在编写程序的过程中,往往还会用到一些数学函数,如:sqrt()、fabs()、pow()等,考生应该牢固掌握math.h中的一些常用数学函数的功能和使用方法。另外,还应该注意数据类型之间的区别,特别是float和int类型,不同的数据类型产生的运算结果也是不一样的。2.3 对结构体的操作该部分对非计算机专业的学生来说是一个难点,因为结构体在《数据结构》这门课程中应用最为广泛,但考生忽视对该知识点的复习,但在以往的机试中,有17%的题目是属于该类型。考生在复习这部分的时候,首先应注意结构体成员的两种不同的引用方法:结构体变量和指向结构体的指针,也就是结构体成员运算符’.’和指向运算符’->’,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体以外,其它的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,它的其它操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该用对待普通变量的方法来解决结构体的问题,这样的话,难度就可以大幅度的降低。2.4 对二维数组的操作该类问题在历年的机试中占16%,考生应对二维数组的数组元素的遍历方法、存储方式、矩阵转换等问题做重点掌握。在C语言中,访问二维数组的数组元素一般采用双层循环的方法实现,因为二维数组具有两个下标:行下标与列下标;二维数组可以按行或者按列转化成一维数组进行存储;对二维数组进行行列转换的时候,要将行下标和列下标进行互换。考生还应该掌握上三角矩阵、下三角矩阵的特性,在考试中,该知识点也有所涉及。2.5 数制转换该部分在以往的机试中占11%,包括两类问题:一是整数合并,二是类型转换。在复习该部分时,考生应该注意C语言中int型、long型、float型和double型数据所占的存储空间的大小和精度,注意’%’(模)运算和’/’(除法)运算的特点,特别应该灵活的使用模运算与除法运算求数据相应位数上的数值。掌握强制类型转换的方法以及按规定的位数保留小数的方法。2.6 素数该部分在历年的机试中占6%,考生应该牢固掌握素数的基本概念和判断素数的方法。特别需要考生注意的是整数1不是素数,所以在判断素数的时候,应该从2开始,到(n-1)结束,能够除尽的不是素数,不能除尽的是素数。判断素数问题是C语言中的一个基本算法,不仅会在程序设计中会考到,而且往往在程序填空和程序改错中也会有所涉及,因此,考生应对该知识点认真复习。3 程序设计中应注意的问题3.1 熟悉编程环境根据2007年9月教育部考试中心颁布的新大纲,二级C语言的编程环境由TC2.0改为VC++6.0,考生应该熟练掌握VC++6.0的使用方法,虽然VC支持鼠标操作,但是考生还是应该掌握几个常用快捷方式来提高编程效率。特别要注意在对程序进行改动以后要保存,要进行编译连接生成可执行(.exe)文件。3.2 养成良好的程序设计风格二级C语言机试中的程序设计题,一般来说程序都比较简短,源代码一般不超过5行,在题目指定的函数内编写程序。考生在答题的时候尽量采用易于理解而且比较简单的代码来解决问题,注意不要改动函数的参数,语句的界符“{}”也应该具有层次性的缩进,必要时,使用一定的注释来帮助自己理解程序。3.3 谨慎使用指针指针是C语言的精华,也是机试考查的重点内容,指针的使用非常灵活,在使用的指针的时候一定要注意对其进行初始化,所谓初始化也就是给指针一个初值,没有初值的指针是很危险的,除了一定得不到正确答案外,如果指针越界,容易引起死机。如果死循环带来的死机是“假死”,大部分可以用“Ctrl+Break”来恢复,但指针越界引起的死机却是真死,请考生一定要牢记。[3]3.4 熟练掌握循环结构循环结构的程序是程序设计中涉及最多的知识点,根据以上的分析,我们可以看出几乎每一类题目都会涉及到使用循环来解决问题,因此考生应该掌握循环结构的特征和使用方法,以达到能够熟练使用的目标。应该引起注意的是,在编制循环结构程序的时候考生应该尽量使用“for”循环和“while”循环,避免使用“do……while”循环和“goto”语句,因为“for”循环和“while”编写出来的循环程序易于理解,不容易出错。3.5 沉着应战,认真细心二级C语言上机考试时间有限,虽然从以前的60分钟改为了90分钟,但是相对于其它语种的上机考试来说,二级C语言的上机时间还是非常紧迫的。考生在答题的过程中应该保持一个良好的心态和平静的心情,遇到问题的时候不能慌乱,最好能够在机试时带一张草稿纸和一支笔,在编程之前先画出程序的流程图来明确解题思路。在遇到程序错误时一定要根据错误代码检查相应位置,检查的过程中应该认真仔细,确保能够解决问题。4 结束语二级C语言上机考试是各语种级别中考生最多的,但每年的通过率都不高,主要的原因是考生的重视程度不够,上机操作的次数过少,很多应该掌握的却没有掌握,缺乏考试经验等。希望每位参加考试的考生能认真对待,积极备考。相信本文能够助参加二级C语言上机考试的考生一臂之力。