计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
填空题 阅读下列函数说明和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()/*此处省略显示橡皮鸭的代码*///其他代码省略
进入题库练习