【计算机类职业资格】中级软件设计师下午试题-33及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-33及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-33及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-33 及答案解析(总分:180.00,做题时间:90 分钟)一、B试题一/B(总题数:3,分数:45.00)1.【问题 1】 转换图中缺少哪三条数据流?请指明每条数据流的名称、起点和终点。(分数:15.00)_2.【问题 2】 在状态迁移图中,a,b,c 分别表示什么事件?请用转换图中给出的事件名解答。(分数:15.00)_3.【问题 3】 在过程启动表中,d,e 处应填什么?请分别用 4 位二进制码表示。(分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)4.说明 下面的流程图(如图 3 所示)用 N - S 盒图形式描述了数组 A 中的元素被划分的
2、过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下标小于 i 的元素的值均小于基准数,下标大于 i 的元素的值均大于基准数。设数组 A 的下界为 low,上界为 high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以 4 为基准数的划分过程如下: (分数:15.00)_三、B试题三/B(总题数:4,分数:60.00)5.【问题 1】 请按说明中的要求画出修改后的数据模型。(分数:15.00)_6.【问题 2】 (1)说明中的几个关系仍无法实现甲公司的要求,为什么?
3、 (2)需要在哪个关系中增加什么数据项才能实现这个要求?(分数:15.00)_7.【问题 3】 写出 OrderDetail 中的关键项。(分数:15.00)_8.【问题 4】 以下 SQL 语句用于查询没有订购产品代码为“1K10”的产品的所有客户名。请填补其中的空缺。 SELECT CustomerName FROM CustomerU (1) /U WHEREU (2) /U (SELECT*FROM OrderDetail B, Order C WHERE B. ProductNo=C.ProductNo AND B. ProductNo=1K10 AND C. CustomerNo=
4、A. CustomerNo)(分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)9.说明 下列最短路径算法的具体流程如下:首先构造一个只含 n 个顶点的森林,然后依权值从小到大从连通网中选择不使森林中产生回路的边加入到森林中去,直至该森林变成一棵树为止,这棵树便是连通网的最小生成树。该算法的基本思想是:为使生成树上总的权值之和达到最小,则应使每一条边上的权值尽可能地小,自然应从权值最小的边选起,直至选出 n-1 条互不构成回路的权值最小边为止。 算法 /*对图定义一种新的表示方法,以一维数组存放图中所有边,并在构建图的存储结构时将它构造为一个“有序表”。以顺序表 MSTree
5、 返回生成树上各条边。*/ typedef struct VertexType vex1; VertexType vex2; (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)10.程序 5 说明下列文法可用来描述化学分子式的书写规则(例如,A1 2(CO3)3”Cu(OH)2):/n/()其中: 是个分子式; 或是一个元素,或是一个带括号的(子)分子式,元素或是一个大写字母(记为),或是一个大写字母和一个小写字母(记为 ) 或是一个 ,或是在 之后接上一个整数 n,n表示 有 n 个 的元素或(子)分子式。个完整的分子式由若干个 组成。当然一个正确的分子式除符合上述文法规
6、则外,还应满足分子式本身的语义要求。下面的程序输入分子式,按上述文法分析分子式,并计算出该分子式的分子量。例如:元素 H 的原子量是1,元素 O 的原子量是 16。输入分子式 H2O,程序计算出它的分子量为 18 (12+16)。程序中各元素的名及它的原子量从文件 atom.dat 中读入。程序 5#include stdio. h #include string. h #define MAXN 300#define GMLEN 30struct elem char name ; /* 元素名*/double v;/*原子量*/ nTbl MAXN;char cmStr GMLEN, * po
7、s;int c;FILE * fp;double factor( );double atom( ) /* 处理文法符号 */char w 3;int i; double num;while(c = * pos+) =|c =/t); /*略过空白字符*/if(c = /n) return 0.0;if(c=A c= * pos +if(c =aelse pos-;w +i =/0,for(i =0;nTbl i. v 0.0;i +)if(strcmp (w,nTbli. name) =0) return nTbl i. v;printf (“ /n 元素表中没有所输入的无素: /t%s/n,
8、w); retur n - 1.0; elseif (c = =() if(num=U (1) /U) 0.0)return -l.0; /*包括可能为空的情况*/if( * pos + ! = ) printf (“ 分子式中括号不匹配!/n“) ;return - 1.0; return num;printf (“分子式中存在非法字符:/t%c/n“ ,c);return - 1.0;double mAtom( ) /* 处理文法符号 */ double num ;int n = ;if(num=U (2) /U) 0.0)return-l.0;c= *pos+;if(c =O while
9、(c = 0c= *poss +;pos -;return num * n;double factor( ) /*处理文法符号 */ double num =0.0,d;if( hum = mAtom ( ) 0.0) return - 1.0;while( * pos = AU(5) /U; return num;void main( ) char fname =“atom. dst“; /*元素名及其原子量文件*/int i;double num;if(fp=fopon(fname,“r“ ) = NULL) /*以读方式打开正文文件*/prinff(“Can net open%s fil
10、e. /n ,fname) ;return /*程序非正常结束 */i=0;while(i MAXNfclose(fp) ;nTbli. v =-1.0;while(1) /*输入分子式和计算分子量循环,直至输入空行结束*/printf(“ /n 输入分子式! (空行结束) /n“ ) ;gets(cmStr);pos = cmStr;if(cmStr0 = /0) break;if( (num = later( ) ) 0.0)if( * pos! = /0)printf(“分子式不完整! /n“ );else printf(“分子式的分子量为%f/n“,num);(分数:15.00)_六、
11、B试题六/B(总题数:1,分数:15.00)11.说明 定义私有数据成员 code、english 分别用于表示考生的编号、英语成绩,它们都是 int 型的数据。 完成成员函数 void Student:inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下: 输入编号: 英语成绩: 计算机成绩: 利用已实现的类 Student 的成员函数,完成函数 void firstname(Student *A,int uum)的定义,该函数根据考生信息 A,输出 num 个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。 源程序文件 test1.
12、cpp 清单如下: #include iostream. h class Student U(1) /U int computer; int total; public void getinformation( ); void computesum( ); int getcode( ); int gettotalscore( ); Student( ); ; void Student: :getinformation( ) U (2) /U cout “英语成绩:“; cin english; cout “计算机成绩:“; cin computer; void Student: compute
13、sum ( ) total = english + computer; cout “编号“ code “总分:“ total endl; int Student:getcode( ) return code; int Student: gettotalscore ( ) return total; void firstname(Student * A ,int num) U (3) /U tempsum = ( * A0 ). gettotalscore( ); for( int i=1; i num; i+) if ( ( ( * Ai ). gettotalscore( ) ) temps
14、um) tempcode = ( * Ai ). getcode( ); tempsum = ( * Ai ). gettotalscore( ); cout “总分最高者-“ tempcode “:“ tempsum endl; void main( ) Student * A3; int i,n =3 for(i=0;in;i +) Ai = new Student; Ai - getinformation( ) for(i=0;in;i +) Ai - computesum( ) firstname ( A,3 ); (分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)
15、12.说明 面是一个 Applet 程序,其功能是有 2 个按钮,分别为 First 和 Second,以及一个 Label 控件。要求点击 First 时则能在 Label 中显示出 Command:First,而点击 Second 时则能显示出 Command: Second,要求只能使用重载一次 actionPerfonned()方法。 程序运行结果如图 6 所示。 (分数:15.00)_中级软件设计师下午试题-33 答案解析(总分:180.00,做题时间:90 分钟)一、B试题一/B(总题数:3,分数:45.00)1.【问题 1】 转换图中缺少哪三条数据流?请指明每条数据流的名称、起点
16、和终点。(分数:15.00)_正确答案:()解析:数据流名:目的地;起点:“接收目的地”;终点:“核查”。数据流名:投入的钱;起点“接收钱”;终点:“核查”。数据流名:剩余的钱;起点“核查”;终点:“退还钱”。 解析 转换图是在数据流程图中附加了过程控制的部分,该图描述了自动售票系统的基本行为。根据说明中给出的系统需求描述和转换图,可以看出该图没有完整的描述系统的基本行为。由于乘客选择的目的地需要经过系统的验证,确定是否是合法的目的地,因此缺少的数据流起点为“接收目的地”,终点为“核查”。转换图中只给出了将乘客投入的钱全额退还的数据流,没有给出在其他的情况下系统核查和退钱的数据流。因此缺少两条
17、数据流:一条数据流的起点为“接收钱”,终点为“核查”;另一条数据流的起点为“核查”,终点为“退还钱”。2.【问题 2】 在状态迁移图中,a,b,c 分别表示什么事件?请用转换图中给出的事件名解答。(分数:15.00)_正确答案:()解析:a“取消”操作 b核查正确 c出票结束。 解析 结合试题考查状态迁移图,状态“正在接收投钱”之后什么事件能够导致“退钱”,同时还要注意到该事件之后状态转移到“等待选择目的地”。显然,在接受投币之后如果正常发展的话应该是出票,出票的同时退还多余的钱。所以事件 a 是发生在“接收投钱”之后“出票”之前发生的导致退钱的事件,仔细考查试题说明,事件 a 应该是“取消”
18、,因为在试题的说明部分特别提到“出票钱乘客可以按,取消,按钮取消购票,系统将全额退出乘客投入的钱,并且乘客可以另选”“目的地”。按照上面的分析,我们可以看到在“接收投钱”之后,应该是在核查正确的事件发生之后才能够出票,因此事件 b 就是“核查正确”;而出票之后,“接收新的目的地”动作的执行应该是在“出票结束”事件发生之后执行的动作,因此事件 c 就是“出票结束”。3.【问题 3】 在过程启动表中,d,e 处应填什么?请分别用 4 位二进制码表示。(分数:15.00)_正确答案:()解析:d1001 e1000 解析 由于过程启动表与状态迁移图是严格对应的,因此,填充过程启动表就应该从理解状态迁
19、移图人手。结合试题说明、转换图和状态迁移图,我们可以确定,在系统中,动作“退钱”除了启动过程“退钱”外,还需要启动过程“接收目的地”,因为“退钱”之后应该等待乘客继续买票这样就必须启动过程“接收目的地”;而动作“接收新的目的地”启动的过程除了“接收目的地”之外还应该有过程“接收钱”。这样,我们就要在 d 处填写“1001”,在 e 处填写“1000”。二、B试题二/B(总题数:1,分数:15.00)4.说明 下面的流程图(如图 3 所示)用 N - S 盒图形式描述了数组 A 中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元
20、素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下标小于 i 的元素的值均小于基准数,下标大于 i 的元素的值均大于基准数。设数组 A 的下界为 low,上界为 high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以 4 为基准数的划分过程如下: (分数:15.00)_正确答案:()解析:(1)j- (2)i+ (3)Aipivot 或jpivot (4) A,L,k-1 或 A,L,k(5)A,k+1,H 或 A,k,H解析 题目考查快速排序算法。快速排序采用了一种分治的策略,通常称为分治法。其基本思想是:将原问题分解为若干个规模更小,但结构与原问题相似的子问题
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 33 答案 解析 DOC
