收藏 分销(赏)

全国计算机技术与软件专业技术资格(水平)考试及答案(下午试卷).doc

上传人:仙人****88 文档编号:9282534 上传时间:2025-03-19 格式:DOC 页数:9 大小:281.50KB
下载 相关 举报
全国计算机技术与软件专业技术资格(水平)考试及答案(下午试卷).doc_第1页
第1页 / 共9页
全国计算机技术与软件专业技术资格(水平)考试及答案(下午试卷).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述
全国计算机技术与软件专业技术资格(水平)考试 2005年上半年 程序员 下午试卷 (考试时间 14:00~16:00共150分钟) 请按下述要求正确填写答题纸 1、在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。 2、在答题纸的指定位置填写准考证号、出生年月日和姓名。 3、答题纸上除填写上述内容外只以写解答。 4、本试卷共8道题,试题一至试题三是必答题,试题四至试题五选答1道,试题六至试题八选答1道,每题15分,满分75分。 试题六至试题八选答1道。每题15分,满分75分。 试题号 一~三 四~五 六~八 选择方法 必答题 选答1题 选答1题 5、解答时字迹务必清楚,字迹不清时,将不评分。 6、仿照下面例题,将解答写在答题纸的对应栏内。 例题 2005年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。 因为正确的解答是“5月29日”,故在答题纸的对应栏内写上“5”和“29”(参看下表)。 例题 解答栏 (1) 5 (2) 29 试题一至试题三是必答题 试题一(15分,每空3分) 阅读以下说明和流程图,回答问题1至问题2将解答填入答题纸的对应栏内。 [说明] 设8位二进制代码 B0B1...B7中的最高位 B0为奇偶校验位。对于任何给定的代码B1B2...B7,可按下式计算偶校验位: B0= B1 B2... B7 其中,“”表示“异或”运算。 下面的流程图描述了计算偶校验位的过程。 [流程图] 开始 B0 (1) 循环开始 i: (2) (4) B0 ( 3) 循环结束 输出B0 结束 注:流程图,循环开始的说明按照“循环变量名:循环初值,循环终值,增量“格式描述。 [问题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) { 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) ) { 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) 处的字句写在答题纸的对应栏内。 [说明] 一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根了发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩子时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以A为根的二叉树的“最左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。 二叉树的结点类型定义如下: Typedef struct BSTNode{ int data; struct BSTNode *lch;//结点的左、右孩子指针 }*BSTree; 函数BSTree Find_Del (BSTree root)的功能是:若root 指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从树下删除以*p为根的子树,函树返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。 [函数] 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) = 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个空座位,要求这些座位的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回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 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*/ }/*for i*/ if(FOUND){ *row = i–1; *col = j–1; /*计算正方形区域的左上角坐标*/ return 1; } return 0; 【答案】 (1)j=0 (2)k<R (3)i+t (4)c==R (5)j++ 试题五(15分,没空3分) 阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 甲乙两地之间的铁路线上有二十多个火车站,为方便乘客查询票价,特开发了火车票价查询程序,其运行窗口如下图所示,乘客只要通过两个下拉列表框分别选择起点与终点站名,再单击“查询”按钮,则票价文本框中就会显示相应的票价。 在开发过程中,设选择起点和终点站名的组合框(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 Private 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() 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 Applet小程序在显示面板上显示字符串“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 (3) (){ message=“Welcome!”; } Private (4) message; } [HTML文档] ‹html› <head> <title>HTML Test HelloApplet Page</title> </head> <body> Test HelloApplet 小程序〈br> <applet codebase=”.” code=” (5) ” name=”TestApplet” width=”400” height=”300” > </applet> </body> </html> 【答案】 (1)Applet (2)Graphics g (3)paint (4)String (5)HelloApplet.class 试题七(15分,每空3分) 阅读以下说明及Visral Basic 程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 某个文本件中存放了若干个非零数值有效数据,每个数据占一行,最后一行以数字“0”作为结束标志。下面的程序用于计算该文件中管些数据之和,其运行窗口如下: 用户只要通过驱动器列表框、目录列表框和文件列表框,选择文本文件所在的驱动器、文件夹及相应的文件名,再单击“累计”按钮,就能在“总计”文本框中看到该文本文件中的数据之和。 在开发过程中,设驱动器列表框名为Drivdl,目录列表框名为Dirl,文件列表框名为Filel,存放数据的文本文件名为D:/text/vb7/data.txt,“累计”按钮名为sum,“总计”文本框(TextBox)名为textl。 [Visral Basic 代码] Private Sub Drivel_Change() Dirl.Path=(1) ¹用户选择的驱动器反映到目录列表框中 End Sub Private Sub Dirl_Change() Filel.Path=(2) ¹用户选择的文件改变文件列表框内容 End Sub Private Sub sum_Click() Dim (3) As New FileSystemobject, (4) As TextStream ¹创建自己的文件系统对象,说明自己的文本流对象 If Right(Dirl.Path,1)=”/”Then SetmyTextFile=fso.OpenTextFile(Dirl.Path+Filel.FileName) Else SetmyTextFile=fso.OpenTextFile(Dirl.Path+”1”+Filel.FileName) Ebd If S=0 Do d=Val(myTexFile.ReadRow) S=S+d Lood While (5) Textl.Text=Str$(S) End Sub 【答案】 (1)Drive1.Drive (2)Dir1.Path (3)fso (4) myTextFile (5) d<>0 试题八(15分,每空3分) 阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 下面程序的功能是计算并输出某年某月的天数。 [C++程序] #include<iostream> using namespace std; (1) Month{Jan,Feb,May,Jun,Jun,Jul,Aug,Sep,Oct,Nov,Dec}; class Date{ public: Date(int year,Month m_month){ (2) =year; if(m_month<Jan||m_month>Dec)month=Jan; else month=m_month; }; ~Date(){}; bool IsLeap Year(){ return ((year%4==0&&year%100!=0||year%400==0); }; Int CaculateDAY(){ Switch( (3) ){ Case Feb:{ If( (4) )return29; Else return28; } case Jan:case Mar: case May;case Jul:case Aug:case Oct: case Dec:return31: case Apr:case Jun:case Sep:case Nov:return30: } }; Private: Int year; Month month; }; Void main(){ Date day(2000,Fed); Cort<<day.( (5) ); } 【答案】 (1)enum (2)this.year (3)month (4)iLunarMonth() (5)CaculateDAY()
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服