2009 年上半年程序员上午试卷
●用户打开名为“个人简历”的 Word 文件,通常是指 (1);若再单击常用工具栏上的“(2)”按钮,可以插入表格。
(1)A. 显示并打印该文件的内容
B. 为该文件开设一个新的、空的文档窗口
C. 将该文件内容从磁盘调入内存并显示
D. 将该文件内容从内存中读出并显示
(2)
A.
B.
C.
D.
●某品牌商品销售情况表如图(a ) 所示。若想按产品类别分别累计销售量,可使用分类汇总命令。汇总的结果如图(b ) 所示。
图(a ) 图(b )
在进行分类汇总前,应先对数据清单中的记录按 (3) 字段进行排序;选择“数据/分类汇总”命令,并在弹出的“分类汇总”对话框中的“选定汇总项”列表框内,选择要进行汇总的(4)字段,再点击确认键。
(3)A. 产品 B. 销售日期 C. 销售地点 D. 销售量
(4)A. 产品 B. 销售日期 C. 销售地点 D. 销售量
● (5) 是格式正确的 E-mail 地址。
(5)A. web [email protected] B. webmaster @ rkb.gov.cn
C. http:\\ www.rkb.gov.cn D. http:// www.rkb.gov.cn
●若采用 16-bit 补码表示整数,则可表示的整数范围为(6)。
(6)A. [-2,2] B. (-2,2]
15151515C. (-2,2) D. [-2,2)
●CPU 执行算术运算或者逻辑运算时,算术逻辑运算部件(ALU )将计算结果保存在(7)中。
(7)A. 累加器 AC B. 程序计数器 PC
C. 指令寄存器 IR D. 地址寄存器 AR
●(8)不是使用光(激光)技术来存取数据的存储介质。
(8)A. DVD B. EEPROM C. CD-ROM D. CD-RW ●(9)既有检错功能又有纠错功能。
(9)A. 水平奇偶校验 B. 垂直奇偶校验 C. 海明校验 D. 循环冗余校验 ●计算机的用途不同,对其部件的性能指标要求也有所不同。以科学计算为主的计算机,对
(10)要求较高,而且应该重点考虑(11)。 15151515
(10)A. 外存储器的读写速度 B. 主机的运算速度
C. I/O 设备的速度 D. 显示分辨率
(11)A. CPU 的主频和字长,以及内存容量
B. 硬盘读写速度和字长
C. CPU 的主频和显示分辨率
D. 硬盘读写速度和显示分辨率
●声音信号的数字化过程包括采样、 (12) 和编码。
(12)A. 合成 B. 去噪 C. 量化 D. 压缩
●目前一般家庭中,点播电视系统的用户端必须配置的设备是(13)。
(13)A. 解码器 B. 调制解调器 C. 机顶盒 D. 记账设备
●多媒体计算机与普通计算机的主要区别是多媒体计算机增加了 (14) 。
(14)A. 存储信息的实体 B. 视频和音频信息的处理能力
C. 光驱和声卡 D. 大容量的磁介质和光介质
●下面关于加密的说法中,错误的是(15)。
(15)A. 数据加密的目的是保护数据的机密性
B. 加密过程是利用密钥和加密算法将明文转换成密文的过程
C. 选择密钥和加密算法的原则是保证密文不可能被破解
D. 加密技术通常分为非对称加密技术和对称密钥加密技术
●下面关于防火墙功能的说法中,不正确的是(16)。
(16)A. 防火墙能有效防范病毒的入侵
B. 防火墙能控制对特殊站点的访问
C. 防火墙能对进出的数据包进行过滤
D. 防火墙能对部分网络攻击行为进行检测和报警
●软件著作权的客体是指 (17) 。
(17)A. 公民、法人或其他组织 B. 计算机程序及算法
C. 计算机程序及有关文档 D. 软件著作权权利人
●商标法主要是保护 (18) 的权利。
(18)A. 商标设计人 B. 商标注册人 C. 商标使用人 D. 商品生产者 ●若 8 位二进制数能被 4 整除,则其最低 2 位 (19) 。
(19)A. 不可能是 01、00 B. 只能是 10 C. 可能是 01、00 D. 只能是 00 ●设两个 8 位补码表示的数 b 7b 6b 5b 4b 3b 2b 1b 0和 a 7a 6a 5a 4a 3a 2a 1a 0相加时溢出(b 7、a 7为符号标志),则(20)。
(20)A. b7与 a 7的“逻辑或”结果一定为 1
B. b7与 a 7的“逻辑与”结果一定为 0
C. b7与 a 7的“逻辑异或”结果一定为 1
D. b7与 a 7的“逻辑异或”结果一定为 0
●(21)属于并行外部总线。
(21)A. PCI B. USB C. IEEE-488 D. IEEE-1394
●若指令系统中设置了专用 I/O 操作指令,则 I/O 接口 (22) 。
(22)A. 与内存单元必须统一编址
B. 可以独立编址
C. 必须采用 DMA 方式与内存交换数据
D. 必须采用中断方式与内存交换数据
● 在 Windows 资源管理器的左窗口中,若显示的文件夹图标前带有“ ” 标志,则意味
着该文件夹 (23)。
(23)A. 是空文件夹 B. 仅含有文件 C. 含有子文件夹 D. 仅含有隐藏文件 ● 打印质量好、速度快,且工作原理与复印机相似的打印机是 (24) 。
(24)A. 行式打印机 B. 激光打印机 C. 喷墨打印机 D. 点阵打印机 ● 在 Windows 系统中,若要移动窗口,可用鼠标拖动窗口的 (25)。
(25)A. 标题栏 B. 菜单栏 C. 状态栏 D. 工具栏
● 假设系统中进程的三态模型如下图所示,图中的 a 和 b 处应分别填写 (26) ,图中的 c 和 d 处应分别填写 (27) 。
(26)A. 时间片到、作业调度程序调度 B. 执行了 P 操作、时间片到
C. 时间片到、进程调度程序调度 D. 时间片到、执行了 P 操作
(27)A. I/O 完成、执行了 P 操作 B. 执行了 P 操作、I/O 完成
C. 时间片到、执行了 V 操作 D. 执行了 V 操作、I/O 完成
● (28) 属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。
(28)A. 编译程序 B. 预处理程序 C. 汇编程序 D. 解释程序 ● (29) 属于标记语言。
(29)A. PHP B. Lisp C. XML D. SQL
●与表达式“a-(b+c)*d”对应的后缀式为(30)。
(30)A. ab-c*d+ B. abc+d*- C. abcd-+* D. abc+-*d
●下图所示的有限自动机中,s 0是初始状态,s 3为终止状态,该自动机不能识别(31) 。
(31)A. abab B. aaaa C. babb D. abba
●程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(32)是错误的。
(32)A. 根据作用域规则,在函数中定义的变量只能在函数中引用
B. 在函数中定义的变量,其生存期为整个程序执行期间
C. 在函数中定义的变量不能与其所在函数的形参同名
D. 在函数中定义的变量,其存储单元在内存的栈区
● 若算术表达式“a*(b-c)+d”采用二叉树描述,则合理的树结构为 (33) 。
● C 语言具有的“ (34) ”特性使其适用于系统级应用开发。
(34)A. 可直接对位、字节和地址进行运算 B. 目标代码短,可移植性好
C. 采用宏定义和条件编译 D. 运算符丰富,关键字数量少 ●以下关于脚本程序语言的叙述中,错误的是 (35) 。
(35)A. 脚本语言需要相应的引擎解释执行
B. 脚本语言程序一般以文本方式存在
C. 在网页设计中应用脚本可以提高网页浏览速度、丰富网页的表现
D. 脚本语言中不允许使用变量
●以下关于排序算法的叙述中,正确的是 (36)。
(36)A. 冒泡排序法中,元素的交换次数与元素的比较次数一定相同
B. 冒泡排序法中,元素的交换次数不少于元素的比较次数
C. 简单选择排序中,关键字相同的两个记录在排序前后的相对位置一定不变
D. 简单选择排序中,关键字相同的两个记录在排序前后的相对位置可能交换
●设有一个初始为空的栈,若输入序列为1、2、3、…、n (n>3),且输出序列的第一个元素是 n-1,则输入序列中所有元素都出栈后, (37) 。
(37)A. 元素 n-2 一定比 n-3 先出栈
B. 元素 1~n-2 在输出序列中的排列是不确定的
C. 输出序列末尾的元素一定为 1
D. 输出序列末尾的元素一定为 n
●某二叉树的先序遍历序列为 ABFCDE 、中序遍历序列为 BFADCE ,则该二叉树根的左孩子和右孩子结点分别是 (38) 。
(38)A. B 和 F B. F 和 B C. B 和 C D. C 和 B
●调用递归过程或函数时,处理参数及返回地址需要用一种称为 (39) 的数据结构。
(39)A. 队列 B. 栈 C. 多维数组 D. 顺序表
●已知对称矩阵 A n*n(A i,j =A j,i )的主对角线元素全部为 0,若用一维数组 B 仅存储矩阵 A 的下三角区域的所有元素(不包括主对角线元素),则数组 B 的大小为 (40) 。
(40)A. n(n-1) B. n/2 C. n(n-1)/2 D. n(n+1)/2
●设 S 是一个长度为 5 的字符串,其中的字符各不相同,则计算 S 中互异的非平凡子串(非空且不同于 S 本身)数目的算式为 (41) 。
(41)A. 5+4+3+2+1 B. 5+4+3+2 C. 4+3+2+1 D. 4+3+2
●折半(二分)查找方法对查找表的要求是 (42)。
(42)A. 链表存储结构,元素有序排列 B. 链表存储结构,元素无序排列
C. 顺序存储结构,元素有序排列 D. 顺序存储结构,元素无序排列
●若无向连通图 G 具有 n 个顶点,则以下关于图 G 的叙述中,错误的是 (43) 。
(43)A. G 的边数一定多于顶点数 B. G 的生成树中一定包含 n 个顶点
C. 从 G 中任意顶点出发一定能遍历图中所有顶点
D. G 的邻接矩阵一定是 n 阶对称矩阵 2
● (44) 是面向对象方法中最基本的封装单元,它可以把客户要使用的方法和数据呈现给外部世界,而把客户不需要知道的方法和数据隐藏起来。
(44)A. 类 B. 方法 C. 属性 D. 过程
● 在进行类设计时, (45) 可以选择 (46) 的某些操作进行完全的继承或变异。
(45)A. 派生类 B. 基类 C. 抽象类 D. 虚拟类
(46)A. 派生类 B. 基类 C. 抽象类 D. 虚拟类
● 同一个函数名(或方法名)可以对应不同的函数体(或方法代码),该特性在面向对象技术中称为 (47) 。
(47)A. 单态 B. 信息隐藏 C. 信息开放 D. 多态
● 面向对象分析的主要任务是 (48) 。
(48)A. 从宏观上描述一个软件系统应该如何组织
B. 将用户的需求用算法描述出来
C. 建立一个准确的、一致的系统模型以描述软件需要解决的问题
D. 对代码进行测试,以验证最终代码是否满足软件需求
●瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(49)。
(49)A. 瀑布模型能够非常快速地开发大规模软件项目
B. 只有很大的开发团队才使用瀑布模型
C. 瀑布模型已不再适合于现今的软件开发环境
D. 瀑布模型适用于软件需求确定,开发过程能够采用线性方式完成的项目
●一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试和维护等活动,其中 (50) 是软件工程的技术核心,其任务是确定如何实现软件系统。
(50)A. 可行性分析和项目开发计划 B. 需求分析 C. 设计 D. 编码
● UML 中的(51)给出了系统内从一个活动到另一个活动的流程,它强调对象间的控制流程。
(51)A. 协作图 B. 序列图 C. 对象图 D. 活动图
● Mc Call 软件质量模型从软件产品的运行、修正、转移等三个方面确定了 11 个质量特性, (52) 是属于产品转移方面的特性。
(52)A. 正确性 B. 可靠性 C. 互用性 D. 灵活性
●测试是软件开发过程中一个独立且非常重要的阶段。一个规范化的测试过程通常包括多个基本的测试活动。确定测试内容、进度安排、测试所需的环境和条件、测试培训安排等工作属于(53)阶段的内容。
(53)A. 拟定测试计划 B. 编制测试大纲 C. 设计和生成测试用例 D. 生成测试报告 ●某系统中一个组件的某个函数中,有一个变量没有正确初始化,在 (54) 阶段最可能发现问题。
(54)A. 单元测试 B. 集成测试 C. 确认测试 D. 系统测试
●在软件开发过程中,常采用图形表示相关的信息,(55)不用于表示软件模块的执行过程。
(55)A. N-S 盒图 B. E-R 图 C. PAD 图 D. 程序流程图
●为了扩充功能和改善性能,需要在已有软件系统中增加一些在系统分析和设计阶段没有规定的功能与性能特征,这类软件维护属于 (56) 维护。
(56)A. 正确性 B. 适应性 C. 完善性 D. 预防性
● E-R 图的三要素是 (57) 。
(57)A. 基本表、数据项和元组 B. 实体、联系和属性
C. 视图、基本表和数据项 D. 文件、记录和数据项
●按国家规定,身份证号与公民之间存在 (58) 联系。
(58)A. 一对一 B. 一对多 C. 多对一 D. 多对多
●零件关系 P (零件名,条形码,供应商,产地,价格)中的 (59) 属性可以作为该关系的主键。查询产于西安且名称为“P2”的零件,结果以零件名、供应商及零件价格分列表示,对应的 SQL 语句为:
SELECT 零件名,供应商,价格
FROM P
WHERE 零件名= 'P2' AND (60) ;
将供应商“S2”所供应的零件价格下调 2%的 SQL 语句为:
UPDATE P
(61)
WHERE 供应商= 'S2';
(59)A. 零件名 B. 条形码 C. 产地 D. 供应商
(60)A. 条形码=西安 B. 条形码='西安' C. 产地=西安 D. 产地='西安'
(61)A. SET 价格= '价格*0.98' B. SET 价格=价格*0.98
C. Modify 价格= '价格*0.98' D. Modify 价格=价格*0.98
● 算法是问题求解过程的精确描述,它为解决某一特定类型的问题规定了一个运算过程。以下关于算法的叙述中,错误的是 (62) 。
(62)A. 流程图(flow chart)是算法的一种图形表示方法
B. 用伪代码描述的算法易于转换成程序
C. 用 N/S 盒图可以保证算法的良好结构(即由顺序、选择和重复结构来表示算法)
D. 用 E-R 图可以同时描述算法步骤和数据模型
● 下表列出了数字 0~9 的某种二进制编码值及其在某类应用中出现的概率,这种编码的平均位数大约为 (63) 。
(63)A. 3.0 B. 3.6 C. 4.4 D. 5.0
● 企业中的信息处理过程包括多个阶段,对每个阶段都应有目标要求、规范的制度以及需要特别注意的事项。以下叙述中正确的是 (64) 。
(64)A. 要根据企业对输出报表的需求,选择所需收集的数据项
B. 数据排序的目的是节省存储空间
C. 选择合适的数据存储方式将使用户的检索操作更简单
D. 数据代码化将使用户识别数据更直观
● n*n 矩阵可看作是 n 维空间中的线性变换,矩阵的特征向量经过线性变换后,只是乘以某个常数(特征值),因此,特征向量和特征值在应用中具有重要的作用。下面的矩阵(其中 w 1、w 2、w 3均为正整数)有特征向量(w 1, w2, w3),其对应的特征值为 (65) 。
(65)A. 1/3 B. 1 C. 3 D. 9
●集线器是一种物理层联网设备,下面有关集线器的论述中,错误的是(66)。
(66)A. 集线器没有自动寻址能力
B. 连接在集线器上的故障设备不会影响其他结点通信
C. 集线器可以隔离广播风暴
D. 连接在集线器上的所有结点构成一个冲突域
● 路由器中加入一条主机路由,地址为 200.115.240.0,子网掩码是 (67) 。
(67) A.255.255.0.0 B. 255.255.240.0 C.255.255.255.0 D. 255.255.255.255 ●以下关于 HTML 文档的说法,正确的是(68)。
(68)A. HTML 是一种动态网页设计语言
B. HTML 文档是编译执行的
C. HTML 是一种超文本标记语言
D. HTML 文档中用户可以使用自定义标记
● B2C 电子商务网站主要支持(69)的电子商务活动。
(69)A. 企业对企业 B. 企业对政府 C. 企业对客户 D. 客户对客户
● 用户访问某 Web 网站,浏览器上显示“HTTP-404”错误,则故障原因是 (70) 。
(70)A. 默认路由器配置不当 B. 所请求当前页面不存在
C. Web 服务器内部出错 D. 用户无权访问
● The two goals of an operation system are (71) and efficiency.
(71)A. convenience B. quick C. optimize D. standardize ● A data (72) is a file that contains metadata - that is, data about data.
(72)A. structure B. table C. base D. dictionary ● Software (73) activities consume a large portion of the total life-cycle budget.
(73)A. repair B. maintenance C. change D. update
● Network software consists of (74) , or rules by which processes can communicate.
(74)A. protocols B. programs C. devices D. computers
● The firewall device is a (75) system for connecting a computer network to other computer network.
(75)A. hardware B. software C. security D. I/O
2009年上半年软考程序员考试下午试卷
试题一(共15分)
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
下面的流程图采用公式计算的近似值。
设x 位于区间 (0,1), 该流程图的算法要点是逐步累积计算每项Xn/n!的值 (作为T ),再逐步累加T 值得到所需的结果S 。当T 值小于10-5 时,结束计算。
【流程图】
试题二(共15分)
【说明】
C 语言常用整型(int )或长整型(long )来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型(例如,long long 类型,某些C 系统会提供)也无法正确表示,此时可用一维数组来表示一个整数。
假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后一组可能不足4位),每组作为1个整数存入数组。例如,大整数[***********]7在数组A 中的表示如下(特别引入-1表示分组结束):
在上述表示机制下,函数add_large_number(A,B,C)将保存在一维整型数组A 和B 中的两个大整数进行相加,结果(和数)保存在一维整型数组C 中。
【C 函数】
void add_large_number(int A[], int B[], int C[]) { int i, cf ; /*cf存放进位*/ int t, *p; /*t为临时变量,p 为临时指针*/ cf = (1) ;
for(i = 0; A[i]>-1 && B[i]>-1; i++) {
/*将数组A 、B 对应分组中的两个整数进行相加*/
t = (2) ;
C[i] = t % 10000;
cf = (3) ;
}
if ( (4) ) p = B;
else p = A;
for( ; p[i]>-1; i++) { /*将分组多的其余各组整数带进位复制入数组C*/
C[i] = (p[i] + cf) %10000; cf = (p[i] + cf) /10000; } if ( cf > 0 ) C[i++] = cf; (5) = -1; /*标志" 和数" 的分组结束*/
}
试题三(共15分)
阅读以下说明、C 函数和问题,将解答填入答题纸的对应栏内。
【说明】
二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: ● 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; ● 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; ● 左、右子树本身就是二叉查找树。
设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:
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 key_value)
return (3) ;
else
return (4) ;
}
【问题1】
请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。
【问题2】
若某二叉查找树中有n 个结点,则查找一个给定关键字时,需要比较的结点个数取决于 (5) 。
试题四(共15 分)
阅读以下两个说明、C 函数和问题,将解答写入答题纸的对应栏内。
【说明1】
函数 main()的功能旨在对输入的一个正整数 n ,计算 ,但是对该函数进行测试后没有得到期望的结果。
【C 函数1】
1. 输入5测试上述main 函数时,显示结果如下所示。
2. 将行号为7的代码修改为:printf("n = %d\nresult: %d\n", n, sum); 并再次输入5测试main 函数,显示结果如下所示。
【问题1】(9 分)
请给出上述main 函数中需要修改的代码行号,并给出修改后的整行代码。
【说明2】
函数test_f2()编译时系统报告有错,修改后得到函数f2_B()。对函数f2_B()进行编译时顺利通过,在某些C 系统中执行时却由于发生异常而不能正确结束。
【C 函数2】
【问题2】(6 分)
(1)请指出函数test_f2中不能通过编译的表达式;
(2)请指出可能导致函数f2_B 运行异常的表达式。
从下列2道试题(试题五至试题六)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
试题六(共15 分)
阅读以下说明和Java 代码,将应填入 (n ) 处的字句写在答题纸的对应栏内。
【说明】
java.util 包中提供了HashMap 模板类,该模板类可以表示多个“键-值”对的集合,其中 “键” 的作用与普通数组中的索引相当,而 “值” 用作待存储和检索的数据。 HashMap 实现了Map 接口。在Map 接口中定义了put 和get 方法,put 方法表示Map 对象中加入一个“键-值”对,get 方法则通过“键”来获取其对应的“值” 。
下面的Java 代码中使用了HashMap 模板类,将编号为1001、1002、1003的员工信息插入到HashMap 对象中,然后输入一个指定的员工编号,通过员工编号来获取员工的基本信息。员工编号为整型编码,而员工的基本信息定义为类employee 。
HashMap 对象与员工对象之间的关系及存储结构如图6-1所示。
[日期:2009-05-25] 来源: 作者:未知 [字体:大 中 小]
【Java 代码】
import java.util.*; class employee{ employee(String name,String phoneNumber, String address){ this.name = name; this.phoneNumber = phoneNumber; this.address = address; } String name; String phoneNumber; String address; }; public class javaMain { public static void main(String[] args) { Map employeeMap = new HashMap(); for (Integer employIndex = 1001; employIndex
int employeeNo = 0;
System.out.print("请输入员工编号:");
Scanner s= new Scanner(System.in); employeeNo = s.nextInt(); //从标准输入获得员工编号 employee result = employeeMap. (4) (employeeNo); if ( (5) == null)
{
System.out.println("该员工编号不存在 !");
return;
}
System.out.println("你所查询的员工编号为:" + employeeNo); System.out.println("该员工姓名:" + result.name); System.out.println("该员工电话:" + result.phoneNumber); System.out.println("该员工地址:" + result.address ); }
}
2009 年上半年程序员上午试卷
●用户打开名为“个人简历”的 Word 文件,通常是指 (1);若再单击常用工具栏上的“(2)”按钮,可以插入表格。
(1)A. 显示并打印该文件的内容
B. 为该文件开设一个新的、空的文档窗口
C. 将该文件内容从磁盘调入内存并显示
D. 将该文件内容从内存中读出并显示
(2)
A.
B.
C.
D.
●某品牌商品销售情况表如图(a ) 所示。若想按产品类别分别累计销售量,可使用分类汇总命令。汇总的结果如图(b ) 所示。
图(a ) 图(b )
在进行分类汇总前,应先对数据清单中的记录按 (3) 字段进行排序;选择“数据/分类汇总”命令,并在弹出的“分类汇总”对话框中的“选定汇总项”列表框内,选择要进行汇总的(4)字段,再点击确认键。
(3)A. 产品 B. 销售日期 C. 销售地点 D. 销售量
(4)A. 产品 B. 销售日期 C. 销售地点 D. 销售量
● (5) 是格式正确的 E-mail 地址。
(5)A. web [email protected] B. webmaster @ rkb.gov.cn
C. http:\\ www.rkb.gov.cn D. http:// www.rkb.gov.cn
●若采用 16-bit 补码表示整数,则可表示的整数范围为(6)。
(6)A. [-2,2] B. (-2,2]
15151515C. (-2,2) D. [-2,2)
●CPU 执行算术运算或者逻辑运算时,算术逻辑运算部件(ALU )将计算结果保存在(7)中。
(7)A. 累加器 AC B. 程序计数器 PC
C. 指令寄存器 IR D. 地址寄存器 AR
●(8)不是使用光(激光)技术来存取数据的存储介质。
(8)A. DVD B. EEPROM C. CD-ROM D. CD-RW ●(9)既有检错功能又有纠错功能。
(9)A. 水平奇偶校验 B. 垂直奇偶校验 C. 海明校验 D. 循环冗余校验 ●计算机的用途不同,对其部件的性能指标要求也有所不同。以科学计算为主的计算机,对
(10)要求较高,而且应该重点考虑(11)。 15151515
(10)A. 外存储器的读写速度 B. 主机的运算速度
C. I/O 设备的速度 D. 显示分辨率
(11)A. CPU 的主频和字长,以及内存容量
B. 硬盘读写速度和字长
C. CPU 的主频和显示分辨率
D. 硬盘读写速度和显示分辨率
●声音信号的数字化过程包括采样、 (12) 和编码。
(12)A. 合成 B. 去噪 C. 量化 D. 压缩
●目前一般家庭中,点播电视系统的用户端必须配置的设备是(13)。
(13)A. 解码器 B. 调制解调器 C. 机顶盒 D. 记账设备
●多媒体计算机与普通计算机的主要区别是多媒体计算机增加了 (14) 。
(14)A. 存储信息的实体 B. 视频和音频信息的处理能力
C. 光驱和声卡 D. 大容量的磁介质和光介质
●下面关于加密的说法中,错误的是(15)。
(15)A. 数据加密的目的是保护数据的机密性
B. 加密过程是利用密钥和加密算法将明文转换成密文的过程
C. 选择密钥和加密算法的原则是保证密文不可能被破解
D. 加密技术通常分为非对称加密技术和对称密钥加密技术
●下面关于防火墙功能的说法中,不正确的是(16)。
(16)A. 防火墙能有效防范病毒的入侵
B. 防火墙能控制对特殊站点的访问
C. 防火墙能对进出的数据包进行过滤
D. 防火墙能对部分网络攻击行为进行检测和报警
●软件著作权的客体是指 (17) 。
(17)A. 公民、法人或其他组织 B. 计算机程序及算法
C. 计算机程序及有关文档 D. 软件著作权权利人
●商标法主要是保护 (18) 的权利。
(18)A. 商标设计人 B. 商标注册人 C. 商标使用人 D. 商品生产者 ●若 8 位二进制数能被 4 整除,则其最低 2 位 (19) 。
(19)A. 不可能是 01、00 B. 只能是 10 C. 可能是 01、00 D. 只能是 00 ●设两个 8 位补码表示的数 b 7b 6b 5b 4b 3b 2b 1b 0和 a 7a 6a 5a 4a 3a 2a 1a 0相加时溢出(b 7、a 7为符号标志),则(20)。
(20)A. b7与 a 7的“逻辑或”结果一定为 1
B. b7与 a 7的“逻辑与”结果一定为 0
C. b7与 a 7的“逻辑异或”结果一定为 1
D. b7与 a 7的“逻辑异或”结果一定为 0
●(21)属于并行外部总线。
(21)A. PCI B. USB C. IEEE-488 D. IEEE-1394
●若指令系统中设置了专用 I/O 操作指令,则 I/O 接口 (22) 。
(22)A. 与内存单元必须统一编址
B. 可以独立编址
C. 必须采用 DMA 方式与内存交换数据
D. 必须采用中断方式与内存交换数据
● 在 Windows 资源管理器的左窗口中,若显示的文件夹图标前带有“ ” 标志,则意味
着该文件夹 (23)。
(23)A. 是空文件夹 B. 仅含有文件 C. 含有子文件夹 D. 仅含有隐藏文件 ● 打印质量好、速度快,且工作原理与复印机相似的打印机是 (24) 。
(24)A. 行式打印机 B. 激光打印机 C. 喷墨打印机 D. 点阵打印机 ● 在 Windows 系统中,若要移动窗口,可用鼠标拖动窗口的 (25)。
(25)A. 标题栏 B. 菜单栏 C. 状态栏 D. 工具栏
● 假设系统中进程的三态模型如下图所示,图中的 a 和 b 处应分别填写 (26) ,图中的 c 和 d 处应分别填写 (27) 。
(26)A. 时间片到、作业调度程序调度 B. 执行了 P 操作、时间片到
C. 时间片到、进程调度程序调度 D. 时间片到、执行了 P 操作
(27)A. I/O 完成、执行了 P 操作 B. 执行了 P 操作、I/O 完成
C. 时间片到、执行了 V 操作 D. 执行了 V 操作、I/O 完成
● (28) 属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。
(28)A. 编译程序 B. 预处理程序 C. 汇编程序 D. 解释程序 ● (29) 属于标记语言。
(29)A. PHP B. Lisp C. XML D. SQL
●与表达式“a-(b+c)*d”对应的后缀式为(30)。
(30)A. ab-c*d+ B. abc+d*- C. abcd-+* D. abc+-*d
●下图所示的有限自动机中,s 0是初始状态,s 3为终止状态,该自动机不能识别(31) 。
(31)A. abab B. aaaa C. babb D. abba
●程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(32)是错误的。
(32)A. 根据作用域规则,在函数中定义的变量只能在函数中引用
B. 在函数中定义的变量,其生存期为整个程序执行期间
C. 在函数中定义的变量不能与其所在函数的形参同名
D. 在函数中定义的变量,其存储单元在内存的栈区
● 若算术表达式“a*(b-c)+d”采用二叉树描述,则合理的树结构为 (33) 。
● C 语言具有的“ (34) ”特性使其适用于系统级应用开发。
(34)A. 可直接对位、字节和地址进行运算 B. 目标代码短,可移植性好
C. 采用宏定义和条件编译 D. 运算符丰富,关键字数量少 ●以下关于脚本程序语言的叙述中,错误的是 (35) 。
(35)A. 脚本语言需要相应的引擎解释执行
B. 脚本语言程序一般以文本方式存在
C. 在网页设计中应用脚本可以提高网页浏览速度、丰富网页的表现
D. 脚本语言中不允许使用变量
●以下关于排序算法的叙述中,正确的是 (36)。
(36)A. 冒泡排序法中,元素的交换次数与元素的比较次数一定相同
B. 冒泡排序法中,元素的交换次数不少于元素的比较次数
C. 简单选择排序中,关键字相同的两个记录在排序前后的相对位置一定不变
D. 简单选择排序中,关键字相同的两个记录在排序前后的相对位置可能交换
●设有一个初始为空的栈,若输入序列为1、2、3、…、n (n>3),且输出序列的第一个元素是 n-1,则输入序列中所有元素都出栈后, (37) 。
(37)A. 元素 n-2 一定比 n-3 先出栈
B. 元素 1~n-2 在输出序列中的排列是不确定的
C. 输出序列末尾的元素一定为 1
D. 输出序列末尾的元素一定为 n
●某二叉树的先序遍历序列为 ABFCDE 、中序遍历序列为 BFADCE ,则该二叉树根的左孩子和右孩子结点分别是 (38) 。
(38)A. B 和 F B. F 和 B C. B 和 C D. C 和 B
●调用递归过程或函数时,处理参数及返回地址需要用一种称为 (39) 的数据结构。
(39)A. 队列 B. 栈 C. 多维数组 D. 顺序表
●已知对称矩阵 A n*n(A i,j =A j,i )的主对角线元素全部为 0,若用一维数组 B 仅存储矩阵 A 的下三角区域的所有元素(不包括主对角线元素),则数组 B 的大小为 (40) 。
(40)A. n(n-1) B. n/2 C. n(n-1)/2 D. n(n+1)/2
●设 S 是一个长度为 5 的字符串,其中的字符各不相同,则计算 S 中互异的非平凡子串(非空且不同于 S 本身)数目的算式为 (41) 。
(41)A. 5+4+3+2+1 B. 5+4+3+2 C. 4+3+2+1 D. 4+3+2
●折半(二分)查找方法对查找表的要求是 (42)。
(42)A. 链表存储结构,元素有序排列 B. 链表存储结构,元素无序排列
C. 顺序存储结构,元素有序排列 D. 顺序存储结构,元素无序排列
●若无向连通图 G 具有 n 个顶点,则以下关于图 G 的叙述中,错误的是 (43) 。
(43)A. G 的边数一定多于顶点数 B. G 的生成树中一定包含 n 个顶点
C. 从 G 中任意顶点出发一定能遍历图中所有顶点
D. G 的邻接矩阵一定是 n 阶对称矩阵 2
● (44) 是面向对象方法中最基本的封装单元,它可以把客户要使用的方法和数据呈现给外部世界,而把客户不需要知道的方法和数据隐藏起来。
(44)A. 类 B. 方法 C. 属性 D. 过程
● 在进行类设计时, (45) 可以选择 (46) 的某些操作进行完全的继承或变异。
(45)A. 派生类 B. 基类 C. 抽象类 D. 虚拟类
(46)A. 派生类 B. 基类 C. 抽象类 D. 虚拟类
● 同一个函数名(或方法名)可以对应不同的函数体(或方法代码),该特性在面向对象技术中称为 (47) 。
(47)A. 单态 B. 信息隐藏 C. 信息开放 D. 多态
● 面向对象分析的主要任务是 (48) 。
(48)A. 从宏观上描述一个软件系统应该如何组织
B. 将用户的需求用算法描述出来
C. 建立一个准确的、一致的系统模型以描述软件需要解决的问题
D. 对代码进行测试,以验证最终代码是否满足软件需求
●瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(49)。
(49)A. 瀑布模型能够非常快速地开发大规模软件项目
B. 只有很大的开发团队才使用瀑布模型
C. 瀑布模型已不再适合于现今的软件开发环境
D. 瀑布模型适用于软件需求确定,开发过程能够采用线性方式完成的项目
●一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试和维护等活动,其中 (50) 是软件工程的技术核心,其任务是确定如何实现软件系统。
(50)A. 可行性分析和项目开发计划 B. 需求分析 C. 设计 D. 编码
● UML 中的(51)给出了系统内从一个活动到另一个活动的流程,它强调对象间的控制流程。
(51)A. 协作图 B. 序列图 C. 对象图 D. 活动图
● Mc Call 软件质量模型从软件产品的运行、修正、转移等三个方面确定了 11 个质量特性, (52) 是属于产品转移方面的特性。
(52)A. 正确性 B. 可靠性 C. 互用性 D. 灵活性
●测试是软件开发过程中一个独立且非常重要的阶段。一个规范化的测试过程通常包括多个基本的测试活动。确定测试内容、进度安排、测试所需的环境和条件、测试培训安排等工作属于(53)阶段的内容。
(53)A. 拟定测试计划 B. 编制测试大纲 C. 设计和生成测试用例 D. 生成测试报告 ●某系统中一个组件的某个函数中,有一个变量没有正确初始化,在 (54) 阶段最可能发现问题。
(54)A. 单元测试 B. 集成测试 C. 确认测试 D. 系统测试
●在软件开发过程中,常采用图形表示相关的信息,(55)不用于表示软件模块的执行过程。
(55)A. N-S 盒图 B. E-R 图 C. PAD 图 D. 程序流程图
●为了扩充功能和改善性能,需要在已有软件系统中增加一些在系统分析和设计阶段没有规定的功能与性能特征,这类软件维护属于 (56) 维护。
(56)A. 正确性 B. 适应性 C. 完善性 D. 预防性
● E-R 图的三要素是 (57) 。
(57)A. 基本表、数据项和元组 B. 实体、联系和属性
C. 视图、基本表和数据项 D. 文件、记录和数据项
●按国家规定,身份证号与公民之间存在 (58) 联系。
(58)A. 一对一 B. 一对多 C. 多对一 D. 多对多
●零件关系 P (零件名,条形码,供应商,产地,价格)中的 (59) 属性可以作为该关系的主键。查询产于西安且名称为“P2”的零件,结果以零件名、供应商及零件价格分列表示,对应的 SQL 语句为:
SELECT 零件名,供应商,价格
FROM P
WHERE 零件名= 'P2' AND (60) ;
将供应商“S2”所供应的零件价格下调 2%的 SQL 语句为:
UPDATE P
(61)
WHERE 供应商= 'S2';
(59)A. 零件名 B. 条形码 C. 产地 D. 供应商
(60)A. 条形码=西安 B. 条形码='西安' C. 产地=西安 D. 产地='西安'
(61)A. SET 价格= '价格*0.98' B. SET 价格=价格*0.98
C. Modify 价格= '价格*0.98' D. Modify 价格=价格*0.98
● 算法是问题求解过程的精确描述,它为解决某一特定类型的问题规定了一个运算过程。以下关于算法的叙述中,错误的是 (62) 。
(62)A. 流程图(flow chart)是算法的一种图形表示方法
B. 用伪代码描述的算法易于转换成程序
C. 用 N/S 盒图可以保证算法的良好结构(即由顺序、选择和重复结构来表示算法)
D. 用 E-R 图可以同时描述算法步骤和数据模型
● 下表列出了数字 0~9 的某种二进制编码值及其在某类应用中出现的概率,这种编码的平均位数大约为 (63) 。
(63)A. 3.0 B. 3.6 C. 4.4 D. 5.0
● 企业中的信息处理过程包括多个阶段,对每个阶段都应有目标要求、规范的制度以及需要特别注意的事项。以下叙述中正确的是 (64) 。
(64)A. 要根据企业对输出报表的需求,选择所需收集的数据项
B. 数据排序的目的是节省存储空间
C. 选择合适的数据存储方式将使用户的检索操作更简单
D. 数据代码化将使用户识别数据更直观
● n*n 矩阵可看作是 n 维空间中的线性变换,矩阵的特征向量经过线性变换后,只是乘以某个常数(特征值),因此,特征向量和特征值在应用中具有重要的作用。下面的矩阵(其中 w 1、w 2、w 3均为正整数)有特征向量(w 1, w2, w3),其对应的特征值为 (65) 。
(65)A. 1/3 B. 1 C. 3 D. 9
●集线器是一种物理层联网设备,下面有关集线器的论述中,错误的是(66)。
(66)A. 集线器没有自动寻址能力
B. 连接在集线器上的故障设备不会影响其他结点通信
C. 集线器可以隔离广播风暴
D. 连接在集线器上的所有结点构成一个冲突域
● 路由器中加入一条主机路由,地址为 200.115.240.0,子网掩码是 (67) 。
(67) A.255.255.0.0 B. 255.255.240.0 C.255.255.255.0 D. 255.255.255.255 ●以下关于 HTML 文档的说法,正确的是(68)。
(68)A. HTML 是一种动态网页设计语言
B. HTML 文档是编译执行的
C. HTML 是一种超文本标记语言
D. HTML 文档中用户可以使用自定义标记
● B2C 电子商务网站主要支持(69)的电子商务活动。
(69)A. 企业对企业 B. 企业对政府 C. 企业对客户 D. 客户对客户
● 用户访问某 Web 网站,浏览器上显示“HTTP-404”错误,则故障原因是 (70) 。
(70)A. 默认路由器配置不当 B. 所请求当前页面不存在
C. Web 服务器内部出错 D. 用户无权访问
● The two goals of an operation system are (71) and efficiency.
(71)A. convenience B. quick C. optimize D. standardize ● A data (72) is a file that contains metadata - that is, data about data.
(72)A. structure B. table C. base D. dictionary ● Software (73) activities consume a large portion of the total life-cycle budget.
(73)A. repair B. maintenance C. change D. update
● Network software consists of (74) , or rules by which processes can communicate.
(74)A. protocols B. programs C. devices D. computers
● The firewall device is a (75) system for connecting a computer network to other computer network.
(75)A. hardware B. software C. security D. I/O
2009年上半年软考程序员考试下午试卷
试题一(共15分)
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
下面的流程图采用公式计算的近似值。
设x 位于区间 (0,1), 该流程图的算法要点是逐步累积计算每项Xn/n!的值 (作为T ),再逐步累加T 值得到所需的结果S 。当T 值小于10-5 时,结束计算。
【流程图】
试题二(共15分)
【说明】
C 语言常用整型(int )或长整型(long )来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型(例如,long long 类型,某些C 系统会提供)也无法正确表示,此时可用一维数组来表示一个整数。
假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后一组可能不足4位),每组作为1个整数存入数组。例如,大整数[***********]7在数组A 中的表示如下(特别引入-1表示分组结束):
在上述表示机制下,函数add_large_number(A,B,C)将保存在一维整型数组A 和B 中的两个大整数进行相加,结果(和数)保存在一维整型数组C 中。
【C 函数】
void add_large_number(int A[], int B[], int C[]) { int i, cf ; /*cf存放进位*/ int t, *p; /*t为临时变量,p 为临时指针*/ cf = (1) ;
for(i = 0; A[i]>-1 && B[i]>-1; i++) {
/*将数组A 、B 对应分组中的两个整数进行相加*/
t = (2) ;
C[i] = t % 10000;
cf = (3) ;
}
if ( (4) ) p = B;
else p = A;
for( ; p[i]>-1; i++) { /*将分组多的其余各组整数带进位复制入数组C*/
C[i] = (p[i] + cf) %10000; cf = (p[i] + cf) /10000; } if ( cf > 0 ) C[i++] = cf; (5) = -1; /*标志" 和数" 的分组结束*/
}
试题三(共15分)
阅读以下说明、C 函数和问题,将解答填入答题纸的对应栏内。
【说明】
二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: ● 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; ● 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; ● 左、右子树本身就是二叉查找树。
设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:
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 key_value)
return (3) ;
else
return (4) ;
}
【问题1】
请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。
【问题2】
若某二叉查找树中有n 个结点,则查找一个给定关键字时,需要比较的结点个数取决于 (5) 。
试题四(共15 分)
阅读以下两个说明、C 函数和问题,将解答写入答题纸的对应栏内。
【说明1】
函数 main()的功能旨在对输入的一个正整数 n ,计算 ,但是对该函数进行测试后没有得到期望的结果。
【C 函数1】
1. 输入5测试上述main 函数时,显示结果如下所示。
2. 将行号为7的代码修改为:printf("n = %d\nresult: %d\n", n, sum); 并再次输入5测试main 函数,显示结果如下所示。
【问题1】(9 分)
请给出上述main 函数中需要修改的代码行号,并给出修改后的整行代码。
【说明2】
函数test_f2()编译时系统报告有错,修改后得到函数f2_B()。对函数f2_B()进行编译时顺利通过,在某些C 系统中执行时却由于发生异常而不能正确结束。
【C 函数2】
【问题2】(6 分)
(1)请指出函数test_f2中不能通过编译的表达式;
(2)请指出可能导致函数f2_B 运行异常的表达式。
从下列2道试题(试题五至试题六)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
试题六(共15 分)
阅读以下说明和Java 代码,将应填入 (n ) 处的字句写在答题纸的对应栏内。
【说明】
java.util 包中提供了HashMap 模板类,该模板类可以表示多个“键-值”对的集合,其中 “键” 的作用与普通数组中的索引相当,而 “值” 用作待存储和检索的数据。 HashMap 实现了Map 接口。在Map 接口中定义了put 和get 方法,put 方法表示Map 对象中加入一个“键-值”对,get 方法则通过“键”来获取其对应的“值” 。
下面的Java 代码中使用了HashMap 模板类,将编号为1001、1002、1003的员工信息插入到HashMap 对象中,然后输入一个指定的员工编号,通过员工编号来获取员工的基本信息。员工编号为整型编码,而员工的基本信息定义为类employee 。
HashMap 对象与员工对象之间的关系及存储结构如图6-1所示。
[日期:2009-05-25] 来源: 作者:未知 [字体:大 中 小]
【Java 代码】
import java.util.*; class employee{ employee(String name,String phoneNumber, String address){ this.name = name; this.phoneNumber = phoneNumber; this.address = address; } String name; String phoneNumber; String address; }; public class javaMain { public static void main(String[] args) { Map employeeMap = new HashMap(); for (Integer employIndex = 1001; employIndex
int employeeNo = 0;
System.out.print("请输入员工编号:");
Scanner s= new Scanner(System.in); employeeNo = s.nextInt(); //从标准输入获得员工编号 employee result = employeeMap. (4) (employeeNo); if ( (5) == null)
{
System.out.println("该员工编号不存在 !");
return;
}
System.out.println("你所查询的员工编号为:" + employeeNo); System.out.println("该员工姓名:" + result.name); System.out.println("该员工电话:" + result.phoneNumber); System.out.println("该员工地址:" + result.address ); }
}