【计算机类职业资格】中级软件设计师下午试题-74及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-74及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-74及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-74 及答案解析(总分:103.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读下列说明和数据流图,回答问题 1 至问题 3,将解答填入对应栏内。 说明 下面给出的是某房产管理系统的一套分层数据流图。其功能描述如下: (1)系统随时根据住房送来的入住单更新住户基本信息文件; (2)每月初系统根据物业管理委员会提供的月附加费(例如清洁费、保安费、大楼管理费等)表和房租调整表,计算每家住户的月租费(包括月附加费),向住户发出交费通知单。住户交费时,系统输入交费凭证,核对后输出收据给住户; (3)系统定期向物业管理委员会提供住房分配表和交费清况
2、表; (4)住户因分户或换房,在更新住户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分户或换房前的房租。 以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图 1-1是项层数据流图,图 1-2 是第 0 层数据流图,图 1-3 是第 1 层数据流图,其中 A 是加工 1 的细化图,B 是加工 2 的细化图。假定题中提供的顶层图是正确的,请回答下列问题。 图 1-1 图 1-2 图 1-3 (分数:15.00)(1).指出图 1-2 中的哪些文件可不必画出。 (分数:5.00)_(2).指出在哪些图中遗漏了哪些数据流。回答时请用如下形式之一:
3、1)图中遗漏了加工(或文件)流向加工(或文件)的数据流; 2)图中加工遗漏了输入(或输出)数据流。 (分数:5.00)_(3).指出图 1-3 的 B 中加工 2.3 能检查出哪些不合格交费凭证。 (分数:5.00)_二、B试题二/B(总题数:3,分数:13.00)1.根据 E-R 图中给出的词汇,按照“有关模式名(属性,属性,)”的格式,将此 E-R 图转换为 3 个关系模式,指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。(分数:6.00)_2.创建 S 表时,SNo 使用 CHAR(5)并且唯一,SName 使用 CHAR(30),Status 使用 CHAR(8),
4、City 使用CHAR(20)。请在下列用于创建表 S 的 SQL 语句空缺处填入正确的内容。 CREATE TABLE S(SNo CHAR(5), SName CHAR(30), Status CHAR(8), City CHAR(20), _;(分数:3.00)填空项 1:_假定 SP 表存储供应情况,如下的 SQL 语句是用于查询“产地为Beijing、零件号为P101的零件的所供应的总数(包括所有供应商)”的不完整语句,请在空缺处填入正确的内容。 SELECT SUM(Qty) FROM SP WHERE PNo=”P101 U (1) /UPNoU (2) /U (SELECT P
5、No FROMU (3) /U WHERE city=“Beijing“) U (4) /UPNo;(分数:4.00)(1).(分数:1.00)填空项 1:_填空项 1:_填空项 1:_三、B试题三/B(总题数:1,分数:15.00)阅读以下说明和程序流程图,将应填入U (n) /U处的字句写在对应栏内。 说明 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数 m 表示为:m=ak10k-2+ak-110k-3+a310+a2 其中 a1保存该长整数的位数,a0保存该长整数的符号:0 表示正数、1 表示负数。注:数组下标从 0开始。 流程图(图 4-1)用于
6、计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针 pA 和 pB,分别指向绝对值较大者和较小者。而对绝对值相加,情况,让 pA 指向 LA,pB 指向 LB,不区分绝对值大小。pApB 可用通式 pA+flag*pB 来计算,flag 为+1 时即对应 pA+pB,flag 为-1 时即对应 pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当最高位借位后正好为 0 时,结果的总位数应减 1;对于加法,有最高进位时,结果的总位数应加 1
7、。 (分数:15.00)(1).(分数:3.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、B试题四/B(总题数:1,分数:15.00)阅读下列函数说明和 C 代码,将应填入U (n) /U处的字句写在对应栏内。 说明 HufTman 树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。 构造最优二叉树的 Huffman 算法如下: 根据给定的 n 各权值W 1,w 2,w n)构成 n 棵二叉树的集合 F=T1,T 2,T n,其中每棵树 Ti中只有一个带权为 wi的根节点,其左右子树均空。 在 F 中选取两棵根节点的权值较小的树作为左右子树,构造一棵新的二
8、叉树,置新构造二叉树的根节点的权值为其左右予树根节点的权值之和。 从 F 中删除这两棵树,同时将新得到的二叉树加入到 F 中。 重复,直到 F 中只剩一棵树为止。 函数中使用的预定义符号如下: #define INT MAX 10000 #define ENCODING LENGTH 1000 typedef enum(none,left_child,right_child) Which; /*标记是左孩子还足右孩子*/ typedef char Elemtype; typedef struct TNode/Huffman 树节点 Elemtype letter; int weight; /权
9、值 int parent; /父节点 Which sigh; char *code; /节点对应编码 HTNode,*HuffmanTree; int n; char coding50;/储存代码 函数 void Select(HuffmanTree HT,int end,int *sl,int *s2) /*在 0END 之间,找出最小和次小的两个节点序号,返吲 S1、S2*/ int i; int min 1=INT_MAX; int min 2=INT_MAX; for(i=0;i=end;i+)/*找最小的节点序号*/ if(U (1) /U)(HTi.weightminl) *s1=
10、i; min 1=HTi.weight; for(i=0;i=end;i+)/*找次小节点的序号*/ if(HTi.parent=0)(U (2) /U) (min 2HTi.weight) *s2=i; min 2=HTi.weight; void HuffmanTreeCreat(HuffmanTreeHT)/*建立 HUFFMAN 树*/ int i; int m=2*n-1; int s1,s2; for(i=n;im;i+) Select(U (3) /U); HTs1.parent=i; HTs2.parent=i; HTs1.sigh=left child; HTs2.sigh=
11、right child; HTiweight=U (4) /U; void HuffmanTreeEncoding(char sen,HuffmanTree HT) /*将句子进行编码*/ int i=0; int j; while(seni !=0) for(j=0;jn;j+) if(HTj.letter=seni)(/*字母吻合则用代码取代*/ strcat(coding,U (5) /U); break; i+;if (Sen 1=32) i+; printf(“/n%s“,coding); (分数:15.00)(1).(分数:3.00)填空项 1:_填空项 1:_填空项 1:_填空项
12、 1:_五、B试题五/B(总题数:1,分数:15.00)阅读下列函数说明和 C+代码,将应填入U (n) /U处的字句写在对应栏内。 说明 在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了 Decorator(修饰)模式。SalesOrder 对象使用一个 SalesTicket 对象打印销售票据,先打印销售票据内容,然后再打印脚注。图 5-1 显示了各个类间的关系。以下是 C+语言实现,能够正确编译通过。 图 5-1 C+代码 class Component public: U (1) /Uvoid prtTicket()=
13、0; ; class SalesTicket:public Component public: void prtTicket() cout“Sales Ticket!“endl; ; class Decorator:public Component public: virtual void prtTicket(); Decorator(Component *myC); private: U (2) /UmyComp; ; Decorator:Decorator(Component *myC) myComp=myC; void Decorator:prtTicket() myComp-prtTi
14、cket(); class Footer:public Decorator public: Footer(Component *myC); void prtTicket(); void prtFooter(); ; Footer:Footer(Component *myC):U (3) /U void Footer:prtFooter() cout“Footer“endl; void Footer:prtTicket() U (4) /U; prtFooter(); class SalesOrder public: void prtTicket(); ; void SalesOrder:prt
15、Ticket() Component *myST; myST=new Footer(U (5) /U); myST-prtTicket(); (分数:15.00)(1).(分数:3.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_六、B试题六/B(总题数:1,分数:15.00)阅读以下说明和 Jrdva 代码,将应填入U (n) /U处的字句写在对应栏内。 说明 在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了 Decorator(修饰)模式。SalesOrder 对象使用一个 SalesTicket 对象打印销
16、售票据。图 6-1 显示了各个类间的关系。以下是 Java 语言实现,能够正确编译通过。 图 6-1 Java 代码 /Component.java 文件 publicU (1) /Uclass Component abstract publ ic void prtTicket(); /salesTicket.java 文件 public class SalesTicket extends Component public void prtTicket() /Sales ticket printing code here System.out.printin(“SalesTicket“); /
17、Decorator.java 文件 publ ic abstract class Decorator extends Component public void prtTicket() if(myComp!=null)myComp.prtTicket(); privateU (2) /UmyComp; public Decorator(Component myC) myComp=myC; /Footer.java 文件 public class Footer extends Decorator public Footer(Component myC) U (3) /U; public void
18、 prtTicket() U (4) /U; prtFooter(); publ ic void prtFooter() /place printing footer code here System.out.println(“Footer“); /salesorder.java 文件 public class SalesOrder void prtTicket() Component myST; myST=new Footer(U (5) /U); /Print Ticket with footers as needed myST.prtTicket(); (分数:15.00)(1).(分数
19、:3.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_七、B试题七/B(总题数:1,分数:15.00)阅读以下说明和 C 代码,将应填入U (n) /U处的字句写在对应栏内。 说明 函数 combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出 10ng 整型的可表示范围,故采用数组方式存储,例如:k 位长整数 m 用数组 c存储结构如下:m=ck10 k-1+ck-110k-2+c210+c1,利用 c0存储长整数 m 的位数,即 c0=k。数组的每个元素只存储长整数 m 的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于 9,这是就应该调用 form
20、at 将其归整,使数组中的每个元素始终只存储长整数的一位数字。 整数 a 和 b(ab)的组合数为:,其中 u1=a,u 2=a-1,u b=a-b+1,d 1=1,d 2=2,d b=b。为了计算上述分式,先从 u1,u 2,u b中去掉 d1d2db的因子,得到新的 u1,u 2,u b,然后再将它们相乘。 函数 #define NAXN 100 int gcd(int a,int b)/求两个整数 a 和 b 的最大公因子 if(ab) intC=a;a=b;b=c; for(inti=b;i=2;i-) if(U (1) /U)return i; return 1; void form
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 74 答案 解析 DOC
