2014下半年程序员上,下午真题分析与解答

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
3

阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸

的对应栏内。

【说明】

    队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表

尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元

素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。

    设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和

lengtb三个域变量,其中’base为队列空间的首地址,rear为队尾元素的指针,length表

示队列的长度。

#define  maxqstze  100

typedef  struct  {

             QElemType *base;   /*循环队列的存储空间首地址*/

             int          rear;  /*队尾元素索引*/

    int    length;    /*队列的长度*/

    ) SqQueue;

    例如,容量为8的循环队列如图3-1所示,初始时创建的空队列如图3一l(a)所示

经过一系列的入队、出队操作后,队列的状态如图3-1 (b)所示(队列长度为3)。

 

  下面的C函数1、C函数2和C函数3用于实现队列的创建、插入和删除操作,请

完善这些代码。

  【C函数1】创建一个空的循环队列。

int initQueue (SqQueue *Q)

/*创建容量为MAXQSIZE的空队列,若成功则返回1;否则返回0*/

{    Q->base =  (QElemType*)  malloc(MAXQSIZE*  (1)  )

    if (!Q=>base)  return 0;。;

Q->length=O;

Q-’rear =O:

  Return  1;

} /*InitQueue*/

【c函数2】元素插入循环队列。

int EnQueue(sqQueue *Q.  QElemType e)/*元素e入队,若成功则返回1;否则返回0*/

{if ( Q->length>=MAXQSIZE) return  0.;

  Q->rear=(2);

  Q->base [Q->rear]=e;

    (3)  ;

  Return 1

) /*EnQUeue*/

【c函数3】元素出循环队列。

int DeQueue (SqQueue *Q.  QElemType *e)

/*若队列不空,则删除队头元素,由参数e带回其值并返回1;否则返回O*/

{1f‘(4),return  0;

    *e =O->base[ (Q=>rear - Q->length+I+MAXQSTZE) %MAXQSIZE]

        (5)  ;

    returnl;

  } /*DeQueue*/

4

 阅读以下说明和C函数,填补代码中的空缺(1)~(6),将解答填入答题纸的对

应栏内。

【说明】

  二叉树的宽度定义为含有结点数最多的那一层上的结点数。函数GetWidth()用于求

二叉树的宽度。其思路是根据树的高度设置一个数组counter[]. counter[i]存放第i层上

的结点数,并按照层次顺序来遍历二叉树中的结点,在此过程中可获得每个结点的层次

值,最后从countler[]中取出最大的元素就是树的宽度。

  按照层次顺序遍历二叉树的实现方法是借助一个队列,按访问结点的先后顺序来记

录结点,离根结点越近的结点越先进入队列,具体处理过程为;先令根结点及其层次号

(为1)进入初始为空的队列,然后在队列非空的情况下,取出队头所指示的结点及其层

次号,然后将该结点的左子树根结点及层次号八队列(若左子树存在),其次将该结点的

右子树根结点及层次号八队列(若右子树存在),然后再取队头,重复该过程直至完成

遍历。

    设二叉树采用二叉链表存储,结点类型定义如下:

typedef struct BTNode{

             TElemType data;

               struct  BTNode  *left. *right

}  BTNode , *BiTree _

队列元素的类型定义如下

typedef struct {

             BTNode *ptr;

             int LevelNumber

) QElemType;

【C函数】

int GetWidth (BiTree  root)

{

            QUEUE  Q;

QElemType  a, b;

       int width.height = GetHeight(root);

    int i,  *counter  =(lnt*) calloc (helght+l. sizeof (int));

if  ( 1)    return -1;  /*申请空间失败*/

If(!root )   return -0;  /*空树的宽度为0*/

if  ( 1)    return -1  /*初始化队列失败时返回*/

A.ptr=root;  a.leveinumber=1;

If(!Enqueue(&Q,a))  return-1;   /*元素入队列操作失败时返回*/

while (!isEmpty(Q》{

    if(  (3)  )return -1;    /*出队列操作失败时返回*/

    Counter[b.LevelNumber]++;/*对层号为b.LevelNumber的结点计数*/

    if(bNaNr=>left){/*若左子树存在,则左于树根结点及其层次号入队*/

    aNaNr =bNaNr=>left;

    a.LevelNurnber  =(4)  ;

If(!EnQueue (&Q,a))return  -1;

}

if( bNaNr=>right){/*若右子树存在,则右子树根结点及其层次号入队*/

    a.ptr= bNaNr->right;

    a LevelNumber  (5)  i

   If(!EnQueue (&Q,a))return  -1

   }

}

width= counter[1];

For(i=1; i

   If(6) width =counter[i];

  Free(counter);

  Return width;

}

10

Stated more formally, an object is simply (72) of a class

  • A.a part
  • B.a component
  • C.an instance
  • D.an example
11

匿名FTP访问通常使用(70)作为用户名。

  • A.guest
  • B.user
  • C.administrator
  • D.anonymous
13

在浏览器地址栏中输入(69)可访问FTP站点ftp.abc.com

  • A.ftp.abc.com
  • B.ftp://ftp.abc.com
  • C.http://ftp.abc.com
  • D.http://www.ftp.abc.com
16

(67)

  • A.以太帧
  • B.TCP段
  • C.UDP数据报
  • D.IP数据报
19

测试四个程序模块共发现了42个错,则(63)。

  • A.至少有1个模块至少有11个错
  • B.至少有1个模块至少有12个错
  • C.至少有2个模块都至少有11个错
  • D.至多有2个模块都至多有14个错
20

(61)

  • A.需要构建一个独立的关系模式,且主关键字为:学生号
  • B.需要构建一个独立的关系模式,且主关键字为:学生号,课程号
  • C.需要构建一个独立的关系模式,且主关键字为:学生号,教师号
  • D.类型为1:n,所以不需要构建一个独立的关系模式
21

查询“软件教研室”教师的平均工资、最高与最低工资之间差值的SQL语句如下: SELECT AVG(工资)AS平均工资 (62) FROM T WfIERE部门=软件教研室-;

  • A.MAX(工资-MIN(工资)AS差值
  • B.差值AS MAX(工资)-MIN(工资)
  • C.MAX(工资)M烈(工资)IN差值
  • D.差值IN MAX(工资)-MIN(工资)
23

采用二维表格结构表达实体及实体间联系的数据结构模型称为(59)。

  • A.层次模型
  • B.网状模型
  • C.关系模型
  • D.面向对象模型
24

(58)

  • A.安全性
  • B.可靠性
  • C.完整性
  • D.并发控制
26

以下关于软件测试的叙述中,不正确的是(56)。

  • A.测试能提高软件的质量,但软件的质量不能完全依赖测试
  • B.一般,难以做到彻底的测试,也不允许无休止地测试
  • C.经测试并改正错误后,发现错误较多的模块比发现错误较少的模块更可靠
  • D.软件测试的困难在于如何有效地进行测试,如何放心地停止测试
27

许多大型企业的数据中心,为了解决存储扩张和管理难度增大的问题,采用了存储虚拟化技术,其主要作用不包括 (54)。

  • A.将内存和一部分磁盘容量作为虚存,以利于同时调度运行多个应用程序
  • B.屏蔽多种异构存储设备的物理特性
  • C.实现不同类型存储资源的集中管理和统一分配
  • D.满足多业务系统对存储性能和容量的不同要求,提高存储服务的灵活性
28

用户交互界面设计的易用性原则不包括(55)。

  • A.用户交互界面尽量由业务人员设计
  • B.所用名词和术语尽量采用业务用语
  • C.功能菜单尽量与业务划分基本一致
  • D.操作流程尽量与业务流程基本一致
30

以下关于单元测试的叙述中,不正确的是(51)。

  • A.侧重于检查模块中的内部处理逻辑和数据结构
  • B.一般用白盒测试技术
  • C.强调检查模块的接口
  • D.需要检查全局和局部数据结构
31

以下关于结构化方法的叙述中,不正确的是(50)。

  • A.指导思想是自顶向下、逐层分解
  • B.基本原则是功能的分解与抽象
  • C.适合解决数据处理领域的问题
  • D.特别适合解决规模大的、特别复杂的项目
32

(48)  

  • A.序列图
  • B.状态图
  • C.活动图
  • D.通信图
35

(46)

  • A.参数
  • B.包含
  • C.过载
  • D.强制
38

(43)

  • A.7
  • B.8
  • C.14
  • D.16
42

在数据结构中, (39)是与存储结构无关的术语。

  • A.单链表
  • B.二叉树
  • C.哈希表
  • D.循环队列
45

(34)

  • A.20
  • B.25
  • C.60
  • D.75
46

含有n个元素的线性表采用顺序存储方式时,对其运算速度最快的操作是(36)。

  • A.访问第i个元素(l<i≤n)
  • B.删除第i个元素(1≤j≤n)
  • C.在第i个元素(1≤i≤n)之后插入一个新元素
  • D.查找与特定值相匹配的元素
51

以下叙述中,正确的是(30)。

  • A.编译正确的程序不包含语义错误
  • B.编译正确的程序不包含语法错误
  • C.除数为0的情况可以在语义分析阶段检查出来
  • D.除数为0的情况可以在语法分析阶段检查出来
52

以下关于解释器运行程序的叙述中,错误的是(28)。

  • A.可以先将高级语言程序转换为字节码,再由解释器运行字节码
  • B.可以由解释器直接分析并执行高级语言程序代码
  • C.与直接运行编译后的机器码相比,通过解释器运行程序的速度更慢
  • D.在解释器运行程序的方式下,程序的运行效率比运行机器代码更高
55

(26)

  • A.512
  • B.1024
  • C.2048
  • D.4096
60

在定点二进制运算中,减法运算一般通过(21)来实现。

  • A.补码运算的二进制减法器
  • B.原码运算的二进制减法器
  • C.原码运算的二进制加法器
  • D.补码运算的二进制加法器
62

以下设备中,不能使用(16)将印刷图片资料录入计算机。

  • A.扫描仪
  • B.投影仪
  • C.数字摄像机
  • D.数码相机
63

下列关于计算机病毒的描述中,错误的是(18)。

  • A.计算机病毒是一段恶意程序代码
  • B.计算机病毒都是通过U盘拷贝文件传染的
  • C.使用带读写锁定功能的移动存储设备,可防止被病毒传染
  • D.当计算机感染病毒后,可能不会立即传染其他计算机
64

(15)

  • A.表现媒体
  • B.传输媒体
  • C.表示媒体
  • D.存储媒体
65

微型计算机系统中,显示器属于(14),硬盘属于(15)。

  • A.表现媒体
  • B.传输媒体
  • C.表示媒体
  • D.存储媒体
66

注册商标所有人是指(13)。

  • A.商标使用人
  • B.商标设计人
  • C.商标权人
  • D.商标制作人
67

计算机软件只要开发完成就能取得(12)受到法律保护。  

  • A.软件著作权
  • B.专利权
  • C.商标权
  • D.商业秘密权
68

(11)

  • A.定期对磁盘进行碎片整理
  • B.每小时对磁盘进行碎片整理
  • C.定期对内存进行碎片整理
  • D.定期对ROM进行碎片整理
69

在CPU和主存之间设置“Cache”的作用是为了解决(8)的问题。

  • A.主存容量不足
  • B.主存与辅助存储器速度不匹配
  • C.主存与CPU速度不匹配
  • D.外设访问效率
71

用户的电子邮箱是在(5)的一块专用的存储区。

  • A.用户计算机内存中
  • B.用户计算机硬盘上
  • C.邮件服务器内存中
  • D.邮件服务器硬盘上
72

直接转移指令执行时,是将指令中的地址送入(6)。

  • A.累加器
  • B.数据计数器
  • C.地址寄存器
  • D.程序计数器
73

下列部件中属于CPU中算术逻辑单元的部件是(7)。

  • A.程序计数器
  • B.加法器
  • C.指令寄存器
  • D.指令译码器
74

(4)

  • A.=3=6
  • B.=36
  • C.TRUE
  • D.FALSE
77

(2)

  • A.光标移动到上一行,表格行数不变
  • B.光标移动到下一行,表格行数不变
  • C.在光标的上方插入一行,表格行数改变
  • D.在光标的下方插入一行,表格行数改变