软考教材分享:程序员考试全真模拟试题及分析与解答(第3版)

更新时间:2024-07-09 06:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序员 http://www.educity.cn/jiaocheng/zg14.html

程序员考试全真模拟试题及分析与解答(第3版)

第 1 章 程序员考试模拟试卷一

1.1 上午试题

◎ 在Windows 2000操作系统中,要查看已知文件类型的扩展名,需要在磁盘目录下执行命令(1)设置;用键盘上的Delete键删除U盘中的文件时,该文件(2) ;在硬盘上要直接删除文件而不让文件进入回收站,可以用快捷键(3) . (1)A.\工具\→\文件夹选项\→\查看\ B.\查看\→\列表\ C.\工具\→\文件夹选项\→\文件类型\ D.\查看\→\详细资料\ (2)A.进入回收站 B. 进入剪切板 C. 不进入回收站 D. 不确定 (3)A.Ctrl+Delete B.Alt+Delete C.Shift+Delete D.Delete ◎ 表示微机运算速度快慢的物理量为(4) . (4)A.时钟频率 B.每秒钟执行程序个数 C.启动速度 D.内存访问速度 ◎ 十进制数29.625用二进制表示为(5) . (5)A.101001.1010 B.1010001.101 C.11101.1010 D.11011.101

◎ 用高级语言编写的程序经编译后产生的程序叫(6),在机器里真正执行的是(7) . (6)A.源程序 B.目标程序 C.机器指令代码 D.连接程序 (7)A.源程序 B.目标程序 C.机器指令代码 D.连接程序

◎ 程序由指令组成,指令一般由(8)表示。中央处理器中的(9)指明要执行的指令所在主存单元的地址。

程序员 http://www.educity.cn/jiaocheng/zg14.html

(8)A.操作码 B.地址码 C.控制码 D.操作码和地址码 (9)A.指令译码器 B.指令指针寄存器(或程序计数器) C.指令寄存器 D.状态寄存器

◎ 计算机的用途不同,对其部件的性能指标要求也有所不同。以科学计算为主的计算机,对(10)要求较高,而且应该重点考虑 (11) .

(10)A.外存储器的读写速度 B.主机的运算速度 C.I/O 设备的速度 D.显示分辨率 (11)A.CPU 的主频和字长,以及内存容量。 B.硬盘读写速度和字长 C.CPU 的主频和显示分辨率 D.硬盘读写速度和显示分辨率

◎ 操作系统是一种系统软件,它有许多种类,PC-DOS是一种(12)操作系统,Windows是具有图形界面的(13)运行方式的操作系统。(14)是在体系结构上采用了客户机/服务器模式的网络操作系统。

(12)A.单用户 B.多用户 C.单用户多任务 D.多用户多任务 (13)A.单任务 B.多任务 C.单用户多任务 D.多用户多任务 (14)A.Windows 2003 Server B.Linux C.PC-DOS D.Windows 2000 ◎ (15)既有检错功能又有纠错功能。

(15)A.水平奇偶校验 B.垂直奇偶校验 C.海明校验 D.循环冗余校验

程序员 http://www.educity.cn/jiaocheng/zg14.html

◎ 程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(16) 是错误的。

(16)A.根据作用域规则,在函数中定义的变量只能在函数中引用 B.在函数中定义的变量,其生存期为整个程序执行期间 C.在函数中定义的变量不能与其所在函数的形参同名 D.在函数中定义的变量,其存储单元在内存的栈区 ◎ 以下关于脚本程序语言的叙述中,错误的是(17) . (17)A.脚本语言需要相应的引擎解释执行 B.脚本语言程序一般以文本方式存在

C.在网页设计中应用脚本可以提高网页浏览速度、丰富网页的表现 D.脚本语言中不允许使用变量

◎ 数据库系统与文件系统的主要区别是(18) . (18)A.数据库系统复杂,而文件系统简单

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量 ◎ SQL语言具有(19)的功能。

(19)A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵

程序员 http://www.educity.cn/jiaocheng/zg14.html

◎ 现有关系A、B如下:

经元组演算后的结果为(20) . (20)

◎ 商标法主要是保护(21)的权利。

(21)A.商标设计人 B.商标注册人 C.商标使用人 D.商品生产者

◎ 根据《计算机软件保护条例》的规定,软件合法复制品的所有人不该享有的权利是(22) .

(22)A.根据使用的需要把软件装入计算机等能存储信息的装置内 B.根据需要进行必要的复制

C.为了防止复制品损坏而制作备份复制品,这些复制品可以提供给他人使用 D.为了实际的计算机应用环境或者改进其功能性能可以进行必要的修改

程序员 http://www.educity.cn/jiaocheng/zg14.html

◎ 关于FDD(Frequency Division Duplex,频分全双工)描述正确的是(23) . (23)A.FDD是一种允许专用通信的频分技术 B.FDD是一种允许动态介质分配的频分技术 C.FDD是一种允许有保证的信息投递的频分技术 D.FDD是一种允许双向或全双工通信的频分技术

◎ 在公钥加密系统中,发送方用接收方的公钥加密报文,接收方使用(24)密钥解密报文。

(24)A.接收方的私钥 B.接收方的公钥 C.发送方的私钥 D.发送方的公钥

◎ 一个单位要在4个子网上使用专有的网络号192.168.90.0.在每个子网上最多配备27台主机,该单位应该使用的子网掩码是(25) .

(25)A.255.255.255.240 B.255.255.240.0 C.255.255.255.192 D.255.255.255.224 ◎ FTP使用(26)端口号传送数据。 (26)A.21 B.22 C.20 D.19

◎ 同一个函数名(或方法名)可以对应不同的函数体(或方法代码),该特性在面向对象技术中称为(27) .

(27)A.单态 B.信息隐藏 C.信息开放 D.多态

◎ (28)是面向对象方法中最基本的封装单元,它可以把客户要使用的方法和数据呈现给外部世界,而把客户不需要知道的方法和数据隐藏起来。 (28)A.类 B.方法 C.属性 D.过程

程序员 http://www.educity.cn/jiaocheng/zg14.html

◎ 测试是软件开发过程中一个独立且非常重要的阶段。一个规范化的测试过程通常包括多个基本的测试活动。确定测试内容、进度安排、测试所需的环境和条件、测试培训安排等工作属于(29)阶段的内容。

(29)A.拟定测试计划 B.编制测试大纲 C.设计和生成测试用例 D.生成测试报告

◎ 已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,…,nk个度为k的结点,则该树中叶子结点数为(30) .

◎ 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置为1000,则按行存储时,元素a13的第一个字节的地址为(31) . (31)A.1072 B.1070 C.1150 D.1154

◎ 如果一棵二叉树的中序序列和后序序列分别为CDBEAGHFK和DCEBHGKFA,则该树的前序序列为(32) .

(32)A.KHGFEDCBA B.ABDCEFKGH C.ABEFCDGHK D.ABCDEFGHK ◎ 任意一个有向图的拓扑序列(33) .

(33)A.可能不存在 B.有一个 C.一定有多个 D.有一个或多个 ◎ 查找哈希(Hash)表,不会发生冲突的哈希函数是(34) . (34)A.除留余数法 B.伪随机探测再散列法 C.直接地址法 D.线性探测再散列法

◎ 已知长度为9的表{16、3、7、11、9、26、18、14、15},建立二叉排序树后进行查

程序员 http://www.educity.cn/jiaocheng/zg14.html

找,则等概率情况下查找成功的平均查找长度为(35) . (35)A.30/9 B.25/9 C.29/9 D.31/9

◎ 若有以下语句,且0≤k<6,则(36)是对数组元素地址的正确表示。 static int x[] = {1,3,5,7,9,11},*ptr,k; ptr = x;

(36)A.x++; B.&ptr C.&(x+1) D.&ptr[k]

◎ 若有说明语句:int i,x[3][4];,则不能将x[1][1]的值赋给变量i的语句是(37) . (37)A.i=*(*(x+1)+1) B.i=x[1][1] C.i=*(*(x+1)) D.i=*(x[1]+1)

◎ CPU程序与通道可以并行执行,并通过__(38)__实现彼此间的通信和同步。 (38)A.I/O指令 B.I/O中断 C.I/O指令和I/O中断 D.操作员 ◎ 下列关于Cache的描述中,(39)是错误的。 (39)A.Cache是缓冲技术在存储体系中的一个具体应用 B.Cache的主要特点之一是存储容量大 C.Cache处于内存和CPU之间 D.Cache中一般存放内存的一部分副本 ◎ 在不同速度的设备之间传送数据(40) .

(40)A.必须采用同步控制方式 B.必须采用异步方式

C.必须采用应答方式 D.可以选用同步方式,也可以选用异步方式 ◎ RISC执行程序的速度比CISC要快的原因是(41) .

程序员 http://www.educity.cn/jiaocheng/zg14.html

(41)A.RISC的指令系统的指令数较少 B.程序在RISC上编译生成的目标程序较短 C.RISC的指令平均周期数较少

D.RISC只允许Load指令和Store指令访存 ◎ 第一个完整、健全的面向对象程序设计语言是(42) . (42)A.Eiffel B.C++ C.Smalltalk D.COBOL ◎ OOP使得对象具有交互能力的主要模型是(43) . (43)A.事件驱动模型 B.消息传递模型 C.迟后联编机制 D.动态绑定机制

◎ 在C++语言中,通过(44)的定义来进行重置的声明。 (44)A.虚拟函数 B.内联函数 C.构造函数 D.全局函数 ◎ 程序的3种基本结构是(45) .

(45)A.过程、子程序和分程序 B.顺序、选择和循环 C.递归、堆栈和队列 D.调用、返回和转移

◎ 使用白盒测试方法时,确定测试数据应根据(46)和指定的覆盖标准。 (46)A.程序内部逻辑 B.程序的复杂结构 C.使用说明书 D.程序的功能

◎ 现有6个元素按1、2、3、4、5、6的顺序进栈,序列(47)是不可能的出栈序列。 (47)A.1、2、3、4、5、6 B.3、2、1、6、4、5 C.4、5、3、2、1、6 D.5、6、4、3、2、1 ◎ 以下关于类和对象的叙述中,正确的是 (48) .

程序员 http://www.educity.cn/jiaocheng/zg14.html

(48)A.类是对象的模板,一个类仅能生成一个对象 B.对象是类的模板,一个对象仅能生成一个类 C.类是对象的模板,一个类是一组对象的集合 D.对象是类的模板,一个对象是一组类的集合

◎ 把连续的影像和声音信息经过压缩处理之后放到专用的服务器上,让浏览者一边下载一边观看、收听,而不需要等到整个文件下载完成就可以即时观看和收听的技术称为(49) .

(49)A.超文本 B.流媒体 C.超媒体 D.平面媒体

◎ ISO/IEC 9126软件质量模型中,第一层是质量特性,如功能性和可靠性等,第二层是质量子特性,如功能性的质量子特性有适应性和准确性等。与软件适应不同规定环境的处理或手段有关的软件属性称为适应性,这一子特性属于 (50) 质量特性。 (50)A.可维护性 B.可移植性 C.易使用性 D.可靠性

◎ 数据压缩分为两类,一类是无损压缩,另一类是有损压缩。下列压缩技术中,属于有损压缩方法的是(51) .

(51)A.RL编码 B.DM编码 C.Huffman编码 D.矢量编码

◎ 若语音信号的带宽为50~400Hz,采样频率为50kHz,量化精度为8位,双声道,计算2小时的数据量为(52) .

(52)A.2880MB B.360MB C.720MB D.45MB

◎ XP 是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式,其四大价值观包括沟通、简单、 (53) .

(53)A.隐喻和反馈 B.重构和勇气 C.隐喻和重构 D.反馈和勇气

程序员 http://www.educity.cn/jiaocheng/zg14.html

◎ 为防止系统故障造成系统内文件受损,常采用(54)方法来保护文件,设计实时操作系统时,必须首先考虑系统的(55) .

(54)A.存取控制矩阵 B.转储 C.加密 D.安全核 (55)A.可靠性 B.易移植性 C.易用性 D.响应速度快 ◎ 下面关于防火墙的描述中,错误的是(56) . (56)

A.防火墙认为内部网络是安全和可信赖的,而外部网络被认为是不安全的 B.防火墙技术是集身份认证、加密、数字签名和内容检查于一体的安全防范措施 C.在传输层,防火墙用来处理信息在内外网络边界的流动,它可以确定来自哪些地址的信息可以通过或者禁止哪些目的地址的主机

D.防火墙技术经历了包过滤、应用代理网关及状态检测3个发展阶段

◎ 区分一个系统是若干集中式数据库的简单连网还是分布式数据库系统的关键在于(57) .

(57)A.数据是否存储在不同的场地 B.系统是否支持全局应用 C.是否是面向处理、面向应用的 D.数据独立性程度的高低 ◎ 已知类Sample中的一个成员函数说明如下: void Set(Sample &a);

其中,Sample &a的含义是(58) . (58)A.指向类Sample的指针为a B.将a的地址值赋给变量Set

C.a是类Sample的对象引用,用来作函数Set()的形参

程序员 http://www.educity.cn/jiaocheng/zg14.html

D.变量Sample与a按位相与作为函数Set()的参数

◎ 网络的几种拓扑结构中,在使用(59)时,各节点与中央单元进行连接,导致中央单元负荷重。

(59)A.总线结构 B.星状结构 C.环状结构 D.树状结构 ◎ 下列几种互联设备中,(60)是网络层互联设备。 (60)A.网桥 B.交换机 C.路由器 D.网关

◎ 在下列常见的软件开发模型中,主要用于描述面向对象的开发过程的是(61) . (61)A.瀑布模型 B.演化模型 C.螺旋模型 D.喷泉模型 ◎ 软件工程学的目的应该是最终解决软件生产的(62)问题。 (62)A. 消除软件的生产危机 B. 使软件生产工程化 C. 加强软件的质量保证 D. 提高软件的开发效率

◎ 8层完全二叉树至少有(63)个结点,拥有100个结点的完全二叉树的最大层数为(64)。

(63)A.127 B.128 C.256 D.257 (64)A.6 B.7 C.8 D.9

◎ 子模式是用户与数据库的接口之一,它对应于数据库的(65) . (65)A.概念模式 B.内模式 C.外模式 D.存储模式 ◎ 虚拟设备是指(66) .

(66)A.虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备 B.虚拟设备是指允许用户以标准方式来使用物理设备 C.虚拟设备是指把一个物理设备变换成多个对应的逻辑设备

程序员 http://www.educity.cn/jiaocheng/zg14.html

D.虚拟设备是指允许用户程序不必全部装入内存就可使用系统中的设备 ◎ 关于关系演算语言,下列说法中正确的是(67) . ① 查询操作是以集合操作为基础运算的DML语言 ② 查询操作是以谓词演算为基础运算的DML语言 ③ 关系演算语言的基础是数理逻辑中的谓词演算 ④ 关系演算语言是一种过程性语言

(67) A.② B.②③ C. ②③④ D.全部

◎ 在计算机系统中,常用的输入/输出方式有无条件传送、中断、程序查询和 DMA 等, 采用(68)方式,数据在传输过程中不需要 CPU 参与工作。

(68)A. DMA B. 中断 C. 程序查询 D. 无条件传送。 ◎ MP3代表的含义为(69) .

(69)A.一种视频格式 B.一种音频格式 C.一种网络协议 D.软件的名称

◎ 在下面给出的内容中,不属于DBA职责的是(70) . (70)A.定义概念模式 B.修改模式结构 C. 编写应用程序 D.编写完整性规则

◎ Structured programming practices(71)rise to Pascal, in which constructs were introduced to make programs more readable and better (72) . C provided a combination of assembly language and high-level structure to create a general-purpose language that could be used from system to (73) programming. Next came object orientation, which is(74) of a methodology and design

程序员 http://www.educity.cn/jiaocheng/zg14.html

philosophy than a language issue. This is (75) by the addition of so-called OO extensions to current languages, such as C.

(71)A.giving B.given C.gave D.gives

(72)A.structure B.structured C.constructs D.structures (73)A.logic B.function C.flexible D.application (74)A.more B.little C.a matter D.important (75)A.evidence B.evidenced C.evidences D.evidencing

1.2 下午试题

试题一至试题四是必答题 1.2.1 试题一

试题一(15分,每空3分)

阅读以下说明和流程图,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

在一个矩阵中,如果其零元素的个数远远多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。稀疏矩阵通常采用三元组数组表示。每个非零元素用一个三元组来表示,即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如,对于以下二维数组:

int x[3][4]={ {1,0,0,0},{0,5,0,0},{0,0,7,2}}; 可用以下数组a来表示:

int a[][3]={ {3,4,4},{0,0,1},{1,1,5},{2,2,7},{2,3,2}};

程序员 http://www.educity.cn/jiaocheng/zg14.html

其中三元数组a的第1行元素的值分别存储稀疏矩阵x的行数、列数和非零元素的个数。

下面的流程图描述了稀疏矩阵转换的过程。 【流程图】

程序员 http://www.educity.cn/jiaocheng/zg14.html

1.2.2 试题二

阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明1】

函数Counter(int n, int w[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。

例如,十进制数22的二进制表示为10110.对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。 【C函数1】

int Counter(int n, int w[]) { int I = 0, k = 1; while( (1) ){ if (n % 2) w[i++] = k; n = n / 2; (2) ; } return i; }

【说明2】

函数Smove(int A[], int n)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与A[j]进行交换;若A[i],A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若A[i]是偶数而A[j]是

程序员 http://www.educity.cn/jiaocheng/zg14.html

奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。 【C函数2】

void Smove(int A[], int n) { int temp, i = 0, j = n-1; if(n < 2)return; while(i < j){

if(A[i] % 2 == 1 && A[j] % 2 == 1){ (3) ;} else if(A[i] % 2 == 0 && A[j] % 2 == 0){ (4) ;} else{ if( (5) ){

temp = A[i]; A[i] = A[j]; A[j] = temp; } i++,j--; } } }

1.2.3 试题三

阅读以下说明、C 函数和问题,将解答填入答题纸的对应栏内。 【说明】

二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: ● 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;

程序员 http://www.educity.cn/jiaocheng/zg14.html

● 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; ● 左、右子树本身就是二叉查找树。

设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: typedef struct BiTnode{

int key_value; /*结点的键值,为非负整数*/ struct BiTnode *left,*right; /*结点的左、右子树指针*/ }*BSTree;

函数find_key(root, key)的功能是用递归方式在给定的二叉查找树 (root指向根结点)中查找键值为key的结点并返回结点的指针;若找不到,则返回空指针。 【函数】

BSTree find_key(BSTree root, int key) {

if ( (1) ) return NULL; else

if (key == root-> key_value) return (2) ;

else if (key < root -> key_value) return (3) ; else

return (4) ;

程序员 http://www.educity.cn/jiaocheng/zg14.html

}

【问题1】

请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。 【问题2】

若某二叉查找树中有n个结点,则查找一个给定关键字时,需要比较的结点个数取决于 (5) .

1.2.4 试题四

阅读以下说明和C语言程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

魔方阵,又叫幻方,在我国古代称为\纵横图\由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。 奇数阶魔方阵的生成方法如下: (1)第一个位置在第一行正中。

(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。 (3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为: 8 1 6 3 5 7

程序员 http://www.educity.cn/jiaocheng/zg14.html

4 9 2

了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m,n.其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。 【程序】

#include #define MAX 15 void main() { int n; int m=1; int i,j;

int a[MAX][MAX];

printf(\); scanf(\); i=0; (1)

while((2)) {

a[i][j]=m;

程序员 http://www.educity.cn/jiaocheng/zg14.html

m++; i--; j++;

if( (m-1)%n==0 && m>1 ) { (3) j=j-1; }

if(i<0) //超出上界 (4)

if( j>(n-1) ) //超出右边界 (5) }

for(i=0;i

if(a[i][j]/10==0)

printf(\ \); //对程序无影响,只是使输出的数每一列对齐 else

printf(\ \); if(j==(n-1))

程序员 http://www.educity.cn/jiaocheng/zg14.html

printf(\); } }

1.2.5 试题五

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

设计希赛IT教育研发中心的工资管理系统,该中心主要有3类人员:经理、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;销售员拿固定工资1000元,然后再按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5‰。

按要求设计一个基类employee,销售员类salesman,经理类manager,销售经理类salesmanager.

程序5-1是类employee的模块内容,程序5-2是类salesman的类模块内容,程序5-3是类manager的模块内容,程序5-4是类salesmanager的模块内容。在主测试程序中,输入张三所管部门月销售量10000后的输出结果如下:

【程序5-1】

#include #include

程序员 http://www.educity.cn/jiaocheng/zg14.html

class employee {

protected: int no; char *name; float salary; public:

employee(int num,char *ch) {no=num; name=ch; salary=0; }

virtual void pay()=0; virtual void display() {cout《\编号:\《no《endl; cout《\本月工资:\《salary《endl; } };

【程序5-2】

class salesman: (1) {

protected:

float commrate, sales;

程序员 http://www.educity.cn/jiaocheng/zg14.html

public:

salesman(int num,char *ch):employee(num,ch) {commrate=0.04; } void pay()

{cout《name《\本月销售额:\ cin》sales;

salary=sales*commrate+1000; } void display()

{cout《\销售员:\《name《endl; employee::display(); } };

【程序5-3】

class manager: (1) {

protected: float monthpay; public:

manager(int num,char *ch):employee(num,ch) {monthpay=8000;} void pay() {salary=monthpay;}

程序员 http://www.educity.cn/jiaocheng/zg14.html

void display()

{cout《\经理:\《name《endl; employee::display();} };

【程序5-4】

class salesmanager: (2) { public:

salesmanager(int num,char *ch): (3) {monthpay=5000; commrate=0.005;} void pay()

{cout《name《\所管部门月销售量:\ cin》sales; (4)}

void display()

{cout《\销售经理:\《name《endl; (5)} };

void main() //主测试函数 { salesmanager p1(1001,\张三\);

程序员 http://www.educity.cn/jiaocheng/zg14.html

p1.pay(); p1.display(); }

1.2.6 试题六

阅读以下说明,Java代码将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

链表和栈对象的共同特征是:在数据上执行的操作与在每个对象中实体存储的基本类型无关。例如,一个栈存储实体后,只要保证最后存储的项最先用,最先存储的项最后用,则栈的操作可以从链表的操作中派生得到。程序6-1实现了链表的操作,程序6-2实现了栈操作。

import java.io.*;

class Node //定义结点 { private String m_content; private Node m_next; Node(String str) {m_content=str; m_next=null; }

Node(String str,Node next) {m_content=str; m_next=next; }

String getData() //获取结点数据域

程序员 http://www.educity.cn/jiaocheng/zg14.html

{return m_content;}

void setNext(Node next) //设置下一个结点值 {m_next=next;}

Node getNext() //返回下一个结点值 {return m_next;} }

【程序6-1】 class List { Node Head; List() {Head=null;}

void insert(String str) //将数据str的结点插入在整个链表前面 {if(Head==null) Head=new Node(str); else (1) }

void append(String str) //将数据str的结点插入在整个链表尾部 {Node tempnode=Head; if(tempnode==null) Head=new Node(str);

程序员 http://www.educity.cn/jiaocheng/zg14.html

else

{while(tempnode.getNext()!=null) (2) (3)} }

String get() //移出链表第一个结点,并返回该结点的数据域 {String temp=new String(); if(Head==null)

{System.out.println(\); System.exit(0);} else

{temp=Head.getData(); (4) } return temp; } }

【程序6-2】

class Stack extends List

{ void push(String str) //进栈 { (5) } String pop()//出栈

程序员 http://www.educity.cn/jiaocheng/zg14.html

{return get();} }

1.3 上午试题分析

1.3.1 试题1~3分析

本题考查在Windows 2000操作系统中的一些常规操作。

在Windows 2000中要查看文件类型的扩展名的步骤是:\工具\→\文件夹选项\→\查看\然后在这个界面里设置是否要显示已知文件类型的扩展名即可。

删除U盘中的文件时,不同于硬盘,用Delete删除时,文件不进入回收站,直接被删除了。在硬盘上要直接删除文件而不让文件进入回收站的方法是Shift+Delete或者右击\回收站\在属性里的\全局\中勾选\删除时不将文件移入回收站,而是彻底删除\最后确定,这样也可以直接删除文件。

1.3.2 试题4分析

本题考查我们对微型计算机结构的了解。

个人计算机是微机的一种,在我们日常接触的个人计算机中,决定运算速度快慢的是处理器的时钟频率,而运算速度与每秒钟执行程序个数和启动速度没有什么关系。内存访问速度影响的是整个程序的运行速度,不能表示运算速度快慢。

1.3.3 试题5分析

本题考查计算机中数制的转化,是程序员考试中常见的一种题型。

十进制数转换成二进制数,一般分成两部分,即整数部分和小数部分。对于整数部分,十进制整数转换成二进制数,最常用的是\除以R取余法\首先将十进制数29转换为二进制

程序员 http://www.educity.cn/jiaocheng/zg14.html

数:

将所得的余数从低位到高位排列11101就是29的二进制数。由此我们可以知道本题答案是C.

十进制小数转换为二进制小数的过程是乘2取进位。例如,将十进制小数0.43转换成二进制小数的过程如下:

假设小数点后取5位,那么转化的结果为0.01101.而题目中的小数部分经过3次乘2后已经变成了0,转化结果为0.101.

1.3.4 试题6~7分析

本题考查用高级语言编写的程序在计算机中运行的过程。

高级语言是计算机语言上的一个飞跃。高级语言相对于汇编语言而言,非常容易理解,使用的是日常逻辑的关键字,程序员在使用高级语言的时候,不必考虑寄存器、堆栈等和计算机中央处理器直接相关的硬件特性,可以专注于软件的逻辑功能实现。典型的高级语言包括:C、BASIC、Fortran、Pascal、COBOL、LIST、PROLOG等。

用高级语言编写的程序在计算机中运行时,首先被编译成目标程序,然后再解释成能被计算机运行的机器指令代码,再由计算机具体执行。其代码对应的改变是从源程序变到目标

程序员 http://www.educity.cn/jiaocheng/zg14.html

程序,再到机器指令代码。

1.3.5 试题8~9分析

本题考查指令的结构和执行的一些相关知识。

通常一条指令分为操作码和地址码两部分,前半部分的操作码确定指令的类型,后面的地址码确定指令所要处理的数据,根据地址码的个数可以有四址指令、三址指令,甚至是0址指令。

指令译码器:将操作码解码,告诉中央处理器该做什么。 指令寄存器:中央处理器即将执行的操作码表在这里。

程序计数器:存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成能自动加1的装置。当出现转移指令时,就需重填程序计数器。

状态寄存器:是用来标识协处理器中指令执行情况的,它相当于CPU中的标志位寄存器。

1.3.6 试题10~11分析

计算机的用途不同,对其不同部件的性能指标要求也有所不同。用作科学计算为主的计算机,其对主机的运算速度要求很高;用作大型数据库处理为主的计算机,其对主机的内存容量、存取速度和外存储器的读写速度要求较高;对于用作网络传输的计算机,则要求有很高的I/O速度,因此应当有高速的I/O总线和相应的I/O接口。

计算机的运算速度常用每秒钟执行的指令数来衡量,单位为每秒百万条指令(MIPS)或者每秒百万条浮点指令(MFPOPS }.影响运算速度的主要因素有如下几个:

(1)CPU的主频。指计算机的时钟频率。它在很大程度上决定了计算机的运算速度。例如,Intel公司的CPU主频最高已达3.20GHz以上,AMD公司的可达400MHz以上。

程序员 http://www.educity.cn/jiaocheng/zg14.html

(2)字长。GPU进行运算和数据处理的最基本、最有效的信息位长度。PC的字长已由8088的准16位〔运算用16位,I/O用8位)发展到现在的32位、64位。

(3)指令系统的合理性。每种机器都设计了一套指令,一般均有数十条到上百条,例如,加、浮点加、逻辑与、跳转等等,组成了指令系统。

1.3.7 试题12~14分析

本题考查操作系统的分类及各类操作系统的工作模式。

操作系统是用户与计算机之间的接口,根据参与操作用户数的不同,操作系统可以分为单用户和多用户操作系统;根据处理任务数的不同,又可以划分为单任务和多任务处理操作系统。

PC-DOS是个人计算机版的DOS操作系统,是单用户单任务的操作系统。 Windows是微软为个人计算机开发的一种多任务的操作系统。 Linux是多用户多任务操作系统。

客户机/服务器模式的网络操作系统的基本特点是服务器以用户进程的形式运行而不是运行于核心态,它们不直接访问硬件,单个服务器的崩溃不会导致整个系统的崩溃。 在第14题的选项中,只有Windows 2003 Server是在体系结构上采用了客户机/服务器模式的网络操作系统。

1.3.8 试题15分析

本题考查计算机系统校验码的基础知识。

数据在计算机系统中进行输入、存储时,可能产生错误,因此发明了各种校验检错方法,并依据这些方法设置了校验码。

凡设有校验码的代码,由本体码与校验码两部分组成(如组织机构代码),本体码是表

程序员 http://www.educity.cn/jiaocheng/zg14.html

示编码对象的号码;校验码则附加在本体码后边,用来校验本体码在输入过程中的准确性。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。

奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。在传送字符的各位之外,再传送1位奇/偶校验位。奇校验要求传送的数位(含字符的各数位和校验位)中,\的个数为奇数,偶校验要求\的个数为偶数。奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。

循环冗余校验码(CRC)由两部分组成,前一部分是信息码,就是需要校验的信息;后一部分是校验码。如果CRC码共长n位,信息码长k位,就称为(n,k)码。它的编码规则是:首先将原信息码(k位)左移r位(k+r=n),运用一个生成多项式g(x)(也可看成二进制数)模2除以上面的式子,得到的余数就是校验码。CRC码是检错码,也就是只能检查出错误而不能自动纠正。

海明校验码是由Richard Hamming于1950年提出、目前还被广泛采用的一种很有效的校验方法,只要增加少数几个校验位,就能检测出二位同时出错、也能检测出一位出错并能自动恢复该出错位的正确值的有效手段,后者被称为自动纠错。其实现原理是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新码字的码距比较

均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

1.3.9 试题16分析 本题考查程序语言基础知识。

程序员 http://www.educity.cn/jiaocheng/zg14.html

变量程序语言中的一个重要概念,具有类型、存储地址、作用域和生存期等属性。变量的作用域是指一个范围,是从代码空间的角度考虑问题,它决定了变量的可见性,说明变量在程序的哪个区域可用,即程序中哪些行代码可以使用变量。作用域有三种:局部作用域、全局作用域和文件作用域,相对应于局部变量(local variable)、全局变量和静态变量(global variable)。在变量的作用域中,可以合法地引用它,设置它的值,或在表达式中使用它;在变量的作用域之外,就不能引用它的名称,这么做会导致一个编译错误。 在程序执行时,所有的变量都有有限的生存期。它们从被声明的那一刻起存在,并在某一刻消失,最迟也要在程序终止时消失。变量生存多长时间取决于属性\存储持续时间\函数中定义的变量(局部变量)一般在函数被执行时由系统自动在栈区分配存储空间,当函数执行结束时自动撤消其存储空间,这称为变量具有自动的存储持续时间。对于全局变量,其生存期一般从程序运行开始,至程序运行结束,称为变量具有静态的存储持续时间。还有一些变量,其存储空间由程序员根据需要申请或释放,称为具有动态的存储持续时间。

1.3.10 试题17分析 本题考查程序语言基础知识。

传统程序设计语言主要是为了构造自足的应用系统,即能接受某种输入、按某种可以理解的方式操作这些输入并产生出适当输出的系统。例如C/C++、Java等是典型的传统程序设计语言。

在Java、C或其他常规语言里写各种协作代码,倾向于强调效率、可维护性、可移植性,以及静态的错误检查。它们的类型系统通常是围绕着一些硬件的概念构造起来的,如固定大小的整数、浮点数、字符和数组。与此相反,脚本语言倾向于强调灵活性、快速开发、局部用户定制以及动态(运行时)检查。

程序员 http://www.educity.cn/jiaocheng/zg14.html

现代脚本语言的前身主要来自命令解释器或传统批处理和\终端\(命令行)计算的外壳语言,例如IBM的JCL、MS-DOS的command解释器,以及UNIX的sh和csh外壳族等,例如IBM的RPG,以及UNIX的sed和awk等。从这些应用中演化出的Rexx,即IBM的\重构的可扩充执行器\时间可以追溯到1979年;还有Perl,由Larry Wall于24世纪80年代后期开始设计,现在已成为使用最广泛的通用脚本语言。其他通用的脚本语言包括Tcl(\),Python、Ruby、VBScript(用于Windows)和AppleScript(用于Mac)。 虽然很难精确地定义脚本语言,但它们还是有一些大致都有的公共特征,如同时支持批处理和交互式使用、经济的表达式、以解释方式运行等。脚本语言与编程语言也有很多相似的地方,其函数与编程语言比较相像一些,其也涉及到变量。

1.3.11 试题18分析

本题考查数据库系统和文件系统的区别。

数据库系统和文件系统都可以对数据进行保存和操作。但与文件系统相比,数据库技术具有以下特点。

(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。 (2)具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性。 (3)数据库系统为用户提供了方便的用户接口。

(4)数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。

1.3.12 试题19分析

本题考查SQL语言的定义和基本特征。

程序员 http://www.educity.cn/jiaocheng/zg14.html

SQL语言是标准化数据库查询语言,集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一。SQL语言采用了集合的操作方式,简单易用。

1.3.13 试题20分析

本题考查数据库中的关系运算。

关系演算运算是以数理逻辑中的谓词演算为基础,用公式表示关系运算的条件。关系演算按所用到的变量不同,可以分为元组关系演算和域关系演算。题目中给出的是元组关系演算。根据题目给出的演算R,我们很容易可以求得结果为C.

1.3.14 试题21分析

本题考查我国《商标法》中有关保护注册商标的相关规定。

商标法主要是保护注册商标,注册商标是指经国家主管机关核准注册而使用的商标,注册人依法对其注册商标享有专用权(商标权)。

在我国,商标权的取得实行的是注册原则,即商标所有人只有依法将自己的商标注册后,商标注册人才能取得商标权,其商标才能得到法律的保护。未注册商标是指未经核准注册而自行使用的商标人不享有法律赋予的专用权。

商标权不包括商标设计人的权利,注重商标所有人的权利,商标设计人的发表权、署名权等人身权在商标的使用中没有反映,它不受商标法保护,商标设计人可以通过其他法律来保护属于自己的权利。例如,可以将商标设计图案作为美术作品通过著作权法来保护,与产品外观关系密切的商标图案还可以申请外观设计专利,通过专利法保护。

1.3.15 试题22分析

本题考查《计算机软件保护条例》中关于软件合法复制品的一些相关规定。

《计算机软件保护条例》是我国计算机软件保护的法律依据,它的保护客体是计算机软

程序员 http://www.educity.cn/jiaocheng/zg14.html

件。它保护的计算机软件是由开发者独立开发的,并且已经固定在某种有形物体上的。我们在合法使用软件时,可以根据具体的需要对软件进行安装、备份、修改,但是不能将软件的复制品转给别人使用。

1.3.16 试题23分析

本题考查频分全双工的概念与作用。

FDD是现代通信中的一种常用技术,其基本特点是在分离的两个对称频率信道上,系统进行接收和传送,用保证频段(保证频段带宽为190MHz)来分离接收和传送信道。允许双向同时传送数据,支持全双工技术。

1.3.17 试题24分析

本题考查采用公钥加密和解密的基本知识。

在加密体系中有公钥加密和私钥加密两种。公开密钥加密体制K1≠K2,又称不对称密码体制,其加密和解密使用不同的密钥,其中一个密钥是公开的,另一个密钥则是保密的。如果发送方用接收方的公钥加密报文,则接收方只能用自己的私钥才能对报文进行解密。

1.3.18 试题25分析 本题考查网络子网的划分。

对网络进行子网划分一般常用的有两种方法,一种是按照子网的个数来划分,另一种则是按照每个子网中主机的台数来划分。在做本题时,用第二种方法来分析。由于每个子网上最多配备27台主机,这就要求我们至少要留5位主机号,因此,除了5位主机号以外的全是网络号。而子网掩码则是用来为计算IP地址中的网络号部分和主机号部分提供依据的,它与IP地址是一一对应的,IP地址中的网络号部分对应的子网掩码为1,主机号部分对应的子网掩码为0,因此,该单位使用的子网掩码是255.255.255.224.

程序员 http://www.educity.cn/jiaocheng/zg14.html

1.3.19 试题26分析 本题考查FTP协议。

FTP(文件传输协议)允许在Internet上传输任意文件,并且允许文件具有所有权与访问权限。FTP是网络上最常见的文件传输协议,在进行文件传输时,FTP使用两个并行的TCP连接来传送文件,一个是控制连接用来传送控制信号,另一个是数据连接用来传送数据。其中控制连接用的是21号端口,而数据连接用的是20号端口。

1.3.20 试题27分析

本题考查面向对象中多态的基本概念。

面向对象中多态是指一个名字有多个含义,函数重载和函数覆盖都是多态的表现,不论是重载或是覆盖,都代表了一个方法名可以对应多个方法体,在编译或是运行时再决定究竟调用该方法的哪一个方法体。

1.3.21 试题28分析

本题考查面向对象中类的基本概念。

面向对象中最重要的概念就是类,它是面向对象方法中最基本的封装单元,决定了现实世界中实体的数据和方法,以及数据和方法是否对外界暴露。

1.3.22 试题29分析 本题考查测试过程的内容。

测试是软件开发过程中一个独立且非常重要的阶段,一个规范化的测试过程通常包括如下基本的测试活动:拟定测试计划、编制测试大纲、生成测试用例、实施测试和生成测试报告。拟定测试计划的内容主要有测试的内容、进度安排、测试所需的环境和条件、测试培训安排等。

程序员 http://www.educity.cn/jiaocheng/zg14.html

1.3.23 试题30分析

本题考查树的基本结构及度的概念。

度是指一个结点拥有子结点的个数,其中叶子结点的度为0.由题意我们知道,树中除叶子结点外的总结点数是n1+ n2+…+nk,而度的总数是n1×1+ n2×2+…+nk×k个,在树中根结点是没有父结点的,因此,叶子结点的数应该为度的总数-总结点数+1(根结点)

=.

1.3.24 试题31分析

本题考查数组在计算机存储器中的存储。

题目中给出了二维数组A6×8,其中每个元素用相邻的6个字节存储,这说明数组A是一个6行8列的二维数组,且每个元素占相邻的6个字节。那么数组总共要占6×8×6=288个字节。a13是数组中的第13个元素,在存储它以前已有12个元素从起始存储位置按行存储了,12个元素占12×6=72个字节。因此,元素a13的第一个字节的地址应该为1000+72=1072.

另外,解答此类试题,要看清楚试题的要求,数组的起始是从0开始还是从1开始。在本题中,没有明确这个问题,我们假设是从1开始,即数组的第1个元素是A[1][1].

1.3.25 试题32分析

本题考查二叉树的遍历和二叉树的一些性质。

二叉树是一个结点最多只有两个儿子结点的树,其二叉树遍历有3种形式:

(1)前序遍历:首先访问根结点,然后按前序遍历根结点的左子树,再按前序遍历根结点的右子树。

(2)中序遍历:首先按中序遍历根结点的左子树,然后访问根结点,再按中序遍历根

程序员 http://www.educity.cn/jiaocheng/zg14.html

结点的右子树。

(3)后序遍历:首先按后序遍历根结点的左子树,然后按后序遍历根结点的右子树,再访问根结点。

要解答本题,需要一些技巧,我们从后序序列中可以看到A是最后一个,可以确定A是整个二叉树的根结点。再从中序序列CDBEAGHFK可以知道,CDBE是根A的左子树中的结点,而GHFK是根A的右子树中的结点。现在我们来分析左子树中的情况,同样由后序序列中DCEB可以看出B是左子树的根结点,由中序序列CDBE可以看出E是B的右子树的结点。同理,我们可以分析出整个二叉树的结点分布。此二叉树前序遍历的结果为ABCDEFGHK.

1.3.26 试题33分析

本题考查有向图的拓扑序列结构。

在有向图中,拓扑序列是通过拓扑排序后得到的所有结点的序列,拓扑排序是指由某个集合上的一个偏序得到该集合上的一个全序。例如,一个软件专业的学生要修课,但有些是基础课,它独立于其他课程,而有些课程必须要在修完某些专业课后才能修,这样各课程之间就形成了一种并立与优先的关系,有向图和它的拓扑序列可以表示这样的关系。 对有向图进行拓扑排序的方法是:

(1)在有向图中任选一个没有前驱的结点且输出; (2)从图中删除该结点和所有以它为尾的弧。

重复上述两步,直到全部顶点均已输出,或当前图中不存在无前驱的结点为止。 根据上述的说明我们可以知道,有向图的拓扑序列可能有一个或多个,但在有向图中出现有向环时,因为环意味着某项活动应该以自己为先决条件,在拓扑排序时,环中的结点是

程序员 http://www.educity.cn/jiaocheng/zg14.html

不能被排在序列中的,因此,不存在此有向图的拓扑序列。所以,对任意一个有向图而言,其拓扑序列可能不存在,也可能有一个或多个。

1.3.27 试题34分析

本题考察数据结构中的查找哈希表问题。

哈希表的目的是建立希望不经过任何比较,一次存取便能取得所查的记录。在哈希表存储时,一般是通过在记录的存储位置和它的关键字之间建立一个确定的对应关系,使得每个关键字和结构中的一个唯一的存储位置对应,而这个对应关系就是哈希函数。

所谓的哈希冲突是指对不同的关键字可能得到同一哈希地址。为了不发生哈希冲突,构造哈希函数的方法应该选直接地址法,此方法是取关键字的某个线性函数值作为直接地址。

1.3.28 试题35分析 本题考查二叉排序树的查找。

二叉排序树又称为二叉查找树,其定义为:二叉排序树或者是一棵空树,或者是具有如下性质(BST性质)的二叉树:

(1)若它的左子树非空,则左子树上所有结点的值均小于根结点; (2)若它的右子树非空,则右子树上所有结点的值均大于根结点; (3)左、右子树本身又各是一棵二叉排序树。

在做该题时,首先将表中的9个元素放进二叉树中构成二叉排序树,在构造二叉排序树时,我们将表中的元素依次按照构造二叉排序树的规则往树中添加元素,在获得二叉排序树后,计算平均长度就变得简单了,为(1+2+2+3+3+4+5+5+6)/9=31/9.

1.3.29 试题36分析

本题考查数组和指针的具体应用。

本文来源:https://www.bwwdw.com/article/wwf.html

Top