欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】中级软件设计师下午试题-39及答案解析.doc

    • 资源ID:1323156       资源大小:83.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】中级软件设计师下午试题-39及答案解析.doc

    1、中级软件设计师下午试题-39 及答案解析(总分:75.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读下列说明和数据流图,回答问题 1-问题 3。【说明】某医院收费系统的主要功能是收取病人门诊的各项费用。系统的收费功能分为 3 个方面:病历收费、挂号收费和根据处方单内容收取检查或药物费用。1病人初次来该医院看病,首先购买病历,记录病人基本情况。2病人看病前要挂号。根据病人的病历和门诊部门(内科、外科等),系统提供相应的挂号单和处方单,并收取费用。3病人根据处方单进行进一步检查或取药前需交纳各项费用。系统首先根据病人基本情况检查处方单中病历号是否正确,记录合格的处

    2、方单,并提供收据。4所有收费都必须依据定价表中的定价来计算,且所有收费都必须写入收费记录中。医院收费系统的顶层图如图 2 所示;医院收费系统的第 0 层 DFD 图如图 3 所示。其中,加工 1 的细化图如图 4 所示,加工 2 的细化图如图 5 所示。假定顶层图是正确的,“定价表”文件已由其他系统生成。【数据流图】(分数:15.00)(1).【问题 1】指出哪张图的哪些文件可以不必画出。(分数:5.00)_(2).【问题 2】数据流图 4 中缺少 2 条数据流,请直接在图中添加。(分数:5.00)_(3).【问题 3】数据流图 5 中缺少 4 条数据流,请直接在图中添加。(分数:5.00)_

    3、二、B试题二/B(总题数:1,分数:10.00)阅读以下说明和流程图,回答问题 1 和问题 2。【说明】某供销系统接受顾客的订货单,当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发出采购单;当某配件的库存量大于或等于定购粮食,或者收到供应商的送货单并更新了库存后,向顾客发出提货单。该系统还可随时向总经理提供销售和库存情况表。该供销系统的分层数据流图中部分数据流和文件的组成如下:文件配件库存配件号+配件名+规格+数量+允许的最低库存量数据流订货单配件号+配件名+规格+数量+顾客名+地址提货单订货单+金额采购单配件号+配件名+规格+数量+供应商名+地址送货单配件号+配件名+规格+数

    4、量+金额假定顶层图(如图 6 所示)是正确的,“供应商”文件已由其他系统生成。(分数:10.00)(1).【问题 1】指出哪张图中的哪些文件可不必画出。(分数:5.00)_(2).【问题 2】指出在哪些图中遗漏了哪些数据流。回答时使用如下形式之一:(1)XX 图中遗漏了 XX 加工(或文件)流向 XX 加工(或文件)的 XX 数据流;(2)XX 图中 XX 加工遗漏了 XX 输入(或输出)数据流。【流程图】(分数:5.00)_三、B试题三/B(总题数:1,分数:10.00)1.有下列关于运动会管理系统的 ER 图,如图 10 所示。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体

    5、之间的关系。假定已通过下列 SQL 语言建立了基本表。 CREATE TABLE ATHLETE ANAME CHAR(20), ASEX CHAR(1), ATEAM CHAR(20); CREATE TABLE |TEM (INO CHAR(6)NOT NULL, INAME CHAR(20), ITIME CHAR(12), IPLACE CHAR(20); CREATE TABLE GAMES (ANO CHAR(6)NOTNULL, INO CHAR(6)NOT NULL, SCORRE CHAR(10); 为了答题的方便,图中的实体和属性同时给出了中英文两种文字,回答问题时只需写出

    6、英文名即可。 【E-R 图】 (分数:10.00)_四、B试题四/B(总题数:1,分数:10.00)2.【程序说明】 该程序定义了两个子函数 strsort 和 strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串 s1 和 s2,然后调用strsort 函数对它们分别排序,然后调用 strmerge 函数将 s1 和 s2 合并,将合并后的字符串赋给字符串s3,最后输出字符串 s3。 【程序】 #includestdio.h void strmerge(char,a,char *b,char *c) /将字符串 a,b

    7、 合并到字符串 c 中 char t,*w; w=c; while(U (1) /U) /找到字符串a,b 当前字符中较小的字符 if(*a *b) t= *a; U (2) /U; else if (*a*b) t= *b; U (3) /U; else /字符串 a,b 当前字符相等 t= *a; a+; b+; if(U (4) /U) /开始,可直接赋值 *w=t; else if(t!=*w) /如果 a,b 中较小的当前字符与 c 中当前字符不相等,才赋值U (5) /U; if(*a!=/0) /如果字符串 a 还没有结束,则将 a 的剩余部分赋给 C while(*a!=/0)

    8、 if(*a!=*w) *(+w)=*a; a+; else U (6) /U; if(*6!=/0) /如果字符串 b 还没有结束,则将 b 的剩余部分赋给 c while(*b!=/0) if(*b! = *w) *(+w)=*b; b+; else b+; U (7) /U; void strsort(char*s) /将字符串 S 中的字符排序 int i,j,n; char t,*w; W=S; for(n=0;*w!=/0;n+) /得到字符串长度 n w+; for(i=0;in-1;i+) /对字符串 s 进行排序,按字母先后顺序 for(j=i+1;jn;j+) if(U (

    9、8) /U) t=si; si=sj; U (9) /U; void main() char s1100,s2100,s3100; printf(“/nPlease,input the first string:“); scanf(“%s“,s1); printf(“/nPlease input the second string:“); scanf(“%s“,s2); strsort(s1); /将字符串 s1 排序 strsort(s2); /将字符串 s2 排序 printf(“%s/n“,s1); printf(“%s/n“,s2); s30=/0; /字符串 s3 的第一个字符先置/

    10、0结束标志 U(10) /U /将 s1 和 s2 合并,按照字母顺序排列, /且要删去相同字符,存入s3 中 printf(“%s“,s3); (分数:10.00)_五、B试题五/B(总题数:1,分数:10.00)3.【程序 5 说明】 著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。 程序中用 14 表示四种颜色。要着色的 N 个区域用 0N-1 编号,区域相邻关系用 adj矩阵表示,矩阵的 i 行 j 列的元素为 1,表示区域 i 与区域 j 相邻;矩阵的 i 行 j 列的元素为 0,表示区域 i 与

    11、区域 j 不相邻。数组 color用来存储着色结果,colori的值为区域 i 所着颜色。 【程序 5】 #includestdio.h #define N 10 void output(int color)/*输出一种着色方案*/ int i; for(i=0;iN;i+) printf(“%4d“,colori);printf(“/n“); int back (int * ip,int color)/*回溯*/ int c=4; while(c=4) if(*ip=0)return 0; (*ip); c= U(1) /U; color*ip=-1; return c; /*检查区域 i,

    12、对 c 种颜色的可用性*/ int colorOk(int i,int c,int N,int color int j; for(j=0;ji;j+) if(U (2) /U) return 0; return 1; /*为区域 i 选一种可着的颜色*/ int select (int i,int c,int adjN,int color) int k; for(k=c;k=4;k+) if(colorOK(U (3) /U) return k; return 0; int coloring(int adjN)/*寻找各种着色方案*/ int colorN,i,c,cnt; for(i=0;i

    13、N;i+)colori =-1; i=c=0;cnt=0; while(1) if(c=U (4) /U)=0) c=back( public: List()list=NULL; void reverseList(); void multiplyList(List L1,List L2); void createList(); ; void List:createList() |tem * p,* u,*pre; int exp; doubte quot; list=NULL; while(1) cout“输入多项式中的一项(系数、指数):“endl; cinquotexp: if(exp0)

    14、break; /指数小于零,结束输入 if(quot=0)continue; p=list; while(U (2) /U) /查找插入点 pre=p;p=p-next; if(p!=NULL public: List()list=NULL; void reverseList(); void multiplyList(List L1,List L2); void createList(); ; void List:createList() |tem * p,* u,*pre; int exp; doubte quot; list=NULL; while(1) cout“输入多项式中的一项(系数

    15、、指数):“endl; cinquotexp: if(exp0)break; /指数小于零,结束输入 if(quot=0)continue; p=list; while(U (2) /U) /查找插入点 pre=p;p=p-next; if(p!=NULL&exp=p-exp) p-quot+=quot;continue; u=U (3) /U; if(p=list) list=u; else pre-next=u; u-next=p; void List:reverseList() |tem*p,*u; if(list=NULL)return; p=list-next;list-nextNU

    16、LL; while(p!NULL) u=p-next;p-next=list; list=p;p=u; void List:multiplyList(List L1,List L2) |tem*pLI,*pL2,*u; int k,maxExp; double quot; maxExp=U (4) /U; L2.reverseList();listNULL; for(k=maxExp;k=0;k-) pL1=L1.list; while(pL1!=NULL&pL1-expk)pL1=pL1-next; pL2L2.list; while(pL2!=NULL&U (5) /UpL2=pL2-ne

    17、xt; quot=0.0; while(pL1!=NULL&pL2!=NULL) if(pL1-exp+pL2-exp=k) U (6) /U; pL1=pL1-next;pL2=pL2-next; else if(pL1-exp+pL2-expk) pL1=pL1-next; else pL2=pL2-next; if(quot!=0.0) u=new |tem(quot,k); u-next=list;list=u; reverseList(:);L2.reverseList(): void main() ListL1,L2,L; cout“创建第一个多项式链表/n“;L1.createL

    18、ist(); cout“创建第二个多项式链表/n“;L2.createList(); L.multiplyList(L1,L2); (分数:10.00)_正确答案:()解析:(1)quot=_quot;exp=_exp;next=NULL; (2)p!=NULL & exp p- exp (3)new Item(quot,exp) (4)L1.1ist-exp+L2.list-exp (5)pL1- exp +pL2 - exp k (6)qnot+=pL1-quot*pL2-quot 解析 程序主要由类 Item 和 List 组成,其中类 Item 定义多项式中的项,由三个私有成员组成分别

    19、是:系数 quot、指数 exp 和指向多项式的下一项的指针 next,该类定义了一个构造函数,其作用是创建系数为 _quot、指数为_exp 的项,即创建类 Item 的一个对象,因此(1)处应该填“quot=_quot;exp=_exp;next=NULL”。类 List 定义了多项式的操作,数据成员 list 是多项式链表的链头指针,类成员函数 creatlist()的功能是创建按照指数降序链接的多项式,创建的方法是不断将新的项插入到链表的合适位置上。若链表中存在一项 p,其指数大于待插入项的指数,则待查入项为 p 的前驱。该成员函数在链表上遍历,直到找到满足上述条件的项;若链表中不存在

    20、这样的项,那么待插入项称为新的链尾。因此(2)处应填“p!=NULL & expp-exp”;(3)处应填“new I- tem(quot,exp)”,根据读入的指数和系数创建要插入的项。若链表中存在指数与待插入项指数相等的项则合并同类项。 成员函数multiplyList (List L1,List L2)计算多项式 L1 和 12 的乘积。首先计算了 L1 和翅的乘积多项式的最高幂次,即多项式 L1 和 U 的最高此项的指数之和。由于多项式 L1 和 12 是按照指数的降序排列的,两个多项式的第一项分别是最高幂项,这两项的指数之和就是乘积多项式的最高次幂,因此(4)处填“L1.list-e

    21、xp+L2.list-exp”。 为了实现系数的乘积求和计算,当多项式 L1 从幂次高至幂次低逐一考虑各项的系数时,多项式 L2 应从幂次低至幂次高的顺序考虑各项的系数,以便将两多项式所有幂次和为 k 的两项系数相乘后累计。由于是单链表,所以成员函数先将其中多项式 L2 的链接顺序颠倒,计算完成之后,再将多项式 12 的链接顺序颠倒,即恢复原来的链接顺序。乘积多项式从高次幂系数至 0 次幂系数的顺序逐一计算。 为求 k 次幂这一项的系数,对于 L1 的考查顺序是从高次幂项至最低次幂项,而对于 L2 的考查相反。首先跳过多项式 L1 中高于 k 次幂的项,设低于 k 次幂的项最高次幂是 j 次幂

    22、;对于多项式 L2,跳过低于 k-j 次幂的项,因此(5)处应该填“pL1-exp+pL2-expk”。 考虑多项式 L1 和 L2 剩余各项的循环,若两多项式的当前项幂次和为 k,则累计他们系数的乘积,并分别准备考虑下一项,因此(6)处应该填“quot+=pL1-quot*pL2-quot”;若两多项式的当前幂次和大于 k,则应考虑幂次和更小的项,这样应该准备考虑多项式 L1 的下一项;若两多项式的当前幂次和小于 k,则应考虑幂次和更大的项,这样应该准备考虑多项式 L2 的下一项。若所有幂次和为 k 的项的系数乘积之和不等于 0,则应该在乘积多项式中有这一项,生成这一项的新结点,并将它插在乘

    23、积多项式的末尾。七、B试题七/B(总题数:1,分数:10.00)5.【说明】 下面是一个 Applet 程序,其功能是根据给出的小时,分钟和秒数计算相等的秒数,即将 1 分钟化为 60 秒,依此类推。要求建立一个时间类,时间参数均作为类的成员变量,并且给出换算时间的方法,也作为这个类的成员函数,可以供外部对象进行调用。同时还需要在输出窗口中显示换算结果,并且将结果写到 out3_3.txt 文件中,本题给出确定的时间为 4 小时 23 分 47 秒,要求换算成以秒做单位的时间。 程序运行结果如图 11 所示。 (分数:10.00)_正确答案:()解析:(1)out=h*3600+m*60+s

    24、(2)caculateSecond() (3)“合计:”+nSum+“秒”,20,90 (4)”合计:”+nSum+“秒” (5)System.out.println 解析 本题主要考查 Applet 的窗口,文件和文件 I/O,面向对象的基本概念以及基于文本的应用。解题关键是熟悉 Applet 的执行过程,会使用 Graphics 类的基本方法在用户界面中输出字符信息,会将 Ap- plet 面向对象的基本思想与文件操作相结合,编写有一定综合性的程序。本题中,1 小时等于 3600 秒,这里主要是要熟练掌握运算表达式的写法。程序中不可以直接用。objTime3_3 对象访问类的成员变量,应该调用成员方法,如果不调用方法去计算,得不到正确的结果。


    注意事项

    本文(【计算机类职业资格】中级软件设计师下午试题-39及答案解析.doc)为本站会员(李朗)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开