为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

程序员考试大纲

2017-09-23 50页 doc 109KB 15阅读

用户头像

is_421808

暂无简介

举报
程序员考试大纲程序员考试大纲 (,,), 1.5 ... ... , Niudown.COM Niudown.COM Niudown.COM Niudown.COM 1 通过本考试的合格人员能根据软件开发项目管理和软件工程的要求按照程序设计规格 说明书编制并高度程序,写出相应的程序文档,产生符合标准规范的、实现设计要求的、能 正确可靠运行的程序。具有助理工程师(或技术员)的实际工作能力和业务水平。 2 (1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识; (2)了解计算机的组成以及各主要部件性能指标;...
程序员考试大纲
程序员考试大纲 (,,), 1.5 ... ... , Niudown.COM Niudown.COM Niudown.COM Niudown.COM 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 常用数据结构 , 数组 , 线性表及链表 , 队列、栈 , 树 , 图 1.6 常用算法 , 算法与数据结构的关系 , 算法设计和算法描述 , 常用的排序算法 , 查找算法 , 常用的数值计算方法 , 字符串处理算法 , 递归算法 , 最小生成树、拓扑排序和单源点最短路径求解算法 2 2.1 硬件基础知识 2.1.1 计算机的类型和特点 , 微机(PC机)、工作站、服务器、主机、大型计算机、巨型计算机、并行机 2.1.2 中央处理器CPU , CPU的组成 , 常用的寄存器 , 指令系统,寻址方式 , 指令执行控制、中断控制、处理机性能 2.1.3 主存和辅存 , 存储介质 , 高速缓存(Cache)、主存 , 辅存设备 2.1.4 I/O接口、I/O设备和通信设备 , I/O接口 , I/O设备(类型、特性) , 通信设备(类型、特性) , I/O设备、通信设备的连接方法和连接介质类型 2.2 软件基础知识 2.2.1 操作系统基础知识 , 操作系统的类型和功能 , 处理机管理 , 存储管理 , 设备管理 , 文件管理 , 作业管理(作业调度算法) , 图形用户界面和操作方法 2.2.2 程序设计语言和语言处理程序的基础知识 , 语言翻译基础知识(汇编、编译、解释) , 程序设计语言的基本成分:数据、运算、控制和传输 , 程序语言类型和特点 2.3 网络基础知识 , 网络的功能、分类、组成和拓扑结构 , 基本的网络与标准 , 常用网络设备与网络通信设备,网络操作系统基础知识 , Client/Server结构、Browser/Server结构 , 局域网(LAN)基础知识 , Internet基础知识 2.4 数据库基础知识 , 数据库管理系统的主要功能和特征 , 数据库模式(概念模式、外模式、内模式) , 数据模型、ER图 , 数据操作(关系运算) , 数据库语言(SQL) , 数据库的主要控制功能(并发控制、安全控制) 2.5 多媒体基础知识 , 多媒体基本知识 , 常用多媒体设备性能特征,常用多媒体文件格式类型 2.6 系统性能指标 , 响应时间、吞吐量、周转时间 , 可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性 2.7 计算机应用基础知识 , 计算机常用办公软件操作方法 , 计算机信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等领 域的应用 , 远程通信服务 3 3.1 软件工程和项目管理基础知识 , 软件工程基础知识 , 软件开发生命周期各阶段的目标和任务 , 软件过程基本知识 , 软件开发项目管理基本知识 , 软件开发方法(原型法、面向对象方法)基础知识 , 软件开发工具与环境基础知识(CASE) , 软件质量管理基础知识 3.2 系统分析设计基础知识 , 数据流图(DFD)、实体联系图(ER图)基本知识 , 面向对象设计、以过程为中心设计、以数据为中心设计基础知识 , 结构化分析和设计方法 , 模块设计、代码设计、人机界面设计基础知识 3.3 程序设计基础知识 , 结构化程序设计、流程图、NS图、PAD图 , 程序设计风格 3.4 程序测试基础知识 , 程序测试的目的、原则、对象、过程与工具 , 黑盒测试、白盒测试方法 , 测试设计和管理 3.5 程序设计文档基础知识 , 算法的描述、程度逻辑的描述、程度规格说明书 , 模块测试、模块测试用例、模块测试报告 3.6 系统运行和维护基础知识 , 系统运行管理基础知识 , 系统维护基础知识 4. , 信息系统安全基础知识 , 信息系统安全管理 , 加密与解密基础知识 5 , 标准化基本概念 , 标准的层次(国际标准、国家标准、行业标准、企业标准) , 相关标准(代码标准、文件格式标准、安全标准、软件开发规范和文档标准、 互联网相关标准) 6 , 信息、信息资源、信息化、信息工程、信息产业、信息技术的含义 , 全球信息化趋势、国家信息化战略、企业信息化战略和策略常识 , 有关的法律、法规要点 7 , 具有助理工程师(或技术员)英语阅读水平 , 掌握本领域的英语基本术语 2 1 1.1 理解外部设计 1.2 软件功能划分和确定结构 , 数据流图(DFD)、结构图 1.3 物理数据设计 , 确定数据组织方式、存储介质、设计记录格式,处理方式 1.4 详细输入输出设计 , 界面设计、报表设计等 1.5 内部设计文档 , 程序接口、程序功能、人机界面、输入输出、测试计划 1.6 内部设计评审 2 2.1 模块划分(原则、方法、标准) 2.2 编写程序设计文档 , 模块规格说明书(程序处理逻辑、输入输出数据格式) , 测试要求说明书(测试类型和目标、测试用例、测试方法) 2.3 程序设计评审 3 3.1 编程 , 编程方法和规范 , 程序设计语言的选择和使用 , 人工走查 , 程序文档化 3.2 程序测试 , 测试环境和测试工具的选择和使用 , 测试数据的设计 , 测试报告的编写 4CCC++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 charaters enclosed in double quotes. (3)A. matrix B. string C. program D. stream (二)问答题 阅读以下说明和算法,完善算法并回答问题,将解答填入答题纸的对应栏内。 假设以二维数组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 0 1 3 2 1 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 0 3 2 0 1 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 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 7 2 0 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 i,j),新颜色值newcolor。 00输入:矩阵G,点的坐标( 输出:点(i,j)所在同色邻接区域的颜色为newcolor之后的矩阵G。 00 算法步骤(规范算法,规定该算法只在第七步后结束): 第一步:若点(i,j)的颜色值与新颜色值newcolor相同,则 (1) ; 00 第二步:点(i,ji,j)的颜色值?oldcolor;创建栈S,并将点坐标()入栈; 0000第三步:若 (2) ,则转第七步; 第四步:栈顶元素出栈?(x,y),并 (3) ; 第五步:1)若点(x,y-1)在图像中且G[x,y-1]等于oldcolor,则(x,y-1)入栈S; 2)若点(x,y+1)在图像中且G[x,y+1]等于oldcolor,则(x,y+1)入栈S; 3)若点(x-1,y)在图像中且G[x-1,y]等于oldcolor,则(x-1,y)入栈S; 4)若点(x+1,y)在图像中且G[x+1,y]等于oldcolor,则(x+1,y)入栈S; 第六步:转 (4) ; 第七步:算法结束。 是否可以将算法中的栈换成队列?回答: (5) 。 阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 函数int fun 1(int m,int,n)的功能是:计算并返回正整数m和n的最大公约数。 int fun 1(int m,int n) { While( (1) ){ If (m>n) 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" &$ (3) ) { if (*p>="0" && *p<="9" ) { k= (4) + *p - "0"; ++i; } (5) ; } Return k; } 阅读以下说明和C程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某种传感器的输出值Ratio依赖于环境温度temp(-40??temp?50?)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表3-1)。该表粗略地描述了曲线Ratio(temp)。 表3-1 曲线Ratio(temp)的列表值 环境温度 传感器的输出值 环境温度 传感器的输出值 temp Ratio temp Ratio -40? 0.20 10? 1.17 -20? 0.60 30? 1.50 -10? 0.80 50? 1.80 0? 1.00 校下系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要 用更多的列表值细致地描述曲线K(temp),如表3-2所示。在表3-2中,各温度值所对应的K值是对表3-1进行线性插值再求倒数得到的,具体的计算方法如下: 表3-2 曲线K(temp)的列表值 环境温度 较正系数 环境温度 较正系数 temp K temp K -40? 5.00 -19? 1.61 -39? 4.55 „ „ -38? 4.17 -10? 1.25 -37? 3.85 -9? 1.22 „ „ „ „ -20? 1.67 50? 0.56 (1)根据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高于50?或低于?时,设定K=0。 #include typedef struct { int Temp; /*环境温度*/ double Ratio; /*传感器的输出值*/ }CURVE; #define ITEMS 7 double GetK(int,CURVE *,int); Void main() { int Degree; double k; CURVE Curve{ITEMS} = { {-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<=50; Degree++){ k =Getk(Degree,Curve,ITEMS); printf (" %3d %4.2f \n", Degree,k); } } double Get(int Temp,CURVE *P,int n) {/*用二分法在n个元素有的序表p中查找与Temp对应的传感器输出值*/ int low,high,m;double Stemp; low =0;high =n-1; if ( (Temp< p->Temp)||(Temp> (p+high)->Temp) ) return 0.0; /*超出温度范围时返回0.0*/ while (low <=high){ m= (1) ; if (Temp == (p+m)->Temp) return (2) ; if (Temp < (p+m)->Temp) high = m-1; else low = (3) ; } p+=high; Step =( (4) )/((p+1)->Temp –p->Temp); return 1.0/(p->Ratio +Step * ( (5) )); } 阅读以下说明和C++程序,将解答写在答题纸的对应栏内。 已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类SuperClass 中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整 结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变 量j的值,最后给出程序运行后的输出结果。 01 #include 02 using namespace std; 03 class SuperClass{ 04 private; 05 int i; 06 public; 07 SuperClass () {i = 5;} 08 virtual int getValue (){return i;} 09 virtual int getSum() =0; 10 }; 11 class SubClass;public superClass{ 12 int j; 13 public; 14 SubClass(int j);j(0){ 15 (1) =j; //用参数j的值更新数据成员 16 } 17 int getValue () {return j;} 18 int getSum(){ 19 return (2) getValue()+j; 20 } 21 }; 22 Void main(void){ 23 SuperClass s = new SubClass(-3); 24 count << s->getValue() << " "; 25 count << s->getSum() << end1; 26 Delete s; 27 } Java 阅读以下说明和Java程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 在下面的Java程序代码中,类SalesTicket能够完成打印票据正文的功能,类 HeaDecorator与FootDecorator分别完成打印票据的台头和脚注的功能。 已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。 这是票据的台头! 这是票据的正文! 这是票据的脚注! --------------------------- 这是票据的台头! 这是票据的脚注! Java public class SalesTicket { public void printTicket ( ) { System.out.printle("这是票据的正文"); } } public class Decorator extends SalesTicket { SalesTicket ticket; public Decorator (SalesTicket t) { ticket = t; } public void printTicket ( ) { if(ticket != null) ticket.printTicket ( ); } } public class HeadDecorator extends Decorator { public HeadDecorator (SalesTicket t) { (1) ; } public void printTicket ( ) { System.out.println ("这是票据的台头"); super.printTicket ( ); } } public class FootDecorator extends Dexorator { public FootDexorator (SalesTicket t) { (2) ; } public void printTicket ( ) { super.printTicket ( ); System.out.println("这是票据的脚注!"); } } public class Main { public static void main (String[ ] args) { T = new HeadDecorator ( (3) ); T. (4) ; System.out.println ("------------------------"); T = new FootDecorator ( (5) ); T.printicket ( ); } } 1 通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格 说明书编制并调试程序,写出相应的程序文档,具有助理工程师(或技术员)的实际工作能 力和业务水平。 2 (1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识; (2)了解计算机的组成以及各主要部件性能指标; (3)掌握操作系统、程序设计语言的基础知识; (4)熟练掌握基本数据结构和常用算法; (5)熟练掌握C程序设计语言以及C++、Java中的一种程序设计语言; (6)熟悉数据库、网络和多媒体的基础知识; (7)了解软件工程的基础知识、软件过程基本知识、软件开发项目管理的常识; (8)了解常用信息技术标准、安全性以及有关法律、法规的基础知识; (9)了解信息化及计算机应用的基础知识; (10)正确阅读和理解计算机领域的简单英文资料。 3 计算机与软件工程基础知识,考试时间为150分钟,笔试,选择题; 程序设计,考试时间为150分钟,笔试,问答题。 : “I”、“II”和“III”表示掌握或熟悉的程度。 “I”:对所列知识要理解其内容及含义(理解)。 “II” :在有关问题中能直接使用(一般应用)。 “III”:对所列知识要理解其确切含义及与其它知识的联系,能够进行叙述和解释,并能 在实际问题的分析、综合、推理和判断等过程中运用(综合应用)。 1 1. 1.1 数制及其转换 , 二进制、十进制和十六进制等常用数制及其相互转换 , 二进制与十进制之间的相互转换(II) , 二进制与十六进制之间的相互转换(I) 1.2 数据的表示 , 数的表示 , 带符号定点数据(纯整数和纯小数)的原码、反码、补码表示(II) , 浮点数(实数)的表示(I) , 精度和溢出的概念(II) , 非数值数据的表示(字符和汉字表示、声音表示、图像表示) , 西文字符的表示(I) , 汉字的表示方法(I) , 声音数据的表示方法(I) , 图像数据的表示方法(I) 1.3 算术运算和逻辑运算 I) , 计算机中二进制数的运算方法 , 逻辑代数的基本运算 , 补码表示定点数的相加、相减运算(, 基本的与、或、非逻辑运算(II) 1.4 数学应用 , 常用数值计算 , 矩阵的基本运算(I) , 方程的近似求解(I) , 线性插值(I) , 排列组合,应用统计 , 排列组合计算(I) , 基本的数据统计分析方法及实例计算(I) , 编码基础 , ASCII码的特点及编码计算(II) , 汉字编码的特点(I) , 奇偶校验码的特点及实例计算(II) , 循环冗余码的定义及构造(I) , 海明码的定义及构造(I) 1.5 常用数据结构 , 数组 , 数组的定义及特点(I) , 一维数组元素的存储特点和元素位置计算(II) , 二维数组元素的按行存储及按列存储方式的特点及元素的位置计算(II) , 静态数组的概念及动态数组的概念(I) , 线性表及链表 , 线性表的定义和基本运算(I) , 线性表的顺序存储和特点(I) , 指针、结点、头指针和头结点的概念(I) , 单向链表的定义及特点(II) , 双向链表的定义及特点(I) , 环形链表的定义及特点(II) , 队列、栈 , 队列的定义及运算特点(II) , 循环队列的定义及运算(I) , 队列采用环形链表的运算特点(I) , 栈的定义及运算特点(II) I) , 栈采单向链表存储结构的运算特点(I) , 树 , 栈采用一维数组存储结构的运算特点(, 二叉树的定义(I) , 二叉树的顺序存储结构和二叉链表存储结构的特点(II) , 二叉树的先序、中序、后序和层序遍历运算的含义(II) , 最优二叉树(哈夫曼树)的定义(I) , 图 , 图的定义和常用术语(I) , 图的邻接矩阵存储结构和邻接表存储结构定义及特点(II) 1.6 常用算法 , 算法与数据结构的关系 , 算法的定义和特点(I) , 算法与数据结构的关系(I) , 算法设计和算法描述 , 基本的算法设计方法(I) , 算法的流程图描述和伪代码描述方法(II) , 常用的排序算法 , 插入排序、冒泡排序、选择排序算法(III) , 希尔排序、快速排序、堆排序、归并排序算法(II) , 查找算法 , 顺序查找、二分查找过程(III) , 常用的数值计算方法(II) , 字符串处理算法 (II) , 递归算法(I) , 最小生成树、拓扑排序和单源点最短路径求解算法(I) 2. 2.1 2.1.1 计算机的类型和特点 , 微机(PC机)、工作站、服务器、主机、大型计算机、巨型计算机、并行机的特点(I) 2.1.2 中央处理器CPU , CPU的组成 , CPU的组成和基本结构(I) , 控制器与运算器的基本组成和功能(I) , 常用的寄存器 , 累加器AC、标志寄存器、通用寄存器组的概念和功能(I) , 程序计数器(PC)、指令寄存器(IR)、地址寄存器(MAR)和数据寄存器(MDR) 的定义和作用(I) , 指令系统,寻址方式 , 指令系统的概念(I) , 指令的概念、格式和类型(I) , 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、间接寻址、相对寻址、 变址寻址的含义(I) , 指令执行控制,中断控制,处理机性能 I) , 流水线的基本概念(I) , 中断的概念(II) , 指令的执行过程( 2.1.3 主存和辅存 , 存储介质(半导体、硬盘、光盘、U盘等) , 半导体存储器的特点(I) , 硬盘的参数、容量(II) , U盘的容量和特点(II) , 高速缓存(Cache),主存 , 高速缓存(Cache)的概念、作用和基本构成(I) , 主存的类型、容量和性能指标(II) , 辅存设备 , 磁盘、磁带、光盘、DVD盘、U盘等辅存设备的特点、性能和容量(II) 2.1.4 I/O接口、I/O设备和通信设备 , I/O接口 , I/O接口的功能(I) , 程序查询方式、中断处理方式的含义和特点(I) , DMA(直接存储器存取)方式的含义和特点(I) , I/O设备(类型、特性) , 常见I/O设备的类型和特性(I) , 通信设备(类型、特性) , 常见通信设备的类型和特性(I) , I/O设备、通信设备的连接方法和连接介质类型 , 常见I/O设备与主机的连接方法(I) , 总线的概念、类型和特点(II) , 常见通信设备的连接方法(I) , 常见连接介质的类型和特点(I) 2.2 2.2.1 操作系统基础知识 , 操作系统的类型和功能 , 操作系统作用、特征与功能(I) , 操作系统分类(I) , 嵌入式操作系统的基本概念(I) , 网络操作系统的基本概念(I) , 分时操作系统与实时操作系统,网络操作系统与分布式操作系统的区别(I) , 处理机管理(进程、线程) , 进程的定义及组成(I) , 进程控制块(PCB)的基本概念(I) , 进程状态的三态模型和五态模型(II) , 进程间的通信,临界资源、临界区、同步与互斥的基本概念(I) , P/V操作(II) , 进程调度:理解高级调度、中级调度、低级调度、调度方式方面的基础知识(I) , 死锁的定义、产生死锁的原因、产生死锁的必要条件(I) , 线程的定义,线程与进程的区别(?) , 存储管理 , 虚拟地址、地址空间、存储空间、地址重定位的基本概念(?) , 固定分区、可变分区、可重定位分区的基本概念(?) , 分页/请求分页存储管理的基本概念与原理(I) , 设备管理 , 设备管理基本概念,块设备、字符设备、独占设备、共享设备、虚拟设备的含 义(I) , Spooling(Simultaneous Peripheral Operations On Line)定义、组成和结构(I) , 引入缓冲技术的原因与目的(I) , 磁盘调度的基本概念:移臂调度、旋转调度(I) , 先来先服务 (First-Come First-Served,FCFS)、最短寻道时间优先SSTF(Shortest Seek Time First)、扫描算法(SCAN)、单向扫描调度算法(CSCAN)磁盘调度 算法的基本思想(I) , 文件管理 , 文件、文件系统、文件类型、文件组织结构的基本概念(I) , 文件目录的概念,一级目录、二级目录、多级目录的基本概念(I) , 文件的存取方法:顺序存取法、直接存取法、按键存取法的基本概念(I) , 位示图、空闲块表等文件存储空间的管理算法思想(I) , 空闲块链、成组链接法的基本概念(I) , 作业管理 , 作业的状态(提交、后备、执行、完成)、作业控制块和作业后备队列的基本概 念(I) , 先来先服务、短作业优先、响应比高优先作业调度算法思想(II) , 优先级调度算法思想(I) , 图形用户界面和操作方法 , 字符用户界面、图形用户界面的基本特点(I) , 常见操作系统的使用(Windows,Linux)(II) 2.2.2 程序设计语言和语言处理程序的基础知识 , 语言翻译基础知识 , 语言翻译的基本概念(I) , 汇编的含义和基本过程(I) , 编译的基本过程及编译各阶段的基本任务(I) , 解释的含义和基本过程(I) , 正规表达式的定义(II) , 程序设计语言的基本成分:数据、运算、控制和传输 , 程序设计语言的数据(数据类型)、运算(运算符和表达式)和语句的类型和功 能(I) , 函数的参数传递机制:传值、传地址(II) , 程序语言类型和特点 , 过程式程序语言、面向对象程序设计语言、函数式程序设计语言、逻辑程序设 计语言的基本特点(I) , 脚本语言的概念和基本特点(I) 2.3 , 网络的功能、分类、组成和拓扑结构 , 通信子网和资源子网的概念(I) , 局域网、城域网和广域网的概念(I) , 星形网、树形网、环形网和总线网的概念(I) , 基本的网络协议与标准 , 物理层、数据链路层、网络层、传输层、应用层的基本概念(I) , TCP/IP协议及相关协议的功能(I) , 常用网络设备与网络通信设备的作用和特点 , 中继器、集线器(HUB)、网关、交换机、路由器、网桥的基本功能和特点(I) , 调制解调器的基本功能和特点(I) , Client/Server结构和Browser/Server结构的基本概念和特点(I) , 局域网(LAN)基础知识(I) , 互联网(Internet)基础知识 II) , 互联网的接入方式(I) , 常用的互联网服务及协议(I) , TCP/IP协议的属性设置(, IP地址的分类、计算(II) , 防火墙基本概念(I) 2.4 , 数据库管理系统的主要功能和特征 , 数据库系统(DataBase System,DBS)定义及组成(I) , 数据库管理系统(DataBase Management System,DBMS)功能、特征、组成(I), 文件系统与数据库系统的差异(II) , 数据库模式(概念模式、外模式、内模式) , 概念模式(模式)、外模式(用户模式或子模式)、内模式(物理模式)的基本 概念(II) , 三级模式和两级映像(模式/内模式映像、外模式/模式映像)的基本概念(II) , 数据的逻辑独立性和物理独立性的基本概念(II) , 数据模型,ER图 , 层次模型、网状模型、关系模型、面向对象模型的基本概念(I) , 数据模型的三要素(数据结构、数据操作、数据的约束条件)的含义(I) , E-R模型基本概念(II);E-R图(E-R模型)向关系模型的转换的基本方法(II) , 实体中主键、候选键、外键的基本概念(II) , 一对一(1:1)、一对多(1:n)、多对多(m:n)联系类型的含义(II) , 简单属性、复合属性、单值属性、多值属性、NULL属性、派生属性的含义(I) , 数据操作(关系运算) , 关系数据库、关系数据库模式基础知识(I) , 关系模型的实体完整性、参照完整性、用户定义完整性的基本概念(I) , 并、差、笛卡尔积、投影、选择关系运算的基本概念(II) , 扩展的关系运算中选择、投影、连接运算方法(I) , 数据库语言(SQL) , 数据定义语言(DDL):CREATE TABLE (创建表)的应用(II) , 数据操纵语言(DML):SELECT(查询)、INSERT(插入)、DELETE(删除)和 UPDATE(修改) 的应用(II) , 完整性(integrity)定义:PRIMARY KEY、FOREIGN KEY REFERENCES使用方 法(II) , 权限管理:GRANT和REVORK使用方法(II) , 数据库的主要控制功能(并发控制,安全控制) , 事务的基本概念、事务的特性、故障的类型(I) , 数据不一致性(丢失修改、不可重复读、读脏数据)的基础知识(I) , 并发控制中活锁/死锁、可串行性、两段锁协议的基本概念(I) , 安全控制(权限机制、视图机制、加密机制)的基本概念(I) 2.5 , 多媒体基本知识 , 多媒体的概念,感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体的基本 概念(I) , 多媒体的特征:多样性、集成性、交互性、非线性、实时性、信息使用的方便 性和信息结构的动态性方面的基本概念(I) , 声音信号、声音信号的数字化、波形声音的基本概念(I) , 色彩的三基色、彩色空间、三要素(亮度、色调和色饱)基本概念(I) , 图形和图像的基本概念(I) , 图像分辨率与显示分辨率、像素深度、真/伪彩色,图像的压缩标准的基本概念 (I) , 常用多媒体设备性能特征,常用多媒体文件格式类型 , 多媒体计算机系统的硬件组成方面的基础知识(I) , 常用多媒体设备、性能及特征方面的基础知识(I) , 常见的声音、图形图像、视频文件类型(I) 2.6 , 响应时间、吞吐量、周转时间基本概念(I) , 可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性基本概念(I) 2.7 , 计算机常用办公软件操作方法 , 字处理软件Word的常用功能及操作(I) , 表处理软件Excel的常用功能及操作(I) , 计算机的应用 , 计算机在信息管理、数据处理的应用范围及相关技术,以及在辅助设计、自动 控制、科学计算、人工智能等领域的应用(I) , 远程通信服务(I) 3 3.1 , 软件开发生存周期各阶段的目标和任务(可行性分析和项目开发计划、需求分析、 软件设计、编码、测试、维护)(I) , 软件能力成熟度模型CMM、统一过程(UP)、极限编程(XP)的基本概念(I) , 软件开发项目管理(成本估算、风险分析、进度管理(Gantt图、PERT图)、人员管理)基本概念(I) , 结构化方法、面向对象方法的基本概念(II) , 软件工具与软件开发环境(分析工具、设计工具、编程工具、测试工具、维护工具、 CASE)(I) I) 3.2 , 软件质量管理基础知识(软件质量特性(ISO/IEC 9126软件质量模型、软件质量保, 数据流图(DFD)、实体联系图(ER图)的基本概念(I) 证)( , 面向对象设计、以过程为中心的设计、以数据为中心的设计方法的基本概念(I) , 结构化分析方法(数据流图的基本构成、数据字典、加工逻辑的描述(结构化语言、 决策表、决策树))(I) , 结构化设计方法(数据流的类型、结构化设计的基本步骤)(I) , 软件详细设计(模块设计、代码设计的基本原则、输入/输出设计的基本原则、用户 界面设计的基本原则)(I) 3.3 , 结构化程序设计方法 , 自顶向下、逐步求情的设计理念,三种基本控制结构(I) , 使用流程图、NS图、PAD图进行处理过程的设计(II) , 程序设计风格 源程序中的内部文档、数据说明、语句构造、输入输出、效率(II) 3.4 , 程序测试的目的、原则、对象、过程与工具(I) , 用黑盒法设计测试用例 , 等价类划分、边界值划分、错误推测、因果图(II) , 用白盒法设计测试用例 , 逻辑覆盖、循环覆盖、基本路径测试(II) , 测试设计和管理(I) 3.5 , 接口的描述、程序逻辑的描述、程序规格说明书(I) , 模块测试计划、模块测试用例、模块测试报告(I) 3.6 , 系统运行管理基础知识(II) , 系统维护的类型和含义 , 正确性维护、适应性维护、完善性维护、预防性维护(II) 4 , 信息系统安全基础知识 , 计算机设备安全、软件安全、网络安全、信息安全的基本概念(I) , 信息系统安全管理 , 防治计算机病毒、防范计算机犯罪、访问控制、防闯入、防灾、安全保密措施 (I) , 加密与解密基础知识 , 常用的加密方法和解密方法(I) 5 , 标准化基本概念 , 标准化的目的、意义,组织机构、内容、分类、代号与编号规定(I) , 标准的层次 , 国际标准、国家标准、行业标准、企业标准的表示方法(II) , 相关标准的基本概念 , 代码标准(汉字编码标准)、文件格式标准、安全标准、软件开发规范和文档标 准、互联网相关标准的基本概念(I) 6 , 信息、信息资源、信息化、信息工程、信息产业、信息技术的含义(I) , 全球信息化趋势,国家信息化战略,企业信息化战略和策略常识(I) , 有关的法律、法规要点 , 软件著作权的概念(II) , 软件著作权主体与客体、权利内容、权利归属(II) , 发表权、署名权、修改权、复制权、发行权、翻译权(I) , 专利法、商标法、商业秘密权(I) , 专利法、商标法、商业秘密权对软件的保护知识(I) , 企业信息资源管理常识(I) 7 I) , 具有助理工程师/技术员所要求的英语阅读水平(, 掌握本领域的英语基本术语(I) 21. 1.1 理解外部设计 1.2 软件功能划分和确定结构 , 数据流图(DFD),结构图 (I) 1.3 物理数据设计 , 确定数据组织方式、存储介质,设计记录格式,处理方式(I) 1.4 详细输入输出设计 , 界面设计、报表设计等(II) 1.5 内部设计文档 , 程序接口、程序功能、人机界面、输入输出、程序流程图、测试计划(II) 1.6 内部设计评审 2. 2.1 模块划分(原则、方法、标准) 2.2 编写程序设计文档 , 模块规格说明书(程序处理逻辑,输入输出数据格式) (II) , 测试要求说明书(测试类型和目标,测试用例,测试方法) (II) 2.3 程序设计评审 3. 3.1 编程 , 编程方法和规范 (I) , 程序设计语言的选择和使用(I) , 人工走查 (II) , 程序文档化(II) 3.2 程序测试 , 测试环境和测试工具的选择和使用(I) , 测试数据的设计(II) , 测试报告的编写(I) 4. CCC++Java 4.1 C程序设计语言 , 语法,程序结构 (III) , 基本类型数据的定义和声明 (III) , 数组、结构体、共用体类型数据的定义和声明 (III) , 表达式和可执行语句 (III) , 函数定义和调用,标准库函数的使用 (III) , 指针的使用 (II) , 文件的基本操作 (III) 4.2 C++程序设计语言 , 面向对象程序设计与C++基本语法 , 面向对象程序设计的基本概念与术语(I) , C++基本数据类型、各种表达式与语句(III) , C++的数组、结构、指针以及函数的使用(III) , 类、成员、构造函数(Constructor)、析构函数(Destructor) , C++类的声明、定义与使用(III) , C++对象的构造、使用与销毁(III) , 模板、继承、多态 , C++类与函数模板的概念、定义与应用(III) , C++中继承的相关概念与应用(III) , C++中运算符与函数的重载(III) , 异常处理 , C++异常处理机制的概念与应用(III) , 类库 , C++标准类库中的容器库的应用(II) , C++标准类库中算法库的应用(II) , C++标准类库中的迭代器的应用(II) , C++标准类库中的字符串的应用(III) , C++标准类库中的流与文件的应用(III) 4.3 Java程序设计语言 , 面向对象程序设计 , 面向对象程序设计的基本概念与术语(I) , Java语言概述 , Java语言的特点(I) , Java语言的开发环境与配置(II) , 语言机制(语法和程序结构,类、成员、构造函数(Constructor)、继承、异常处理) , 基本数据类型及其运算与基础类库(III) , 控制结构(III) , 数组(III) , 类的定义与应用(III) , 对象的构造与使用(III) , 包的概念与应用(II) , 继承机制的应用(III) , 接口与内部类的应用(II) , 错误与异常处理机制(III) , Java类库、线程、输入/输出流 , AWT、Swing用户界面与事件处理机制(I) , 流与文件的应用(III) , 多线程的开发与应用(II) , 集合类库的应用(II) , 网络、数据库的开发与应用(II) , Java Applets,Java应用程序 , Java应用程序与JavaApplets的区别(I) , JavaApplets开发与部署(I) 1 1. 使用常用文字编辑工具编辑正文时,为改变该文档的文件名,常选用 (1) 命令;将正文中所有“Computer” 改写为“计算机”,常选用 (2) 命令。 (1)A.“文件”?“另存为” B.“文件”?“保存” C.“插入”?“对象” D.“工具”?“选项” (2)A. “编辑”?“查找” B. “编辑”?“替换” C. “编辑”?“定位” D. “文件”?“搜索” 2. 在以下关于电子邮件的叙述中,“ (3) ”是不正确的。 (3)A. 打开来历不明的电子邮件附件可能会传染计算机病毒 B. 在网络拥塞的情况下,发送电子邮件后,接收者可能过几个小时后才能收到 C. 在试发电子邮件时,可向自己的Email邮箱发送一封邮件 D. 电子邮箱的容量指的是用户当前使用的计算机上,分配给电子邮箱的硬盘容量 3. 某数值编码为FFH,若它所表示的真值为-127,则它是用 (4) 表示的;若它所表示的真值为-1,则它是用 (5) 表示的。 (4)A. 原码 B. 反码 C. 补码 D. 移码 (5)A. 原码 B. 反码 C. 补码 D. 移码 4. 堆栈最常用于 (6) 。 (6)A. 实现数据循环移位 B. 实现程序转移 C. 保护被中断程序的现场 D. 数据的输入输出缓冲存储器 5. 对于一个具有容错能力的系统, (7) 是错误的。 (7) A. 通过硬件冗余来设计系统,可以提高容错能力 B. 在出现一般性故障时,具有容错能力的系统可以继续运行 C. 容错能力强的系统具有更高的可靠性 D. 容错是指允许系统运行时出现错误的处理结果 6. (8) 用于把摄影作品、绘画作品输入到计算机中,进而对这些图像信息进行加工 处理、管理、使用、存储和输出。 (8)A. 打印机 B. 投影仪 C. 绘图仪 D. 扫描仪 7. CPU执行程序时,为了从内存中读取指令,需要先将 (9) 的内容输送到 (10) 上。 (9)A.指令寄存器 B. 程序计数器(PC) C. 标志寄存器 D. 变址寄存器 (10)A.数据总线 B. 地址总线 C. 控制总线 D. 通信总线 8. DoS攻击的目的是(11) 。 (11) A. 获取合法用户的口令和帐号 B. 使计算机和网络无法提供正常的服务 C. 远程控制别人的计算机 D. 监听网络上传输的所有信息 9. 已知有n个进程共享一个互斥段,如果最多允许m个进程(m使用说明
书,并已交付用户 使用, (13) 该应用软件的软件著作权。 (13)A. 甲程序员享有 B. 乙软件设计师享有 C. 甲程序员不享有 D. 甲程序员和乙软件设计师共同享有 11. 可视化编程是指 (14) 。 (14)A. 在开发阶段就可看到应用系统的运行界面 B. 无须编写程序代码就可完成应用系统的开发 C. 在开发阶段可跟踪程序代码的执行全过程 D. 在运行阶段可跟踪程序代码的执行过程 12. 在以下情形中, (15) 适合于采用队列数据结构。 (15)A. 监视一个火车票售票窗口等待服务的客户 B. 描述一个组织中的管理机构 C. 统计一个商场中的顾客数 D. 监视进入某住宅楼的访客 13. 元素3、1、2依次全部进入一个栈后,陆续执行出栈操作,得到的出栈序列为 (16) 。 (16)A. 3、2、1 B. 3、1、2 C. 1、2、3 D. 2、1、3 14. 从未排序的序列中依次取出一个元素与已排序序列中的元素进行比较,然后将其放 在已排序序列的合适位置上,该排序方法称为 (17) 。 (17)A. 插入排序 B. 选择排序 C. 希尔排序 D. 归并排序 15. 对于二维数组a[0..4,1..5],设每个元素占1个存储单元,且以行为主序存储,则元 素a[2,1]相对于数组空间起始地址的偏移量是 (18) 。 (18)A. 5 B. 10 C. 15 D. 25 16. 在面向对象程序设计语言中, (19) 是利用可重用成分构造软件系统的最有效的 特性,它不仅支持系统的可重用性,而且还有利于提高系统的可扩充性; (20) 可以实现发送一个通用的消息而调用不同的方法。 (19)A. 封装 B. 消息传递 C. 引用 D. 继承 (20)A. 封装 B. 多态 C. 引用 D. 继承 17. 对象之间通过消息机制实现相互作用和通信, (21) 不是消息的组成部分。 (21)A. 接受消息的对象 B. 待执行的函数的名字 C. 待执行的函数的内部结构 D. 待执行的函数需要的参数 18. 类的构造函数被自动调用执行的情况发生在定义该类的 (22) 时。 (22)A. 成员函数 B. 数据成员 C. 对象 D. 友元函数 . 在下面的程序中,若调用f1(x)时,参数传递采用传值方式,调用f2(y)时,参数传递采用引用方式,则输出结果为 (23) ;若调用f1(x)时,参数传递采用引用方式,调用f2(y)时,参数传递采用传值方式,则输出结果为 (24) 。 19 main() procedure procedure f1(x) f2(y) int a=2; f2(x); y=y*y; f1(a); x=x+x; return; write(a); return; (23)A. 2 B. 4 C. 6 D. 8 (24)A. 2 B. 4 C. 6 D. 8 20. 源程序清单是在软件生存周期的 (25) 阶段产生的文档。 (25)A. 软件概要设计 B. 编码 C. 软件详细设计 D. 测试 21. 浏览器与WWW服务器之间传输信息时使用的协议是 (26) 。 (26)A. HTTP B. HTML C. FTP D. SNMP 22. Insufficient (27) can cause a processor to work at 50% or even more below its performance potential. (27)A. mouse B. I/O C. document D. memory 23. The (28) in e-mail messages has affected almost every computer around the world and has caused the damage of up to US$1 billion in North America. (28)A. illness B. virus C. weakness D. attachment 24. One of the basic rules of computer security is to change your (29) regularly. (29)A. name B. computer C. device D. password 25. One of the greatest features of a home (30) is the ability to share one Internet connection simultaneously over two or more computers. (30)A. computer B. device C. network D. work 26. The usual address for a Web site is the (31) page address, although you can enter the address of any page and have that page sent to you. (31)A. home B. main C. host D. house 1 15 阅读以下说明和流程图,回答问题1和问题2,将解答填入答题纸的对应栏内。 为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和10个数字组成,其格式为:ISBN 组号-出版者号-书名号-校验码。其中,校验码是根据前面9个数字计算得到的,用于计算机自动校验。假设标准书号的10个数字依次是a(1),a(2),…,a(10),则校验码a(10)的设置应使S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10)能被11整除。如果校验码a(10)应设置成10,则规定以“X”表示之。例如,信息处理技术员考试大纲的标准书号为: ISBN 7-302-11191-X。第1段上的数字“7”是国际ISBN中心分配给中国ISBN中心管理的组号。第2段上的“302”表示清华大学出版社。标准书号的校验过程如图1-1所示,计算校验码的过程如图1-2所示,其中,Mod(S,11)表示S除以11得到的余数。 Y 0 ? Sa(10)=’X’? 10 ? a(10)N 循环开始I = 1, ( 2 ) 0 ? S ( 3 ) 循环开始循环结束I = 1,10 S + ( 1 ) ? S Mod(S,11) ? R ( 4 ) ? a(10)循环结束 Y Mod(S,11)=0Y N a(10) = 10?? N ’X’ ? a(10)校验正确书号有错 图1-1 校验过程图1-2 计算校验码的过程 请填补流程图中的空缺(1)~(4)。 设“程序员考试大纲”标准书号前9个数字为7-302-08493,请写出其校验 码。 阅读以下说明和C语言函数,将解答填入答题纸的对应栏内。 下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每 隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如, 将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。 下面给出的C程序代码中有五个错误,请指出所有的错误。 01 #include 02 03 int main() 04 { 05 long n, num; 06 int i; 07 08 do { 09 printf("请输入一个正整数: "); 10 scanf("%ld",n); 11 }while(n <= 0); 12 k = 1; 13 for (i = 1; n >= 0; i++) { 14 if (i % 2 = 1) { 15 num = num + (n % 10) * k; 16 k = k * 10; 17 } 18 n = n / 10; 19 } 20 printf("新数据为:%ld \n",num); 21 return 0; 22 } 阅读以下说明和C程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 oo某种传感器的输出值Ratio依赖于环境温度temp(-40C? temp?50C)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表3-1)。该表粗略地描述了曲线Ratio(temp)。 表3-1 曲线Ratio(temp)的列表值 环境温度 环境温度 传感器的输出 传感器的输出值 temp Ratio temp 值Ratio 00-40C 0.20 10C 1.17 00-20C 0.60 30C 1.50 00-10C 0.80 50C 1.80 001.00 C 校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要 用更多的列表值细致地描述曲线K(temp),如表3-2所示。在表3-2中,各温度值所对应的 K值是对表1进行线性插值再求倒数得到的,具体的计算方法如下: 表3-2 曲线K(temp)的列表值 环境温度temp 校正系数K 环境温度temp 校正系数K -4000C 5.00 -19C 1.61 0-39C 4.55 ... ... 00-38C 4.17 -10C 1.25 00-37C 3.85 -9C 1.22 ... ... ... ... 00-20C 1.67 50C 0.56 1. 根据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高于50ooC或低于-40C时,设定K=0。 #include typedef struct { int Temp; /*环境温度*/ double Ratio; /*传感器的输出值*/ }CURVE; #define ITEMS 7 double GetK(int, CURVE *, int); void main() { int Degree; double k; CURVE Curve[ITEMS] = { {-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 <= 50; Degree++ ) { k = GetK(Degree, Curve, ITEMS); printf(" %3d %4.2f \n",Degree,k); } } double GetK(int Temp, CURVE *p, int n) { /*用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值*/ int low,high,m; double Step; low = 0; high = n-1; if ( (Temp < p->Temp) ||( Temp > (p+high)->Temp) ) return 0.0; /*超出温度范围时返回0.0*/ while (low <= high) { m = (1) ; if ( Temp == (p+m)->Temp ) return (2) ; if ( Temp < (p+m)->Temp ) high = m-1; else low = (3) ; } p += high; Step = ( (4) ) / ((p+1)->Temp - p->Temp); return 1.0/(p->Ratio +Step * ( (5) )); } 阅读以下说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 函数sort(NODE *head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。 对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中, head指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针 endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图4-1 (a)的链表进行一endptr趟冒泡排序后,得到图4-1 (b)所示的链表。 2313425?head (a) endptr 1323542?head (b) 图4-1 链表的结点类型定义如下: typedef struct Node { int data; struct Node *next; }NODE; void sort(NODE *head) { NODE *ptr,*preptr,*endptr; int tempdata; ptr = head -> next; while ( (1) ) /*查找表尾结点*/ 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题解答) 阅读以下说明和C++程序,将应填入(n) 处的字句写在答题纸的对应栏内。 【】 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方 形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用 接口。 【】 #include #include class Figure { public: virtual double getArea() = 0; // 纯虚拟函数 }; class Rectangle : (1) { protected: double 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 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* figures[3] = { new Triangle(2,3,3), new Rectangle(5,8), new Square(5) }; for (int i = 0; i < 3; i++) { cout << "figures[" << i << "] area = " << (figures[i])->getArea() << endl; } } 阅读以下说明和Java源程序,将应填入(n) 处的字句写在答题纸的对应栏内。 【】 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由5个类组成:AreaTest是主类,类Triangle、Rectangle和Square分别表示三 角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。 【】 public class AreaTest{ public static void main(String args[]) { Figure[] figures={ new Triangle(2,3,3), new Rectangle(5,8), new Square(5) }; for (int i=0; i
/
本文档为【程序员考试大纲】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索