[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷12及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷12及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷12及答案与解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 12及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和数据流图,回答问题 1问题 3,将解答写在对应栏内。 说明 实验室信息管理系统完成对实验室的开放课题的管理工作。实验室信息管理系统主要完成课题申请、评审、课题结题以及课题信息查询工作。 申请人申请课题时,访问实验室主页提交课题申请,经过专业审核后,将申请结果反馈给申请人,同时系统将记录课题申请书及其相关信息,以供查询。 “年度汇总 ”将对当年课题申请信息进行汇总。 申请人 完成课题后需要登录实验室主页申请结题。收到结题申请后,经过专家评审后,结题结果将通
2、过 E-mail反馈给申请人,同时系统将结题结果作为实验室课题信息记录成文件,以供查询,如果评审通过,该课题作为科研成果,系统并记录以供查询。 对于实验室信息的查询需要进行身份验证。验证通过后,可以查询到 “历年课题申请书 ”、 “实验室课题一览表 ”、 “开放课题成果汇总表 ”、 “历年结题申请书 ”等信息。对于实验课题可以获得课题编号和名称、课题的经费额、课题起始日期和结题日期,课题申请人姓名、工作单位、电话以及 email地址等信息。1 数据流图 8-5缺少了一条数据流,请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。 2 数据流图 8-5中缺少了与 “年度汇总 ”加工相关
3、的数据流,请指出此数据流的起点和终点。 数据流图 8-5中缺少了与 “查询 ”加工相关的数据流,请指出此数据流的起点和终点。 3 请根据说明写出 “实验室课题信息 ”数据字典条目的定义。 实验室课题信息 =_。 4 阅读以下说明和图,回答问题 1问题 3,将解答写在对应栏内。 说明 通行费征收计算机管理系统包括收费部门业务活动管理和固定资产管理两大功能。 收费部门采取站 (库 )、队、收费员三级管理模式。站是一个基层收费单位,由几个征收队组成,收费员是队的基本组成部分。征收队设有队长,和跟班会计。员工配带工号才能上岗,并且需要进行口令验证才能使用本系统。站总票证员负责全站票据管理,各队跟班会计
4、负责本队票据管理,收费员从过往车辆处收取通行费。该系统要求如下所述。 (1)站总票证员的业务要求 总票员累计库初始化,生成上期结余。 从上级主管部门领票,登记总票员台账,即本期领入 台账。 发票给跟斑会计,登记总票员台账和跟班会计台账。 接收跟班会计退回票据,登记总票员台账和跟班会计台账。 接收跟班会计票根,登记总票员台账和跟班会计台账,打印跟班会计核销单。 接收跟班会计向银行交款的回执,登记总票员台账和跟班会计台账,打印队报核表。 (2)跟班会计的业务要求 从总票员处领票,接受领票单,登记征收队台账。 向收费员发票,登记征收队,收费员台账,打印收费员领票单。 接受收费员退回票据,登记征收队,
5、收费员台账,打印收费员退票单。 接受收费员票款,即上交钱款,同时报核,登记征收队,收费员 台账,打印收费员报核表。 接受收费员票根,登记征收队,收费员台账,打印收费员核销单。 跟班会计初始化,生成上期结余。 跟班会计向银行交款,领回交款回执。 (3)收费员的业务要求 从跟班会计处领票,接受领票单,登记收费员台账。 向跟班会计交款,报核,登记收费员台账,领报核表。 向跟班会计退票,领取退票单,登记收费员台账。 向跟班会计交回票根,领取核销单,登记收费员台账。 向驾驶员收费,发票。 (4)办公室的业务要求 登记固定资产出库,入库情况,发放劳保服装,登记人事档案; (5)财务室的业 务要求 制作工资
6、表,发放员工工资,负责票款的银行入账。 固定资产管理软件主要管理固定资产库存情况,固定资产出库情况,通过改软件可以查询打印出、入库登记卡及固定资产清单等。 固定资产定义: 属性:编号、名称、购置日期、使用保管人、存放地点、价值。 含义:记录固定资产基础信息。 固定资产出、入库定义: 属性:编号、操作日期、出库原因、批文号、出入标志。 含义:记录固定资产出入库操作。 操作:固定资产增加或出库时更新。 4 收费部门业务活动数据流图如图 8-6所示 ,图中缺少了与 “票根上缴 ”相关的数据流,请指出该数据流的起点和终点。5 收费部门业务活动数据库的部分关系模式设计如下,请根据说明补充完整,并给出其主
7、键。 A员工 (1)、姓名、 (2)、 (3) B队别 (队别标志号、队名、 (1)、 (2) 6 7 阅读以下说明和流程图,从供选择的答案中选出应填入流程图 (n)处的字句写在对应栏内。 说明 以下是某图像二元树存储与还原算法的主要思想描述。 设一幅2n2n的二值图像,以: “1”表示黑像素点,以 “0”表示白像素点。图像二元树结构表 示依赖于图像的二元分割,即交替在 X轴方向和 Y轴方向上分割。先进行水平分割,分成两个 2n-12n图像子块,然后进行垂直分割,分成 4个 2n-12n-1的正方形块,如此分割,直到子块只含同一像素点为止。如图 8-8为一 “E”字的二值图像,对其进行二元分割
8、,相应的二元树如图 8-9所示。根据图像二元树的 0叶结点和 1叶结点的数目,删除多者,保留少者。如 “E”字图像的二元树 0叶结点较多,裁剪后如图 8-10所示。 裁剪后图像二元树有 4类结点,分别用二进制编码如下: 左右儿子都有的结点,编码为 11; 仅有左儿子的 结点,编码为 10; 仅有右儿子的结点,编码为 01; 叶结点,编码为 00。 存储时,先存储剩余叶结点的类型编码,二进制码 00表示 0叶结点, 11表示 1叶结点。再按层次顺序,自左至右存储裁剪后图像二元树各结点的编码。 图像二元树的存储算法用 C语言描述所定义的数据结构及函数如下: struct Node /*图像二元树结
9、点 */ street Node*Left; street Node*Righ t; char Pixel; struct Node QueueMaxLen; /*队列 */ InitQueue() /*初始化队列Queue的函数; */ EmptyQueue () /*判断队列 Queue是否为空的数,若空返回 1,否则返回 0; */ AddQueue(Item) /*将 Item加到队列 Queue的数; */ GetQueue() /*取队列 Queue第一个元素的函数; */ PutCode(Code) /*写 2位二进制码 Code到文件的函数 */ 还原算法是存储算法的逆过程,将
10、文件中的二进制码序列转换成图像二元树。还原算法的数据结构与函数与存储算法的相同,还原算法新增了一个函数GetCode ()。 GetCode() /*从文件中读 2位二进制码的函数 */ C程序 存储算法 void Backup (char CutPixel, st ruct Node ImageTree)/*Cu tP ixel=0表示裁剪 0叶结点 */ InitQueue(); AddQueue ( ImageTree ) ; PutCode ( 1-CutPixel ) ; While ( !EmptyQueue ( ) ) TreeNode= GetQueue ( ) ; if (T
11、reeNodeLef t NULL) PutCode (0) ; continue: Tl= TreeNodeLeft; Tr= TreeNodeR igh t; if ( TlLeft= = NULL else (1); AddQueue ( Tl ) ; if ( TrLeft= = NULL else (2) AddQueue (T) ; (3) 还原算法 void Restore ( struct Node *TreeRoot ) TreeRoot= ( strut Node*)malloc ( sizeof (struct Node) InitQueue ( ); AddQueue
12、( TreeRoot ) ; CutPixel= 1- GetCode ( ) ; while ( ! EmptyQueue ( ) ) TrecNode= GetQueue ( Queue ) ; NodeCode= GetCode ( ) ; switch ( NodeCode ) case 0: TreeNodeLeft = NULL ; TreeNodeRight= NULL TreePixel=(4); break; case 1: Tr= ( structNode* )malloc sizeof ( structNode) TreeNodeRigh t= Tr; AddQueue
13、(Tr) ; TI= ( struct Node* ) malloc sizeof ( struct Node ) TlLefi - NULL; TlRight NULL; TlPixel= CutPixel; break; case 2: T1= ( structNode* )malloc sizeof (struct Node) TreeNodeLef t= Tl; (5); Tr= ( structNode* ) malloc ( sizeof ( street Node ) TrLeft= -NULL ; TrRight= NULL , TrPixel= CutPixel; break
14、; case 3: T1= ( struct Node* ) malloc ( sizeof ( struct Node ) TreeNodeRigh t= Tl; AddQueue ( T1 ) ; Tr= ( struct Node* )malloc (sizeof ( struct Node TreeNodeRigh t=Tr; AddQueue (Tr) ; break; 8 阅读以下说明和流程图 8-11,完成程序 (n)处的语句写在对应栏内。 说明 对于数学上一个猜想:任何自然数平方的 36倍等于两对孪生素数的和。初始的情形如下: 1236=(5+7)+(11+13) 2236=(
15、29+31)+(41+43) 3236=(11+13)+(149+151) 再往下, N取 4, 5, 6,时,只要 N不太大,也都可以找到 N(上标 )236等于两对孪生素数的和。但是当 N是一个任意的正整数时,证明 N236总是等于两对孪生素数的和,这还是一个目前尚未解决的问题。甚至当考察的数较大时,找出一组符合条件的两对孪生素数都是计算量相当大的工作。每尝试一次,都要作 4次是否是素数的判断,要作许多次的尝试,才可能找到一组解。下面流程图设计了一种优化算法来对这个猜想进行验证。仔 细阅读流程图 8-11,完成程序部分。 程序部分 main () int t, i, j, prime_in
16、dex; is_p rime:long n, p, p1, p2, p3, p4, s, s1;long primes 16000 ;for (n=1; n 98; +n) t=0; s= n* n* 36; prime_index= 2; primes0=2; primes1=3; for (p=5: p =s/2; p=p+2) is_p rime= 1; for ( i=1;(1)+i) if ( p%primes i = = 0 ) is_p rime= 0; if ( is_p rime) (2) for ( i=1; (3)+i) (4) if ( p2=p1+ 2 ) s1=s-
17、 (p1+p2) p3=sl/2-1; p4=p3+2: for ( j=0; j =prime_index-1; +j ) if (5) printf ( “%d* % d*36= (%d+ %d) + (%d+%d) n“, n,n, p1, p2, p3, p4 ) ; +t; if ( t! = 0 ) printf (“%dn“, t ) else printf ( “%d* %d*36=no so lutionn “, n, n ) ; 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 9 阅
18、读以下预备知识、函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。 预备知识 对给定的字符集合及相应的权值,采用哈夫曼算法构造最 优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合 a, b, c, d及其权值 2、7、 4、 5,可构造如图 3所示的最优二叉树和相应的结构数组 Ht(数组元素 Ht0不用 )(见表 5)。 结构数组HT的类型定义如下: #define MAXLEAFNUM 20struct node char ch; / * 当前结点表示的字符,对于非叶子结点,此域不用 */ int weight; / * 当前结点的权值 */ int parent; / *
19、当前结点的父结点的下标,为 0时表示无父结点 */ int Ichild, rchild / *当前结点的左、右孩子结点的下标,为 0时表示无对应的孩子结点 * / Ht2 * MAXLEAFNUM; 用 0或 1标识最优二叉树中分支的规则是:从一个结点进入其左 (右 )孩子结点,就用 0(1)标识该分支 (示例如图 3所示 )。 若用上述规则标识最优二叉树的每条分支后,从根结点开始到叶子结点为止,按经过分支的次序,将相应标识依次排列,可得到由 0、 1组成的一个序列,称此序列为该叶子结点的前缀编码。如图 3所示的叶子结点 a、 b、 c、 d的前缀编码分别是 110、 0、 111、 10。
20、 【函数 5.1说明】 函数 void LeafCode (int root, int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子结点,为所有的叶子结点构造前缀编码。其中形参 root为最优二叉树的根结点下标;形参 n为叶子结点个数。 在构造过程中,将 Htp. weight域用作被遍历结点的遍历状态标志。 【函数 5.1】 char * * Hc;void LeafCode (int root, int n)/*为最优二叉树中的 n个叶子结点构造前缀编码, root是树的根结点下标 * / int i,p = root,cdlen =0;char code20; Hc=(char
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 12 答案 解析 DOC
