计算机软件专业技术资格和水平考试

上传人:shich****u123 文档编号:47556494 上传时间:2021-12-22 格式:DOC 页数:12 大小:95KB
收藏 版权申诉 举报 下载
计算机软件专业技术资格和水平考试_第1页
第1页 / 共12页
计算机软件专业技术资格和水平考试_第2页
第2页 / 共12页
计算机软件专业技术资格和水平考试_第3页
第3页 / 共12页
资源描述:

《计算机软件专业技术资格和水平考试》由会员分享,可在线阅读,更多相关《计算机软件专业技术资格和水平考试(12页珍藏版)》请在装配图网上搜索。

1、计算机软件专业技术资格和水平考试二000年度程序员级 上午试卷(考试时间9:0011:30共150分钟)请按下述要求正确填写答卷,若不按下述要求解答,将不给分数1 本试卷的15道试题都是必答题,请全部解答。每题5分,满分75分。2 在答卷的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。3 在答卷的指定位置填写准考证编号、出生年月日和姓名。4 答卷上除填写上述内容外只能写解答。5 解答时字迹务必清楚,字迹不清时,将不评分。6 仿照下面例题,将解答写在答卷的对应栏内。例题从供选择的答案中,选出应填入下面_?_内的最确切的解答,把相应编号写在答卷的对应栏内。二000年度中国计算机软件专业

2、技术资格和水平考试日期是_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_遍历法遍历该树上全部结点,得到由结点的值组成的从小到大顺

3、序排列的序列。对本题给出的二叉树图形填入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

4、_是一个堆,堆排序是一种_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)把需

5、排序数据,用其他大容量机器排序(3)把外存中需排序数据一次性调入内存,排好序后,再输回外存(4)对外存中大于内存允许空间的需排序的数据,通过多次内外存间的交换实现排序。试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。软件语言是用于书写计算机软件的语言。它主要包括需求定义语言、_A_、_B_、程序设计语言以及_C_等,适用于软件开发的各个阶段。程序设计语言的基本成分是数据成分、运算成分、控制成分以及_D_。程序设计语言有多种分类法,例如,按成分性质分,有顺序语言,并发语言,并行语言,_E_。供选择的答案:(1)数据定义语言(2)功能性语言(3)面向

6、对象语言(4)函数式语言:(1)设计性语言(2)结构性语言(3)命令式语言(4)申述式语言:(1)过程语言(2)非过程语言(3)逻辑式语言(4)文档语言:(1)对象成分(2)变量成分(3)语句成分(4)传输成分:(1)交互式语言(2)分布语言(3)面向对象语言(4)高级语言试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。某些操作系统,将一条命令的执行结果输出给下一条命令,作为其输入并加以处理,这是系统的_A_机制。使命令所需要的信息不从键盘接收,而取自另一个文件,这是系统的_B_机制。使命令的执行结果直接引向另一个文件,而不在屏幕上显示,这是系统

7、的_C_机制。操作系统不从键盘逐条接收命令并执行,而调用一个正文文件,执行其中的一系列命令,这种方式称为_D_方式,编写这样的文件应符合_E_语言的语法规则。供选择的答案:(1)链接(2)输入重定向(3)管道(4)输出重定向:(1)输入重定向(2)管道(3)读保护(4)批处理:(1)管道(2)输出重定向(3)清屏(4)显示屏蔽:(1)初始装入(2)批处理(3)管道(4)系统生成:(1)命令定向(2)机器指令(3)人机会话(4)作业控制试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重

8、源程序的_A_。此外,还应强调良好的编程风格,例如,选择标识符的名字时应考虑_B_;在书写语句时应考虑_C_;在书写功能性注解时应考虑_D_。源程序中应包含一些内部文档,以帮助阅读和理解源程序,源程序的内部文档通常包括选择合适的标识符、注解和_E_。供选择的答案:(1)易使用性、易维护性和效率(2)易使用性、易维护性和易移植性(3)易理解性、易测试性和易修改性(4)易理解性、安全性和效率:(1)名字长度越短越好,以减少源程序的输入量(2)多个变量共用一个名字,以减少变量名的数目(3)选择含义明确的名字,以正确提示所代表的实体(4)尽量用关键字作名字,以使名字标准化:(1)把多个短的语句写在同一

9、行中,以减少源程序的行数(2)尽量使用标准文本以外的有特殊功效的语句,以提高程序的功效(3)尽量消除表达式中的括号,以简化表达式(4)避免使用测试条件“非”,以提高程序的可读性:(1)仅为整个程序作注解(2)仅为每个模块作注解(3)为程序段作注解(4)为每个语句作注解:(1)程序的视觉组织(2)尽量不用或少用语句(3)检查输入数据的有效性(4)设计良好的输出报表试题从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。数据库的三级体系结构即关系子模式、关系模式与存储模式,是对_A_抽象的三个级别。主要由_B_两大部分组成。的语句中“rom”(这里为基本表名

10、),应理解为_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)(c1d1)OR

11、(c1=d1)AND(c2valval;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 (a0a1) return 0; return _(5)_; 试题二(分)阅读下列函数说明和代码,将应填入_(n)_处的字句写在答卷的对应栏内。【函数2.1说明】设长正整数用数组存储,如有k位的长整数

12、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;p10;p+) if (p=a0 _(1)_; ap+1+=ap/10; ap=_(2)_; if (pa0) _(3)_; 【函数2.

13、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

14、,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

15、(_(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()实现将中缀表达式转换成后缀表达式。设中缀表达式只有加(+)、减(-)、乘(*)和除(/)四则运算符(双目),运算分量只能是变量,变量用英文字母开头英文字母和

16、数字符组成的标识符命名。与平常四则运算的计算规则相一致,即先乘除,后加减,括号内的子表达式优先计算。例如,中缀表达式a*(c3-x2z/y)+u的后缀表达式为ac3x2zy/-*u+程序给每个运算符和括号设定一个优先级,并引入一个栈和一个存储后缀表达式的工作数组。函数expr()工作时,按自左至右逐个顺序扫描中缀表达式,如当前符号是变量名,就将该变量名直接复制到工作数组;如当前符号是运算符或括号,将当前符号的优先级和栈顶符号的优先级进行比较;若当前符号的优先级高,则当前符号进栈;反之,则进行出栈处理,并将从栈中退出的运算符依次复制到工作数组中,直到栈顶符号的优先级比当前符号的优先级低为止,然后

17、将当前的运算符或左括号进栈。为使子表达式能优先处理,所以给左括号设定较高的优先级,但又为了能正确处理随后的子表达式,在左括号进栈时,它在栈中的优先级作了一定的改变。初始时,expr()函数预先在栈底设置一个符号,其优先级比所有运算符和括号的优先级都低。程序还检查输入表达式的运算符和运算分量的合理性,以及括号是否正确配对。【程序3】 #include #include #include typedef struct node /*符号、内部编号、优先级和后继栈元指针*/ char data; int code;int pri;strujct mode *link; NODE;struct Tb1

18、/*符号、内部编号、优先级*/ 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-pr

19、i=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优先级的符号

20、 */ 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;opchTblI.code=-1& (4) ;I+) if (opchTblI.code=-1) return 3;/*非法字符

21、*/ op=&opchTblI; type=opchTblI.code; /*得到运算符的内部码 */ c=*pos+; /*C中存储下一个字符*/ if (typedata=() push (op-code,1,&optop); else push(op-data, op-code, op-pri,&optop); else while(optop!=NULL &op-pripri) pop( (6) ); if ( (7) ) /* 运算符复制到工作数组*/ *numtop+= ; *numtop+=stop; if (op-data=0) return (n!=0|(m!=1&numto

22、pnum)?4( *numtop=0); else if(op-data!=) push (op-data,op-code,op-pri,&optop); void main()int d;printf(“请输入表达式 !n”);gets(expStr);if (d=expr(expStr)=0) printf(“后缀表达式为 %sn”,num);else printf(“表达式句法错!错误类型为%dn”,d);试题四(21分)阅读下列程序说明和C代码,将应填入 (n) 处的字句写在答卷的对应栏内。程序4说明 有一种单人玩的游戏:设有n(2=n0)堆,和将k 张薄片移至I+1(In-1)堆。所

23、以当有两个堆与 I 堆相邻 时,I堆原先至少有2k 张薄片;只有一个堆与 I 堆相邻 时, I 堆原先至少有k张薄片。 游戏的目标是对给定的堆数,和各堆上的薄片数,按上述规则移动薄片,最终使 各堆的薄片数相同。为了使移动次数较少些,移动哪一堆薄片,和移多少薄片先作以下估算:设 ci:I堆的薄片数(0=In,0=ci=ai ;若 I堆是中间堆,则要求ci=2ai。(2)因在ai0的所有堆中,薄片数最多的堆 在平分过程中被它的相邻堆取走的薄片数也最多。在用策略(1)搜索移动时,当发生没有满足条件(1)的可移走薄片的堆时,采用本策略,让在ai0的所有堆中,薄片数最多的堆被它的相邻堆取走它的全部薄片。

24、程序4#include #define N 200#define M 200#define Limit 2000struct int id; int k;wayLimit;/*存储每次移动的位置和薄片张数 */int mc=0;/*移动次数 */int cN,aN,n Int init(int *np,int *c,int *a) /*输入初始数据,估算ai*/int i,n,d,min,v;long sum=ol;printf(“输入n:”);scanf(“%d”,&n); printf(“输入各堆的落款薄片数(%d)n”,m);for(i=0;in;i+) sum+=ci;if (sum

25、% m)return 0;v=(int)(sum/n); a0=0;a1=v-c0;for(i=1;in-1;i+) ai+1= (1);for(min=0,i=1;in;i+) if (aimin) min=ai;for(i=0;i0)ci-1+=k;ci-=k; if(in-1)ci+1+=k;ci-=k; ai-=k; waymc.id=i; waymc+.k=k;void search(int *c,int *a,int n)int i,d,m,pov,moved; do pov=moved=0;for (i=0;i=ai:ci=2*ai) move( (4) )/*完成一次移动*/m

26、oved=1;break;if (pov & !moved) /*找薄片数最多的堆,且被相邻堆全部取走*/ for(m=0,i=0;i0 & dn-1) (7) ; move(k,m,.n,c,a);while(mclimit & pov);void main()int i; if (init(&n,c,a)=0)printf(“薄片总数不能被平分 n”);return;search(c,a,n); printf(“ 序号 移动位置号 各相邻位置得到薄片数n”);for(i=0;imc;i+) printf(“%4d%10d%18dn”,i+1,wayi.id,wayi.k);printf(“n”);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!