计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
软件设计应用技术
软件设计基础知识
软件设计应用技术
填空题阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。[说明]函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。整数a和b(a>b)的组合数为:,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。[函数]#defineNAXN100intgcd(inta,intb)//求两个整数a和b的最大公因子if(a<b)intC=a;a=b;b=c;for(inti=b;i>=2;i--)if((1))returni;return1;voidformat(int*a)//将长整数数组归整inti;for(i=1;i<a[0]||a[i]>=10;i++)if(i>=a[0])(2);a[i+1]+=a[i]/10;a[i]=a[i]%10;if(i>a[0])(3);voidcombine(inta,intb,int*C)inti,J,k,x;intd[MAXN],u[MAXN];k=0;for(i=a;i>=a-b+1;i--)u[++k]=i;u[0]=b;for(i=1;i<=b;i++)d[i]=i;for(i=1;i<=u[0];i++)//从u中各元素去掉d中整数的因子for(j=1;j<=b;j++)x=gcd(u[i],d[j]);//计算最大公约数u[i]/=X;d[j]/=x;(4);C[1]=1;//长整数c初始化for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中if(u[i]!=1)for(j=1;j<=c[0];j++)C[j]=(5);format(C);//将长整数c归整
进入题库练习
填空题 阅读以下说明和c++代码,将应填入{{U}} (n) {{/U}}处的字句写在答题纸对应栏内。 [说明] 很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查Singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是c++语言实现,能够正确编译通过。 [C++代码] class USTax{ {{U}} (1) {{/U}}: USTax(){};//构造函数 public: static USTax* getInstance(); private: static USTax*instance; }; {{U}} (2) {{/U}}=NULL; USTax*USTax::get Instance(){ if(instance==NULL){ //进行某种同步 cout if({{U}} (3) {{/U}}){ cout instance={{U}} (4) {{/U}}; cout } else{ cout } } else{ cout } return{{U}} (5) {{/U}}; }
进入题库练习
填空题阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。[说明]在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据,先打印销售票据内容,然后再打印脚注。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。[图5-1][C++代码]classComponentpublic:(1)voidprtTicket()=0;;classSalesTicket:publicComponentpublic:voidprtTicket()cout<<"SalesTicket!"<<endl;;classDecorator:publicComponentpublic:virtualvoidprtTicket();Decorator(Component*myC);private:(2)myComp;;Decorator::Decorator(Component*myC)myComp=myC;voidDecorator::prtTicket()myComp->prtTicket();classFooter:publicDecoratorpublic:Footer(Component*myC);voidprtTicket();voidprtFooter();;Footer::Footer(Component*myC):(3)voidFooter::prtFooter()cout<<"Footer"<<endl;voidFooter::prtTicket()(4);prtFooter();classSalesOrderpublic:voidprtTicket();;voidSalesOrder::prtTicket()Component*myST;myST=newFooter((5));myST->prtTicket();
进入题库练习
填空题执行指令时,计算页号与页内地址,判断“该页在内存吗”,若在,则进行地址映射过程;若不在内存,则产生缺页中断。当发生缺页中断时,保存当前进程现场,判断“有空闲页面吗”,如有,直接调入所需的页面。若没有,按照某种算法选择一页置换,判断“该页被修改过吗”,如果被修改过,就必须把它写回磁盘以便更新该页在磁盘上的副本;如果该页没有被修改过,那么它在磁盘上的副本已经是最新的了,则不需要写回,调入的所需的页面直接覆盖被淘汰的页。调整页表及内存分配表,恢复被中断进程现场。补充缺页中断处理流程图4-1中的判断(1)~(3)。[图4-1]
进入题库练习
填空题[说明]已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图5-1所示。[C++代码]#include<string>#include<ioStream>USingnamespacestd;ClassPurchaseRequestpublic:doubleAmount;//一个采购的金额intNumber;//采购单编号stringPurpose;//采购目的;classApprover//审批者类public:Approver()successor=NULL;virtualvoidProcessRequest(PurchaseRequestaRequest)if(successor!=NULL)(successor->(1);)voidSetSuccessor(Approver*aSuccessor)successor=aSuccessor;)private:(2)successor;;classCongress:publicApproverpublic:voidProcessRequest(purchaseRequestaRequest)if(aRequest.Amount>=500000)/*决定是否审批的代码省略*/)else(3)ProcessRequest(aRequest);;ClassDirector:publicApproverpublic:voidProcessRequest(purchaseRequestaRequest)/*此处代码省略*/);ClassPresident:publicApproverpublic:voidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/;ClassVicePresident:publicApproverpublic:voidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/);VOidmain()CongresSMeeting;vicePresidentSam;DirectorLarry;PresidentTammy;//构造责任链Meeting.SetSuccessor(NULL);Sam.SetSuccessor((4));Tammy.SetSuccessor((5));Larry.SetSuccessor((6));PurchaseRequestaRequest;//构造一采购审批请求Cin>>aRequest.Amount;//输入采购请求的金额(7).ProcessRequest(aRequest);//开始审批return;
进入题库练习
填空题[说明]以下函数完成求表达式的值,请填空使之完成此功能。floatsum(floatx){floats=0.0;intsign=1;{{U}}(1){{/U}};for(inti=1;{{U}}(2){{/U}};i++){t=t*x;s=s+{{U}}(3){{/U}};sign=-sign;{{U}}(4){{/U}};}
进入题库练习
填空题[问题2] 如果将关系模式R分解为: R1(A#,B#,E) R2(B#,C,D) 指出关系模式R2的键,并说明该关系模式最高满足第几范式(在1NF~BCNF之内)
进入题库练习
填空题[说明] 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a: xxk1. dat”中。 (1) # include <fstream. h > # include < stdlib. h > void main ( ) (2) if ( ! four) cerr < <“文件没有找开!” < <end1; exit (1); int x; cin > >x; while( (3) ) (4) cin> >x; (5)
进入题库练习
填空题 阅读下列函数说明和C代码,将应填入{{U}} (n) {{/U}}处的字句写上。 [说明] 若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示,边表示城市间通信线路,边上标示的是建立该线路的代价。 [图5-1] 无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵是对称的且对角线上元素均为0,故压缩存储,只存储上三角元素(不包括对角线)。 现用Prim算法生成网络的最小生成树。由网络G=(V,E)构造最小生成树T=(U,TE)的Prim算法的基本思想是:首先从集合V中任取一顶点放入集合U中,然后把所有一个顶点在集合U里、另一个顶点在集合V-U里的边中,找出权值最小的边(u,v),将边加入TE,并将顶点v加入集合U,重复上述操作直到U=V为止。 函数中使用的预定义符号如下: #define MAX 32768 /*无穷大权,表示顶点间不连通*/ #define MAXVEX 30 /*图中顶点数目的最大值*/ typedef struct{ int startVex,stopVex; /*边的起点和终点*/ float weight; /*边的权*/ }Edge; typedef struct{ char vexs[MAXVEX]; /*顶点信息*/ float arcs[MAXVEX*(MAXVEX-1)/2]; /*邻接矩阵信息,压缩存储*/ int n; /*图的顶点个数*/ }Graph; [函数] void PrimMST(Graph*pGraph, Edge mst[]) { int i,j,k,min,vx,vy; float weight,minWeight; Edge edge; for(i=0; i<pGraph->n-1;i++){ mst[i].StartVex=0; mst[i].StopVex=i+1; mst[i].weight=pGraph->arcs[i]; } for(i=0;i<{{U}}(1){{/U}};i++){/*共n-1条边*/ minWeight=(float)MAX; min=i; /*从所有边(vx,vy)中选出最短的边*/ for(j=i; j<pGraph->n-1; j++){ if(mst[j].weight<minWeight){ minWeight={{U}}(2){{/U}}; min=j; } } /*mst[minl是最短的边(vx,vy),将mst[min]加入最小生成树*/ edge=mst[min]; mst[min]=mst[i]; mst[i]=edge; vx={{U}} (3) {{/U}};/*vx为刚加入最小生成树的顶点下标*/ /*调整mst[i+1]到mst[n-1]*/ for(j=i+1;j<pGraph->n-1;j++){ vy=mst[j].StopVex; if({{U}} (4) {{/U}}){/*计算(vx,vy)对应的边在压缩矩阵中的下标*/ k=pGraph->n*vy-vy*(vy+1)/2+vx-vy-1; }else{ k=pGraph->n*vx-vx*(vx+1)/2+vy-vx-1; } weight={{U}} (5) {{/U}}; if(weight<mst[j].weight){ mst[j].weight=weight; mst[j].StartVex=vx; } } } }
进入题库练习
填空题 阅读以下说明和C++代码,将应填入{{U}} (n) {{/U}}处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。 需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。 [图6-1] [C++代码] class Shape{ public: {{U}} (1) {{/U}}void display()=0; }; class Line:public Shape{//省略具体实现 }; class Square:public Shape{//省略具体实现 }; class XXCircle{ public: void displayIt(){ //省略具体实现 } //省略其余方法和属性 }; class Circle:public Shape{ private: XXCircle *pxc; public: Circle(); void display(); }; Circle::Circle(){ pxc={{U}} (2) {{/U}}; } void Circle::display() { pxc->{{U}} (3) {{/U}}; } class Factory{ public: {{U}} (4) {{/U}}getshapeInstance(int type){//生成特定类实例 switch(type){ case 1:return new Square; case 2:return new Line; case 3 :return new Circle; default:return NULL; } } }; void main(int argc,char*argv[]){ if(argc !=2){ cout<<"error parameters!"<<endl; return; } int type=atoi(argv[1]); Factory factory; Shape*s=factory.{{U}} (5) {{/U}}; if(s==NULL){ cout<<"Error get the instance!"<<endl; return; } s->display(); delete s; return; }
进入题库练习
填空题[说明]某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表下表所示。为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(strategy)设计的类图如图5-1所示。其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。[C++代码]#include<iostream>usingnamespace(1);classFlyBehaviorpublic:(2)fly()=0;;classQuackBehaviorpublic:(3)quack()=0;ClassFlyWithWings:publicF1yBehaviorpublic:voidfly()cout<<"使用翅膀飞行!"<<endl;;classFlyNoWay:publicFlyBehaviorpublic:voidfly()cout<<"不能飞行!">>endl;;classQuack:publicQuackBehaviorpublic:voidquack()cout<<"发出\'嘎嘎'\声!"<<endl;;classSqueak:publicQuackBehaviorpublic:voidquack()cout<<"发出空气与橡皮摩擦声!"<<endl;;classQuackNOWay:publicQuackBehaViorpublic:voidquack()cout<<"不能发声!"<<endl;;C1assDuckprotected:FlyBehavior*(4);QuackBehaVior*(5);public:VOidfly()(6);VOidquack()(7);;virtualvoiddisplay()=0;;classRubberDuck:publicDuckpublic:RubberDuck()flyBehavior=new(8);quackBehavior=new(9);~RubberDuck()if(!flyBehavior)deleteflyBehaVior;if(!quackBehavior)deletequackBehavior;Voiddisplay()/*此处省略显示橡皮鸭的代码*///其他代码省略
进入题库练习