ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:187.50KB ,
资源ID:507364      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507364.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷1及答案与解析.doc)为本站会员(boatfragile160)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷1及答案与解析.doc

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 1及答案与解析 1 阅读下列说明和流程图,将应填入 (n)的语句写在对应栏内。 【流程图说明】 下面的流程 (如图 1所示 )用 N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有 3个成员: data, left和 right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空, 表示此树中不存在所要查找的元素。 【算法说明】 【流程图】 将上题的排

2、序二叉树中查找元素的过程用递归的方法实现。其中 NODE是自定义类型:typedef struct node int data; struct node * left; struct node * right; NODE; 【算法】 NODE * SearchSortTree(NODE * tree, int e) if(tree!=NULL) if(tree- data e) (4); /小于查找左子树 else if(tree- data e) (5); /大于查找左子树 else return tree; return tree; 2 阅读下列程序或函数说明和 C代码,将应填入 (n)处

3、的字句写在答题纸的对应栏内。 【函数 2.1说明】 函数 stremp()是比较两个字符串 s和 t的大小。若 s t函数返回负数;若 s=t函数返回 0;若 s t,函数返回正数。 【函数 2.1】 int strcmp(char * s,char * t) while(* st+; return (2); 【程序 2.2说明】 在 n行 n列的矩阵中,每行都有最大的数,本程序求这 n个最大数中的最小一个。 【程序 2.2】 #include stdio.h #define N 100 int aN N; void main() int row ,col,max,min,n; /* 输入合法

4、 n(n 100),和输入 nn个整数到数组 a的代码略 */ for (row =0;row n;row+) for(max=arow 0,col=1;col n;col+) if(3)max=arowcol; if(4)min=max; else if(5)min=max; printf(“The min of max numbers is %dn“,min); 3 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 函数 move(int*a, int n)用于整理数组 a的前 n个元素,使其中小于 0的元素移到数组的前端,大于 0的元素移到数组的后端,

5、等于 0的元素留在数表中间。 令 a0 alow-1)小于 0(初始为空 ); alow-ai-1等于 0(初始为空 ); ai ahigh还未考察,当前考察元素为 ai。 ahigh+1 an-1大于 0(初始为空 )。 【函数】 move(int*a ,int n) int i,low,high,t; low=i=0;high=n-1; while(1) if(ai 0) t=ai;ai=alow;alow=t; (2);i+; else if(3) t=ai;ai=ahigh;ahigh=t; (4); else (5); 4 阅读以下说明和 C代码,将应填入 (n)处的字句写在对应栏内

6、 【说明】 从文件 IN.DAT中读取一篇英文文章存入到字符串数组 XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组 XX中,最后调用函数WRITEDAT(),把结果 XX输出到文件 OUT5.DAT中。 例如:原文: You can create an index on any field you have the correct record. 结果: n any field Yu can create an index rd.

7、yu have the crreet res 原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。 【函数】 #include “stdio.h“ #include “string.h“ #include “conio.h“ #include “ctype.h“ #include “mem.h“ unsigned char xx50 80 int maxline=0; int readdat(void); void writedat(void) *将题目要求的字符串中所有小写字母 o左边的字符串内容移到谊串的右边存放,即将串中 “最后 ”一个字母 o左右两侧的内容互换 *

8、 void StrOR(void) inti; char*p1,* p2,t80; for(i=0;i maxline;i+) t0=/0; p2=xxi; while(*p2) /*找到最后一个别 o*/ if(1)p1=p2; p2+; strcat(t,p1+1); *p1=0; strcat(t,xxi); p1=xxi; p2=t; while(*p2) /*删去字符 o*/ if(2) (3)=*p2; p2+; (4); void main() clrscr(); if(readdat() printf(“Cant open the file IN. DAT!n“); retur

9、n; StrOR(); writedat(); int readdat(void) FILE * fp; int i=0; char * p; if(fp=fopen(“in.dat“,“r“ )=NULL) return 1; while(fgets(xxi,80, fp)!=NULL) p=strchr(xxi,n); if(p) *p=0; i+; maxline:(5); fclose(fp); return 0; void writedat (void) FILE * fp; int i; fp=fopen(“in.dat,“w“); for(i=0;i maxline;i+) pr

10、intf(“%sn“,xxi); fprintf(fp,“ %sn“,xxi); fclose(fp); 5 阅读以下应用说明、属性设置及 Visual Basic程序代码,将应填入 (n)处的字句写在对应栏内。【说明】 本应用程序的运行窗口如图 2所示。 只要用户单击 “闪烁 ”按钮,文字 “欢迎光临 ”就会 以0.3秒消失、 0.3秒显示反复进行闪烁;单击 “停止 ”按钮时,闪烁停止,恢复图示的初态。 在开发过程中,需要设置的属性如表 1所示。在开发过程中,需要编写的程序代码如下: 【程序】 Private Sub CmdF_Click( ) Timerl.(3)=True Label.

11、Visible = False End Sub Private Sub Timerl_Timer( ) (4)= not Label. Visible End Sub Private Sub CmdT_Click( ) Timer. Enabled =(5) Label Visible = true End Sub 6 阅读以下应用说明及 Visual Basic部分程序代码,将应填入 (n)处的字句写在对应栏内。 【说明】 该应用程序是用来修改文本框中的字体属性,其运行窗口如图 4所示。 窗口由 1个标签(Labell)、 1个文本框 (txtPassage)和 4个选择框 (chkFont

12、, chkltalic, chkSize,chkColor)组成。程序运行后,用户在文本框内输入一段文字,然后按需要单击各选择框,用以改变文本的字体、字型、颜 色及大小。 文本框的 Mulitine属性已经设为 True。当不选择 “黑体 ”时,文字应是 “宋体 ”。当不选择 “大小 16”时,字号为9。当不选择 “紫色 ”时,字色为黑色。当不选择 “斜体 ”时,文字采用正常字型。 【程序代码】 Private Sub chkFont Click( ) If (1) Then txtPassage. FontName =“黑体 “ Else txtPassage. FontName =“宋体

13、“ End If End Sub Private Sub (2) () If chkColor. Value = 1 Then txtPassage. ForeColor = QBColor(13) Else txtPassage. ForeColor = QBColor (0) End If End Sub Private Sub chkltalic_Click() If chkltalic. Value = 1 Then txtPassage. Fontl talic =(3) Else txtPassage. Fontltalic=(4) End If End Sub Private S

14、ub chkSize Click( ) If (5) Then txtPassage. Font. Size = 16 Else txtPassage. Font. Size = 9 End If End Sub 7 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【说明】 设计一个评选优秀教师和学生的程序,其类结构如图 6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。 【程序】 #includeiostream.h #include stdio.h enum boolean False,True class base protected: char n

15、ame8; public: void getname() cout “姓名 :“ ;cin name; void printname() cout “姓名 :“ name endU3 virtual boolean isgood() =0; class student:(1) int num; public: void getnum() cout “考试成绩 :“ cin num; boolean isgood() return (2); ; class teacher:(3) public base int num; public: void getnum() cout “每年发表论文数 :

16、“ ;cin num; boolean isgood() return (4); ; void main() base* p50; student * pstud; teacher * ptech; char ch; int count =0; do cout “输入教师 (t)或学生 (s):“ cin ch; if(ch =s) pstud = new student; pstud - getname(); pstud - getnum(); pcount + = pstud; else if(ch = t) ptech = newteacher; ptech - getname( ) p

17、tech - getnum(); pcount+=ptech; else cout “输入错误 endl; cout “继续输入码 (Y/n)“; cin ch; while(ch = y) for(int i=0;i count;i+) if(5) /若为优秀,则输出 pi- printname(); 8 阅读以下说明和 Java代码,将解答写入对应栏内。 【说明】 下面程序的功能是显示已定义的一个 3行 3列的二维数组每行的元素,并求所有元素的和并 输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。 public class Arrayt (1) static (2) mai

18、n(String args) int sum=0; int = t 11,12,13, 21,22,23,31,32,33; for(int i=0; (3) i+) System. out. print(“b“+i+“:“); for(int j=0;(4) j+) System. out. print(bi j +“ “); (5) System. out. println (); System. out. println(“sum=“+sum); 软件水平考试(初级)程序员下午(应 用技术)模拟试卷 1答案与解析 1 【正确答案】 (1)p=p- left (2)ptr=p- right

19、 (3)return P (4) return SearchSortTree(tree- left ) (5)return SearchSortTree(tree- right) 【试题解析】 所谓二叉排序树,指的是一棵为空的二叉树,或者是一棵具有如下特性的非空二叉树: 若它的左子树非空,则左子树上所有结点的值均小于根结点的值。 若它的右子树非空,则右子树上所有结点的值均大干根结点的 值。 左、右子树本身又各是一棵二叉排序树。 先来分析流程图。在流程图中只使用一个变量 p,并作为循环变量来控制循环,所以循环体中必须修改这个值。当进入循环时,首先判断 p是不是为空和该结点是不是要找的结点,如果这

20、两个条件有一个满足就退出循环,返回 prt, (如果是空,则返回 NULL,说明查询失败;否则返回键值所在结点的指针。 )因此 (3)空处应当填写 “return p”。如果两个条件都不满足,就用查找键值 e与当前结点的关键字进行比较,小的话,将指针 p 指向左子树继续查找,大的话将指针 P指向右子树继续查找。于是, (1)空处应当填写 “p=p- left”, (2)空处应当填写 “p=p-right”。 再来分析程序。虽然是递归算法,但实现思路和非递归是一样。首先用查找键值e与树根结点的关键字比较,如果值小的话,就在左子树中查找 (即返回在左子树中查找结果 );如果值大的话在右子树中查找

21、(即返回在右子树中查找结果 );如果相等的活就返回树根指针。因此 (4)、 (5)空分别应填写 “return SearehSortTree(tree- left)”和 “return SearehSoaTree(tree- right)”。 2 【正确答案】 (1)*s = *t (2) *s - *t (3) arowcol max (4)row=0 (5) maxmin 【试题解析】 *s 和 *t相等才执行循环体。返回二者差值,恰好符合题目要求。 当前值比 max大,则把它赋给 max。 max 是本行最大值。初始化 min 为第一行的 max。该行的 max比 min 小,则将 ma

22、x 赋给 min。 3 【正确答案】 (1)i =high (2)low+ (3)ai 0 (4)high- (5)i+ 【试题解析】 程序的说明已经对程序的功能和相关变量解释得很清楚了,这儿就不再重复了。由变量 i、变量 low和变量 high 的含义和初值可以判断, i至 high之间的元素还未处理,因此 while循环条件是 “i hish”或其等价形式,这就是 (1)空所填写的内容。 (2)空所在语句块是处理当 ai 0的情况,显然这时需要将 a i与 alow进行交换,交换后需要将 i和 low 都要向后移动,因此 (2)空处应填写 “low+”或其等价形式。 (3)空需要填写执行

23、(4)空所在语句块的条件, 由 (4)空所在语句块的可以判断,它是处理当 ai 0的情况,因此 (3)空处应填写 “ai 0”或其等价形式。当 ai 0时,需要将 ai与 ahigh进行交换,交换后需要将 high 都要向前移动,因此 (4)空处应填写 “high-”或其等价形式。注意这时 i不能向后移动,因为交换后的 ai还没有处理,需要循环的下一趟进行处理。 当 ai=0情况,当 ai=0时,不需要进行元素交换,只需将 i向后移动就可以了,阅此 (5)空处应填写 “i+”或其等价形式。 4 【正确答案】 (1)*p2=o (2)*p2!=o (3) *p1+ (4)*p1=0 2(5)i

24、【试题解析】 在主函数中,首先调用函数 READDAT(),从文件 IN.DAT中读取一篇英文文章存入到字符串数组 XX 中,用变量 maxline 表示文章的行数,所以 (5)空应填入 “i”。 函数 STROR()的功能是将字符串中所有小写字母。左边的字符串内容移到该串的右边存放,即先将串中 “最后 ”一个字母。左右两侧的内容互换,再删去所有的小写字母 o。第一个 while()循环的作用是让 p1 指向最后一个字母 o, 所以 (1)空应填入 “*p2=o”。第一个 stmat()函数的作用是将 p1以后的字符都放到新串 t中。第二个 strcat()函数的作用是将 p1以前的字符连接到

25、新串 t的后面 (注意:在此之前要让 p1所指的单元成为 p1前面字符串的结束位置 *p1=/0)。这时完成左右互换。最后 个 while()循环的作用是删除新串中的所有小写字母 o,采用的删除方法是不是 o的字母一律留下,否则不留 (即相当于删除 ),所以 (2)空应填入“*p2!=o,而 p1指向这一行的开始,且每次赋值后值必须加 1,所以 (3)空应填入“* P1 +”。复制完所有不是 o的字母后还要加一个字符串结束标记,所以 (4)空应填入 “* p1=0”。 最后通过调用函数 WRITEDAT()把结果 xx输出到文件中。 5 【正确答案】 (1)false (2)300 (3)En

26、abled (4)Label.Visible (5)false 【试题解析】 单击 “闪烁 ”按钮后,文字才开始闪烁,所以初始时定时器并未启动, (1)处应填 false。定时器的时间间隔为 0.3秒,即 300毫秒,所以 (2)处应填300(Interval属性的 单位是毫秒 )。 (3)单击 “闪烁 ”按钮后,应启动定时器,所以修改 Timerl 的 Enable 属性为 True。 (4)定时器到时的时候,应当使 Label 的是否可见属性 (Visible)取反,所以 (4)处应填 Label Visible。 (5)单击 “停止 ”按钮后,要停止定时器,所以应修改 Timerl 的

27、Enable 属性为 false。 6 【正确答案】 (1)chkFont Value或 chkFont Value=1 (2)chkColor_Click (3)True (4)False (5)chkSize, Value或 chkSize Value=1 【试题解析】 (1)空需要填写修改字体的条件,当不选择 “黑体 ”时,文字应是 “宋体 ”,即 chkFont Value; 1时为黑体,因此 (1)空应填入 “chkFont Value=1”或“chkFont Value”。 (2)空要填写修改颜色的过程的名称,这应当是选择框 chkColor的 click 事件。因此 (2)空应填

28、入 “chkColor_Click”。 当不选择 “斜体 ”时,文字采用正常字型。因此 (3)、 (4)空分别填入 “True”、“False”。 当不选择 “大小 16”时,字号为 9。因此 (5)空处应填写 “chkSize Value=1或“chkSize Value”。 7 【正确答案】 (1)public base (2)(mum 90)? True:False (3)public base (4)(num 3)? True:False (5)pi- isgood()=True 【试题解析】 基类 base中提供的一个纯虚函数作为判断类 student和类 teacher的公共接口,

29、且这两个类中都需要访问保护成员,所以 (1)和 (3)空中应填入的继承方式为 “publi c base”。 评选优秀教师和学生的标准不同,所以类 student和类 teache分别定义了各自的函数 isgood(),优秀学生的标准为考试成绩超过 90分,所以 (2)空中应填入 “(mum 90)?True: False”。优秀教师的标准为一年发表论文超过 3篇,所以 (4)空中应填人 “(num 3)?True: False”。 在主函数中指针数组 P存放输入的数据,然后判断是否被评为优秀教师或学生。(5)空显然是要调用其函数 isgood(),所以应填入 “pi- isgood()=True”。 8 【正确答案】 (1)public (2)void (3)i 3;或等价形式 (4)j 3;或等价形式 (5)sum+ bij;或等价形式 【试题解析】 (1)空为 Java主函数的修饰符,是固定写法。 (2)空 Java主函数不需要返回值,这也是固定写法。 (3)空数组共有 3行,所以循环 3次。 (4)空数组共有 3列,所以循环 3次。 (5)空是将 bij累加到 sum中。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1