1、全国计算机技术与软件专业技术资格(水平)考试 2005年上半年 程序员 下午试卷 (考试时间 14:00~16:00共150分钟) 请按下述要求正确填写答题纸 1、在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。 2、在答题纸的指定位置填写准考证号、出生年月日和姓名。 3、答题纸上除填写上述内容外只以写解答。 4、本试卷共8道题,试题一至试题三是必答题,试题四至试题五选答1道,试题六至试题八选答1道,每题15分,满分75分。 试题六至试题八选答1道。每题15分,满分75分。 试题号 一~三 四~五 六~八 选择方法 必答题 选答1题 选
2、答1题 5、解答时字迹务必清楚,字迹不清时,将不评分。 6、仿照下面例题,将解答写在答题纸的对应栏内。 例题 2005年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。 因为正确的解答是“5月29日”,故在答题纸的对应栏内写上“5”和“29”(参看下表)。 例题 解答栏 (1) 5 (2) 29 试题一至试题三是必答题 试题一(15分,每空3分) 阅读以下说明和流程图,回答问题1至问题2将解答填入答题纸的对应栏内。 [说明] 设8位二进制代码 B0B1...B7中的最高位 B0为奇偶校验位。对于任何给定的代码B
3、1B2...B7,可按下式计算偶校验位: B0= B1 B2... B7 其中,“”表示“异或”运算。 下面的流程图描述了计算偶校验位的过程。 [流程图] 开始 B0 (1) 循环开始 i: (2) (4) B0 ( 3) 循环结束 输出B0 结束 注:流程图,循环开始的说明按照“循环变量名:循环初
4、值,循环终值,增量“格式描述。 [问题1]将流程图中的(1)~(4)处补充完整。 [问题2]若按下式计算奇校验位,则上述流程图中的(1)处应填(5) 。 B0= B1 B2... B71三 【答案】 (1)0 (2)1;7;1 (3)Bi (4)B0 (5) 1 试题二(15,每空3分) 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的以应栏内。 [函数2.1说明] 函数int funl(int m,int n)的功能是:计算并返回正整数m和n的最大公约数。 [函数2.1] int funl (int m, int n) {
5、 while ( (1) ){ if(m﹥n) m=m-n; else n=n-m; } (2) ; } [函数2.2说明] 函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。 例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。 [函数2.2] long fun2(char *str) { int i=0; long k=0; char*p=str; while(*p!=¹/0¹&& (3) )
6、 { if(*p ›=¹0¹&&*p ‹=¹9¹){ k= (4) +*p-¹0¹; ++ i; } (5) ; } Return k; } 【答案】 (1)m!=n (2)return n (3)i<8 (4)k*10 (5)++p 试题三(15分,每空3分) 阅读以下说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根了发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩子时为止,该结点即为此二叉树的“最
7、左下”结点。例如,下图所示的以A为根的二叉树的“最左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。 二叉树的结点类型定义如下: Typedef struct BSTNode{ int data; struct BSTNode *lch;//结点的左、右孩子指针 }*BSTree; 函数BSTree Find_Del (BSTree root)的功能是:若root 指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从树下删除以*p为根的子树,函树返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。 [函数]
8、 BSTree Find_Del(BSTree root) { BSTree p,pre; if (!root)return NULL; /*root指向的二叉树为空树*/ (1) ; /*令p指向根结点的右子树*/ if (!o) return NULL; (2) ; /*设置pre的初值*/ Pre=p;p= (3) ; } if ( (4) = =root) /*root的右子树根为“最左下”结点*/ pre-›rch=NULL; else (5) =
9、NULL; /*删除以“最左下”结点为根的子树*/ } 【答案】 (1)p=root -> rch (2) pre=root (3) p = p ->lch (4) pre (5) pre ->lch 试题四(15分,每空3分) 阅读以下说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 假设一个剧场有N*N个座位,顾客买票时可以提出任意有效的座号请求。下面用二维数组a[N][N],模拟剧场中的座位,a[][N],int R,int*row,int *col)的功能是:在部分票已售出的情况下,找出剧场中的R*R个空座位,要求
10、这些座位的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回1,并算出该正方左上角的行、列号;若未找到,返回0。 例如,一个7×7个座位的剧场如下图(a) 所示,已售出部分座位的剧场如下图(b)所示,图中阴影部分表示已售出的座位,从图(b)中找出的3×3正方形空座位如图(c)中斜线区所示。 [函数] int Find(int a[][N],int R ,int *row,int*coo) {int I,j,k,c,t; int FOUND=0; for (i=0;!FOUND &&i‹N-R+1;i++){ /*从第0排开始查找*/ (1) ;w
11、w hile(j‹N-R+1 &&! FOUND) { for(k=0; (2) &&a[i][j+k]==0;k+1;/*查找第i排连续的R个座位*/ if(k›=R){ /*找到第i排连续的R个空座位*/ for(c=0;c‹R;c++){ 查找其余的R*(R-1)个座位*/ for(t=1;t‹R;t++ if(a[ (3) ][j+c]!=0break; if(t‹R)break; }/*for*/ If( (4) )FOUND=1; }/* if*/ (5) ; }/*while*/ }/*
12、for i*/
if(FOUND){
*row = i–1; *col = j–1; /*计算正方形区域的左上角坐标*/
return 1;
}
return 0;
【答案】
(1)j=0 (2)k 13、钮,则票价文本框中就会显示相应的票价。
在开发过程中,设选择起点和终点站名的组合框(ComboBox)名分别为ST和SP,显示票价的文本框(TextBox)名为Price,“查询”按钮(CommandButton)名为Query;设ST与SP中的诸列表项完全相同,且都是从甲地开始依次排列,从第i站到第j站的票价存放在二维对称矩陈P的元素P(i,j)中,假设从甲地到第i站行驶的距离存放在d(i)中,火车票价等于其行驶距离乘以C(常数)。
[Visual Basic代码]
Dim p(30,30) As Single ‘通用声明
Const C=0.2
Pr 14、ivate Sub Form load()
Dim d(30) As Single
(1)= “甲地” ‘在ST组合框中设置首个列表项
…… ‘在ST和SP中设置其他列表项(若干行语句)
…… ‘对数组d(i)赋值(若干行语句)
For i=0 to ST. (2) -1‘对ST中各列表项循环
For j=0 to SP. (2) -1‘对SP中各列表项循环(这两处填写内容相同)
P(i,j)= (3)
Next j
Next i
End Sub
Private Sub query_Click() 15、
i= (4) ¹组合框ST中选择的当前项编号
j=…… ¹组合框SP中选择的当前项编号 (语句略)
(5) = str$(p(i,j))
End Sub
【答案】
(1)ST.List(0) (2)ListCount (3) C*(d(j)-d(i))
(4) ST.ListIndex (5) Price.Text
试题六(15分,每空3分)
阅读以下说明、Java代码和HTML文档,将应填入 (n)处的字句写在答题纸的对应栏内。
[说明]
当用户启动html浏览器并首次打开下面的html文档时,Java App 16、let小程序在显示面板上显示字符串“Welcome!”;当html页面被其它窗口遮挡后再次显示时,小程序在显示面板上显示“Welcome back!”。
[Java代码]
import java.awt.*;
import java.applet.*;
prblic class HelloApplet extends (1) {
prblic void paint( (2) ){
g.drawString(message,10,20);
message=。“welcome back!”;
}
Prblic void 17、 (3) (){
message=“Welcome!”;
}
Private (4) message;
}
[HTML文档]
‹html›
18、