江苏计算机二级(VC++)上机考试与策略

点赞:33921 浏览:157135 近期更新时间:2024-03-28 作者:网友分享原创网站原创

摘 要:江苏计算机二级(VC++)上机考试历来被认为是学生通过等级考试的一大难点,总结多年教学的经验,针对历届上机考题进行了分析,分别对其改错题和编程题给出了相应的策略.

关 键 词:江苏计算机二级(VC++);上机考试分析与策略

江苏计算机二级(VC++)上机考试,主要是针对程序改错和类的编程进行考核,程序改错考核的是学生对程序的理解和调试能力;而类的编程主要是考核学生对面向对象的编程能力.而这两类题的解答在笔者看来,都有很多可以应对的技巧和策略,可分别对其分析后,进行归纳总结.

1改错题

一般程序的错误分为两种,一种是语法错误,程序一开始编译时就能发现,也比较容易改正;另一种是逻辑错误,编译时不会报错,但在运行时,可能运行不出来,或运行不出正确结果,这时可以由运行的结果,倒退回去找错,看为什么会出现上述结果,推算出错误之处予以改正.

1.1改错题解题步骤

改错题首先要读题干,读懂下面程序要实现什么功能.接下来读程序,先别急着改错,尽量弄懂程序如何实现上述功能,各程序段分别做了哪些操作,来实现以上功能.接下来才开始改程序,看每个程序语句对完成上述功能所要完成的任务,如果没有看懂的要再联系上下程序段看,如果没有做到所要完成的任务,再看应该怎么改,改完整个程序后可以编译和运行,也可以边改边编译或运行.

1.2常见错误要点分析

1.2.1预编译命令

(1)包含库函数相应的头文件,如果包含的头文件写错,这时程序中头文件所在的相应库函数不能被识别而报错.

如:#include//改为#include

#include//改为#include

(2)宏定义不正确,这时编译出错不是在宏定义,而是在宏代换后的程序行.因为宏定义是预编译处理,在程序编译前中作代换不作语法检查,代换后编译时才作语法检查.

如:#definepi3.14;//改为#definepi3.14

1.2.2变量

变量定义是否正确,变量是否有正确的初始值.变量定义的位置决定了变量的作用域.变量只在其作用域有效.变量定义后如要参与运算,变量需要给出正确的初始值.

如:ints,a[5]等于{1,2,3,4,5};

for(inti等于0;i<5;i++)

s+等于a[i];

上面和变量s给出了定义,但没赋初值,无法正确对数组元素进行求和.

1.2.3数组

定义一维数组时数组长度要求为正整型常量,定义二维数组时列数不能省略.数组中元素下标是否超界,是数组元素使用时经常忽略的问题,在编译时也并不对数组元素下标超界作语法检查,但在运行时会报错.

如:inta[5]等于{1,2,3,4,5},i;

for(i等于0;i<=5;i++)

cout<上面数组元素下标超界,5个长度的数组没有元素a[5].

1.2.4函数

函数的原型声明是否与函数的定义对应.函数的定义如有返回值,函数定义是否有正确的返回类型,返回的是否为正确的结果表达式.函数如没有返回值,返回类型是否为void.函数调用与函数定义是否对应,函数调用的实参与函数定义的形参进行参数传递时是否匹配.

1.2.5流程结构

程序的流程控制中注意区分if语句与while语句及for语句,if语句只作一次选择判断,而while语句及for语句是做循环判断,如果判断为非0即真,执行循环体,一直到循环判断为0,才退出循环.另外要区别循环体中continue与break,continue是结束本次循环,而break是退出所在的循环.

1.2.6判断表达式

要关注选择或循环的判断表达式是否正确.判断表达式中要注意区分赋值号(等于)与关系相等运算符(等于等于)是否混淆;逻辑判断表达式中,等于等于与!等于是否混淆,!运算是加还是不加,&&与||是否混淆.

1.2.7指针

指针就是地址,包括常量地址和指针变量.常量地址主要是指数组名.数组名是常量地址不能被重新赋值或做自加运算.一维数组名是数组第0个元素的地址.而二维数组名表示的是第0行的行地址.

指针变量包括指向数据类型变量的指针变量和行指针变量.指向数据类型变量的指针变量,是否用同类型的变量或元素的地址赋值,在其前加*表示指针指向的变量或元素.另外要区分指针变量还是指针指向变量的自加与自减.如*p++和(*p)++的区别,前者是指针变量作后置++,后者是指针变量指向的变量作后置++.行指针变量,是否用相同列数的行地址赋值,行指针前加*表示同行第0列元素的地址,元素地址前加*表示元素.反过去的转换加&运算符.当函数返回类型是指针时,要求认清返回的是否为正确的地址.

1.2.8逻辑错误

逻辑错误,在编译时不能被发现,在运行时可能运行不出来或运行结果不对.改逻辑错误前一定先看清题目,理解程序要实现什么功能,再看程序,理解程序的算法,即程序是如何实现题目所要实现的功能,再分析每一行代码进行改错.

2类的编程

类的编程主要来源于面向对象的程序设计思想.定义的一个类表示的是某一类事物,包含描述其静态属性的数据成员和动作行为的成员函数.用这个类来具体定义一个特定事物就是对象.这种类的对象,则拥有类所描述的所有静态属性和动作行为.

2.1类定义的一般思路(1)类中先定义私有数据成员,再定义公有的成员函数,每一个成员函数用一对{}括起来,整个类用一对花括号括起来加分号结束.

(2)类中的成员函数主要包含构造函数,输出成员函数及功能成员函数,功能成员函数需要掌握相应类型的一些常用算法,如:数值求阶乘、数字与数字字符转换、数位分离、求素数、水仙数等,一维数组的选择排序、二分查找法,求最大值最小值等,二维数组的左移和右移、对角线、元素等,字符串的遍历、逆序、插入,删除和找子串等.另外对于指针成员,类中还需定义析构函数来释放指针指向的动态空间等.


(3)主函数中根据构造函数的形参,准备相应实参,定义类的对象,再通过对象来调用类定义的成员函数,而对象成员函数中所操作的成员就是当前对象的成员.

2.2不同类型成员类的编程

对于等级考试中类的编程框架,一般比较固定,先定义一个类,在主函数中定义类的对象,并调用对象的成员函数进行类的测试.类的定义中,先写私有的数据成员,再写公有的成员函数.公有成员函数一般包括构造函数,输出函数和一至两个功能成员函数或辅助函数.功能成员函数或辅助函数因不同的题目和算法而不同;而对于构造函数和输出成员函数,则可根据其不同类型的数据成员进行如下归纳.

2.2.1数值类型变量成员

数据类型成员,是单个变量做数据成员,构造函数中形参直接为变量赋值,但不是所有成员变量都能直接由构造函数赋值,有些成员变量的值需要进行相应运算和操作才能被求值,这时通常会用功能成员函数来实现相应成员变量的赋值.

2.2.2数值型数组成员

构造函数一般用循环赋值,一维的用一重循环给一维数组成员的元素赋值,二维的用两重循环给二维数组成员的元素赋值.还有一些数组不是直接由构造函数赋值,而是派生生成的,利用成员函数给派生数组元素赋值.输出函数,一维的用一个循环将一维数组成员的元素一行输出,再换行;二维的外行循环体包含内列循环和换行语句,将二维数组成员的元素按行输出.

2.2.3数值型指针成员

构造函数中一般先用new数值类型[数组长度],返回数组的首地址给指针成员赋值,再用循环给数组元素赋值.指针成员的赋值也可以在成员函数中做.析构函数用delete[]指针.输出函数利用循环将指针指向的数组元素按行输出.

2.2.4字符类型数组成员

江苏计算机二级(VC++)上机考试与策略参考属性评定
有关论文范文主题研究: 计算机二级类论文范文 大学生适用: 硕士论文、高校大学论文
相关参考文献下载数量: 63 写作解决问题: 写作技巧
毕业论文开题报告: 文献综述、论文前言 职称论文适用: 论文发表、职称评副高
所属大学生专业类别: 写作技巧 论文题目推荐度: 经典题目

构造函数用拷贝函数将形参数组的字符串整体拷贝给字符数组成员,输出函数直接输出字符数组名,可以将字符数组成员指向的字符串作整体输出.

2.2.5字符类型指针成员

构造函数一般是先用newchar[形参指针指向字符串的字符个数+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.