[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc

上传人:progressking105 文档编号:507178 上传时间:2018-11-29 格式:DOC 页数:14 大小:111.50KB
下载 相关 举报
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc_第1页
第1页 / 共14页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc_第2页
第2页 / 共14页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc_第3页
第3页 / 共14页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc_第4页
第4页 / 共14页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13及答案与解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 13及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和流程图 (如图 1所示 ),回答问题 1至问题 4。 【说明】 本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式 (A-(B*C+D)*E)/(F+G) 的后缀表示为 ABC*D+E*-FG+/ 为了方便,假定变量名为单个英文字母,运算符只有 +、 -、 *、 /(均为双目运算符,左结合 ),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算 术表达式以空格符结束。流程图中使用的符号的意义如下: 数组 IN存储

2、中缀表达式; 数组 POLISH存储其后缀表达式; 数组 S是一个后进先出栈; 函数PRIOR(CHAR)返回符号 CHAR的优先级,各符号的优先级见表 2:1 填充流程图中 的判断条件。 2 写出子程序 A的功能,并顺序写出实现该功能的操作 3 写出子程序 B的功能,并顺序写出实现该功能的操作。 4 中缀表达式 (A+B-C*D)*(E-F)/G 经该流程图处理后的输出是什么 ? 5 阅读下列程序和控制流图,将应填入 (n)的字句。 【程序】 下面是一段求最大值的程序,其中 datalist是数据表, n是 datalist的长度。 int GetMax(int n, int datalis

3、t) int k=0; for(int j=1; j n; j+) if(datalistj datalistk) k=j; return k; 5 该程序的控制流图中 A E分别是什么 ? 6 计算控制流图的 McCabe环路复杂性。 7 用基本路径覆盖法给出测试路径。 8 为各测试路径设计测试用例。 9 阅读 下列程序说明和 C代码,将应填入 (n)处。 请补充函数 fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量 m对删除后字符串的长度进行保存。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数

4、 fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include stdio.h #include conio.h int m; void fun(char*s) int i=0, j=0; char *p=s; while(*(p+i) if(*(p+i) =A protected: int a2; public: A ( int v1,int v2,int v3 ): a1 ( v1 ) ,a2 ( v2 ) ,a3 ( v3 ) int a3 ; class B : pubiic A private: int b1; protected: int b2; public:

5、B ( int v1,int v2,int v3,int v4,int v5,int v6 ) : A(v1,v2,v3),b1 (v4),b2(v5),b3 (v6) int b3; ; class C : public B private: int c1; protected: int c2; public: int c3; C (int v1,int v2,int v3,int v4,int v5,int v6,int v7,int v8,int v9 ) : B ( v1,v2,v3,v4,v5,v6 ) ,c1 ( v7 ),c2 ( v8 ) ,c3 v9 void disp (

6、) cout “a2 in class C =“ a2 endl; cout “a3 in class C =“ a3 eudl; cout “b2 in class C =“ b2 endl; tout “b3 in class C =“ b3 endl; ; 代码 5-2 voidmain() Cdemo(10,20,30,40,50,60,70,80,90); cout “对象 demo.a3=“ demo.a3 cout “对象 demo.b3=“ demo.b3 cout “对象 demo.c3=“ demo.c3 demo.disp( ); 运行结果 对象 demo.a3 (1)

7、对象 demo.b3 (2) 对象 demo.c3 (3) a2 in class C (4) a3 in class C (5) b2 in class C (6) b2 in class C (7) 12 阅读以下说明和 JAVA 2代码,将应填入 (n)处的字句写在对应栏内。 说明 以下程序实现了在 applet里移动图形文件,仔细阅读代码和相关注释,将程序补充完整。 代码 6-1 import j ava. awt. *; import j ava.awt.event.*; import java.applet. Applet; public class AppCIU extends

8、Applet implements MouseMotionListener, MouseListener Image IMG onClick=over(this) title=放大 ; / 声明 Image 类类型的变量 IMG onClick=over(this) title=放大 int x=70,y=60,posX=70,posY=60,dx,dy; public void init ( ) IMG onClick=over(this) title=放大 =getImage ( getCodeBase ( ) ,“mouse.gif“ ); /载入影像 addMouseListener

9、( this ); addMouseMotionListener ( this ); public void mousePressed ( MouseEvent e ) dx=e.getX()-posX; /取得按下之点与基准点 X方向的距离 dy=e.getY()-posY; /取得按下之点与基准点 Y方向的距离 public void mouseDragged ( MouseEvent e ) (1) (2) if ( dx 0 (3) public void paint ( Graphics g ) (4) (5) (6) public void mouseMoved ( MouseEv

10、ent e ) ; public void mouseReleased ( MouseEvent e ) ; public void mouseEntered ( MouseEvent e ) ; public void mouseExited ( MouseEvent e ) ; public void mouseClicked ( MouseEvent e ) ; 13 阅读以下说明和 Visual Basic代码,将应填入 (n)处的字名写在对应栏内。 说明 以下代码实 现了当用户推出界面时,判断 TextEdit中的文字是否发生改变,弹出对话框判断,让用户选择选择是否保存文件或取消退出

11、界面操作。阅读下面代码,补充完整。 代码 7-1 Begin VB.Form Forml /.窗体描述 (略 ) Begin VB.TextBox TextEdit Height = 1830 Left = 180 TabIndex = 0 Text = “TextEdit“ Top = 360 Width = 3885 End /.窗体描述 (略 ) End 代码 7-2 Dim txtchange As Boolean Dim myval As String Private Sub Form Load ( ) TextEdit.Text = “CIU, 中国软考联盟 ! txtchange

12、 = False End Sub 代码 7-3 Private Sub TextEdit_Change ( ) Static notchange As Boolean (1) (2) End Sub Private Sub Form_Unload ( Cancel As Integer ) Dim myval As String If (3) Then myval = MsgBox ( “保存文件的更改吗 ?“, vbYesNoCancel, “提示信息 “ ) If (4) Then MsgBox “保存成功 “ End End If If (5) Then End If (6) Then

13、Cancel = 1 End If End Sub 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 13答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 PRIOR(INi): PRIOR(Sp) 2 【正确答案】 功能:将当前符号 INi入栈 操作: p+1- p INi- Sp 3 【正确答案】 功能:出栈 操作: k+1- k Sp- POLISHk p-1- p 4 【正确答案】 AB+CD*-EF-*G/ 【试题解析】 本题考查栈的使用和中序表达式与后缀表达式的互换。 5 【正确答案】 (1)j n(2)return k; (3)datalist

14、j datalistk(4)k=j; (5)j+; 6 【正确答案】 McCabe环路复杂性为 3。 7 【正确答案】 测试路径: Pathl: Path2: Path3: 8 【正确答案】 测试用例: Pathl:取 n=1, datalist0=1, 预期结果: k=0 Path2:取: n=2, datalist0=1, datalist1=0, 预期结果: k=0 Path3:取 n=2, datalist0=0, datalist1=1, 预期结果: k=1 【试题解析】 本题考查对软件测试概念和过程的理解,结合具体实例运用各种测试技术,学会测试用例设计、软件测试与程序调试的方法。软

15、件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。根据 2004新大纲和最近两次软件设计师考试的真题,不难发现各类系统分析理论的实例化考核比例逐渐升温,只要读者平时对这部分知识的实例多分析、多思考,这部分分数其实不难拿到。 9 【正确答案】 (1)sj+=*(p+i)(2)i+(3)m=j 【试题解析】 填空 1:将大写字母存于原字符串中,数组下标 j自加 1,为下一次存放做准备。填空 2:为了判断字符串中的下一个字符是否为大写字母,变量 i自加 1。填空 3:最后将大写字母的个数,即删除后字符串的长度赋给全局变量m。 10 【正确答案】

16、(1)knap(s-wn, n-1)(2)knap(s, n-1)(3)top =1 & ! k 或 top 0 & k=0(4)x.s-wx.n-(5)stack+top(6)rep=0 【试题解析】 试题提供了两种解决问 题的方法,程序 5.1是用递归的方法来解决背包问题,程序 5.2使用非递归的方法来解决背包问题。每次选择一个物品放入背包,那么剩余的物品和背包剩余的重量,又构成一个 “背包问题 ”。程序从数组下标最大的物品开始考查,因此 (1)处应该填 “knap(s-wn, n-1)”,即将数组中第 N个物品放入背包,如果它能够放入到背包中,则该物品是构成解的元素之一;否则,将该物品从

17、背包中取出,该物品不构成解的元素,在以后的考查中,它可以被排除,因此 (2)处应该填 “knap(s, n-1)”。在改程序中用栈来保存已经考查过的物品,结 构 KNAPTP表示经过考查的物品, s表示考查过该物品后背包所能够盛放的物品的重量; n表示该物品在数组 W中的下标; job表示物品当前的状态:当job等于 1,表示物品 n 可以放入背包; job等于 2表示物品 n不能被放入到背包,那么在以后的选取中将不再考虑该物品。初始时 job等于 0,表示背包中没有任何放入任何物品。 K为有解的标志。 Rep为一个标志变量, rep 等于 0,表示结束当前的动作; rep 等于 1表示继续进

18、行当前的动作。当栈顶物品不能放入背包时,将 rep 设置为 0,表示下一步不从数组 w中取物品。其初值为 1。开始时, 将数组中下标最大的物品放入栈中,然后开始考查该物品。该物品满足放入背包的条件,第 (4)(5)空将完成将物品放入背包的操作,因此 (4)空填 “x.s-wx.n-”,修改背包的可容纳物品的重量; (5)处填 “stack+top“,将下一个要考查的物品放入栈中。若该物品不满足放入背包的条件,则将该物品从背包中取出,因此将 rep置为 0,结束循环 while(! k&rep)。将物品从背包中取出,即释放该物品在背包中所占的重量,并标记为不能放入到背包 (job=2),再将其放

19、入到栈中;然后继续考查数组 w 中的 下一个物品,因此需要结束循环 while (top =1 &rep),将 rep置为 0,所以第 (6)处应该填 “rep=0”。在第三处要求给出循环结束的条件,即可以继续选取物品的条件,在此处填 “top =1&!k”。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 11 【正确答案】 (1) 30 (2) 60 (3) 90 (4) 20 (5) 30 (6) 50 (7) 60 【试题解析】 本题代码定义了 class C、 class A和 class B

20、。其印 class B 继承了class A, class C又继承了 class B, class C对 class A和 B 的 protected 成员和public成员的调用。明白了这个关系就不难解题了。 12 【正确答案】 (1)x=e.getX()-dx; (2)y=e.getY()-dy; (3)update(g); (4)g.drawImage(IMG onClick=over(this) title=放大 x,y,120,60,this); (5)posX=x; (6)posY=y; 注:其中 (1)和 (2)可互换。 (5)和 (6)可互换。 【试题解析】 本题程序实现了在

21、 applet里移动图形文件。对于 (1)为取得拖曳时基准点的 X坐标 x=e.getX()-dx; (2)取得拖曳时基准点的 Y坐标 y=e.getY()-dy;(3)清空画面为背景颜色,再调用 paint()update(g); (4)将 IMG onClick=over(this) title=放大画在 applet上 g.drawImage(IMG onClick=over(this) title=放大 ,x,y,120,60,this); ; (5)更新基准点的 X坐标 posX=x; ; (6)更新基准点的 Y坐标 posY=y; 。 13 【正确答案】 (1)txtchange=notchange (2)notchange=True (3)txtchange=True (4)myval=vbYes (5)myval=vbNo (6)myval=vbCancel 【试题解析】 本题代码实现了当用户退出界面时,判断 TextEdit中的文字是否发生改变,弹出对话框判断,让用户选择是否保存文件或取消 退出界面操作。(1)、 (2)完成了状态初始化。 (3)文字发生了改动, txtchange= True,向用户发出提示信息,弹出对话框。 (4)、 (5)、 (6)根据对话框的返回值做出相应的反应。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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