程序员考试大纲
一、考 试 说 明
1(考试目标
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序
规格说明书编制并调试程序,写出相应的程序文档,产生符合
的、实现设计要求的、能正确可靠运行的程序。具有助理工程师(或技术员)的实际工作能力和业务水平。
2(考试要求
(1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识;
(2)了解计算机的组成以及各主要部件性能指标;
(3)掌握操作系统、程序设计语言的基础知识;
(4)熟练掌握基本数据结构和常用算法;
(5)熟练掌握C程序设计语言以及C++、Java中的一种程序设计语言;
(6)熟悉数据库、网络和多媒体的基础知识;
(7)了解软件工程的基础知识、软件过程基本知识、软件开发项目管理的常识;
(8)了解常用信息技术标准、安全性以及有关法律、法规的基础知识;
(9)了解信息化及计算机应用的基础知识; (10)正确阅读和理解计算机领域的简单英文资料。 3(考试科目设置
(1)计算机与软件工程基础知识,考试时间为150分钟,
笔试,选择
;
(2)程序设计,考试时间为150分钟,笔试,问答题。
二、考 试 范 围
考试科目1:计算机与软件工程基础知识
1(计算机科学基础
1.1 数制及其转换
, 二进制、十进制和十六进制等常用数制及其相互
转换
1.2 数据的表示
, 数的表示
, 非数值数据的表示
1.3 算术运算和逻辑运算
, 计算机中二进制数的运算方法
, 逻辑代数的基本运算
1.4 数学应用
, 常用数值计算(矩阵、近似求解、插值)
, 排列组合、应用统计
, 编码基础
1.5 常用数据结构
?19?
, 数组
, 线性表及链表
, 队列、栈
, 树
, 图
1.6 常用算法
, 算法与数据结构的关系
, 算法设计和算法描述
, 常用的排序算法
, 查找算法
, 常用的数值计算方法
, 字符串处理算法
, 递归算法
, 最小生成树、拓扑排序和单源点最短路径求解
算法
2(计算机系统基础知识
2.1 硬件基础知识
2.1.1 计算机的类型和特点
, 微机(PC机)、工作站、服务器、主机、大型计
算机、巨型计算机、并行机
2.1.2 中央处理器CPU
, CPU的组成
, 常用的寄存器
, 指令系统、寻址方式
, 指令执行控制、中断控制、处理机性能
2.1.3 主存和辅存
20
, 存储介质
, 高速缓存(Cache)、主存
, 辅存设备
2.1.4 I/O接口、I/O设备和通信设备
, I/O接口
, I/O设备
, 通信设备
, I/O设备、通信设备的连接方法和连接介质类型 2.2 软件基础知识
2.2.1 操作系统基础知识
, 操作系统的类型和功能
, 处理机管理
, 存储管理
, 设备管理
, 文件管理
, 作业管理(作业调度算法)
, 图形用户界面和操作方法
2.2.2 程序设计语言和语言处理程序的基础知识
, 语言翻译基础知识(汇编、编译、解释)
, 程序设计语言的基本成分:数据、运算、控制和
传输
, 程序语言类型和特点
2.3 网络基础知识
, 网络的功能、分类、组成和拓扑结构
, 基本的网络协议与标准
, 常用网络设备与网络通信设备,网络操作系统基
?21?
础知识
, Client/Server结构、Browser/Server结构
, 局域网(LAN)基础知识
, Internet基础知识
2.4 数据库基础知识
, 数据库管理系统的主要功能和特征
, 数据库模型(概念模式、外模式、内模式)
, 数据模型、ER图
, 数据操作(关系运算)
, 数据库语言(SQL)
, 数据库的主要控制功能(并发控制、安全控制) 2.5 多媒体基础知识
, 多媒体基本知识
, 常用多媒体设备性能特征,常用多媒体文件格式
类型
2.6 系统性能指标
, 响应时间、吞吐量、周转时间
, 可靠性、可维护性、可扩充性、可移植性、可用
性、可重用性、安全性
2.7 计算机应用基础知识
, 计算机常用办公软件操作方法
, 计算机在信息管理、数据处理、辅助设计、自动
控制、科学计算、人工智能等领域的应用
, 远程通信服务
3(系统开发和运行
3.1 软件工程和项目管理基础知识
22
, 软件工程基础知识
, 软件开发生命周期各阶段的目标和任务
, 软件过程基本知识
, 软件开发项目管理基本知识
, 软件开发方法(原型法、面向对象方法)基础
知识
, 软件开发工具与环境基础知识(CASE)
, 软件质量管理基础知识
3.2 系统分析和设计基础知识
, 数据流图(DFD)、实体关系图(ER图)基础
知识
, 面向对象设计、以过程为中心设计、以数据为中
心设计基础知识
, 结构化分析和设计方法
, 模块设计、代码设计、人机界面设计基础知识 3.3 程序设计基础知识
, 结构化程序设计、流程图、NS图、PAD图
, 程序设计风格
3.4 程序测试基础知识
, 程序测试的目的、原则、对象、过程与工具
, 黑盒测试、白盒测试方法
, 测试设计和管理
3.5 程序设计文档基础知识
, 算法的描述、程序逻辑的描述、程序规格说明书
, 模块测试
、模块测试用例、模块测试报告 3.6 系统运行和维护基础知识
?23?
, 系统运行管理基础知识
, 系统维护基础知识
4(信息安全基础知识
, 信息系统安全基础知识
, 信息系统安全管理
, 加密与解密基础知识
5(标准化基础知识
, 标准化基本概念
, 标准的层次(国际标准、国家标准、行业标准、
企业标准)
, 相关标准(代码标准、文件格式标准、安全标准、
软件开发规范和文档标准、互联网相关标准) 6(信息化基础知识
, 信息、信息资源、信息化、信息工程、信息产业、
信息技术的含义
, 全球信息化趋势、国家信息化战略、企业信息化
战略和策略常识
, 有关的法律、法规要点
7(计算机专业英语
, 具有助理工程师(或技术员)英语阅读水平
, 理解本领域英语基本词汇
考试科目2:程序设计
1(内部设计
1.1 理解外部设计
1.2 软件功能划分和确定结构
24
, 数据流图(DFD)、结构图
1.3 物理数据设计
, 确定数据组织方式、存储介质,设计记录格式,
处理方式
1.4 详细输入输出设计
, 界面设计、报表设计等
1.5 内部设计文档
, 程序接口、程序功能、人机界面、输入输出、测
试计划
1.6 内部设计评审
2(程序设计
2.1 模块划分(原则、方法、标准)
2.2 编写程序设计文档
, 模块规格说明书(程序处理逻辑、输入输出数据
格式)
, 测试要求说明书(测试类型和目标、测试用例、
测试方法)
2.3 程序设计评审
3(程序实现
3.1 编程
, 编程方法和规范
, 程序设计语言的选择和使用
, 人工走查
, 程序文档化
3.2 程序测试
, 测试环境和测试工具的选择和使用
?25?
, 测试数据的设计
, 测试报告的编写
4(程序设计语言(C语言为必选,再在C++、Java语言中
任选一种)
4.1 C程序设计语言(C99标准)
4.2 C++程序设计语言(ANSI C++标准)
4.3 Java程序设计语言(Java2)
三、题 型 举 例
(一)选择题
1(在以下情形中, (1) 适合于采用队列数据结构。
(1)A(监视一个火车票售票窗口等待服务的客户
B(描述一个组织中的管理机构
C(统计一个商场中的顾客数
D(监视进入某住宅楼的访客
。 2(软件测试的目的是 (2)
(2)A(尽可能多地找出软件中的缺陷
B(缩短软件的开发时间
C(减少软件的维护成本
D(证明程序没有缺陷
3(In C language, a (3) is a series of characters
enclosed in double quotes.
(3)A(matrix B(string
C(program D(stream (二)问答题
试题一(必选样题)
阅读以下说明和算法,完善算法并回答问题,将解答写
26
在答题纸的对应栏内。
【说明】
假设以二维数组G[1..m,1..n]表示一幅图像各像素的颜色,则G[i,j]表示区域中点(i,j)处的颜色,颜色值为0到k的整数。
下面的算法将指定点(i,j)所在的同色邻接区域的颜00
色置换为给定的颜色值。约定所有与点(i,j)同色的上、00
下、左、右可连通的点组成同色邻接区域。
例如,一幅8×9像素的图像如图1所示。设用户指定点(3,5),其颜色值为0,此时其上方(2,5)、下方(4,5)、右方(3,6)邻接点的颜色值都为0,因此这些点属于点(3,5)所在的同色邻接区域,再从上、下、左、右4个方向进行扩展,可得出该同色邻接区域的其他点(见图1中的阴影部分)。将上述同色区域的颜色替换为颜色值7所得的新图像如图2所示。
1 2 3 4 5 6 7 8 9
1 5 4 5 4 3 1 5 1 2
2 2 5 5 3 1 3 2 1 0
3 0 3 2 3 0 0 2 3 1
4 2 0 1 0 0 0 0 2 0
5 1 0 0 0 3 2 0 1 0
6 0 1 0 2 0 0 2 2 1
7 6 5 5 0 1 0 2 1 0
8 6 3 3 4 0 0 7 4 5
图1
?27?
1 2 3 4 5 6 7 8 9
1 5 4 5 4 3 1 5 1 2
2 2 5 5 3 7 1 3 2 1
3 0 3 2 3 7 7 2 3 1
4 2 7 1 7 7 7 2 0 7
5 1 7 7 7 7 3 2 0 1
6 0 1 7 2 7 7 2 2 1
7 6 5 5 0 1 7 2 1 0
8 6 3 3 4 7 7 7 4 5
图2
【算法】
输入:矩阵G,点的坐标(i,j),新颜色值newcolor。 00
28