[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷26及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷26及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷26及答案与解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 26及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和流程图,回答问题 1和问题 2,将解答写在对应栏内。 【说明】 存在某鲜花批发系统,系统中处理的信息单元有鲜花和客户,对鲜花使用编号进行唯一标识,鲜花的具体信息包括:名称、颜色、等级。客户包括鲜花种植商,鲜花经销商,客户不使用编号,只需要名称和地址。系统功能如下所述。 (1)当系统统计销存清单时发现某种鲜花当前库存数量少于指定最低库存量时,向鲜花种植商发出 采购单,订单中要记录所需鲜花的信息、数量、供应商名称和地址。 (2)收到鲜花种植商的鲜花后,向系统
2、录入归档送货单,要记录交易对应的采购单和实际金额。 (3)当某种鲜花库存数量大于或等于订购数量时,接受鲜花经销商的订货单,并更新销存清单,系统要求订单中标明鲜花的信息和经销商的信息。 (4)鲜花经销商订购的鲜花到达批发环节后,系统生成提货单,包括鲜花信息和经销商信息,然后将提货单发给经销商,等待提货。 (5)系统还要随时可以接受管理人员对于销售和库存的查询,并生成销售与库存情况表,提供给 管理人员,包括鲜花信息、本周销售数量、库存数量。 现在假定顶层图是正确的,客户信息文件已经存在并可使用。 1 完成下述文件格式:2 指出哪张图中的哪些文件不必画出。 3 指出在哪些图中遗漏了哪些数据流。回答时
3、请用如下形式之一: XX图中遗漏了 XX加工 (或文件 )流向 XX加工 (或文件 )的 XX数据流。 XX加工 XX遗漏了输入 (或输出 )数据流 XX。 4 阅读以下说明,回答问题 1至问题 3,将解答写在对应栏内。 【说明】 下面是某医院信息管理系统中需要的信息。 科室 :科名、科地址、科电话、医生姓名。 病房:病房号、床位号、所属科室名。 医生:姓名、职称、所属科室名、年龄、工作证号。 病人:病历号、姓名、性别、诊断、主管医生、病房。 其中,一个科室有多个病房,多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可以负责多个病人的诊治,一个病人的主管医生只有一个。 4 画出上
4、述信息涉及的 ER图。 5 将该 E-R图转换为关系模型。 6 指出每个关系模式的候选码。 7 阅读以下说明,回答问题 1和问题 2,将解答写在对应栏内。 【说明】 一个野生动物园,有如下动物:老虎、豹、狼、丹顶鹤、鹦鹉、天鹅、金鱼、热带鱼、鳄鱼等等。 7 依据说明,完成下面的类图,要求第 1层和第 2层填写标识、主要属性和操作,第 3层填写标识即可。 8 UML规定类图中类之间的关系有关联、聚集、继承,请说明它们的含义和之间的区别。 9 阅读下列 C程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】 应用 Prim算法求解连通网络的最小生成树问题。请阅读程序后填空。 const
5、 int MaxInt INT MAX; /INT MAX的值在 limits h中 const int n 6; /图的顶点数,应由用户定义 typedef int AdjMatrixnn; /用二维数组作为邻接矩阵表示 typedef struct /生成树的边结点 int fromVex, to Vex; /边的起点与终点 int weight; /边上的权值 TreeEdSenode; typedef TreeEdgeNode MSTn-1; /最小生成树定义 void PrimMST (AdjMatrix G, MST T, int rt) /从顶点 rt出发构造图 G的最小生成树
6、T, rt成为树的根结点 TreeEdgeNode e; int i, k 0, min, minpos, v; for(i 0; i n; i+) /初始化最小生成树 T if(i! rt) Tk fromVex rt; (1); Tk+.weight Grti; for(k 0; k n-1; k+) /依次求 MST的候选边 (2); for(i k; i n-1; i+) 八遍历当前候选边集合 if(Ti.weight min) /选具有最小权值的候选边 min Ti weight; (3); if(min MaxInt) /图不连通,出错处理 cerr “Graph is disco
7、nnected!” endl; exit(1); e=Tminpos; Tminpos Tk; (4); v=Tk.to Vex; for(i k+1; i n-1; i+) /修改候选边集合 if(GvTi.to Vex Ti.weight) Ti weight GvTi.toVex; (5); 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 10 阅读以下函数说明和 Java代码,将应填入 (n)处的字句写在对应栏内。 【说明】 以下程序实现数据的排序,将 n个整数分别按照升序和降序进行排序,类So
8、rtInt_1实现升序排序,类 SortInt_2实现降序排序。 【 Java代码】 class SortInt_1 int i,i,k,temp; void SortInt(int a1,int a2)/升序排序 for(i=0;i a1-1;i+) k=i; for(j=i+1;j a1;j+) if(1) k=j; if(k !=i) temp=a2i;a2i=a2k;a2k=temp; class SortInt_2 (2) int i,j,k,temp; void SortInt(int a1, int a2)/降序排序 for(i=0; i a1-1;i+) k=i; for(j=
9、i+1;j a1;j+) if(3)k=j; if(k !=i) temp=a2i;a2i=a2k;a2k=temp; public class test public static void main(String args) int a=10,55,100,35,87,90,100,16; SortInt_1 NewInt=(4); NewInt.SortInt(a.lenvh,a);/调用 SortInt_1 类的方法 System.out.println(“升序排列的数据 : “); for(int i=0;i a.length;i+) System.out.print(ai+“ “)
10、; System.out.println(); NewInt=new SortInt_2();/创建类 SortInt_2的对象 (5);/调用相应方法进行降序排序 System.out.println(“降序排列的数据 : “); for(int i=0;i a.length;i+) System.out.print(ai+“ “); 11 阅读以下说明和 c+代码,将应填入 (n)处的字句写在对应栏内。 【说明】 本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由 List描述,类 List的成员函数有以下几个: creatList():
11、 创建从小到大的有序链表。 multiplyList(List L1, Llst L2): 将链表 L1 和链表 L2 合并。 print(): 打印链表。 【 C+代码】 #include iostream using namespace std; class List; class Node friend class List; public: Node(int data) (1); private: int data; Node *next; ; class List public: List()list=NULL; void multiplyList(List L1, List L2)
12、; void creatList(); void print(); private: Node *list; ; void List:creatList() Node *p, *u, *pre; int dara; list=NULL; wbile(1) cout “输入链表的一项 : (小于零,结束链表 ) “ endl; cin data; if(dara 0)break;/小于零,结束输入 p=list; while(p !=NULL p=p- next; u=(2); if(p=list)list=u; else pre- next=u; (3); void List:multiply
13、List(List L1, List L2) Node *pL1, *pL2, *pL, *u; list = NULL; pL1 = L1.list; pL2 = L2.11st; while(pL1 != NULL pL1 = pL1- next; else u = new Node(pL2- data); pL2 = pL2- next; if(list = NULL) list =(4); else pL- next=u; pL=u; pL1 = (pL1 != NULL)? pL1:pL2; while(pL1 != NULL) u=(5); pL1 = pL1- next; if(
14、list = NULL) list=pL=u; else pL- next=u; pL=u; void List:print() Node *p; p = list; while(p !=NULL) cout p- data “t“; p=p- next; cout end1; void main() List L1, L2, L; cout “创建第一个链表 n“;L1.creatList(); cout “创建第二个链表 n“;L2.creatList(); L1.print();L2.print(); L.multiplyList(L1,L2); L.print(); 软件水平考试(中级
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 26 答案 解析 DOC
