[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷8及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷8及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷8及答案与解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 8及答案与解析 1 阅读下列算法说明和算法,将应填入 (n)处的字句写在答卷的对应栏内。 【算法说明】 某英汉词典文件包含 N个记录 (N 1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。 本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的 英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。 【算法】 第
2、一步 读入英汉词典文件,并将读入的 N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组 CN中。数组元素 CN(i)给出了数组元素 ENG(i)的解释。 第二步 输入英文单词及其汉语解释,将它们分别存放在字符串变量 E和 C中。若 E为空串或都是空格,则转向第四步。 第三步 根据变量 E的值,用二分法在数组 ENG中查找。具体步骤如下: 1 1L , NH 2 INT(L+H)/2)K 3若 E=ENG(K),则 CCN(K) ,转向第二步 若 E ENG(K),则 K-1(1) ;若 E ENG(K),则 K+1(2) 4若 H L则 对 I=N, L, -1(始
3、值,终值,增量 )循环执行: ENG(I)ENG(I+1) CN(I)CN(I+1) 然后,将 E和 C分别存入 (3)和 (4), N+1N 最后转向第二步 否则,转向 (5) 第四步 将数组 ENG和 CN输出,形成新的英汉词典文件,算法结束。 2 阅读以 下函数说明和 C语言函数,将应填入 (n)处的字句填写在对应栏内。 函数 2.1说明 函数 fun1 (int m, int k, int xx )的功能是:将大于整数 m且紧靠 m的 k个素数存入数组 xx中传回。例如:若输入 17, 5,则应输出: 19, 23, 29, 31, 37。 函数 2.1 fun1 (int m, in
4、t k, int xx ) inti, j, s=0; for ( i=m+1; k 0; i+ ) for (j=2; j i; j+ ) if ( i %j=0 ) (1) if( i=j ) (2) k-; 函数 2.2说明 函数 void fun 2 ()的功能是:打印出杨辉三角形 (要求打印出 10行 )。 函数 2.2 void fun2 ( ) int i, j; int a1010; printf (“n“ ); for (i=0; i 10; i+ a i 0=1; (3) for (i=2; i l0; i+ ) for (j=1; j i; j+) (4) for (i=
5、0; i 10; i+ ) for (j=0; j =i; j+ ) (5) printf ( “n“ ); 3 阅读以下说明和 C语言函数,将应填入 (n)处 的字句写在答题纸的对应栏内。 说明 求树的宽度,所谓宽度是指在二叉树的各层上,具有结点数最多的那一层的结点总数。本算法是按层次遍历二叉树,采用一个队列 q,让根结点入队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。 函数 int Width ( BinTree *T int front=-1, rear=-1; /*队列初始化 */ int flag=0, count=0, p; /*p用于指向树中层的最右边的结点
6、 , flag 记录 层中结点数的最大值 */ if ( T!=Null) rear+; (1); flag=1; p=rear; while (2) front+; T=q front; if (T-lchild!=Null ) roar+-+; (3); count+; if ( T- rchild!=Null ) rear+; qrear=T- rchild; (4); if (front=p ) / 当前层已遍历完毕 if(5) flag=count; count=0; p=rear, /p 指向下一层最右边的结点 return ( flag ); 4 阅读以下说明和 C语言函数,将应
7、填入 (n)处的字句写在对应栏内。 说明 某班有 n个同学,学号分别为 1, 2, , n。为了每天指派若干个同学值日,他们放弃传统单调的轮留 值日,别出心裁采用 “定和值日 ”法:每天所指派值日同学的学号之和须等于其班号 m(n m n(n+1)/2)并且规定:不允许任何两天值日的同学完全一样。 编程使 n个同学按定和 m值日 (正整数 n、 m均从键盘输入,约定 n 50, m100),求出可持续的值日天数 f(n, m)。运行程序,具体求出 f(19, 98)的值。 函数 main ( ) int b, p, i , m, n, k; static int a51101: long s=
8、0; printf (“ 请输入学生人数 ;“); scanf ( “%d“, printf (“ 请输入定和值 : “); scanf ( “%d“, a10=1; a11=1; /* 数组元素赋初值 */ for (1); j =n; j+) for (i=j;(2); i+) /* 计算 a (2, m), a(n, m)*/ (3); b=0, for ( k=1 k j-1; k+ (4); aji=b; (5); /* 求和 s 为所求结果 */ printf (“ “); printf ( “f ( %d, %d ) =%1dn“, n, m, s ); 5 阅读以下说明和 Vi
9、sual Basic代码,将应填入 (n)处的字句写在对应栏内。【说明】 在一些应用场合中,需要对用户的输入数据进行检查监控。以下 VisualBasic程序实现了对新添加到 List列表的内容进行监控,拒绝向 List列表添加重复信息。例如,在 List列表中存在元素 “a01001; a01002”,如果用户输入数据为“a01001”或 “a01002”,系统则弹出提示信息,拒绝将新数据加入 List列表;如果用户输入的数据不同于 List列表中的任何一个元素,则作为新元素加入 List中。VisualBasic界面显示如图所示。根据程序功能说明,完成程序代码。 【代码 5-1】 Begi
10、n VB.Form Forml Caption = “List 列表拒绝添加重复信息 “ /.窗体描述 (略 ) Begin VB.CommandButton Command2 Caption = “退出 “ /.窗体描述 (略 ) End Begin VB.CommandButton Commandl Caption = “添加 “ /.窗体描述 (略 ) End Begin VB.TextBox Text1 /.窗体描述 (略 ) End Begin VB.ListBox List1 Height = 1860 ItemData = “Form1.fix“: 0000 Left = 102
11、0 List = “Form1.fix“: 0002 TabIndex = 0 Top = 525 Width = 2580 End Begin VB.Labe1 Labe11 BackStyle = 0 Transparent Caption = “请输入编号 “ /.窗体描述 (略 ) End End 【代码 5-2】 Attribute VB Name = “Form1“ Attribute VB_GlobalNameSpace = False Attribute VB Creatable = False Attribute VB PredeclaredId = True Attribu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 答案 解析 DOC
