计算机软件专业技术资格和水平考试(共12页).doc
精选优质文档-倾情为你奉上计算机软件专业技术资格和水平考试二000年度程序员级 上午试卷(考试时间9:0011:30共150分钟)请按下述要求正确填写答卷,若不按下述要求解答,将不给分数1 本试卷的15道试题都是必答题,请全部解答。每题5分,满分75分。2 在答卷的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。3 在答卷的指定位置填写准考证编号、出生年月日和姓名。4 答卷上除填写上述内容外只能写解答。5 解答时字迹务必清楚,字迹不清时,将不评分。6 仿照下面例题,将解答写在答卷的对应栏内。例题从供选择的答案中,选出应填入下面_?_内的最确切的解答,把相应编号写在答卷的对应栏内。二000年度中国计算机软件专业技术资格和水平考试日期是_D_。供选择的答案D:(1)4月16日(2)10月8日(3)11月4日因为正确的答案是“11月4日”,故在答卷的对应栏D内写上编号“3”(参看答卷纸)。试题1从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。如图所示的二叉树,有下列性质:除叶子结点外,每个结点的值都大于其左子树上的一切结点的值,并小于等于其右子树上一切结点的值。这是一棵_A_树。现有一菲波那契数列an,a0=a1=1,ak=ak-1+ak-2,k=2,3。若把a1,a2,a9填入该二叉树,一般可采用_B_遍历法遍历该树上全部结点,得到由结点的值组成的从小到大顺序排列的序列。对本题给出的二叉树图形填入a1,a9后,其结点n8的值为_C_,根结点的值为_D_。若欲插入a1,a9的平均值,则应该在_E_增加一个结点。 on1 / on2 on3 / on4 on5 on6 / on7 on8 on9供选择的答案:(1)穿线树(2)最佳查找树(3)树 (4)查找树:(1)前序(2)中序(3)后序 (4)广度:(1)(2)(3) (4):(1)(2) (3) (4):(1)n2与n4之间 (2)n6下 (3)n与n9之间 (4)n9下试题2从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。堆是一种特殊的数据结构,_A_是一个堆,堆排序是一种_B_排序,m个元素进行堆排序时,其时间复杂性为_C_。排序的算法很多,若按排序的稳定性和不稳定性分类,则_D_是不稳定排序。外排序是指_E_。供选择的答案:(1)19,75,34,26,97,56(2)97,26,34,75,19,56(3)19,56,26,97,34,75(4)19,34,26,97,56,75:(1)归并(2)交换 (3)选择 (4)插入:(1)o(m)(2)o(m2) (3)o(log2m) (4)o(mlog2m):(1)冒泡排序(2)归并排序(3)直接插入排序(4)希尔(shell)排序:(1)用机器指令直接对硬盘中需排序数据排序(2)把需排序数据,用其他大容量机器排序(3)把外存中需排序数据一次性调入内存,排好序后,再输回外存(4)对外存中大于内存允许空间的需排序的数据,通过多次内外存间的交换实现排序。试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。软件语言是用于书写计算机软件的语言。它主要包括需求定义语言、_A_、_B_、程序设计语言以及_C_等,适用于软件开发的各个阶段。程序设计语言的基本成分是数据成分、运算成分、控制成分以及_D_。程序设计语言有多种分类法,例如,按成分性质分,有顺序语言,并发语言,并行语言,_E_。供选择的答案:(1)数据定义语言(2)功能性语言(3)面向对象语言(4)函数式语言:(1)设计性语言(2)结构性语言(3)命令式语言(4)申述式语言:(1)过程语言(2)非过程语言(3)逻辑式语言(4)文档语言:(1)对象成分(2)变量成分(3)语句成分(4)传输成分:(1)交互式语言(2)分布语言(3)面向对象语言(4)高级语言试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。某些操作系统,将一条命令的执行结果输出给下一条命令,作为其输入并加以处理,这是系统的_A_机制。使命令所需要的信息不从键盘接收,而取自另一个文件,这是系统的_B_机制。使命令的执行结果直接引向另一个文件,而不在屏幕上显示,这是系统的_C_机制。操作系统不从键盘逐条接收命令并执行,而调用一个正文文件,执行其中的一系列命令,这种方式称为_D_方式,编写这样的文件应符合_E_语言的语法规则。供选择的答案:(1)链接(2)输入重定向(3)管道(4)输出重定向:(1)输入重定向(2)管道(3)读保护(4)批处理:(1)管道(2)输出重定向(3)清屏(4)显示屏蔽:(1)初始装入(2)批处理(3)管道(4)系统生成:(1)命令定向(2)机器指令(3)人机会话(4)作业控制试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的_A_。此外,还应强调良好的编程风格,例如,选择标识符的名字时应考虑_B_;在书写语句时应考虑_C_;在书写功能性注解时应考虑_D_。源程序中应包含一些内部文档,以帮助阅读和理解源程序,源程序的内部文档通常包括选择合适的标识符、注解和_E_。供选择的答案:(1)易使用性、易维护性和效率(2)易使用性、易维护性和易移植性(3)易理解性、易测试性和易修改性(4)易理解性、安全性和效率:(1)名字长度越短越好,以减少源程序的输入量(2)多个变量共用一个名字,以减少变量名的数目(3)选择含义明确的名字,以正确提示所代表的实体(4)尽量用关键字作名字,以使名字标准化:(1)把多个短的语句写在同一行中,以减少源程序的行数(2)尽量使用标准文本以外的有特殊功效的语句,以提高程序的功效(3)尽量消除表达式中的括号,以简化表达式(4)避免使用测试条件“非”,以提高程序的可读性:(1)仅为整个程序作注解(2)仅为每个模块作注解(3)为程序段作注解(4)为每个语句作注解:(1)程序的视觉组织(2)尽量不用或少用语句(3)检查输入数据的有效性(4)设计良好的输出报表试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。数据库的三级体系结构即关系子模式、关系模式与存储模式,是对_A_抽象的三个级别。主要由_B_两大部分组成。的语句中“rom”(这里为基本表名),应理解为_C_。关系代数中的联接操作由_D_操作组合而成。元组比较操作(c1,c2)<=(d1,d2),其意义等价于_E_。供选择的答案:(1)存储器(2)数据库系统(3)数据(4)数据库管理系统:(1)文件管理器和查询处理器 (2)事务处理器和存储管理器(3)文件管理器和数据库语言编译器(4)存储管理器和查询处理器:(1)中的元组序号(2)关系的元组变量(3)基本表的结构定义(4)中的全部元组:(1)和(2)和×(3)、和×(4)和×:(1)(c1<=d1)OR(c2<=d2) (2)(c1<=d1)OR(c1=d1)AND(c2<=d2)(3)(c1<=d1)AND(c2<=d2) (4)(c1<d1)OR(c1=d1)AND(c2<=d2)试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。是位于_A_之间的一层数据管理软件。关系数据库的概念模型式是_B_的集合。关系数据库的数据及更新操作必须遵循_C_等完整性规则。用符号×表示的关系操作称为_D_操作。设有关系和如下:关系关系 对和作_E_操作后,得到关系。null null null e null关系关系 关系 关系供选择的答案:(1)软件与用户(2)与(3)硬件与软件(4)与硬件:(1)关系模型 (2)关系模式 (3)关系子模式(4)存储模式:(1)实体完整性和参照完整性(2)参照完整性和用户定义的完整性(3)实体完整性和用户定义的完整性(4)实体完整性、参照完整性和用户定义的完整性:(1)左外联接 (2)右外联接 (3)自然联接(4)外联接:(1)左外联接 (2)自然联接 (3)外联接(4)右外联接试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。在计算机图象处理时,图象的空间分辨率是指_A_,在机中,_B_是常用的图象格式文件的后缀名。若视频信号的每幅黑白图象均为256级灰度,1024×768的点阵表示,当数据的压缩比为30时,每幅图象所占的存储空间为_C_比特。以每秒25幅的方式播出时,容量为600M比特的视频图象以压缩形式在网上需传输_D_秒,传输速率不应低于每秒_E_比特。供选择的答案:(1)灰度(2)点阵大小(3)反差(4)亮度:(1)(2)(3)(4):(1)0.2M (2)2M(3)0.6M(4)6M:(1)(2)(3)(4):(1)5M(2)7.5M(3)10M (4)25M试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。计算机中十六位浮点数的表示格式为 阶码尾数(含尾符)某机器码为。若阶码为移码且尾数为反码,则其十进制真值为_A_;若阶码为移码且尾数为原码,则其十进制真值为_B_;若阶码为补码且尾数为反码,则其十进制真值为_C_;若阶码为补码且尾数为原码,则其十进制真值为_D_,将其规格化后的机器码为_E_。供选择的答案:(1)0. (2)20 (3)1.25 (4)20.:(1)00000(2)000(3)00000(4)000试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。全加器是由两个加数i和i以及低位来的进位i-1作为输入,产生本位和i以及向高位的进位i的逻辑电路。_A_和_B_分别是i和i的正确逻辑表达式。全加器亦可通过半加器来实现,此时i_C_。若某计算机采用位带符号补码表示整数,则可由个全加器(i1,2,8,i8为最高位,即符号位)串接构成位加法器,00。该加法器有一个状态寄存器,记录运算结果的状态。其中,和分别表示符号位与溢出标志位,则其逻辑表达式分别为_D_和_E_。供选择的答案 _ _ _ :(1)iii-1iii-1iii-1iii-1 _ _ _ _ (2)i-1(iiii)i-1(iiii) _ _ _ _(3)i(iiii)i(iiii) _ (4)i(iii-1)iii-1 _ _ _:(1)iiii-1ii-1(2)iiiiii _ _(3)iiii-1ii-1(4)(iiii)i-1 _:(1)ii-1i (2)iii-1 _(3)iii(4)iii-1、:(1)888(2)78(3)888787 _ _ _ _(4)7(8888)7(8888)试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。计算机中指令的执行过程可以概括为以下步骤:(1)读取指令。把_A_中的内容经_B_送入内存的有关寄存器,读出内存中存贮的指令并将其送入_C_。(2)指令译码。_C_中的操作码部分送指令译码器产生相应的操作控制信号,地址码部分则_D_。(3)按指令操作码执行相应的操作和运算。(4)形成下一条要取指令的地址。若本次指令是非转移指令或无条件转移指令,则_A_中内容加本次指令字节长度值或者接置为下一指令地址值,若为条件转移指令则_E_的值将影响_A_中置什么值。供选择的答案:(1)指令寄存器(2)程序计数器(3)栈地址寄存器(4)变址寄存器:(1)数据总线(2)控制总线 (3)地址总线 (4)总线:(1)指令寄存器(2)程序计数器(3)标志寄存器(4)cache存储器:(1)作为操作数的内存地址去读出操作数(2)作为操作数的寄存器地址去读出操作数(3)作为操作数本身(4)要按寻址方式执行相应操作后去获得操作数:(1)中断寄存器 (2)控制器 (3)标志寄存器(4)数据寄存器试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。I/O系统主要有三种方式来与主机交换数据,它们是_A_、_B_和_C_。其中_A_主要用软件方法来实现,CPU的效率低;_B_要有硬件和软件两部分来实现,它利用专门的电路向中的控制器发出I/O服务请求,控制器则_D_转入执行相应的服务程序;_C_主要由硬件来实现,此时高速外设和内存之间进行数据交换_E_。供选择的答案:(1)程序查询方式(2)读写文件方式(3)数据库方式(4)客户服务器方式:(1)方式(2)批处理方式(3)中断方式(4)数据通信方式:(1)中断方式(2)方式(3)并行方式(4)流水线方式:(1)立即(2)在执行完当前一条指令后(3)在执行完当前的一段子程序后(4)在询问用户后:(1)不通过的控制,不利用系统总线(2)不通过的控制,利用系统总线(3)通过的控制,不利用系统总线(4)通过的控制,利用系统总线试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。国际电信联盟的电信标准化部的前身是_A_,其发布的X.200建议是和_B_制定的开放系统互连七层参考模型(OSI)等价的。作为最简单的防火墙分组过滤器在该模型的_C_层检查出入地址;网桥是在该模型_D_层进行网络间中继的互连设备;UDP则是Internet中常用的_E_层协议之一。供选择的答案、:(1)(2)(3)(4):(1)物理(2)网络(3)会话(4)应用:(1)物理(2)运输(3)数据链路(4)网络:(1)运输(2)会话(3)表示(4)应用试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。Because Web servers are platform and application _A_ , they can send or request data from legacy or external applications including databases. All replies, once converted into _B_ mark-up language, can then be transmitted to a _C_ .Used in this way, Intranets can _D_ lower desktop support costs, easy links with legacy applications and databases and, _E_ all, ease of use.供选择的答案:(1)coupled (2)dependent(3)independent(4)related:(1)ciphertext(2)hypertext (3)plaintext (4)supertext:(1)browser (2)repeater (3)router (4)server:(1)off (2)offer (3)office (4)officer:(1)abort (2)about (3)above (4)around试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。Software quality assurance is now an _A_ sub-discipline of software engineering. As Buckly and Oston point out, _B_ software quality assurance is likely to lead to an ultimate _C_ of software costs. However, the major hurdle in the path of software management in this area is the lack of _D_ software standards. The development of accepted and generally applicable standards should be one of the principal goals of _E_ in software engineering.供选择的答案:(1)emerging (2)emergent (3)engaging (4)evolve:(1)effective (2)effortless (3)light (4)week:(1)balance (2)growth (3)production (4)reduction:(1)usable (2)usage (3)useless (4)useness:(1)management(2)planning (3)production (4)research 计算机软件专业技术资格和水平考试二000年度程序员级 下午试卷(考试时间:001:30共150分钟)请按下述要求正确填写答卷,若不按下述要求解答,将不给分数1 在答卷的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。2 在答卷的指定位置填写准考证编号、出生年月日和姓名。3 答卷上除填写上述内容外只能写解答。4 本试卷的道试题都是必答题,请全部解答。5 解答时字迹务必清楚,字迹不清时,将不评分。6 仿照下面例题,将解答写在答卷的对应栏内。例题二年度举行的计算机软件专业技术资格和水平考试的日期是年_(1)_月_(2)_日。因为正确的答案是月日,故在答卷的对应栏内写上和(参看下表)。例题解答栏() ()试题一(分)阅读下列函数说明和代码,将应填入其中_(n)_处的字句写在答卷的对应栏内。【函数1.1说明】设链表结点的类型为typedef struct elem int val; struct elem *next; intNode;函数merge(int *a,int *b)是将两个升序链表a和b合并成一个升序链表。【函数1.1】 intNode *merge(intNode *a,intNode *b) intNode *h=a,*p,*q; while(b) for (p=h;p&&p->val<b->val;q=p,p=p->next); if (p=h) _(1)_;else _(2)_; q=b;b=b->next; _(3)_; return h; 【函数1.2说明】递归函数dec(int a,int n)判断数组a的前n个元素是否是不递增的。不递增返回,否则返回。【函数1.2】 int dec(int a,int n) if (n<=1) _(4)_; if (a0<a1) return 0; return _(5)_; 试题二(分)阅读下列函数说明和代码,将应填入_(n)_处的字句写在答卷的对应栏内。【函数2.1说明】设长正整数用数组存储,如有k位的长整数m用数组a存储: m=ak*10k-1ak-1*10K-2+a2*101+a1*100并用a0存储长整数m的位数,即a0=k。通常,存储长整数数组的每个元素只存储长整数的一位数字。长整数运算时,为了运算方便,产生的中间结果的某位数字可能会大于9。这时,就应调用本函数将它规整,使数组的每个元素只存储长整数的一位数字。规整运算函数formal(int *a)就实现这个特殊要求。【函数2.1】 void formal(int *a) int p; for (p=1;p<a0|ap>10;p+) if (p>=a0 _(1)_; ap+1+=ap/10; ap=_(2)_; if (p>a0) _(3)_; 【函数2.2说明】函数combine(a,b,c)是计算两个整数的组合数。由于计算结果超出long int 的表示范围,故用本题【函数2.1说明】的方法存储计算结果。设整数a和b (a>=b) ,它们的组合c(a,b)=a!/(a-b)!*b!)。计算a和b的组合可采用以下方法: a!/(a-b)!/b! =a*(a-1)*(a-2)*(a-b+1)/b! =u1*u2*ub/(d1*d2*db)其中u1=a,u2=a-1,ub=a-b+1;d1=1,d2=2,db=b。从而计算a和b的组合c(a,b),可变成计算上述分式。为计算上述分式,先从u1,u2,ub中去掉所有d1*d2*db的因子,得到新的u1,u2,ub。然后再将它们相乘。以下函数中调用的外部函数gcd(a,b)是求两整数a和b最大公因子的函数;函数formal()就是本题中的函数2.1。【函数2.2】 void combine (int a,int b,int *c) int i,j,x,k; int dMAXN,uMAXN; for (k=0,i=a;i>=a-b+1;i-) u+k=i; _(4)_; for (I=1;I<=b;I+) dI=I; /*将整数1至b顺序存于数组d*/ for (I=1;I<=u0;I+) /*从u的各元素中,去掉d中整数的所有因子*/ if (uI!=1) for (j=1;j<=b;j+) if (_(5)_) x=gcd(uI,dj); uI/=x; dj/=x; c0=c1=1; /*长整数c初始化*/ for (I=1;I<=u0;I+) /*将u中各整数相乘,存于长整数c*/ if (uI!=1) for (j=1;j<=c0;j+) cj=_(6)_; formal(c); /*将存于c中的长整数规整*/ 试题三(分)阅读下列函数说明和代码,将应填入_(n)_处的字句写在答卷的对应栏内。【程序3说明】本程序中的函数expr()实现将中缀表达式转换成后缀表达式。设中缀表达式只有加(+)、减(-)、乘(*)和除(/)四则运算符(双目),运算分量只能是变量,变量用英文字母开头英文字母和数字符组成的标识符命名。与平常四则运算的计算规则相一致,即先乘除,后加减,括号内的子表达式优先计算。例如,中缀表达式a*(c3-x2z/y)+u的后缀表达式为ac3x2zy/-*u+程序给每个运算符和括号设定一个优先级,并引入一个栈和一个存储后缀表达式的工作数组。函数expr()工作时,按自左至右逐个顺序扫描中缀表达式,如当前符号是变量名,就将该变量名直接复制到工作数组;如当前符号是运算符或括号,将当前符号的优先级和栈顶符号的优先级进行比较;若当前符号的优先级高,则当前符号进栈;反之,则进行出栈处理,并将从栈中退出的运算符依次复制到工作数组中,直到栈顶符号的优先级比当前符号的优先级低为止,然后将当前的运算符或左括号进栈。为使子表达式能优先处理,所以给左括号设定较高的优先级,但又为了能正确处理随后的子表达式,在左括号进栈时,它在栈中的优先级作了一定的改变。初始时,expr()函数预先在栈底设置一个符号,其优先级比所有运算符和括号的优先级都低。程序还检查输入表达式的运算符和运算分量的合理性,以及括号是否正确配对。【程序3】 #include <stdio.h>#include <ctype.h>#include <stdlib.h>typedef struct node /*符号、内部编号、优先级和后继栈元指针*/ char data; int code;int pri;strujct mode *link; NODE;struct Tb1/*符号、内部编号、优先级*/ char data; int ckde ; int pri;opchTb1=*,1,4,/,2,4,+,3,2,-,4,2, (,5,5,),6,1,0,7,0, ,-1,0;NODE *optop;/*栈顶指针*/Char num200,*numtop;/*工作数组和存储指针*/Char expStr200;/*存储中缀表达式的字符数组*/Void push(char x,int c,int p,NODE *topt)/*链接存储栈的进栈函数*/NODE q=(NODE*)malloc(sizeof(NODE); q->data=x;q->code=c; q->pri=p; (1) ;*toppt=q; int pop(char*op,int *cp,NODE *toppt)/*链接存储栈的出栈函数*/NODE q=toppt; if (*toppt=NULL) return 1;/*空栈 */ op=q->data;cp=q->code; (2) ;free(q); return 0;int expr(char *pos)struct Tb1 *op; char sop; int type ,code,n,m,I,c; optop=NULL;numtop=num;n=m=0;c= ; push(#,0,0,&optop);/*预先在栈中置一个0优先级的符号 */ while (1) while (c= | c=t) c=*pos+; /*掠过空白符 */ if (isalpha( c)/*复制变量名到工作数组*/ *numtop+= ; while(isalpha(c)|isdigit( c) (3) ;c=*pos+; if (m) return 1;/*运算符个数与运算分量个数不相容 */ m=1;/*运算分量比运算符多1 个 */ continue; else /*处理运算符或非法字符 */ for (I=0;opchTb