摘 要:江苏计算机二级(VC++)上机考试历来被认为是学生通过等级考试的一大难点,总结多年教学的经验,针对历届上机考题进行了分析,分别对其改错题和编程题给出了相应的策略。
关键词:江苏计算机二级(VC++);上机考试分析与策略
江苏计算机二级(VC++)上机考试,主要是针对程序改错和类的编程进行考核,程序改错考核的是学生对程序的理解和调试能力;而类的编程主要是考核学生对面向对象的编程能力。而这两类题的解答在笔者看来,都有很多可以应对的技巧和策略,可分别对其分析后,进行归纳总结。
1 改错题
一般程序的错误分为两种,一种是语法错误,程序一开始编译时就能发现,也比较容易改正;另一种是逻辑错误,编译时不会报错,但在运行时,可能运行不出来,或运行不出正确结果,这时可以由运行的结果,倒退回去找错,看为什么会出现上述结果,推算出错误之处予以改正。
1.1 改错题解题步骤
改错题首先要读题干,读懂下面程序要实现什么功能。接下来读程序,先别急着改错,尽量弄懂程序如何实现上述功能,各程序段分别做了哪些操作,来实现以上功能。接下来才开始改程序,看每个程序语句对完成上述功能所要完成的任务,如果没有看懂的要再联系上下程序段看,如果没有做到所要完成的任务,再看应该怎么改,改完整个程序后可以编译和运行,也可以边改边编译或运行。
1.2 常见错误要点分析
1.2.1 预编译命令
(1)包含库函数相应的头文件,如果包含的头文件写错,这时程序中头文件所在的相应库函数不能被识别而报错。
如:#include
#include
(2)宏定义不正确,这时编译出错不是在宏定义,而是在宏代换后的程序行。因为宏定义是预编译处理,在程序编译前中作代换不作语法检查,代换后编译时才作语法检查。
如:#define pi 3.14; //改为 #define pi 3.14
1.2.2 变量
变量定义是否正确,变量是否有正确的初始值。变量定义的位置决定了变量的作用域。变量只在其作用域有效。变量定义后如要参与运算,变量需要给出正确的初始值。
如:int s,a[5]={1,2,3,4,5};
for(int i=0;i<5;i++)
s+=a[i];
上面和变量s给出了定义,但没赋初值,无法正确对数组元素进行求和。
1.2.3 数组
定义一维数组时数组长度要求为正整型常量,定义二维数组时列数不能省略。数组中元素下标是否超界,是数组元素使用时经常忽略的问题,在编译时也并不对数组元素下标超界作语法检查,但在运行时会报错。
如:int a[5]={1,2,3,4,5},i;
for(i=0;i<=5;i++)
(1)类中先定义私有数据成员,再定义公有的成员函数,每一个成员函数用一对{ }括起来,整个类用一对花括号括起来加分号结束。
(2)类中的成员函数主要包含构造函数,输出成员函数及功能成员函数,功能成员函数需要掌握相应类型的一些常用算法,如:数值求阶乘、数字与数字字符转换、数位分离、求素数、水仙数等,一维数组的选择排序、二分查找法,求最大值最小值等,二维数组的左移和右移、对角线、外围元素等,字符串的遍历、逆序、插入,删除和找子串等。另外对于指针成员,类中还需定义析构函数来释放指针指向的动态空间等。
(3)主函数中根据构造函数的形参,准备相应实参,定义类的对象,再通过对象来调用类定义的成员函数,而对象成员函数中所操作的成员就是当前对象的成员。
2.2 不同类型成员类的编程
对于等级考试中类的编程框架,一般比较固定,先定义一个类,在主函数中定义类的对象,并调用对象的成员函数进行类的测试。类的定义中,先写私有的数据成员,再写公有的成员函数。公有成员函数一般包括构造函数,输出函数和一至两个功能成员函数或辅助函数。功能成员函数或辅助函数因不同的题目和算法而不同;而对于构造函数和输出成员函数,则可根据其不同类型的数据成员进行如下归纳。
2.2.1 数值类型变量成员
数据类型成员,是单个变量做数据成员,构造函数中形参直接为变量赋值,但不是所有成员变量都能直接由构造函数赋值,有些成员变量的值需要进行相应运算和操作才能被求值,这时通常会用功能成员函数来实现相应成员变量的赋值。
2.2.2 数值型数组成员
构造函数一般用循环赋值,一维的用一重循环给一维数组成员的元素赋值,二维的用两重循环给二维数组成员的元素赋值。还有一些数组不是直接由构造函数赋值,而是派生生成的,利用成员函数给派生数组元素赋值。输出函数,一维的用一个循环将一维数组成员的元素一行输出,再换行;二维的外行循环体包含内列循环和换行语句,将二维数组成员的元素按行输出。
2.2.3 数值型指针成员
构造函数中一般先用new数值类型[数组长度],返回数组的首地址给指针成员赋值,再用循环给数组元素赋值。指针成员的赋值也可以在成员函数中做。析构函数用delete[]指针。输出函数利用循环将指针指向的数组元素按行输出。
2.2.4 字符类型数组成员
构造函数用拷贝函数将形参数组的字符串整体拷贝给字符数组成员,输出函数直接输出字符数组名,可以将字符数组成员指向的字符串作整体输出。
2.2.5 字符类型指针成员
构造函数一般是先用new char[形参指针指向字符串的字符个数+1],定义一个动态字符数组,返回动态字符数组的首地址给字符指针成员,再将形参指向的字符串用拷贝函数拷到字符指针指向的字符数组,析构函数用delete[]指针,释放指针指向的动态内存空间,输出函数直接输出字符指针成员指向的字符串。
3 总结
通过归纳计算机二级VC++上机考试改错题的各种类型错误,并对各种类型的数据成员进行类的编程,可以有针对性地作一些相应的练习来加强上机应考的能力,本文中所提到的一些策略,希望能对上机考试的复习起到抛砖引玉之功效。
[参考文献]
[1]凌翌.计算机等级考试与高校计算机基础教学改革[J].计算机教育,2010,11.
[2]李联宁.计算机等级考试的研究与思考[J].计算机教育,2011,10.
[3]高校计算机等级考试的教学与思考[J].中国科技信息,2005,2.
[4]黄霞.独立学012院计算机文化基础教学改革探索[J].无线互联科技,2012,10.
[5]秦春影,喻晓峰,仝海燕,唐淑萍.贵州大学报(自然科学版)[J].计算机等级考试组卷策略分析与研究,2012,4.