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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 29及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和流程图,回答问题 1和问题 2,将答案写在答卷的对应栏内。【说明】 本流程图实现从比赛成绩文件生成赛车成绩一览表。 某国际高等级赛车比赛使用如图所示的成绩处理流程,比赛成绩记录在成绩文件 F0中,其记录格式如下:由该成绩文件生成如下所示的车手成绩一览表。生成的车手成绩一览表按总名次 (系统会根据总成绩和分段成绩按规定方式计算得出总名次,不会有相同名次存在 )降序排列。表中第 n赛段的名次是该车手相应赛段在全部车手中的名次,成绩是根据规定方式计算而得的成绩

2、,总名次是总成绩在所有车手中排名的名次。流程图中的顺序文件 F0是车手成绩文件, F0文件经处理 l处理后产生顺序文件 F,然后经处理 2至处理 4对文件 F进行处理和更新,在处理 5中,仅仅对文件 F的记录进行车手成绩一览表的编排输出,不进行排序和增加名次等处理。 1 流程图中的文件 F的记录格式设置为如下形式: 其中的 、 应定义为何种数据 ? 2 简述处理 2、处理 3和处理 4做何种处理,若有排序处理则需指明排序的键及序(升序或降序 )。 3 阅读以下说明,回答问题 1至问题 3,将答案写在答卷的对应栏内。 【说明】 下面是某 ERP系统中零件供应模块的 3个关系模式。 供应商: S(

3、SNO, SNAME, CITY, STATUS) 零件: P(PNO, PNAME, WEIGHT, COLOR, CITY) 供应单: SP(SNO, PNO, PTY, SP Date) 属性说明: SNO供应商编号, SNAME供应商名称, CITY地址, STATUS供应商状态 PNO零件编号, PNAME零件名称, WEIGHT零件重量 , COLOR零件颜色, CITY地址, PTY数量, SP Date订单日期 问题: 用 SQL语句完成以下操作。 3 求供应红色零件北京供应商的编号、名称和状态。 4 将所有北京供应商的状态为 2的修改为 1。 5 求零件颜色不是白色和黑色的供

4、应商状态为 1的订单的数量。 6 阅读以下说明和图,回答问题 1和问题 2,将答案写在答卷的对应栏内。 【说明】 银行客户需要从 ATM取 100元,他向 ATM的读卡机插卡,读卡机读取卡号,然后 ATM屏幕初始化, ATM提示输入 PIN(密码 ),客 户输入 PIN(123456), ATM打开他的账户,密码有效,因此 ATM提示选择事务,客户选择取钱, ATM提示输入金额,客户输入 100元, ATM验证账户上有足够的钱,就从账上减去 100元, ATM吐出 100元,并退出客户的卡。 6 根据上面的描述,完成下述的时序图。7 比较时序图和协作图,说明区别和联系。 8 阅读下列 C程序和

5、程序说明,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】用克鲁斯卡尔算法求解给定图的最小生成树。 #include stdio. h #include stdlib. h #define MAXN 30 typedef struct int v1,v2; /*一条边依附的两个顶点 */ int weight; /*边上的权值 */ EDGE; typedef struct int Vnum; /*图中的顶点数目 */ EDGE eMAXN*(MAXN-1)/2; /*图中的边 */ Graph; typedef struct node /*用链表存储同一个连通分量的顶点 */ int

6、 v; struct node *next; Alist; void heapadjust(EDGE data, int s, int m) /*将元素序列 datasm调整为小顶堆 , 堆顶元素 (最小元素 )为 datas*/ int j; EDGE t; t=datas; /*备份元素 datas, 为其找到适当位置后再插入 */ for(j=2*s+1; j =m; j=j*2+1)/*沿值较小的子结点向下筛选 */ if(j m if(!(t. weight dataj. weight) break; datas=dataj;s=j; /*用 s记录待插入元素的位置 (下标 )*/

7、/*for*/ datas=t; /*将备份元素插入由 s所指出的插入位置 */ /*heapadjust*/ int creat_graph(Graph *p) /*输入图中的顶点及边 , 返回图中边的数目 */ int k=0; /*记录图中边的数目 */ int n; int v1,v2; int w; printf(“vertex number of the graph:“); scanf(“%d“, /*输入图中的顶点数目 */ if(n 1) return 0; p- Vnum=n; do printf(“edge(vertex1,vertex2,weight):“); scanf

8、(“%d %d %d“, if(v1 =0 p- ek. v2=v2; p- ek. weight=w; k+; /*if*/ while(!( (2) ); return k; /*返回图中边的数目 */ /*creat_graph*/ int kruskal(Graph G, int enumber, int tree3) /*用 kruskal算法求无向连通图 G的最小生成树 , 图中边所得数目为 enumber, */ /*数组 tree3中存放生成树中边的顶点和边上的权值 , 函数返回生成树的代价*/ int i, k, m, c=0; int v1, v2; Alist *p, *

9、q, *aMAXN; for(i=0; i G Vnum; +i) /*将每个连通分量中的顶点存放在一个单链表中*/ ai=(Alist*)malloc(sizeof(Alist); if(!ai) printf(“n mernory allocation error!“); exit(0); /*if*/ ai- v=i; ai- next=NULL; /*for*/ for(i=enumber-1; i =0; -i)/*按照边上的权值建立小顶堆 */ heapadjust( (3) ); k=G. Vnum; /*k用于计算图中的连通分量数目 */ m=enumber-1; i=0; d

10、o v1=G. e0. v1; v2=G. e0. v2; p=av1; while(p p=p- next; if(!p) /*当前边的顶点不在一个连 通分量中 */ p=q; p- next=aG. e0. v2; p=aG. e0. v1); /*加入边 (v1,v2), 将两个连通分量合并为一个 */ while(p)ap- v=(4); p=p- next; k-; /*连通分量数目减少一个 */ treei0=v1; /*记 录加入最小生成树的边 */ treei1=v2; treei2=G. e0. weight; c+=G. e0. weight; +i; /*if*/ G.

11、e0=G. em; m-; heapadjust (5); while(k 1); /*当所有顶点不在同一个连通时 , 继续 */ return c; /*返回最小生成树的代价 */ /*kruskal*/ void main(void) int i, enumber; int treeMAXN3; int cost=0; Graph G; enumber=creat_graph( cost=-kruskal(G,enumber,tree); printf(“Minimum-Cost spanning tree(kruskal): n“); printf(“edget weighttn“);

12、for(i=0; i G. Vnum-1; +i) printf(“v %d v %d t %dn“, treei0, treei1, treei2); printf(“Cost: %dn“, cost); 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 9 阅读下列 C+程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】 程序 6说明 单源最短路径的分支限界算法。 const int MAXNUM=29999; #include iostream #include vector #inc

13、lude algorithm #include functional using namespace std; template class VertexType,class EdgeType class MinNode /程序中使用的最小化堆的结点说明 friend class Graph VertexType,EdgeType public: MinNode (int nl, EdgeType length1) VexNum=nl; length=length1; bool operator (const MinNode VertexType,EdgeType /记录源点序号,序号数组 p

14、及 distance下标相一致。源点为初始扩展顶点 EdgeType length; /记录源点到本顶点的当前最短路径的长度,源点到自身的长度为 0 template class VertexType,classEdgeType void Graph VertexType,EdgeType : shortestpath(VertexType start) int j,k,source;/source 记录源点的序号。 EdgeType*distance=(2); int*p=new intMaxNumVertex; vector MinNode VertexType,EdgeType H; f

15、or(source=0; source MaxNumVertex;source+) if(NodeListsource=start)break; if (source =MaxNumVertex)cout ”This is error!” end1; return; MinNode VertexType,Edge Type (3); for(k=0; k MaxNumVertex; k+) distancek: MAXXUM; /记录源点到本顶点 k的最终的最短路径的长度 pk=source; /记录最短路径上的本顶点的直接前驱顶点的序号 distancesource=0; psource=-

16、1; /m 是源点,前一顶点不存在 vector MinNode VertexType, EdgeType :iterator q; while(1) for(j=0; j MaxNumVertex; j+) if(AdjMatrixE.VexNum* MaxNumVertex+j MAXNUM) &(4) distancej) distancej=E.length+AdjMatrixE.VexNum* MaxNumVertex+j; pj=E. VexNum; /记录顶点 j的前一顶点 MinNode VertexType, EdgeType (5); H push_ back(N); pu

17、sh_heap(H. begin(), H.end(), greater MinNode VertexType, EdgeType (); if(H.empty() true)break; /若优先队列为空,那么算法结束 else pop_ heap(H.begin(), H. end(), greater MinNode VertexType, EdgeType (); q=H.end()-1; /从 最小化堆中取路径最短的顶点 E=*q; H.pop_ back(); /删除从最小化堆中 “挤 ”出的顶点 /end while for(k=0; k MaxNumVertex; k+) co

18、ut “Shorstest path from vertex“ k “is“ distancek end1; j=k; cout “All vertices are: “; while(j!=source)cout j “- “; j=pj; cout source ”.” end1; /打印顶点的最短路径长度和至源点的最短路径上经过的顶点序列 return; 10 阅读下列 Java程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】清点盒子。本程序 当用户输入一个整数值时,一切正常;当输入其他数值时,程序就出错。现在已做了改进,请填空。 import java. text. N

19、umberFormat; Public class InventoryLoop public static void main(String args) String numBoxesIn; Int numBoxes; Double boxPrice=3.25; Boolean gotGoodInput=false; NumberFormat currency=NumberFormat.(1); do System.out. print(“How many boxes do we have?”); numBoxesIn=DummiesIO. (2); try numBoxes=Integer.

20、parseInt(3); system. out. print(“The value is“); system.out. println(currency, format (numBoxes*boxPrice); gotGoodInput=true; catch(4) System.out.println(); System.out. println(Thats not a number.“); while(5); /输入不正确时 System. out.println(“Thats that.“); 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 29答案与解析 一、必答题(共

21、4道大题,每道大题 15分) 1 【正确答案】 成绩 名次。 2 【正确答案】 按课程代码 (升序 )、成绩 (降序 ) 处理 2:对文件 F排序。 处理 3:决定分赛段名次,计算总成绩,决定总名次,填入文件 F的相应字段。 处理 4:按总成绩 (降序 ),按课程代码 (降序 )排列。 【试题解析】 文件 F是文件 F0经过处理 1产生的文件,这个文件又经过处理2、处理 3、处理 4的处理和更新,而在处理 5中,只是进行了车手成绩一览表的输出编排,不进行排序和增加名次等处理,文件 F中的数据项必须是由文件 F0产生,还要经过处理产生车手成绩一览表。所以,可以推导出文件 F中 是成绩, 是名次

22、通过对给出的车手成绩一览表的观察,可以确定对文件 F的处理中要按课程代码升序,按成绩降序进行排列。 处理 2、处理 3、处理 4要对文件进行一系列处理,最后得到的文件 F在处理 5只是做了输出编排,所以在处理 4已经完成要求的根据分赛段成绩比较而获得的分赛段名次,按总名次降序排序,按课程名排序。所以,可以推导,处理 2对文件 F排序,处理 3决定分赛段名次,计算总成绩,决定总名次,填入文件 F的相应字段。处理 4按总成绩 (降序 ),按课程代码 (降序 )排列。 3 【正确答案】 SELECT DISTINCT S.SNO, S.SNAME, S.STATUS FROM S, P, SP WH

23、ERE S.SNO=SP.SNO AND P.PNO=SP.PNO AND P/PNO=红色 4 【正确答案】 UPDATE S SETSTATUS=1 WHERE CITY=北京 AND STATUS=1 5 【正确答案】 SELECT COUNT(*) FROM S,P,SP WHERE S.SNO=SP.SNO AND P.PNO=SP.PN0 AND P.COLOR=红色 AND S.STATUS=1 【试题解析】 这 3个语句比较简单,只是考查考 生的 SQL语句基本知识。 6 【正确答案】 1插卡 2读卡号 3提示输入 PIN 4输入 PIN 5验证 PIN 6选择事务 (取钱 )

24、 7扣钱 (100元 ) 8提供钱 (100元 ) 9退卡 7 【正确答案】 时序图和协作图都可以用来描述系统对象之间的交互。时序图强调一组对象之间调用的时间顺序,协作图强调这组对象之间的关系。 【试题解析】 时序图用来描述对象间的交互行为。它注重消息的时间顺序,即消息的发送和接收的顺序。 时序图的图形组成成分为:对象、生存线、消息和对象激活期 (本题中省 略 )。 试题中要求的就是完成消息,所以要根据消息的时间顺序,和消息发出与接收的对象。由于已经给出了详细明晰的动作过程描述,未完成的时序图中也标识出对象和部分消息,所以,应该比较容易地完成其它的消息。 8 【正确答案】 (1) dataj.

25、weight dataj+1.weight (2) v1=-1 & v2=-1 (3) G.e, i, enumber-1 (4) aG.e0.v1 (5) G.e,0,m 【试题解析】 (1) dataj.weight dataj+1.weight 沿值较小的子结点向下筛选,建堆,堆顶元素最小; (2) v1=-1 & v2=-1 当 v1!=-1|v2!=-1时,循环读入,直到 v1=-1 & v2=-1为真。 (3) G.e, i, enumber-1 按照边上的权值建立小顶堆。 (4) aG.e0.v1 加入边 (v1,v2),将两个连通分量合并为一个。 (5) G.e,0,m 找出下

26、一条权值最小的边。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答 的试题数超过 1道,则仅题号小的 1道题解答有效。 9 【正确答案】 (1)this- length或 (*this).length (2)new EdgeTypeMaxNumVertex (3)E(source, 0) (4)E.length+ AdjMatrix E. VcxNum* MaxNumVertex+j (5)N(j, distancej) 【试题解析】 (1)this- length或 (*this).length 操作符,的成员函数,比较两个对象的最短路径的长度 le

27、ngth,大于则返回真(1)。 (2)new EdgeTypeMaxNumVertex 动态申请 EdgeType类的对象数组 distance,长度为 MaxNumVertex,存放最短路径的长度。 (3)E(source, 0) 定义最小化堆模板类 MinNode VertexType, EdgeType的对象 E(source, 0)。 (4)E.length+ AdjMatrix E. VcxNum* MaxNumVertex+j 若 E.length+ AdjMatrix E.VexNum*MaxNumVertex+j小于 distancej,则distancej取这个更小值。 (5

28、)N(j, distancej) 定义最小化堆模板类 MinNode VertexType, EdgeType的对象 N(j,distancej)。 10 【正确答案】 (1)getCurrencyInstance()或 getCurrencyInstance(currentLocale) (2)getString() (3)numBoxesIn (4)NegativeNumberException e (5)!gotGoodInput 【试题解析】 (1)getCurrencyInstance()或 getCurrencyInstance(currentLocale) 货币 currency对象指向格式化数据 NumberFormat类的货币数字格式getCurrencyInstance()。 (2)getString() 读入货币数字的字符串到 NumBoxesIn中。 (3)numBoxesIn 分析字符串 NumBoxesIn的合法性,并转换成整数。 (4)NegativeNumberException e 捕捉数据格式错误的信息 NegativeNumberException e。 (5)!gotGoodInput 输入不正确时,继续循环输入。

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