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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 4及答案与解析 1 阅读下列说明和流程图,将应填入 (n)的语句写在对应栏内。【流程图】下面的流程图描述了对 16位二进制整数求补的算法。计算过程是:从二进制数的低位 (最右位 )开始,依次向高位逐位查看,直到首次遇到 “1”时,停止查看。然后,对该 “1”位左面的更高位 (如果有的话 ),逐位求反,所得的结果就是对原二进制数求补的结果。 例如:对二进制整数 10111001 10101000求补的结果是 01000110 01011000。 设 16位二进制整数中的各位 ,从低位到高位,依次存放在整型数组 BIT的 BIT1BIT16中。例

2、如,二进制整数 10111001 10101000存放在数组 BIT后,就有BIT11=0, BIT2=0, , BIT15=0, BIT16=1。 流程图 (如图 1所示 )中 (1)处按 “循环变量名:循环初值,增量,循环终值 ”格式描述。若流程图中存在空操作,则用 NOP表示。 2 阅读下列函数说明和 C代码,将应填入 (n) 处的字句写在对应栏内。 【说明】 函数 print(BinTreeNode*t; DateType DateType int i, top; top = 0;/置空栈 while(t! = NULL STtop. ptr = t; STtop. tag = 0;

3、(2); if(t!= Null (3);i +) printf(“%d“ ,STtop. ptr - data); else while(4) top-; if(top 0) STtop. tag = 1; (5); 3 阅读下列函数说明和 C函数,将 应填入 (n)处的字句写在对应栏内。 【说明】 函数 DelA_InsB(LinkedList La, LinkedList Lb, int key1, int key2, int len)的功能是:将线性表 A中关键码为 key1的结点开始的 len个结点,按原顺序移至线性表B中关键码为 key2的结点之前,若移动成功,则返回 0;否则返回

4、 -1。线性表的存储结构为带头结点的单链表, La为表 A的头指针, Lb为表 B的头指针。单链表结点的类型定义为 typedef struct node int key; struct node * next; *LinkedList; 【函数】 int DelA_InsB ( LinkedList La, LinkdeList Lb,int key1,int key2,int len) LinkedList p,q,s,prep,pres; int k; if( ! La- next | ! Lb- next | en =0)return-1; p = La - next;prep = L

5、a; while(pp = p - next; if( ! p) return - 1; /*在表 A中不存在键值为 key1的结点 */ q=p;k=1; while(q k+; if( ! q)return -1; /*表 A中不存在要被删除的 len个结点 */ s = Lb - next;(3); while(s s =s- next; if( ! s) return - t; /*表 B中不存在键值为 key2的结点 */ (4)=q- next; /*将表 A中的 len个结点删除 */ q- next=(5); pres - next = p; /*将 len个结点移至表 B *

6、/ return 0; 4 阅读以下说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 将一正整数序列 K1, K2, , K9重新排列成一个新的序列,新序列中,比 K1小的数都在 K1的前面 (左面 ),比 K1大的数都在 K1的后面 (右面 ),最后调用writeDat()函数 的新序列输出到文件 out.dat中。 在程序中已给出了 10个序列,每个序列有 9个正整数,并存入数组 a109中,分别求出这 10个新序列。 例:序列 6, 8, 9, 1, 2, 5, 4, 7, 3 经重排后成为 3, 4, 5, 2, 1, 6, 8, 9, 7 【函数】 #include

7、stdio. h #include conio. h void jsValue( int a 10 9 ) int i,j,k,n,temp; int b9; for(i=0;i 10;i+) temp=ai 0; k=8;n=0; for(j=8;j=0;j-) if(temp ai j) (1)=aij; if(temp ai j) (2)=aij; if(temp =ai j) (3)= temp; for(j=0;j 9;j+) aij =bj; void main( ) int a10 9 = 6,8,9,1,2,5,4,7,3,3,5,8,9,1,2,6,4,7, 8,2,1,9,

8、3,5,4,6,7, 3,5,1,2,9,8,6,7,4, 4,7,8,9,1,2,5,3,6, 4,7,3,5,1,2,6,8,9, 9,1,3,5,8,6,2,4,7, 2,6,1,9,8,3,5,7,4, 5,3,7,9,1,8,2,6,4, 7,1,3,2,5,8,9,4,6 ; int i,j; (4); for(i=0;i 10;i+) for(j=0;j 9;j+) printf(“%d“,ai j ); if(5)printf(“,“); printf(“ n“ ); getch( ); 5 阅读以下应用说明及 Visual Basic程序代码,将应填入 (n)处的字句写在对应

9、栏内。【说明】 本应用程序是一个乘法计算器,其运行窗口如图 2所示。在该界面中, “被乘数 ”、 “乘数 ”以及“积 ”等文字为标签,相应的 3个输入输出数据框为文本框,此外还有 3个命令按钮。用户在 “被乘数 ”和 “乘数 ”相应的文本框内输入数据,再单击 “运算 ”按钮,便能在 “积 ”对应的文本框中看到相乘的结果;当用户单击 “清除 ”按钮时,就会清除各文本框中的数据;当用户单击 “关闭 ”按钮时就会关闭该窗口并退出应用程序。用户不能在 “积 ”对应的文本框中输入数据。 【属性设置】 各个对象、有关的属性名以及需要修改的属性值设计如下:【程序】 Private Sub cmdMultip

10、ly_Click( ) txt3. Text =Trim(Str (3) 加法运算获得和数 End Sub Private Sub (4) ( txt1. Text=“ “ 空字符串赋值给文本框 txt1的内容 txt2. Text=“ “ 空字符串赋值给文本框 txt2的内容 txt3. Text=“ “ 空字符串赋值给文本框 txt3的内容 End Sub Private Sub cmdClose_Click( ) (5) 退出应用程序 End Sub 6 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【说明】 以下程序的功能是设计一个栈类 stack T,并建立一个整

11、数栈。 【程序】 #include iostream. h #include stdlib. h const int Max =20; /栈大小 template class T class stack /栈元素数组 T sMax; /栈顶下标 int top; public: stack( ) top =-1; /栈顶初始化为 -1 void push( const T /item入栈 T pop( ); /出栈 int stackempty( ) const; /判断栈是否为 ; template class T void stack T :push(const T exit(1); to

12、p + stop = item; template class T T stack T :pop() T temp; if(top=(2) cout “栈为空,不能出栈操作 “ endl; exit(1); temp =stop; top -; return temp; template class T int stack T : stackempty( ) const return top = -1; void main( ) stack int st; int a =1,2,3,4,5; cout “整数栈 “ endl; cout “入栈序列 :“ endl; for(int i=0;i

13、 4;i +) cout ai “ “; (3); cout endl “出栈序列 “; while(4) tout (5) “ “; cout endl; 7 阅读以下说明和 Java代码,将解答写入对应栏内。 【说明】 下面是一个 Applet程序,其功能是输出已定义好的两个变量 x和 chr。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java. awt.*; (1) (2) int x=10; (3) Label output1; Label output2; (4) output1 = new Label

14、(“定义 int类型变量 “+“x,的初值为 “+x); output2 = new Label(“定义 char类型变量 “+“chr,的初值为 “+chr); add(output1); add(output2); HTML HEAD TITLE ex34_3 /TITLE /HEAD BODY (5) width=400 height=400 /applet /BODY /HTML 软件水平考试(初级)程序员下午(应用技术)模拟试卷 4答案与解析 1 【正确答案】 (1)i: 1, 1, 16 (2)1- sw (3)0B ITi (4) NOP,或空操作 (5)1- BITi 【试题解

15、析】 该流程图的功能在说明中已经解释了,要解该题关键要搞清楚流程图中引用的变量 sw的含义。通过阅读流程图的说明和流程图可知,变量 sw主要用来定义是否已经找到某一位是 “1”:当 sw=0时,说明到目前为止还没有哪一位是 “1”,不需要对该位求反;当 sw=1时,说明已经有一位是 “1”,需要对该位求反。 先来看 (1)空。 (1)空是要写出循环变量名、循环初值、增量和循环终值,该题要从遍历整型数组 BIT的所有元素,从 BIT1开始到 BIT 16结束,再看流程图的第 1个判断用的变量是 i,这样就可判断循环变量名为 i,循环初值为 1,增量为1,循环终值为 16。这样 (1)空的答案为

16、“i:1,1,6”。 在这个循环中,当第 i位是 1时,即 BIT(i)=1,进入左分支。这时需要判断 sw值,若 sw=0,需要将 sw置为 1; “若 sw=1,需要对将 BIT(i)置为 0。这样 (2)空的答案为 “1- sw”; (3)空的答案为 “0- BITi”。 同样,当第 i位是。时,即 BIT(i)=0,进入右分支。这时需要判断 sw值,若sw=0,将不作任何 操作;若 sw=1,需要对将 BIT(i)置为 1。这样 (4)空的答案为“NOP”; (5)空的答案为 “1- BITi”。 2 【正确答案】 (1)top+ (2)t=t- leftChild (3)i=top

17、(4)top 0 & STtop.tag=1 (5)t=STtop.ptr- rightChild 【试题解析】 这个程序是一个典型二叉树后序遍历非递归算法的应用。算法的实现思路是:先扫描根结点的所有左结点并入栈;当找到一个结点的值为 x,则输入出栈里存放的数据,这些数据就是该结 点所有祖先结点;然后判断栈顶元素的右子树是否已经被后序遍历过,如果是,或者右子树为空,将栈顶元素退栈,该子树已经全部后序遍历过;如果不是,则对栈顶结点的右子树进行后序遍历,此时应把栈顶结点的右子树的相结点放入栈中。再重复上述过程,直至遍历过树中所有结点。 (1)、 (2)空年在循环就是扫描根结点的所有左结点并入栈,根

18、据程序中的栈的定义,栈空时 top=0,因此在入栈时,先将栈顶指针加 1,因此 (1)空处应填写“top+”或其等价形式, (2)空是取当前结点的左子树的根结点,因此应填写 “t=t-leftChild”。 (3)空所在循环是处理找到值为 x的结点,那么该结点的所有祖先结点都存放在栈中,栈中的栈底是二叉树的根,而栈顶元素是该结点的父结点,因此, (3)空处应填写 “i=top”。 (4)空所在循环是判断栈顶元素的右子树是否已经被后序遍历过,如果是,或者右子树为空,将栈顶元素退栈,这里要填写判断条件。 tag=0表示左子树, tag=1表示右子树,因此, (4)空处应填写 “top 0&ST t

19、op.tag=1”。 (5)空所在语句块是处理栈顶元素的右子树没有被后序遍历情况,则将右子树入栈,因此 (5)空处应填写 “t=STtop.ptr- rightChild”。 3 【正确答案】 (1)k len (2)q=q- next或 q=(*q).next (3)pres=Lb (4)prep- next或 (*prep).next (5)s或 pres- next或 (*pres).next 【试题解析】 (1)此处 while循环应当循环至 k等于 len结束,所以应填入 klen。 (2)此处语句表示链表前进一个结点,应填入 q=q- next或 q=(*q).next。 (3)此

20、处语句为指针 pres赋初值,使他指向 s的上一结点。 (4)修改指针 prep,使 prep指向 q的下一结点。 (5)此处语句为修改指针 q, q指向 s或者 pres的下一结点,达到将 A中的 len个结点删除的目的。 4 【正确答案】 (1)bk- (2)bn+ (3)bn (4)jsValue(a) (5)j =7 【试题解析】 在主函数中先要调用函数 jsValue()对数组 a进行处理,所以 (4)空应填入 “jsValue(a)”。然后输出数组元素,同一行的元素之间用逗号分隔,所以 (5)空应填入 “j =7”。 函数 jsValue()是将数组按题目要求进行排序。通过观察发现

21、处理后的数组中元素的顺序与原来的顺序相反,并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个问第一个数比较,比它大的就放到临时数组 b中的最后,比它小的就放到临时数组 b中的最前面,以次类推,所以 (1)空应填入 “bk- -”, (2)空应填入 “bn+, (3)空应填入 “bn”。最后将 b数组赋给 a数组。 5 【正确答案】 (1)False (2)cmdMultiply (3)Val(txt1.Text)*Val(txt2.Text)或其等价形式 (4)cmdClear-Click (5)End或 Unload frmMultiply或其等价形式 【

22、试题解析】 (1)空处需要填写文本框 3的 Enabled属性,在说明中已经指出用户不能在 “积 ”对应的文本框中输入数据,因此其 Enabled属性为 “False”。 (2)空处需要填写按钮 1(运算按钮 )的名称,从程序代码的 Private Sub cmdMaltiply_Click()事件中,可以判断按钮 1的名称为 “cmdMultiply”。 (3)空处所在语句是进行乘积运算,由于文本框的文字是字符类型,不能直接进行乘积运算,先要将它转换成数据型再进行乘积运算。因此 (3)空处应当填写“Val(txt1.Text)*Val(txt2.Text)”或其等价形式。 (4)空处需要填写

23、一个事件的名称,从下面的代码可以看出这是 “清空 ”按钮 Click事件所完成的工作, “清空 ”按钮的名称为 “cmdClear”,因此 (4)空应填写“cmdClear_Click”。 (5)空处需要填写退出应用程序的语句。在 VB中,这样的语句有很多,常用有两个,一个是 “End”,另一个 “Unload窗口名称 ”。 6 【正确答案】 (1)Max-1 (2)-1 (3)st.push(ai) (4)!st.stackempty() (5)st.pop() 【试题解析】 本题用类模板方式定义一个栈类,其中有两个私有数据成员:s(存放栈元素 )和 top(栈顶元素下标 ),以及 3个公有

24、成员函数: push(元素入栈 )、 Pop(元素出栈 )和 stackempty(判断栈是否为空 )。 在函数 push()中,首先要判断是否栈满。栈的大小为 Max,数组的下标从 。开始,所以栈满的条件是栈顶元素下标为 Max-1,所以 (1)空应填入 “Max-1”。同样,在函数 pop()中,首先要判断是否为空栈,由于栈顶初始化为 -1,所以 (2)空应填入 “-1”。 在主函数中,先进行入栈操作,所以 (3)空应填入 “st.push(a i)”。然后进行出栈操作,判断栈是否为空,调用对象的函数 stackempty(),所以 (4)空应填入“!st.stackempty()”。 (5)空处调用出栈函数,所以应填入 “st.pop()”。 7 【正确答案】 (1)import java.applet * (2)public class MyApplet extends Applet (3)char chr=R (4)public void init() (5) appletcode=“MyApplet class” 【试题解析】 创建 applet程序应导入包 applet。 applet程序类继承自类 Applet。声明字符型变量应当使用单引号。初始化函数必须是公有的。调用 applet类应当使用关键字 code。

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