[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷58及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷58及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷58及答案与解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 58及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和数据流图,回答问题 1至问题 3,将解答填入答题纸的对应栏内。【说明】下面给出的是某房产管理系统的一套分层数据流图。其功能描述如下: (1)系统随时根据住房送来的入住单更新住户基本信息文件; (2)每月初系统根据物业管理委员会提供的月附加费 (例如清洁费、保安费、大楼管理费等 )表和房租调整表,计算每家住户的月租费 (包括月附加费 ),向住户发出交费通知单。住户交费时,系统输入交费凭证 ,核对后输出收据给住户; (3)系统定期向物业管理委员会提供住房分配
2、表和交费情况表; (4)住户因分户或换房,在更新住户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分户或换房前的房租。以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图 11是顶层数据流图,图 1一 2是第 0层数据流图,图 13是第1层数据流图,其中 A是加工 1的细化图, B是加工 2的细化图。假定题中提供的顶层图是正确的,请回答下列问题。【图 1一 1】【图 12】【图 13】1 指出图 1一 2中的哪些文件可不必画出。 2 指出在哪些图中遗漏了哪些数据流。回答时请用如下形式之一: 1)图中遗漏了 加工 (或文件 )流向 加工 (或文件
3、 )的 数据流; 2)图中加工 遗漏了输入 (或输出 )数据流 。 3 指出图 1一 3的 B中加工 2 3能检查出哪些不合格交费凭证。 3 阅读下列说明和 ER图,回答问题 1至问题 3,将解答填入答题纸的对应栏内。【说明】建立一个供应商零件数据库,数据库要满足如下要求: (1)供应商代码不能为空,且是值唯一的,供应商的名也是唯一的。 (2)零件号不能为空,且值是唯一的,零件号不能为空。 (3)一个供应商可以供应多个零件,而一个零件可以由多个供应商供应。图 21是该系统的 ER图。【图 21】4 根据 ER图中给出的词汇,按照 “有关模式名 (属性,属性, )” 的格式,将此ER图转换为 3
4、个关系模式,指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。 5 创建 S表时, SNo使用 CHAR(5)并且唯一, SName使用 CHAR(30), Status使用CHAR(8), City使用 CHAR(20)。请在下列用于创建表 S的 SQL语句空缺处填入正确的 内容。 CREATE TABLE S(SN()CHAR(5), SName CHAR(30), Status CHAR(8), City CHAR(20), (1); 6 假定 SP表存储供应情况,如下的 SQL语句是用于查询 “产地为 Beijing、零件号为 P101的零件的所供应的总数 (包括所有
5、供应商 )”的不完整语句,请在空缺处填入正确的内容。 SELECT SUM(Qty) FROM Sp WHERE pN0=“P101” (1)PNo(2) (SELECT PNo FROM(3) wHERE city=“Beij ing”) (4)PNc); 7 阅读以下说明和程序流程图,将应填入 (n)处的字句写在答题纸对应栏内。 【说明】 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数 m表示为: m=ak10k-2+ak一 110k-3+a310+a2 其中a1保存该长整数的位数, a0保存该长整数的符号: 0表示正数、 1表示负数。注:数组下标从
6、0开始。流程图 (图 3一 1)用于计算长整数的加 (减 )法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针 pA和 pB,分别指向绝对值较大者和较小者。而对绝对值相加情况,让 pA指向 LA, pB指向 LB,不区分绝对值大小。 pApB可用通式pA+tlag*pB来计算, flag为 +1时即对应 pA+pB, flag为一 1时即对应 pApB。需特别注意的是,对丁相减,不够减时要进行借位,而当最高位借位 后正好为 0时,结果的总位数应减 1;对于加法,有最高
7、进位时,结果的总位数应加 1。流程图中涉及的函数说明如下: (1)cmp(int*LA, int*LB)函数,用于比较长整数 LA与 LB的绝对值大小,若 LA绝对值大于 LB绝对值则返回正值, LA绝对值小于 LB绝对值返回负值,相等则返回 0。 (2)max(int A, int B)函数,用于返回整数 A与 B中较大数。另外,对流程图中的写法进行约定: (1)“=”表示赋值, 如 “flag:=LA0+LB0”表示将 “LA0+LB0”的结果赋给 flag,相当于 C中 的赋值语句: “flag=LA0+LB0; ”; (2)“: ”表示比较运算,如 “flag: 1”表示 flag与
8、l比较。 8 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在答题纸对应栏内。【说明】 Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。构造最优二叉树的 Huffman算法如下: 根据给定的 n各权值 w1, w2, , wn构成 n棵二叉树的集合 F=T1, T2, , Tn,其中每棵树 Ti中只有一个带权为 wi的根节点,其左右子树均空。 在 F中选取两棵根节点的权值 较小的树作为左右子树,构造一棵新的二叉树,置新构造二叉树的根节点的权值为其左右子树根节点的权值之和。 从 F中删除这两棵树,同时将新得到的二叉树加入到 F中。重复 ,直到 F中只剩一
9、棵树为止。函数中使用的预定义符号如下: #detineINTMAX 10000#define ENCODINGLENGTH 1000typedef enum(rlone, 1eft一 child, right一 child) which; *标记是左孩子还是右孩子 * typedef char Elemtype; typedef struct TNode Huffman树节点 Elemtype letter; int weight; 权值 int parent; 父节点 Which Sigh; char*code; 节点对应编码 )HTNode,*HuffmanTree; int n; cha
10、r coding50;储存代码【函数】 void Select(HuffmanTree HT, int end, int*s1, int*s2) *在 0 END之问,找出最小和次小的两个节点序号,返回 s1、 s2* int i;int mini=INT_MAX;int min2=INT_MAX; for(i=0; iHTi weight)*S2: i;min2=HTi weight: void HuffmanTreecrea七 (HuffmanTreeint m=2*n一 1; int S1, S2; for(i=n;i 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选
11、 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 9 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在答题纸对应栏内。【说明】若要在 N个城市之间建立通信网络,只需要 N1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在 8个城市间建立通信网络,其问拓扑结构如图 51所示,边表示城市间通信线路,边上标示的是建立该线路的代价。【图 5一 1】无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵足对称的且对角线上元素均为 0,故压缩存储,只存储上三角元素 (不包括对角线 )。现用 Prim算法生成网络的最小生成树。由网络 G=(V
12、, E)构造最小生成树 T=(U,TE)的 Prim算 法的基本思想是:首先从集合 V中任取一顶点放入集合 U中,然后把所有一个顶点在集合 U里、另一个顶点在集合 VU里的边中,找出权值最小的边 (u, v),将边加入 TE,并将顶点 v加入集合 U,重复上述操作直到 U=V为止。函数中使用的预定义符号如下: define MAX 32768 *无穷大权,表示顶点问不连通 * #define MAXVEx 3 0 *图中顶点数目的最大值 * typedef struct int startVex, stopVex; *边的起点和终点 * float weight; *边的 权 * Edge;
13、typedef struct char vexs MAXVExj *顶点信息 * float arcsMAXVEx*(MAXVEx一 1) 2; *邻接矩阵信息,压缩存储 * int n; *图的顶点个数 * )Graph; 【函数】 void primMST(Graph*pGraph, Edge mst) int i, j,k,min,vx,vy: float weight,minWeight; Edge edge; for(i=0; in一 1; i+) msti StartVex=0; msti StopVex=i+1; msti weight=pGraph一 arcsi; for(i=
14、0 ; in*vyvy*(vy+1) 2+VXvy一 1; )e1Se k=pGraph一 n*vxvx*(VX+1) 2+vyvx一 1; weight= (5); if(weight 10 阅读以下说明和 C+代码,将应填入 (n)处的字句写在答题纸对应栏内。【说明】现有一个显示系统,要显示的图形有线 Line、矩形 Square,抽象出一个 Shape类 (接口 ),有方法显示 display()。需要新增图形 Circle,又已知有类 XXCircle实现了所需要实现的功能:显示 displaylt()。为 了继承自 Shape以提供统一接口,又不希望从头开发代码,希望使用 XXCir
15、cle。这样将 XXCircle作为 Circle的一个属性,即 Circle的对象包含一个 XXCircle对象。当一个 Circle对象被实例化时,它必须实例化一个相应的 XXCircle对象;当 Circle对象收到的做任何事的请求都将转发给这个 XXCircle对象。通过这种称 Adapter模式, Circle对象就可以通过 “让XXCircle做实际工作 ”来表现自己的行为了。图 6-1显示了各个类间的关系。以下是 C+语言实现,能够正确编译通过 。【图 6一 1】【 C+代码】 ClasS Shapepublic: (1) void display()=0; ; class Li
16、ne: publ ic Shape(省略具体实现 ; class Square: public Shape省略具体实现 ; ClasS XXCircle(public: void displayIt()(省略具体实现 省略其余方法和属性 ;Class Circle: publ iC Shape(private: XXCircle*pxc;public: Circle(); void display(); ; Circle: Circle()(pxc=(2); VOid Circle: display()pxc一 (3); Class Factorypublic: (4)getShapeInst
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 58 答案 解析 DOC