2010年上半年(5月)考试围绕考试大纲,模式化题型给考生的应考降低了难度。下面就本次考试试题结构进行分析。
1.计算机硬软件综合知识试题
计算机硬软件综合知识点分布如表1所示:
上午题侧重计算机硬件基础知识、程序语言基础知识、数据结构与算法、软件开发与运行维护基础知识的数据库系统基础知识的考查,这是考生应具备的程序员的基本能力。计算机英语是固定考点,计算机数学在近年考试中基本稳定。
2.程序设计基础
本次考试试题一至试题四为必答题,考查了程序流程图和C语言;试题五至试题六为二选一,要求考生掌握一门面向对象的语言。
试题一 程序流程图
该题要求考生根据算法描述,对程序流程图进行填充。程序流程图所描述的是一个模式匹配的算法,题目的说明部分对该算法的实现进行了详细的说明,所以解题时,需要充分的理解说明部分,然后以对号入座的形式分析每一个程序分支具备什么样的功能,最后填空。该题第一分支判断是否重叠,第二个分支判断是否为字串,第三个分支判断是否找出了所有子串。
试题二 C语言程序设计
本题通过找错来考查C语言的语法知识,要求考生不仅要找出错误,还需给出解决方案。问题一考查考生对字符数组、字符型指针的基本操作和字符串函数的的运用,较简单;问题二通过函数来考查程序结构对程序结果的影响。该函数体使用了顺序、分支和直到型循环结构。首先程序循环体中的输入语句没有给a[k]取地址,导致数组元素a的值错误;a[k]输入后,k自加,然后分支判断是否输入了n个整数,循环条件判断a[k]是否等于0。由于先执行k的自加,再判断循环条件a[k],此时的a[k]并没有被赋值,因此此时循环出口条件判断就出现了错误;再则,若输入的a[k]为0,k自加后判断分支条件和循环出口条件,会导致程序对输入的整数0也计为有效整数,这也是不符合题意的。着手修改时需注意不能增加和删除代码行,这也是题目考查的重点!只要将while条件中的k改成k-1,返回函数值k改成一个条件表达式a[k-1]==0?k-1:k即可完成该函数的功能。
试题三 C语言程序设计
本题中,考查的是C语言的一些基本运算与简单算法,考查形式是语句补充。主要包括的知识点有:模除、整除、自加、自减、逻辑运算,数组操作,分支、循环结构。这要求考生对C语言知识要有一定功底。本题相对于上题来说,因为程序中有陷井,稍不注意,就会大意丢分,所以难度有所增大。试题中的第二个for循环的功能是计算前12位各位与1或3的乘积之和,题目中说的是前12位数字中奇数位乘1,偶数位乘3,但是在程序中,ISBN号的前12位的奇数位是放在数组tarr的偶数下标中,ISBN号的前12位的偶数位是放在数组tarr的奇数下标中,这就是个陷井!因此,在if 语句判断奇、偶位时,(3)、(4)空容易填反而失分。
试题四 C语言程序设计
本题中,考查的是C语言的程序执行与函数调用知识。主要包括的知识点有:数组,指针,内存空间分配,参数的值传递方式与地址传递方式、字符串函数、二分查找。程序的模块化可增强程序的阅读性,也方便检测,C语言通过使用函数来实现这一目的。所以C语言函数是重点。
试题五~试题六 C++ /JAVA程序设计(试题五、六选做一题)
这两个试题是二选一,考查的知识点是一样的,只是实现的语言不同而已。本题的程序结构简单,要求考生程序填空和写出程序结果,,只要考生掌握了面向对象程序设计的基本概念和语法知识,该题就是送分题。