《程序员专业考试'大纲.doc》由会员分享,可在线阅读,更多相关《程序员专业考试'大纲.doc(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、考试说明1考试目标通过本考试的合格人员能根据软件开发项目管理和软件工程的要求按照程序设计规格说明书编制并高度程序,写出相应的程序文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序。具有助理工程师(或技术员)的实际工作能力和业务水平。2考试要求(1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识;(2)了解计算机的组成以及各主要部件性能指标;(3)掌握操作系统、程序设计语言的基础知识;(4)熟练掌握基本数据结构和常用算法;(5)熟练掌握程序设计语言以及+、Java 中的一种程序设计语言;(6)熟悉数据库、网络和多媒体的基础知识;(7)了解软件工程的基础知识、
2、软件过程基本知识、软件开发项目管理的常识;(8)了解常用信息技术标准、安全性以及有关法律、法规的基础知识;(9)了解信息化及计算机应用的基础知识;(10)正确阅读和理解计算机领域的简单英文资料。3考试科目设置(1)计算机与软件工程基础知识,考试时间为 150 分钟,笔试,选择题;(2)程序设计,考试时间为 150 分钟,笔试,问答题。二、考试范围考试科目 1:计算机与软件工程基本知识1计算机科学基础11 数制及其转换 二进制、十进制和十六进制等常用数制及其相互转换12 数据的表示 数的表示 非数值数据的表示13 算术运算和逻辑运算 计算机中二进制数的运算方法 逻辑代数的基本运算14 数学应用
3、常用数值计算(矩阵、近似求解、插值) 排列组合、应用统计 编码基础15 常用数据结构 数组 线性表及链表 队列、栈 树 图16 常用算法 算法与数据结构的关系 算法设计和算法描述 常用的排序算法 查找算法 常用的数值计算方法 字符串处理算法 递归算法 最小生成树、拓扑排序和单源点最短路径求解算法2计算机系统基础知识21 硬件基础知识211 计算机的类型和特点 微机(PC 机) 、工作站、服务器、主机、大型计算机、巨型计算机、并行机212 中央处理器 CPU CPU 的组成 常用的寄存器 指令系统,寻址方式 指令执行控制、中断控制、处理机性能213 主存和辅存 存储介质 高速缓存(Cache)
4、、主存 辅存设备214 I/O 接口、I/O 设备和通信设备 I/O 接口 I/O 设备(类型、特性) 通信设备(类型、特性) I/O 设备、通信设备的连接方法和连接介质类型22 软件基础知识221 操作系统基础知识 操作系统的类型和功能 处理机管理 存储管理 设备管理 文件管理 作业管理(作业调度算法) 图形用户界面和操作方法222 程序设计语言和语言处理程序的基础知识 语言翻译基础知识(汇编、编译、解释) 程序设计语言的基本成分:数据、运算、控制和传输 程序语言类型和特点23 网络基础知识 网络的功能、分类、组成和拓扑结构 基本的网络协议与标准 常用网络设备与网络通信设备,网络操作系统基础
5、知识 Client/Server 结构、Browser/Server 结构 局域网(LAN)基础知识 Internet 基础知识24 数据库基础知识 数据库管理系统的主要功能和特征 数据库模式(概念模式、外模式、内模式) 数据模型、ER 图 数据操作(关系运算) 数据库语言(SQL) 数据库的主要控制功能(并发控制、安全控制)25 多媒体基础知识 多媒体基本知识 常用多媒体设备性能特征,常用多媒体文件格式类型26 系统性能指标 响应时间、吞吐量、周转时间 可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性27 计算机应用基础知识 计算机常用办公软件操作方法 计算机信息管理、数据处理
6、、辅助设计、自动控制、科学计算、人工智能等领域的应用 远程通信服务3系统开发和运行知识31 软件工程和项目管理基础知识 软件工程基础知识 软件开发生命周期各阶段的目标和任务 软件过程基本知识 软件开发项目管理基本知识 软件开发方法(原型法、面向对象方法)基础知识 软件开发工具与环境基础知识(CASE) 软件质量管理基础知识32 系统分析设计基础知识 数据流图(DFD) 、实体联系图(ER 图)基本知识 面向对象设计、以过程为中心设计、以数据为中心设计基础知识 结构化分析和设计方法 模块设计、代码设计、人机界面设计基础知识33 程序设计基础知识 结构化程序设计、流程图、NS 图、PAD 图 程序
7、设计风格34 程序测试基础知识 程序测试的目的、原则、对象、过程与工具 黑盒测试、白盒测试方法 测试设计和管理35 程序设计文档基础知识 算法的描述、程度逻辑的描述、程度规格说明书 模块测试计划、模块测试用例、模块测试报告36 系统运行和维护基础知识 系统运行管理基础知识 系统维护基础知识4. 信息安全基础知识 信息系统安全基础知识 信息系统安全管理 加密与解密基础知识5标准化基础知识 标准化基本概念 标准的层次(国际标准、国家标准、行业标准、企业标准) 相关标准(代码标准、文件格式标准、安全标准、软件开发规范和文档标准、互联网相关标准)6信息化基础知识 信息、信息资源、信息化、信息工程、信息
8、产业、信息技术的含义 全球信息化趋势、国家信息化战略、企业信息化战略和策略常识 有关的法律、法规要点7计算机专业英语 具有助理工程师(或技术员)英语阅读水平 掌握本领域的英语基本术语考试科目 2:程序设计1内部设计11 理解外部设计 12 软件功能划分和确定结构 数据流图(DFD) 、结构图13 物理数据设计 确定数据组织方式、存储介质、设计记录格式,处理方式14 详细输入输出设计 界面设计、报表设计等15 内部设计文档 程序接口、程序功能、人机界面、输入输出、测试计划16 内部设计评审2程序设计21 模块划分(原则、方法、标准)22 编写程序设计文档 模块规格说明书(程序处理逻辑、输入输出数
9、据格式) 测试要求说明书(测试类型和目标、测试用例、测试方法)23 程序设计评审3程序实现31 编程 编程方法和规范 程序设计语言的选择和使用 人工走查 程序文档化32 程序测试 测试环境和测试工具的选择和使用 测试数据的设计 测试报告的编写4程序设计语言(C 语言为必选,再在 C、C+、Java 语言中任选一种)41 C 程序设计语言(C99 标准)42 C+程序设计语言(ANSI C+标准)43 Java 程序设计语言(Java2)三、题型举例(一)选择题1在以下情况中, (1)适合于采用队列数据结构。(1)A. 监视一个火车站售票窗口等待服务的客户B. 描述一个组织中的管理机制 C. 统
10、计一个商场中的顾客数D. 监视进入某住宅楼的访客2软件测试的目的是(2) 。(2)A. 尽可能地找出软件中的缺陷B. 缩短软件的开发时间C. 减少软件的维护成本D. 证明程序没有缺陷3In C language,a (3) is a series of charaters enclosed in double quotes.(3)A. matrix B. stringC. program D. stream(二)问答题试题一(必选样题)阅读以下说明和算法,完善算法并回答问题,将解答填入答题纸的对应栏内。【说明】假设以二维数组 G1.m,1.n表示一幅图像各像素的颜色,则 Gi,j表示区域中点(
11、i,j)处的颜色,颜色值为 0 到 k 的整数。下面的算法将指定点( )所在的同色邻接区域的颜色置换为给定的颜色值。约定所有与点( )同色的上、下、左、右可连通的点组成同色邻接区域。例如,一幅 89 像素的图像如图 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 91 5 4
12、 5 4 3 1 5 1 22 2 5 5 3 0 1 3 2 13 0 3 2 3 0 0 2 3 14 2 0 1 0 0 0 0 2 05 1 0 0 0 0 3 2 0 16 0 1 0 2 0 0 2 2 17 6 5 5 0 1 0 2 1 08 6 3 3 4 0 0 7 4 5图 11 2 3 4 5 6 7 8 91 5 4 5 4 3 1 5 1 22 2 5 5 3 7 1 3 2 13 0 3 2 3 7 7 2 3 14 2 7 1 7 7 7 7 2 05 1 7 7 7 7 3 2 0 16 0 1 7 2 7 7 2 2 17 6 5 5 0 1 7 2 1 0
13、8 6 3 3 4 7 7 7 4 5图 2【算法】输入:矩阵 G,点的坐标( ) ,新颜色值 newcolor。输出:点( )所在同色邻接区域的颜色为 newcolor 之后的矩阵 G。算法步骤(规范算法,规定该算法只在第七步后结束):第一步:若点( )的颜色值与新颜色值 newcolor 相同,则 (1) ;第二步:点( )的颜色值oldcolor;创建栈 S,并将点坐标( )入栈;第三步:若 (2) ,则转第七步;第四步:栈顶元素出栈(x,y) ,并 (3) ;第五步:1)若点(x,y-1)在图像中且 Gx,y-1等于 oldcolor,则(x,y-1)入栈 S;2)若点(x,y+1)在
14、图像中且 Gx,y+1等于 oldcolor,则(x,y+1)入栈 S;3)若点(x-1,y)在图像中且 Gx-1,y等于 oldcolor,则(x-1,y)入栈 S;4)若点(x+1,y)在图像中且 Gx+1,y等于 oldcolor,则(x+1,y)入栈 S;第六步:转 (4) ;第七步:算法结束。【问题 1】是否可以将算法中的栈换成队列?回答: (5) 。试题二(必做的 C 语言样题)阅读以下函数说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。【函数说明】函数 int fun 1(int m,int,n)的功能是:计算并返回正整数 m 和 n 的最大公约数。【函数】
15、int fun 1(int m,int n)While( (1) )If (mn) m=m-n;Else n=n-m;(2) ;【函数说明】函数 long fun2(char *str)的功能是:自左至右顺序取出非空字符串 str 中的数字字符形成一个十进制整数(最多 8 位) 。例如,若字符串 str 的值为“f3g8d5.ji2e3p12fkp” ,则函数返回值为3852312。【函数】long fun2(char *str) int i=0;long k=0;char *p=str;while (*p != “0“ /*环境温度*/double Ratio; /*传感器的输出值*/CUR
16、VE;#define ITEMS 7double GetK(int,CURVE *,int);Void main()int Degree;double k;CURVE CurveITEMS = -40,0.2,-20,0.60,-10,0.8,0,1.0,10,1.17,30,1.50,50,1.8 ;printf(“环境温度 校正系数n“);for (Degree = -40; DegreeTemp)|(Temp (p+high)-Temp) )return 0.0; /*超出温度范围时返回 0.0*/while (low Temp) return (2) ;if (Temp Temp) h
17、igh = m-1;else low = (3) ;p+=high;Step =( (4) )/(p+1)-Temp p-Temp);return 1.0/(p-Ratio +Step * ( (5) );试题四(选做的 C+语言样题)阅读以下说明和 C+程序,将解答写在答题纸的对应栏内。【说明】已知类 SubClass 的 getSum 方法返回其父类成员与类 SubClass 成员 j 的和,类SuperClass 中的 getSum 为纯虚拟函数。程序中的第 23 行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第 15 行且尚未执行第 15 行的语句时
18、成员变量 j 的值,最后给出程序运行后的输出结果。【C+代码】行号 代码010203040506070809101112131415161718192021222324252627 #include using namespace std;class SuperClassprivate;int i;public;SuperClass () i = 5;virtual int getValue ()return i;virtual int getSum() =0;class SubClass;public superClassint j;public;SubClass(int j);j(0)(1
19、) =j; /用参数 j 的值更新数据成员int getValue () return j;int getSum()return (2) getValue()+j;Void main(void)SuperClass s = new SubClass(-3);count getValue() getSum() int main()long n, num; int i;do printf(“请输入一个正整数: “);scanf(“%ld“,n);while(n = 0; i+) if (i % 2 = 1) num = num + (n % 10) * k;k = k * 10;n = n / 1
20、0; printf(“新数据为:%ld n“,num); return 0;试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】某种传感器的输出值 Ratio 依赖于环境温度 temp(-40oC temp50oC) 。对一组环境温度值(ITEMS 个) ,人们已经测量得到了相应的 Ratio 值(见表 3-1) 。该表粗略地描述了曲线 Ratio(temp)。表 3-1 曲线 Ratio(temp)的列表值环境温度temp 传感器的输出值Ratio 环境温度temp 传感器的输出值 Ratio-400C 0.20 100C 1.17-200
21、C 0.60 300C 1.50-100C 0.80 500C 1.8000C 1.00 校正系数 K 是 Ratio 的倒数,因此也依赖于环境温度 temp。在数据处理中,人们需要用更多的列表值细致地描述曲线 K(temp),如表 3-2 所示。在表 3-2 中,各温度值所对应的 K 值是对表 1 进行线性插值再求倒数得到的,具体的计算方法如下:表 3-2 曲线 K(temp)的列表值环境温度 temp 校正系数 K 环境温度 temp 校正系数 K-400C 5.00 -190C 1.61-390C 4.55 . .-380C 4.17 -100C 1.25-370C 3.85 -90C
22、1.22. . . .-200C 1.67 500C 0.561 根据 temp 值,在表 3-1 中用二分法查找;2 若找到相应的温度值,则按相应的 Ratio 值求倒数得到 K 值;3 若没找到相应的温度值,则可确定 temp 所在的温度区间Tp1,Tp2,同时获得了相应的 Ratio1 和 Ratio2,再按如下公式计算 K 值:Step = (Ratio1 - Ratio2) / (Tp1-Tp2)K = 1.0 / (Ratio1 + Step*(temp Tp1)在程序中,当 temp 高于 50oC 或低于-40oC 时,设定 K=0。【程序】#include typedef s
23、truct int Temp; /*环境温度*/double Ratio; /*传感器的输出值*/CURVE;#define ITEMS 7double GetK(int, CURVE *, int);void main()int Degree;double k;CURVE CurveITEMS = -40,0.2,-20,0.60,-10,0.8,0,1.0,10,1.17,30,1.50, 50,1.8 ;printf(“环境温度 校正系数n“);for( Degree = -40; Degree Temp) |( Temp (p+high)-Temp) ) return 0.0; /*超
24、出温度范围时返回 0.0*/while (low Temp ) return (2) ;if ( Temp Temp ) high = m-1; else low = (3) ;p += high; Step = ( (4) ) / (p+1)-Temp - p-Temp);return 1.0/(p-Ratio +Step * ( (5) );试题四(共 15 分)阅读以下说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】函数 sort(NODE *head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换
25、这两个结点中的元素值。其中,head 指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针 endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图 4-1 (a)的链表进行一趟冒泡排序后,得到图 4-1 (b)所示的链表。图 4-1链表的结点类型定义如下:typedef struct Node int data;struct Node *next;NODE;【C 语言函数】void sort(NODE *head) NODE *ptr,*preptr,*endptr;int tempdata; ptr = head - next;while ( (1) ) /*
26、查找表尾结点*/ptr = ptr - next;endptr = ptr; /*令 endptr 指向表尾结点*/ptr = (2) ;while(ptr != endptr) while( (3) ) if (ptr-data ptr-next-data)tempdata = ptr-data; /*交换相邻结点的数据*/ptr-data = ptr-next-data; ptr-next-data = tempdata;preptr = (4) ; ptr = ptr - next;endptr = (5) ; ptr = head-next;(从下列 2 题中任选 1 题解答)试题五(
27、15 分,每空 3 分)阅读以下说明和 C+程序,将应填入(n) 处的字句写在答题纸的对应栏内。【说明】以下程序的功能是计算三角形、矩形和正方形的面积并输出。程序由 4 个类组成:类 Triangle、Rectangle 和 Square 分别表示三角形、矩形和正方形;抽象类 Figure 提供了一个纯虚拟函数 getArea(),作为计算上述三种图形面积的通用接口。【C+程序】#include #include class Figure public:virtual double getArea() = 0; / 纯虚拟函数;class Rectangle : (1) protected:d
28、ouble height;double width;public:Rectangle();Rectangle(double height, double width) this-height = height;this-width = width;double getArea() return (2) ;class Square : (3) public:Square(double width)(4) ;class Triangle : (5) double la;double lb;double lc;public:Triangle(double la, double lb, double
29、lc) this-la = la; this-lb = lb; this-lc = lc;double getArea() double s = (la+lb+lc)/2.0;return sqrt(s*(s-la)*(s-lb)*(s-lc);void main() Figure* figures3 = new Triangle(2,3,3), new Rectangle(5,8), new Square(5) ;for (int i = 0; i getArea() endl;试题六(共 15 分,每空 3 分)阅读以下说明和 Java 源程序,将应填入(n) 处的字句写在答题纸的对应栏内
30、。【说明】以下程序的功能是计算三角形、矩形和正方形的面积并输出。程序由 5 个类组成:AreaTest 是主类,类 Triangle、Rectangle 和 Square 分别表示三角形、矩形和正方形,抽象类 Figure 提供了一个计算面积的抽象方法。【程序】public class AreaTestpublic static void main(String args) Figure figures=new Triangle(2,3,3), new Rectangle(5,8), new Square(5);for (int i=0; ifigures.length;i+) System.
31、out.println(figuresi+“area=“+figuresi.getArea();public abstract class Figure public abstract double getArea();public class Rectangle extends (1) double height;double width;public Rectangle(double height,double width)this.height=height;this.width=width;public String toString()return “Rectangle:height
32、=“+height+“,width=“+width+“:“;public double getArea()return (2) ;public class Square extends (3) public Square(double width) (4) ;public String toString() return “Square:width=“+width+“:“;public class Triangle extends (5) double la;double lb;double lc;public Triangle(double la,double lb,double lc) this.la=la; this.lb=lb; this.lc=lc;public String toString()return “Triangle:sides=“+la+“,“+lb+“,“+lc+“:“;public double getArea() double s=(la+lb+lc)/2.0;return Math.sqrt(s*(s-la)*(s-lb)*(s-lc);