当前位置:文档之家› 程序员历年试题分析与解答(2010年最新版)

程序员历年试题分析与解答(2010年最新版)

程序员历年试题分析与解答(2010年最新版)
程序员历年试题分析与解答(2010年最新版)

第1章2005上半年程序员级上午试题分析与解答

试题(1)~(3)

使用常用文字编辑工具编辑正文时,为改变该文档的文件名,常选用(1)命令;在“打印预览”方式下,单击“(2)”按钮可返回编辑文件;将正文中所有“Computer”改写为“计算机”,常选用(3)命令。

(1)A.“文件”→“另存为”B.“文件”→“保存”

C.“插入”→“对象”D.“工具”→“选项”

(2)A.打印预览B.放大镜C.关闭D.全屏显示

(3)A.“编辑”→“查找”B.“编辑”→“替换”

C.“编辑”→“定位”D.“文件”→“搜索”

试题(1)~(3)分析

本题考查的是计算机文字处理中的基本操作。

使用常用文字编辑工具编辑正文时,为改变该文档的文件名,常选用主菜单栏上的“文件”子菜单,再选择“另存为”命令名,此时系统弹出对话框,用户可以键入新的文件名,达到更改文件的目的。

在“打印预览”方式下,单击“关闭”按钮可返回编辑文件。

将正文中所有“Computer”改写为“计算机”,常选用主菜单栏上的“编辑”子菜单,再选择“替换”命令,此时系统弹出对话框,用户可以在“查找内容”栏中键入“Computer”,在“替换为”栏中键入“计算机”,如下图所示。

参考答案

(1)A (2)C (3)B

2

程序员历年试题分析与解答

试题(4)

使用Windows操作系统,在“我的电脑”中选择某磁盘中的文件,再选择“查看”菜单中的“(4)”,可查看该文件建立(或最近修改)的时间和文件大小。

(4)A.大图标B.排列图标C.列表D.详细资料

试题(4)分析

本题考查的是Windows操作系统的基本应用。

使用Windows操作系统,在“我的电脑”中选择某磁盘中的文件,假设选择D盘,并采用“大图标”的方式,屏幕显示如下图所示。

采用“排列图标”的方式,屏幕显示如下图所示,此时,选择按名称或按类型等,系统不能显示文件建立(或最近修改)的时间和文件大小。

采用“列表”的方式,屏幕显示如下图所示。

第1章2005上半年程序员级上午试题分析与解答 3

采用“详细资料”的方式,屏幕显示如下图所示。此时系统显示文件建立(或最近修改)的时间和文件大小。

参考答案

(4)D

试题(5)、(6)

在Windows操作系统中,选择一个文件图标,执行“剪切”命令后,“剪切”的文件放在(5)中;选定某个文件夹后,(6),可删除该文件夹。

(5)A.回收站B.硬盘C.剪贴板D.软盘(6)A.在键盘上单击退格键

B.右击打开快捷菜单,再选择“删除”命令

C.在“编辑”菜单中选用“剪切”命令

D.将该文件属性改为“隐藏”

4

程序员历年试题分析与解答

试题(5)、(6)分析

本题考查的是Windows操作系统的基本应用。

在Windows操作系统中,选择一个文件图标,执行“剪切”命令后,“剪切”的文件放在“剪贴板”中。选定某个文件夹后,右击打开快捷菜单,再选择“删除”命令,可删除该文件夹。利用Windows“资源管理器”删除文件或文件夹的主要方法有:?在“资源管理器”中选择要删除的文件或文件夹,打开窗口的“文件”菜单,单击“删除”命令,即可删除文件或文件夹;

?在驱动器或文件夹的窗口中选择要删除的文件或文件夹,直接敲击键;

?在“资源管理器”中选择要删除的文件或文件夹,用鼠标直接拖动选中的文件夹到“回收站”;

?在要删除的文件或文件夹图标上单击鼠标右键,选择“删除”命令;

?在驱动器或文件夹窗口中,选择要删除的文件同时按下+键。

参考答案

(5)C (6)B

试题(7)

在(7)表示中,数值0是唯一表示的。

(7)A.原码B.反码C.补码D.原码或反码

试题(7)分析

在对数值的两种编码中,数值0,若用8位二进制编码表示,可用原码00000000或10000000来表示。若用反码表示,则可表示为00000000或11111111。用补码表示,则只能用00000000来表示。而用移码表示,则唯一的数值是10000000。故答案应为C。参考答案

(7)C

试题(8)、(9)

若用8位机器码表示十进制数–101,则原码表示的形式为(8);补码表示的形式为(9)。

(8)A.11100101 B.10011011 C.11010101 D.11100111

(9)A.11100101 B.10011011 C.11010101 D.11100111

试题(8)、(9)分析

首先,将纯分数X= –(101/128)转化为8位二进制编码为–0.1100101。再求X的用原码表示的编码,现X为一负的纯小数,则符号位为1,而后跟数值,故其原码表示为11100101。

当用补码表示时,相当于上面的原码符号位不变,其后编码反加1,故其原码表示为10011011。

第1章2005上半年程序员级上午试题分析与解答 5

参考答案

(8)A (9)B

试题(10)

某逻辑电路有两个输入端分别为X和Y,其输出端为Z。当且仅当两个输入端X和Y同时为0时,输出Z才为0,则该电路输出Z的逻辑表达式为(10)。

(10)A.X·Y B.X·Y C.X⊕Y D.X+Y

试题(10)分析

从逻辑表达式X·Y可以看到,只要两输入有一个为0,便可以输出Z为0。逻辑表达式X·Y则是只有当两输入X、Y同时为1时,输出Z为0。X⊕Y表达式在两输入均为1时,输出Z为0。也就是说,可供选择的A、B、C均不能满足。只有当且仅当两个输入端X和Y同时为0时,输出Z才为0,只有逻辑表达式为X+Y可以满足题目所给出的条件。

参考答案

(10)D

试题(11)、(12)

某计算机内存按字节编址,内存地址区域从44000H到6BFFFH,共有(11)K 字节。若采用16K×4bit的SRAM芯片,构成该内存区域共需(12)片。

(11)A.128 B.160 C.180 D.220

(12)A.5 B.10 C.20 D.32

试题(11)、(12)分析

将大地址加1等于6C000H,再将大地址减去小地址,即6C000H–44000H=28000H。十六进制的(28000)16=217+215=128K+32K=160K(字节)。

由于内存是按字节编址的,也就是说每16K个内存单元需两片SRAM芯片。所以要构成160K字节的内存共需20片。

参考答案

(11)B (12)C

试题(13)、(14)

CPU执行程序时,为了从内存中读取指令,需要先将(13)的内容输送到(14)上。

(13)A.指令寄存器B.程序计数器(PC)

C.标志寄存器D.变址寄存器

(14)A.数据总线B.地址总线C.控制总线D.通信总线

试题(13)、(14)分析

根据题目的条件,说的是在CPU从内存中读取指令的时候,即存取指周期里,CPU 首先将程序计数器的内容送到地址总线上,同时送出内存的读控制信号,将所选中的内

6

程序员历年试题分析与解答

存单元的内容读入CPU,并将其存放在指令寄存器中。

参考答案

(13)B (14)B

试题(15)

(15)技术是在主存中同时存放若干个程序,并使这些程序交替执行,以提高系统资源的利用率。

(15)A.多道程序设计B.Spooling C.缓冲D.虚拟设备

试题(15)分析

本题考查的是操作系统多道程序方面的基本概念。为进一步提高系统资源的利用率,可采用多道程序技术,即在内存中同时存放若干道程序,并允许这些程序在系统中交替运行。采用多道程序设计技术,从宏观上看多个程序在同时执行,但微观上看它们是在交替执行或称并发执行。

参考答案

(15)A

试题(16)、(17)

在下列存储管理方案中,(16)是解决内存碎片问题的有效方法。虚拟存储器主要由(17)组成。

(16)A.单一连续分配B.固定分区C.可变分区D.可重定位分区(17)A.寄存器和软盘B.软盘和硬盘

C.磁盘区域与主存D.CDROM和主存

试题(16)分析

引入可变分区后虽然主存分配更灵活,也提高了主存利用率,但是由于系统在不断地分配和回收中,必定会出现一些不连续的小的空闲区,尽管这些小的空闲区的总和超过某一个作业要求的空间,但是由于不连续而无法分配,产生了碎片。解决碎片的方法是拼接(或称紧凑),即向一个方向(例如向低地址端)移动已分配的作业,使那些零散的小空闲区在另一方向连成一片。分区的拼接技术,一方面是要求能够对作业进行重定位,另一方面系统在拼接时要耗费较多的时间。可重定位分区是解决碎片问题的简单而又行之有效的方法。基本思想:移动所有已分配好的分区,使之成为连续区域。分区“靠拢”的时机:当用户请求空间得不到满足时或某个作业执行完毕时。由于靠拢是要代价的,所以通常是在用户请求空间得不到满足时进行。

试题(17)分析

本题考查的是操作系统存储管理方面的基础知识。

一个作业在运行之前,没有必要把作业全部装入主存,而仅将那些当前要运行的那部分页面或段,先装入主存便可启动运行,其余部分暂时留在磁盘上。

程序在运行时如果它所要访问的页(段)已调入主存,便可继续执行下去;但如果

第1章2005上半年程序员级上午试题分析与解答7

程序所要访问的页(段)尚未调入主存(称为缺页或缺段),此时程序应利用OS所提供的请求调页(段)功能,将它们调入主存,以使进程能继续执行下去。

如果此时主存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将主存中暂时不用的页(段)调出至磁盘上,腾出足够的主存空间后,再将所要访问的页(段)调入主存,使程序继续执行下去。这样,便可使一个大的用户程序在较小的主存空间中运行;也可使主存中同时装入更多的进程并发执行。从用户角度看,该系统所具有的主存容量,将比实际主存容量大得多,人们把这样的存储器称为虚拟存储器。

虚拟存储器具有请求调入功能和置换功能,仅把作业的一部分装入主存便可运行作业,是能从逻辑上对主存容量进行扩充的一种虚拟存储器系统。其逻辑容量由主存和外存容量之和,以及CPU可寻址的范围来决定,其运行速度接近于主存速度,成本却比较低。可见,虚拟存储技术是一种性能非常优越的存储器管理技术,故被广泛地应用于大、中、小型机器和微型机中。

参考答案

(16)D (17)C

试题(18)、(19)

某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取产品消费。假设该缓存区只能容纳一个产品。进程P1与P2的同步模型如下图所示:

为此,应设信号量S1的初值为(18),信号量S2的初值为(19)。

(18)A.–2 B.–1 C.0 D.1

(19)A.–2 B.–1 C.0 D.1

试题(18)、(19)分析

由于系统中只有一个缓冲区,需要设置一个信号量S1,且初值为1,表示缓冲区空,可以将产品送入缓冲区。为了实现P1与P2进程间的同步问题,设置另一个信号量S2,且初值为0,表示缓冲区有产品。这样,当生产者进程P1生产产品送入缓冲区时需要判断缓冲区是否为空,需要执行P(S1),产品放入缓冲区后需要执行V(S2),通知消费者缓冲区已经有产品。而消费者进程P2在取产品消费之前必须判断缓冲区是否有产品,

8

程序员历年试题分析与解答

需要执行P(S2),取走产品后缓冲区空了,需要执行V(S1),释放缓冲区。

参考答案

(18)D (19)C

试题(20)~(22)

数据库管理技术是在(20)的基础上发展起来的。数据模型的三要素是数据结构、数据操作和(21)。建立数据库系统的主要目标是减少数据的冗余,提高数据的独立性,并集中检查(22)。

(20)A.文件系统B.编译系统C.应用程序系统D.数据库管理系统(21)A.数据安全B.数据兼容C.数据约束条件D.数据维护

(22)A.数据操作性B.数据兼容性C.数据完整性D.数据可维护性

试题(20)~(22)分析

数据库系统由数据库、数据库管理系统、硬件和用户组成。数据库管理系统是为了在计算机系统上实现某种数据模型而开发的软件系统。数据库是通过数据库管理系统把相互关联的数据系统地组织起来,为多种应用服务,且使冗余度尽可能最小的数据集合。数据库系统是在文件系统的基础上发展起来的。

数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作、数据的约束条件。例如,大家熟悉的文件系统。它所包含的概念有文件、记录、字段。其中,数据结构和约束条件为对每个字段定义数据类型和长度;文件系统的数据操作包括打开、关闭、读、写等文件操作。以上描述的仅是一个简单的数据模型,没有描述数据间的联系。

数据库管理技术的主要目标包括:

?实现不同的应用对数据的共享,减少数据的重复存储,消除潜在的不一致性。

?实现数据独立性,使应用程序独立于数据的存储结构和存取方法,从而不会因为对数据结构的更改而要修改应用程序。

?由系统软件提供数据安全性和完整性上的数据控制和保护功能。

参考答案

(20)A (21)C (22)C

试题(23)

在关系代数运算中,(23)运算结果的关系模式与原关系模式相同。

(23)A.并B.笛卡儿积C.投影D.自然连接

试题(23)分析

本题考查的是关系代数方面的基础知识。在关系代数中并运算是一个二元运算,要求参与运算的两个关系结构必须相同,运算结果的结构与原关系模式的结构相同。而笛卡儿积和自然连接尽管也是一个二元运算,但参与运算的两个关系结构不必相同。投影运算是向关系的垂直方向运算,运算的结果要去调某些属性列,所以运算的结果与原

第1章2005上半年程序员级上午试题分析与解答9

关系模式不同。

参考答案

(23)A

试题(24)

学生关系模式为S(Sno,Sname,SD,Sage),其中:Sno表示学生学号,Sname 表示学生姓名,SD表示学生所在系,Sage表示学生年龄。试将下面的SQL语句空缺部分补充完整,使其可以查询计算机系学生的学号、姓名和年龄。

SELECT Sno, Sname, Sage

FROM S

WHERE (24);

(24)A.SD=计算机B.SD='计算机' C.'SD'=计算机D.'SD=计算机'

试题(24)分析

本题考查的是SQL与关系代数方面的基础知识。查询计算机系的学生学号、姓名和年龄,计算机是一个字符型的。

选项A中计算机未用引号,所以是无法正确查询的。选项B是正确的。选项C将属性名SD用引号括起,而计算机未用引号括起,所以是无法正确查询的。选项D将条件全部用引号括起,所以也是无法正确查询的。

参考答案

(24)B

试题(25)

GB/T 14394—93《计算机软件可靠性和可维护性管理》是(25)。

(25)A.推荐性国家标准B.强制性国家标准

C.指导性技术文件D.行业推荐性标准

试题(25)分析

我国标准的编号由标准代号、标准发布顺序号和标准发布年代号构成。根据我国标准分类管理方法:

国家标准的代号由大写汉字拼音字母构成,强制性国家标准代号为GB,推荐性国家标准的代号为GB/T。

标准化指导性技术文件是为仍处于技术发展过程中(为变化快的技术领域)的标准化工作提供指南或信息,供科研、设计、生产、使用和管理等有关人员参考使用而制定的标准文件。

行业标准代号由汉字拼音大写字母组成。行业标准代号由国务院各有关行政主管部门提出其所管理的行业标准范围的申请报告,国务院标准化行政主管部门审查确定并正式公布该行业标准代号。已正式公布的行业代号:QJ(航天)、SJ(电子)、JB(机械)、JR(金融系统)等。

10

程序员历年试题分析与解答

参考答案

(25)C

试题(26)

我国知识产权具有法定的保护期限,但(26)受法律保护的期限是不确定的。

(26)A.发明专利权B.商标权C.商业秘密D.作品发表权

试题(26)分析

知识产权具有法定的保护期限,一旦保护期限届满,权利将自行终止,成为社会公众可以自由使用的知识。至于期限的长短,依各国的法律确定。例如,我国发明专利的保护期为20年,实用新型专利权和外观设计专利权的期限为10年,均自专利申请日起计算;我国公民的作品发表权的保护期为作者终生及其死亡后50年。我国商标权的保护期限自核准注册之日起10年,但可以根据其所有人的需要无限地续展权利期限,在期限届满前6个月内申请续展注册,每次续展注册的有效期10年,续展注册的次数不限。如果商标权人逾期不办理续展注册,其商标权也将终止。商业秘密受法律保护的期限是不确定的,该秘密一旦为公众所知悉,即成为公众可以自由使用的知识。

参考答案

(26)C

试题(27)

甲程序员为乙软件设计师开发的应用程序编写了使用说明书,并已交付用户使用,(27)该应用软件的软件著作权。

(27)A.甲程序员享有B.乙软件设计师享有

C.甲程序员不享有D.甲程序员和乙软件设计师共同享有试题(27)分析

计算机软件著作权的客体是指著作权法保护的计算机软件著作权的范围(受保护的对象)。根据著作权法第三条和《计算机软件保护条例》第二条的规定,著作权法保护的计算机软件是指计算机程序及其有关文档。著作权法所称对计算机软件的保护是指计算机软件的著作权人或者其受让者依法享有著作权的各项权利。

根据《计算机软件保护条例》第三条第二款的规定,计算机程序的文档是指用自然语言或者形式化语言所编写的文字资料和图表,以用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法等。文档一般以程序设计说明书、流程图、用户手册等表现。

参考答案

(27)D

试题(28)

(28)不能减少用户计算机被攻击的可能性。

(28)A.选用比较长和复杂的用户登录口令

第1章2005上半年程序员级上午试题分析与解答11

B.使用防病毒软件

C.尽量避免开放过多的网络服务

D.定期扫描系统硬盘碎片

试题(28)分析

本题考查的是在计算机日常操作安全方面的一些基本常识。

在实际中,人们往往为了“易于记忆”、“使用方便”而选择简单的登录口令,例如生日或电话号码等,但也因此易于遭受猜测,攻击或字典攻击。因此,使用比较长和复杂的口令有助于减少猜测攻击、字典攻击或暴力攻击的成功率。使用防病毒软件,并且即时更新病毒库,有助于防止已知病毒的攻击。人们编制的软件系统经常会出现各种各样的问题(Bug),因此,尽量避免开放过多的网络服务,意味着减少可能出错的服务器软件的运行,能够有效减少对服务器攻击的成功率。尽量避免开放过多的网络服务,还可以避免针对相应网络服务漏洞的攻击。定期扫描系统磁盘碎片对系统效率会有所帮助,但是对安全方面的帮助不大。

参考答案

(28)D

试题(29)

(29)不是通信协议的基本元素。

(29)A.格式B.语法C.传输介质D.计时

试题(29)分析

本题考查的是网络通信协议的一些基本概念。

计算机网络通信协议就是计算机双方必须共同遵守的一组约定,例如怎样建立连接,怎样互相识别。因此,协议是互相共同遵守的一组约定,语法、语义和计时。计时的目的是实现同步。

参考答案

(29)C

试题(30)

使用FTP协议进行文件下载时,(30)。

(30)A.包括用户名和口令在内,所有传输的数据都不会被自动加密

B.包括用户名和口令在内,所有传输的数据都会被自动加密

C.用户名和口令是加密传输的,而其他数据则以明文方式传输

D.用户名和口令是不加密传输的,其他数据是加密传输的

试题(30)分析

本题考查的是FTP传输数据的基本知识。

FTP协议是文件传输协议,可以用于上传或下载文件,是一种广泛应用的应用层协议。但是,在安全方面,也有其弱点。需要注意的是,FTP在传输时并不对数据进行加

12

程序员历年试题分析与解答

密操作,所有被传输的数据都是明文,甚至对用户名和口令等敏感信息也是这样。

参考答案

(30)A

试题(31)~(34)

在面向对象方法中,对象是类的实例。表示对象相关特征的数据称为对象的(31),在该数据上执行的功能操作称为对象的(32);一个对象通过发送(33)来请求另一个对象为其服务。通常把一个类和这个类的所有对象称为类及对象或对象类。在UML中,用来表示显示构成系统的对象类以及这些对象类之间关系的图是(34)。

(31)A.数据变量B.数据结构C.属性D.定义

(32)A.行为B.调用C.实现D.函数

(33)A.调用语句B.消息C.命令D.函数

(34)A.用例图B.构件图C.类图D.对象图

试题(31)~(34)分析

在面向对象方法中,对象是类的实例。其中,表示对象相关特征的数据称为对象的属性,在该数据上执行的功能操作称为对象的行为;一个对象通过发送消息来请求另一个对象为其服务。通常把一个类和这个类的所有对象称为类及对象或对象类。

在UML中,类图是显示一组类、接口、协作以及它们之间关系的图。类图用于对系统的静态设计视图建模。

参考答案

(31)C (32)A (33)B (34)C

试题(35)

数据结构主要研究数据的(35)。

(35)A.逻辑结构

B.存储结构

C.逻辑结构和存储结构

D.逻辑结构和存储结构及其运算的实现

试题(35)分析

计算机加工的数据元素不是互相孤立的,它们彼此间一般存在着某些联系,这些联系需要在对数据进行存储和加工时反映出来。因此,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。数据结构一般包括三方面的内容,也就是它的三要素:数据之间的逻辑关系、数据在计算机中的存储关系以及在这些数据上定义的运算。

数据的逻辑结构是数据间关系的描述,它只抽象的反映数据元素间的逻辑关系,而不管其在计算机中的存储方式。数据的逻辑结构是从逻辑关系上描述数据,它与数据的

第1章2005上半年程序员级上午试题分析与解答13

存储无关。

数据的存储结构是逻辑结构在计算机存储器中的表示(又称映像),它包括数据元素的表示和关系的表示。存储结构主要分为顺序结构和链式结构。

数据的运算式在数据上所施加的一系列操作,称为抽象运算。它只考虑这些操作的功能是怎样的,而暂不考虑其如何实现完成。只有在确定了存储结构之后,才会具体考虑实现这些操作。

无论怎样定义数据结构,都应该将数据的逻辑结构、数据的存储结构以及数据的运算这三方面看成一个整体。

参考答案

(35)D

试题(36)

PUSH和POP命令常用于(36)操作。

(36)A.队列B.数组C.栈D.记录

试题(36)分析

栈式限定在表为进行插入和删除操作的线性表。换句话说,栈的修改是按先进后出的原则进行的。因此,栈又称为先进后出的线性表。对栈来说,表尾端有特殊的含义,称为栈顶,相应地,表头端称为栈底。线性表上的基本运算是插入和删除,在栈中对应的就是入栈和出栈操作,也就是平时所说的PUSH和POP运算。

参考答案

(36)C

试题(37)

具有n(n>0)个顶点的无向图最多含有(37)条边。

(37)A.n(n–1)B.C.D.n(n+1)

试题(37)分析

图是一种较为复杂的数据结构,元素之间的关系可以是任意的,图中任意两个元素之间都可能相关。无向图指是图中的边都是无方向的图。如果无向图中任何两个顶点之间都存在无向边,此时无向图具有最多的边个数称为无向完全图。

参考答案

(37)C

试题(38)

如果根的层次为1,具有61个结点的完全二叉树的高度为(38)。

(38)A.5 B.6 C.7 D.8

试题(38)分析

一棵深度为k且有2k–1个结点的二叉树称为满二叉树。若对满二叉树的结点进行连

程序员历年试题分析与解答

14 续编号,约定编号从根结点开始,从上而下,从左至右。那么深度为k 的有n 个结点的二叉树,当且仅当其每一个结点都与深度为k 的满二叉树中编号从1至n 的结点一一对应,称为完全二叉树。完全二叉树的一个性质是具有n 个结点的完全二叉树的深度为2log 1n +???

?。 参考答案

(38)B

试题(39)

从未排序的序列中依次取出一个元素与已排序序列中的元素进行比较,然后将其放

在已排序序列的合适位置上,该排序方法称为 (39) 。

(39)A .插入排序 B .选择排序 C .希尔排序

D .归并排序

试题(39)分析 将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表,

这称为插入排序。选择排序的基本思想是通过n –i 次关键字间的比较,从n –i +1个记录中选出关键字最小的记录,并与第i 个记录交换。希尔排序的基本思想是先将整个记录序列分割成若干个子序列分别进行排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次排序。归并排序的基本思想是将两个或两个以上的有序表组合成一个新的有序表。

参考答案

(39)A

试题(40)

数组是一种数据结构,对数组通常进行的两种基本操作是 (40) 。

(40)A .插入和删除 B .插入和赋值

C .查找和修改

D .查找和删除

试题(40)分析

n 维数组是一种“同构”的数据结构,即它的每个数据元素类型相同,结构一致。

它是线性表在维数上的扩充,也就是线性表中的元素又是一个线性表。应当注意的是数组不能进行整体的运算,只能对单个数组元素进行操作。因此对数组通常进行的两种基本操作是查找和修改。

参考答案

(40)C

试题(41)~(43)

(41) 程序可以找出C 语言源程序中的语法错误。为某个应用而用不同高级语

言编写的程序模块经分别编译产生 (42) ,再经过 (43) 处理后形成可执行程序。

(41)A .汇编 B .预处理 C .编辑 D .C 语言编译

(42)A .汇编程序

B .子程序

C .动态程序

D .目标程序 (43)A .汇编程序 B .目标程序 C .连接程序 D .模块化

第1章2005上半年程序员级上午试题分析与解答15

试题(41)~(43)分析

由汇编语言和各种高级语言编写的程序称为源程序,源程序必须翻译成机器语言程序后才能在机器上运行,因此就出现了语言处理程序。实现高级语言到机器语言(或汇编语言)翻译的基本模式有两种:编译方式和解释方式,所实现的语言处理程序就相应地被称为编译程序和解释程序。

编译程序将用高级语言编写的程序翻译成目标程序后保存在另一个文件中,该目标程序经连接处理后可脱离源程序和编译程序而直接在机器上反复多次运行。解释程序是将翻译和运行结合在一起进行,翻译一段源程序后,紧接着就执行它,不保存翻译的结果。

程序语言不同,为其实现的编译程序或解释程序都不同,C语言是一种通用的高级程序设计语言,需要用针对C语言的编译程序对其进行翻译。

程序员编写的源程序中往往会有一些错误,这些错误大致被分为静态错误和动态错误两类。静态错误又可以分为语法错误和静态语义错误。词法和语法错误是指有关语言结构上的错误,如单词拼写错误就是一种词法错误,表达式中缺少操作数、括号不匹配是不符合语法规则要求的语法错误等。静态的语义错误是指分析源程序时可以发现的语言意义上的错误,如整除取余的两个操作数中一个是整型数据,而另一个是实型数据。静态错误应该在编译的不同阶段被检查出来。所谓动态错误,是指源程序中的逻辑错误,它们发生在程序运行的时候,比如算法逻辑上的错误。动态错误也被称为动态语义错误,如变量取值为0是被用作除数,引用数组元素时下标出界等。

对于程序语言,编辑程序的主要任务是用于源程序的输入和修改,而C语言的预处理程序主要进行源程序中字符串的替换过程,它们都不涉及程序中的错误处理。

参考答案

(41)D (42)D (43)C

试题(44)

SQL是一种(44)程序设计语言。

(44)A.过程式B.非过程式C.面向对象D.逻辑程序设计

试题(44)分析

SQL是结构化查询语言(Structured Query Language)的简称,它是非过程式的程序设计语言,最早是由IBM的San Jose研究室(即现在的Almaden研究中心)提出。SQL 除了具有查询数据库的功能以外,还具有定义数据结构、修改数据和说明安全性约束条件等特性。美国国家标准协会(ANSI)和国际标准化组织(ISO)制定了一系列SQL标准,主要有SQL-86,SQL-89,SQL-92,SQL-3等。以数据的删除为例,在过程式语言中,首先找到待删除的数据,然后再根据数据的存储结构实施删除操作,例如,若数据存储在一维数组中,则被删除元素的后继元素需要依次向前移动。而在非过程式语言SQL中,程序员使用“delete from r where p”删除关系r(结构化的数据元素集合)中所

16

程序员历年试题分析与解答

有满足条件p的元组,至于数据的存储结构和删除时需要的具体操作就无需关心了。

参考答案

(44)B

试题(45)

(45)不是C语言的关键字。

(45)A.do B.else C.fopen D.static

试题(45)分析

程序语言的关键字是设计和实现语言时规定的一些有特殊含义的标识符,“do”是与“while”匹配的关键字,“else”与“if”匹配,“static”用于指示出静态存储类别,也是关键字。“fopen”是标准输入输出库中用于文件打开操作的函数名,它不是关键字。参考答案

(45)C

试题(46)

设数组a[1…10,5…15]的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](1≤i≤10,5≤j≤15)的地址计算公式为(46)。

(46)A.a–204+2i+j B.a–204+40i+4j C.a–84+i+j D.a–64+44i+4j

试题(46)分析

二维数组中的元素可以用两种方式存储:以行为主序(按行存储)或以列为主序(按列存储)。对于一个m行n列的二维数组,当数组元素以行为主序存储时,首先存储第一行的所有元素,第二行的元素存储在第一行的元素之后,第三行的所有元素存储在第二行的元素之后,依此类推,第m行的元素最后存储。每行的元素按列下标次序从低到高依次存储。同理,以列为主序存储时,先存储第一列的元素,然后是第二列的元素,依此类推,最后是第n列的元素。

对于二维数组a[L1…H1,L2…H2],无论采用哪一种存储方式,都可以采用以下通式计算数组中元素a[i,j]在存储空间中的位置:

loc(a[i,j])=loc(a[L1,L2])+k*d

其中,k表示数组中存储在a[i,j]之前的元素数目;d表示每个数组元素占用的存储单元个数。当数组的元素以列为主序存放时,存储在a[i,j]之前的元素数目k为

k = (i–L1)*(H2–L2+1)+( j–L2)

因此对于题目中定义的数组a[1…10,5…15],以行为主序存放时,a[i,j](1≤i≤10,5≤j≤15)的地址计算公式为

loc(a[I,j]) = loc(a[L1,L2])+((i–1)*11+( j–5))*4 = a–64+44i+4j

参考答案

(46)D

第1章2005上半年程序员级上午试题分析与解答17

试题(47)、(48)

已知函数f1()、f2()的定义如下图所示,如果调用函数f1时传递给形参x的值是2,若a和y以引用调用(call by reference)的方式传递信息,则函数f1的返回值为(47);若a和y以值调用(call by value)的方式传递信息,则函数f1的返回值为(48)。

(47)A.6 B.10 C.14 D.随机数

(48)A.4 B.6 C.10 D.12

试题(47)、(48)分析

引用调用和值调用是进行过程(函数)调用时实在参数与形式参数间传递信息的两种基本方式。

在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实在参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实在参数变量中。

在引用调用方式下,题目中过程f2的执行语句对y的修改结果就是a的值,即a的值在f2中被改为7(即y=2*3+1),在f1中没有修改x的值,所以f1的返回值为14(7*2)。在值调用方式下,在f2中修改y的值不会影响实参a,所以f1的返回值为6(3*2)。

参考答案

(47)C (48)B

试题(49)

以下关于编程风格的叙述中,不应提倡的是(49)。

(49)A.使用括号以改善表达式的清晰性

B.用计数方法而不是文件结束符来判断文件的结束

C.一般情况下,不要直接进行浮点数的相等比较

D.使用有清晰含义的标识符

试题(49)分析

由于编码的依据是详细设计的结果,因此程序的质量主要取决于设计。但是,编程

18

程序员历年试题分析与解答

的质量也在很大程度上影响着程序的质量。编码风格涉及到:源程序中的内部文档、数据说明、语句构造以及输入/输出。

在编码过程中,最主要的工作就是书写语句。有关书写语句的原则有几十种,其目的是希望每条语句尽可能简单明了,能直截了当地反映程序员的意图。使用括号清晰地表达出逻辑表达式和算术表达式的运算次序是语句构造的规则之一。

对源程序中的内部文档的要求主要包括选择标识符的名字、适当的注释和程序的视觉组织。在选择标识符的名字时,应尽量选择含义明确的名字,使它能正确提示标识符所代表的实体。

输入和输出是每个程序都不可缺少的部分。在编写输入和输出程序段时,如果遇到需要计数的情况,应使用数据结束标记(如数据文件结束标记),而不应要求用户输入数据的个数。

在计算机内部,浮点数采用科学记数法表示。但是有些十进制小数无法精确地表示成二进制小数。因此应尽量避免对两个浮点数直接进行“= =”和“!=”比较运算(特别是在循环条件中),如果需要,可采用判断两者的差的绝对值是否小于某个很小的数来实现。参考答案

(49)B

试题(50)

一般地,可以将软件开发的生命周期划分为软件项目计划、(50)、软件设计、编码、测试和运行/维护6个阶段。

(50)A.可行性分析B.初始调查C.需求分析与定义D.问题分析

试题(50)分析

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等多个阶段,一般称为软件生存周期。根据这一思想,把上述基本的过程活动进一步展开,可以得到软件生存周期的6个阶段工作:软件项目计划、需求分析与定义、软件设计、编码、测试以及运行/维护。其中软件项目计划阶段的任务是确定待开发软件系统的总目标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划。

参考答案

(50)C

试题(51)、(52)

软件的(51)是指软件从一种计算机系统转换到另一种计算机系统运行的难易程度。在规定的条件下和规定的时间间隔内,软件实现其规定功能的概率称为(52)。

(51)A.兼容性B.可移植性C.可转换性D.可扩展性

(52)A.可扩展性B.可接近性C.可靠性D.稳定性

试题(51)、(52)分析

软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性

第1章2005上半年程序员级上午试题分析与解答19

全体。在ISO/IEC9126软件质量模型中定义了6个质量特性:功能性、可靠性、易使用性、效率、可维护性和可移植性。

软件的可移植性是指软件从一种计算机系统转换到另一种计算机系统运行的难易程度。软件的可靠性是指在规定的条件下和规定的时间间隔内,软件实现其规定功能的概率。

参考答案

(51)B (52)C

试题(53)

(53)使用文字、图形、图像、动画和声音等多种媒体来表示内容,并且使用超级链接来组织这些媒体。

(53)A.多媒体压缩技术B.多媒体存储技术

C.超文本技术D.超媒体技术

试题(53)分析

超媒体是超文本技术和多媒体技术相结合的产物。传统的文本是以线性方式组织的,而超文本是以非线性方式组织的。在超媒体中,不仅可以包含文字而且可以包含图形、图像、动画、声音和电视片断,这些媒体之间也是用超级链接组织的。

超媒体与超文本之间的不同之处是,超文本主要是以文字的形式表示信息,建立的链接关系主要是文句之间的链接关系。超媒体除了使用文本外,还使用图形、图像、声音、动画或影视片断等多种媒体来表示信息,建立的链接关系是文本、图形、图像、声音、动画和影视片断等媒体之间的链接关系。

参考答案

(53)D

试题(54)

以下文件格式中,(54)不是声音文件。

(54)A.Wave文件(.W A V)B.MPEG文件(.MP3)

C.TIFF文件(.TIF)D.MIDI文件(.MID)

试题(54)分析

数字声音在计算机中存储和处理时,其数据必须以文件的形式进行组织,所选用的文件格式必须得到操作系统和应用软件的支持。常用的声音文件格式如下。

Wave文件(.W A V):Microsoft公司的音频文件格式,来源于声音模拟波形的采样。

MPEG音频文件(.MP3):现在比较流行的声音文件格式,压缩率比较大,音质相对较好。

RealAudio文件(.RA):具有强大的压缩量和较小的失真,为解决网络传输带宽资源而设计。

MIDI文件(.MID/.RMI):是目前较成熟的音乐格式,实际上已经成为产业标准,

20

程序员历年试题分析与解答

也是音乐工业的数据通信标准。

V oice文件(.VOC):Creative公司波形音频文件,也是声霸卡使用的音频文件格式。

答案选项中的TIFF文件是图像文件格式。

参考答案

(54)C

试题(55)

以下关于程序测试的叙述,正确的是(55)。

(55)A.程序测试的目的是为了证明程序的正确性

B.白盒测试也称为功能测试

C.黑盒测试也称为结构测试

D.程序测试要注意检验程序是否有多余的功能

试题(55)分析

程序测试(Test)的目的是发现程序中的错误,并且争取能发现尽可能多的错误。程序调试(Debug)则包括定位和纠正错误。程序正确性证明目前还是理论研究的课题,对大型程序,证明其正确性还做不到。正如医生的任务是诊断与治疗疾病,并不是证明某人没有病。

黑盒测试是在不了解程序内部结构的情况下,根据其使用说明书,输入所需的数据,检查其输出结果的正确性。这种测试也称为功能测试。类似于这样的情况:为检查一个不明盒子的功能,又不能打开它,就只能从外界,给它施加某种影响,查看它有什么反映。系统测试、验收测试一般都采用黑盒测试方法。

白盒测试是根据程序内部结构对其进行测试,例如,在程序中的若干关键语句处,设置检查点,程序运行到这些检查点时会暂停运行,操作人员可以查看程序中某些变量的值,看它是否符合程序员预期的结果,然后再继续运行程序。这种测试也称为结构测试。类似于打开盒子,看清楚其中的结构机制,逐步进行测试,检查发现问题。程序员对自己编写的程序模块,一般采用白盒测试方法。

在程序测试中,很多人只注意程序是否正确执行了预定的功能,没有注意程序是否具有多余的(计划之外的)功能。多余的功能在编程前并没有要求,在开发时也没有得到充分的测试,很可能隐藏着问题,这些问题还会影响应有的功能。所以,检查程序是否有多余的功能,也是程序测试的任务之一。

参考答案

(55)D

试题(56)

对两个内存单元执行(56)逻辑操作,可实现全同比较功能。

(56)A.OR(或)B.AND(与)C.EOR(异或)D.与非

相关主题
文本预览
相关文档 最新文档