程序员考试上午科目和下午科目的考试形式与考核内容已经趋于稳定,考生应紧扣考试大纲和指南,有针对性地进行学习。本文针对近几年程序员级别的考题,分别就上午科目和下午科目的考核范围、形式和特点进行分析,以供考生参考。
1、程序员上午试题分析和备考建议
分析近几年程序员上午试题的考试内容,其知识点和分值分布如表1所示。
表1 程序员上午试题考核内容分值分布情况
考核内容 |
分值 |
计算机应用 |
5~6 |
计算机系统基础知识 |
8~10 |
信息安全知识 |
2 |
系统运行维护、性能与指标 |
2 |
标准化与知识产权 |
2 |
多媒体技术基础知识 |
2 |
操作系统基础知识 |
5~6 |
程序设计语言基础知识 |
6~8 |
面向对象技术基础知识 |
5 |
软件工程基础知识 |
6~8 |
数据结构和算法基础知识 |
8~10 |
数据库系统基础知识 |
5~6 |
数学应用知识 |
3 |
网络基础知识 |
5 |
英语 |
5 |
显然,在程序员上午科目的考题中,计算机应用、计算机系统、操作系统、程序设计语言、软件工程和面向对象技术、数据结构与算法、数据库系统基础知识是重点,一般情况下,这些问题的分值比重为75%左右。由于上午试题考试形式的局限性,必然不会出现较多的应用设计类问题,因此考生应该在基本概念和相关计算问题上多下工夫。笔者推荐考生参照官方推荐的教材进行学习和复习,因为该教材基本涵盖了所有上午试题内容(除了数学和英语)。
其中,计算机应用知识着重考核字处理和电子表格软件的操作知识;计算机系统基础知识主要涉及数据的表示和进制转换、CPU的组成和工作原理、存储部件的特点、总线和接口的概念和特点、校验码基础知识;操作系统的重点内容为进程管理(同步互斥概念和PV操作)、存储管理、磁盘管理、文件系统及操作方法;程序语言基础主要包括程序翻译的基本过程、程序语言类型和特点、常量、变量与数据类型、函数的参数传递以及流程控制的基本概念;软件工程与面向对象基础知识主要涵盖开发模型和方法、软件维护、软件测试、结构化设计方法、类、对象、封装、多态等基本概念;数据结构和算法的重点内容是栈和队列的基本运算特点、字符串的子串概念和运算、数组的元素存储、二叉树的存储和遍历运算、图的存储方式和特点、二分查找的特点、二叉排序树的定义和构造方法、哈希表的概念以及常用排序方法的特点;数据库系统主要考核关系运算、主键和外键以及SQL语句的应用;网络技术主要包括网络协议、网络设备、网络参数设置(IP地址、子网掩码)和网络应用等。
考生应在熟练掌握基本概念的同时,结合应用场景(由基本常识和题目给出的描述给出)适当关注基本应用题型,以应对围绕基本知识点作适当变形的考题。
2. 程序员下午试题分析和备考建议
程序员下午科目主要考查程序设计能力。从2008年开始,VB程序设计题目开始减少,2009年的题目中取消了对VB程序设计题目。目前的考核内容和分值分布情况如表2所示。
表2 程序员下午试题考核内容分值分布情况
题目编号 |
考核内容 |
分值 |
试题一 |
算法流程 |
15 |
试题二 |
C语言程序设计 |
15 |
试题三 |
C语言程序设计 |
15 |
试题四 |
C语言程序设计 |
15 |
试题五 |
C++程序设计 |
15 |
试题六 |
Java程序设计 |
15 |
试题一至试题四是必答题目,试题五和试题六中选答一题。
程序员下午试题着重考查考生的实践和应用水平,要求考生具备一定的数学思维和逻辑推理能力。无论是完善算法流程还是编写程序代码,一般情况下,题目的说明部分都会给出一些算法思路和代码逻辑的相关线索,考生应该充分利用这些信息解答问题。有时题目的说明部分较长,给考生造成该题目较难的印象,实际上,题干叙述较长的题目为解答问题提供了更充足的信息,这种题目的难度反而不会高。
近两年,程序员下午考题的考核方式在保持传统(完善程序代码或算法步骤)的基础上,有一些变化需要考生注意。
(1) C语言程序中常见错误的分析和改正
编程时出现错误是难免的,若经常进行上机实验,这类考题应该不是难点。程序错误一般可分为语法错误和语义错误两类,语法错误在编译阶段就能发现,出现这类错误时程序不能运行。常见的语法错误有引用了未定义的变量、缺少分号或括号等,语义错误比较多,例如未将变量正确初始化、运算结果溢出、数组下标越界、混淆了“=”和“==”、函数调用的参数类型不匹配等。
程序中的有些错误比较直接,对C语言的语法和语义规则有一定基础的话,就能够轻松解答,有些错误则比较隐晦,需要熟悉C语言的难点和关键点,但是分值一般不会太大。
(2) C语言的指针
指针是C语言中的一个难点,每次的考题中或多或少都有一些题目涉及它。前几年的题目中,常以链表上的运算作为对指针的考核方式,因此,考生需要熟练掌握链表的定义、插入、删除和查找操作,其关键点是指针变量的初始化和在链表结点间的移动处理。
在近两年的考题中,对于指针的考核进一步深化,例如,关于指针常量和常量指针的概念、内存空间的申请和释放、指针参数以及函数返回指针等,使用指针时常出现的内存泄漏、野指针引用等问题。这些问题需要考生作为专题进行概念上的梳理和应用实践。
(3) C++、Java语言程序设计问题
考生需要在C++和Java中选择一种语言进行面向对象程序设计的基本训练。一般情况下,这两个问题的题目背景相同。在程序员下午考题的算法流程和C程序设计部分,更注重考查处理逻辑,而在C++和Java程序部分,则主要考查语法知识,因此考生应注重了解C++和Java语言的语法规则。
广西2016年上半年计算机软件水平考试报名入口
[考试动态]2016年3月9日广西人事考试院广西2016年上半年计算机软件水平考试报名通知
[考试动态]2016年3月9日2016年5月计算机软件水平考试报名时间专题
[考试动态]2016年2月24日云南2016年上半年计算机软考报名入口
[考试动态]2016年2月24日河北2016年上半年计算机软件水平考试报名时间2月26日至3月14日
[考试动态]2016年2月24日