全国计算机技术与软件专业技术资格(水平)考试-2011全真模拟试卷(一)下午试题_第1页
全国计算机技术与软件专业技术资格(水平)考试-2011全真模拟试卷(一)下午试题_第2页
全国计算机技术与软件专业技术资格(水平)考试-2011全真模拟试卷(一)下午试题_第3页
全国计算机技术与软件专业技术资格(水平)考试-2011全真模拟试卷(一)下午试题_第4页
全国计算机技术与软件专业技术资格(水平)考试-2011全真模拟试卷(一)下午试题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机技术与软件专业技术资格(水平)考试全真模拟试卷(一)下午试题(考试时间14∶00~16∶30,共150分钟)本试卷共5道试题,满分75分。●试题一阅读下列说明和有关的图表,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】A公司决定为该市车站开发自动售票系统,系统的要求如下:1.乘客能按以下三步操作购票:选定目的地;投入钱币;获得一张票。2.当且仅当乘客选定目的地后,系统才接收投钱,每次投入的钱只购买一张票。3.只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票。4.如需找钱,则在出票的同时应退还多余的钱。5.如果乘客投入的钱不够票价,或者票库中没有所要求的票时,系统将全额退钱,并允许乘客另选目的地,继续购票。6.出票前乘客可以按“取消”按钮取消购票,系统将全额退出该乘客投入的钱,并允许乘客另选目的地,继续购票。7.出票结束(包括退还多余的钱)后,系统应保存销售记录,并等待乘客购票。该系统还要求快速响应和操作同步,所以它应是一个实时系统。为此,A公司在该系统的数据流程图中附加了过程控制部分,形成转换图。在该图中,控制流(事件流)用虚线表示,数据流用实线表示。图中的数据流并没有画全,需要考生填补。转换图如图1所示。引起状态迁移的事件以及由该事件引起的动作,在有向边旁用“事件动作”形式注明。状态迁移图如图2所示。该公司还制作了一个过程启动表,用以表明状态迁移图中的4个动作与转换图中的4个过程之间的“启动”关系,即说明哪个动作将启动哪个过程。用1表示启动,用0表示不启动。启动的过程将根据获得的输入数据产生输出数据,未启动的过程则不会产生输出数据。该表中没有列出的过程,其执行与否与事件无关。过程启动表见表1:表1动作程过接收钱出票接收目的地接收钱出票退还钱00100101退钱接收新目的地【问题1】转换图中缺少哪三条数据流?请指明每条数据流的名称、起点和终点。【问题2】在状态迁移图中,a,b,c分别表示什么事件?请用转换图中给出的事件名解答。【问题3】在过程启动表中,d,e处应填什么?请分别用4位二进制码表示●试题二阅读下列说明、流程图和算法,将应填入(n)处的字句写在答题纸的对应栏内。图3流程图【说明】下面的流程图(如图3所示)用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:【流程图】【算法说明】将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数intp(intA[],intlow,inthigh)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数voidsort(intA[],intL,intH)的功能是实现数组A中元素的递增排序。【算法】voidsort(intA[],intL,intH){if(L<H){k=p(A,L,R);//p()返回基准数在数组A中的下标sort((4));//小于基准数的元素排序sort((5));//大于基准数的元素排序}}●试题三阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】甲公司的经营销售业务目前是手工处理的,随着业务量的增长,准备采用关系数据库对销售信息进行管理。经销业务的手工处理主要涉及三种表:订单表、客户表和产品表(见表2,表3和表4)。表2订单表订单表客户代码:订单号:客户名:订货日期:订货序号产品代码产品名称数量单价小计总金额:表3客户表客户表客户代码客户名地址电话表4产品表产品表产品名称客户代码电话为了用计算机管理销售信息,甲公司提出应达到以下要求:产品的单价发生变化时,应及时修改产品表中的单价数据。客户购货计价采用订货时的单价。订货后,即使单价发生变化,计算用的单价也不变。在设计数据库时,经销部的王先生建立了如图4所示的数据模型。其中,方框表示实体,单向箭头表示1对多的联系,双向箭头表示多对多的联系。图4由于上述模型对建立关系数据库是不合适的,因此王先生又修改了数据模型,并设计了如下几个关系(带下划线的数据项是关键项,最后一个关系中没有指出关键项):Customer(CustomerNo,CustomerName,Address,Phone)Product(ProductNo,ProductName,UnitPrice)Order(OrderNo,CustomerNo,Date)OrderDetail(OrderNo,ProductNo,Quantity)【问题1】请按【说明】中的要求画出修改后的数据模型。【问题2】(1)【说明】中的几个关系仍无法实现甲公司的要求,为什么?(2)需要在哪个关系中增加什么数据项才能实现这个要求?【问题3】写出OrderDetail中的关键项。【问题4】以下SQL语句用于查询没有订购产品代码为“1K10”的产品的所有客户名。请填补其中的空缺。SELECTCustomerNameFROMCustomer(1)WHERE(2)(SELECT*FROMOrderDetailB,OrderCWHEREB.ProductNo=C.ProductNoANDB.ProductNo=′1K10′ANDC.CustomerNo=A.CustomerNo)●试题四阅读下列说明和E-R图,回答问题1~3。【说明】设有关于银行借贷管理系统的E-R图(如图4所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。图4银行借贷管理系统E-R图【问题1】根据E-R图中给出的词汇,按照“有关模式名(属性1,属性2,…)”的格式,将此E-R图转换为关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。要求其中的关系模式至少属于第三范式。【问题2】如下的SQL语言用于查询“在该银行中一笔贷款贷给多个(至少2个)客户的所有贷款号和发放贷款的支行名称”的不完整语句,请在空缺处填入正确的内容。SELECTBorrow.Lno,BnameFROMBorrow,LoanWHERE(1)GROUPBYBorrow.LnoHAVING(2);【问题3】假设这个银行有若干个节点,每个节点运行一个数据库系统。假设这些节点之间惟一的交互式用电子方式相互传送款项,这样的系统是分布式数据库系统吗?为什么?●试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答卷的对应栏内。【程序5说明】下列文法可用来描述化学分子式的书写规则(例如,Al2(CO3)3、Cu(OH)2):λ→β\βλβ→δ\δnδ→ξ\ξθλ)其中:λ是一个分子式;δ或是一个元素,或是一个带括号的(子)分子式,元素或是一个大写字母(记为ξ),或是一个大写字母和一个小写字母(记为ξθ);β或是一个δ,或是在δ之后接上一个整数n,δn表示β有n个δ的元素或(子)分子式。一个完整的分子式由若干个β组成。当然一个正确的分子式除符合上述文法规则外,还应满足分子式本身的语义要求。下面的程序输入分子式,按上述文法分析分子式,并计算出该分子式的分子量。例如:元素H的原子量是1,元素O的原子量是16。输入分子式H2O,程序计算出它的分子量为18(1×2+16)。程序中各元素的名及它的原子量从文件atom.dat中读入。【程序5】#include<stdio.h>#include<string.h>#defineMAXN300#defineGMLEN30structelem{charname[];/*元素名*/doublev;/*原子量*/}nTbl[MAXN];charcmStr[GMLEN],*pos;intc;FILE*fp;doublefactor();doubleatom()/*处理文法符号δ*/{charw[3];inti;doublenum;while((c=*pos++)==′||c==′\t′);/*略过空白字符*/if(c==′\n′)return0.0;if(c>=′A′&&C<=′Z′){/*将元素名存入W*/w[i=0]=c;c=*pos++;if(c>=′a′&&c<=′z′)w[++i]=c;elsepos--;w[++i]=′\0′;for(i=0;nTbl[i].v>0.0;i++)if(strcmp(w,nTbl[i].name)==0)returnnTbl[i].v;printf("\n元素表中没有所输入的元素:\t%s\n",w);return-1.0;}elseif(c==′(′){if((num=(1))<0.0)return-1.0;/*包括可能为空的情况*/if(*pos++!=′)′){printf("分子式中括号不匹配!/n");return-1.0;}returnnum;}printf("分子式中存在非法字符:\t%c\n",c);return-1.0;}doublemAtom()/*处理文法符号β*/{doublenum;intn=1;if((num=(2))<0.0)return-1.0;c=*pos++;if(c>=′0′&&c<=′9′){n=0;while(c>=0&&c<=′9′){n=(3);c=*poss++;}}pos--;returnnum*n;}doublefactor()/*处理文法符号λ*/{doublenum=0.0,d;if((num=mAtom())<0.0)return-1.0;while(*pos>=′A′&&*pos<=′Z′||*pos==′(′){if((d=(4))<0.0)return-1.0;(5);}returnnum;}voidmain(){charfname[]="atom.dat";/*元素名及其原子量文件*/inti;doublenum;if((fp=fopen(fname,"r"))==NULL){/*以读方式打开正文文件*/printf("Cannotopen%sfile.\n",fname);return/*程序非正常结束*/}i=0;while(i<MAXN&&fscanf(fp,"%s%lf",bTbl[i].name,&nTbl[i].v)==2)i++;fclose(fp);nTbl[i].v=-1.0;while(1){/*输入分子式和计算分子量循环,直至输入空行结束*/printf("\n输入分子式!(空行结束)\n");gets(cmStr);pos=cmStr;if(cmStr[0]==′\0′)break;if((num=fator())>0.0)if(*pos!=′\0′)printf("分子式不完整!\n");elseprintf("分子式的分子量为%f\n",num);}}●试题六阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。【说明】①定义私有数据成员code、english分别用于表示考生的编号、英语成绩,它们都是int型的数据。②完成成员函数voidStudent::inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下:输入编号:英语成绩:计算机成绩:③利用已实现的类Student的成员函数,完成函数voidfirstname(Student*A[],intnum)的定义,该函数根据考生信息A[],输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。源程序文件test1.cpp清单如下:#include<iostream.h>classStudent{(1)intcomputer;inttotal;public:voidgetinformation();voidcomputesum();intgetcode();intgettotalscore();~Student();};voidStudent::getinformation(){(2)cout<<"英语成绩:";cin>>english;cout<<"计算机成绩:";cin>>computer;}voidStudent::computesum(){total=english+computer;cout<<"编号"<<code<<"总分:"<<total<<endl;}intStudent::getcode(){returncode;}intStudent::gettotalscore(){returntotal;}voidfirstname(Student*A[],intnum){(3)tempsum=(*A[0]).gettotalscore();for(inti=1;i<num;i++){if(((*A[i]).gettotalscore())>tempsum){tempcode=(*A[i]).getcode();tempsum=(*A[i]).gettotalscore();}}cout<<"总分最高者--"<<tempcode<<":"<<tempsum<<endl;}voidmain(){Student*A[3];inti,n=3;for(i=0;i<n;i++){A[i]=newStudent;A[i]->getinformation();}for(i=0;i<n;i++){A[i]->computesum();}firstname(A,3);}●试题七阅读下列程序说明和程序段,将应填入(n)处的字句写在答卷的对应栏内。【说明】下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label控件。要求点击First时则能在Label中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerformed()方法。程序运行结果如图6所示。importjava.awt.*;importjava.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论