计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
软件设计应用技术
软件设计基础知识
软件设计应用技术
填空题[问题2] 使用关系代数表达式写出查询所有年龄在20岁以下的学生姓名和年龄。
进入题库练习
填空题[说明]在一个分布网络中,资源(石油、天然气、电力等)可从生产地送往其他地方。在传输过程中,资源会有损耗。例如,天然气的气压会减少,电压会降低。我们将需要输送的资源信息称为信号。在信号从信源地送往消耗地的过程中,仅能容忍一定范围的信号衰减,称为容忍值。分布网络可表示为一个树型结构,如图4-1所示。信号源是树根,树中的每个节点(除了根)表示一个可以放置放大器的子节点,其中某些节点同时也是信号消耗点,信号从一个节点流向其子节点。每个节点有一个d值,表示从其父节点到该节点的信号衰减量。例如,在图4-1中,节点w、p、q的d值分别为2、1、3,树根节点表示信号源,其d值为0。每个节点有一个M值,表示从该节点出发到其所有叶子的信号衰减量的最大值。显然,叶子节点的M值为0。对于非叶子j,M(j)=maxM(k)+d(k)|k是j孩子节点,在此公式中,要计算节点的M值,必须先算出其所有子节点的M值。在计算M值的过程中,对于某个节点i,其有一个子节点k满足d(k)+M(k)大于容忍值,则应在k处放置放大器,否则,从节点i到某叶子节点的信号衰减量会超过容忍值,使得到达该叶子节点时信号不可用,而在节点i处放置放大器并不能解决到达叶子节点的信号衰减问题。例如,在图4-1中,从节点p到其所有叶子节点的最大衰减值为4。若容忍值为3,则必须在s处放置信号放大器,这样可使得节点p的M值为2。同样,需要在节点q、v处放置信号放大器,如图4-2阴影节点所示。若在某节点放置了信号放大器,则从该节点输出的信号源输出的信号等价。函数placeBoosters(TreeNode*root)的功能是:对于给定树型分布网络中各个节点,计算其信号衰减量的最大值,并确定应在树中的哪些节点放置信号放大器。全局变量Tolerance保存信号衰减容忍值。树的节点类型定义如下:typedefstructTreeNodeintid;/*当前节点的识别号*/intChildNum;/*当前节点的子节点数目*/intd;/*父节点到当前节点的信号衰减值*/structTreeNode**childptr;/*向量,存放当前节点到其所有子节点的指针*/intM;/*当前节点到其所有子节点的信号衰减值中的最大值*/boolboost;/*是否在当前节点放置信号放大器的标志*/TreeNode;[C语言函数]voidplaceBooster(TreeNode*root)/*计算root所指节点处的衰减量,如果衰减量超出容忍值,则放置放大器*/TreeNode*p;inti,degradation;if((1))degradation=0;root->M=0;i=0;if(i>=root->ChildNum)return;p=(2);for(;i<root->ChildNumi++,p=(3))(P->M=0;(4);if(p->d+p->M>Tolerance)/*在P所指节点中放置信号放大器*/P->boost=true;P->M=0;if(p->d+p->M>degradation)degradation=p->d+p->M;Root->M=(5);
进入题库练习
填空题[说明] 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 main ( ) int n, i; printf ( "/n please input a number: /n"); scanf ( "% d" , printf ( "%d =" ,n); for( (1) ) while( (2) ) if( (3) ) printf ("%d*",i); (4) else break; printf (“%d”,n);
进入题库练习
填空题[说明] 所谓货郎担问题,是指给定一个无向图,并已知各边的权,在这样的图中,要找一个闭合回路,使回路经过图中的每一个点,而且回路各边的权之和最小。 应用贪婪法求解该问题,程序先计算由各点构成的所有边的长度(作为边的权值),按长度大小对各边进行排序后,按贪婪准则从排序后的各边中选择组成回路的边,贪婪准则使得边的选择按各边长度从小到大选择。 函数中使用的预定义符号如下: #define M 100 typedef struct/为两端点p1、p2之间的距离, p1、p2所组成边的长度*/ float x; int p1, p2; tdr; typedef struct/*p1、p2为和端点相联系的两个端点, n为端点的度*/ int n, p1, p2; tr; typedef struct /*给出两点坐标*/ float x, y; tpd; typedef int t1[M]; int n = 10; [函数] float distance(tpd a, tpd b);/*计算端点a、b之间的距离*/ void sortArr(tdr a[M], int m); /*将已经计算好的距离关系表按距离大小从小到大排序形成排序表, m为边的条数*/ int isCircuit(tr r[M], int i, int j); /*判断边(i, J)选入端点关系表r[M]后,是否形成回路, 若形成回路返回0*/ void selected(tr r[M], int i, int j);/*边(i,J)选入端点关系表r*/ void course(tr r[M], t1 1 [W]);/*从端点关系表r中得出回路轨迹表*/ void exchange(tdr a[M], int m, int b); /*调整表排序表, b表示是否可调, 即是否有长度相同的边存在*/ void travling(tpd pd[M], int n, float dist, t1 locus[M]) /*dist记录总路程*/ tdr dr[M];/*距离关系表*/ tr r[M];/*端点关系表*/ int i, j, k, h, m;/*h表示选入端点关系表中的边数*/ int b;/*标识是否有长度相等的边*/ k = 0; /*计算距离关系表中各边的长度*/ for(i = 1; i < n; i++) for(j = i + 1; j <= n; j++) k++; dr[k].x = ______; dr[k].p1 = i; dr[k].p2 = j; m = k; sortArr (dr, m);/*按距离大小从小到大排序形成排序表*/ do b = i; dist = 0; k = h = 0; do k++; i = dr[k].p1; j = dr[k].p2; if((r[i].n <= 1) h++; dist += dr[k].x; else if(______) selected(r, i, j); /*最后一边选入r成回路,完成输出结果*/ h++; dist += dr[k].x; while((k != n) if((h == n)) /*最后一边选入构成回路, 完成输出结果*/ course(r, locus); else/*找不到解, 调整dr, 交换表中边长相同的边在表中的顺序, 并将b置0*/ ______; while(!b);
进入题库练习
填空题[问题4] 在E-R模型中,如果实体间是1:N的联系,如何设计相应部分的关系模型?
进入题库练习
填空题[问题1] 如果将上述应用的数据库设计成如下关系模式; RS (A#,A1,A2,A3,B#,B1,B2,D1),请指出该关系模式的候选键。
进入题库练习
填空题[问题1] 试解释这个对象联系图。
进入题库练习
填空题[问题2] 用边界值分析法设计测试用例,检查逻辑覆盖标准。
进入题库练习
填空题[问题2] 试用ORDB的定义语言,定义这个数据库。
进入题库练习
填空题[说明] 假设二叉树采用连接存储结构进行存储,root 指向根接点,p 所指结点为任一给定的结点,编写一个求从根结点到p所指结点之间路径的函数。 void path (root, p) btree * root, * p; Btree *stack[m0], *s; int tag[m0], top =0, i, find =0; s =root; do while (s ! = NULL) stack [top] = s; tag[top] =0; ( (1) ) if (top >0) ( (2) ) if (tag[top] = =1) if( (3) ) for (i=1; i< =top; i+ + printf ("%d" ,stack[i]- >data); find=1; else top - -; if( (4) ) p=p- >right; ( (5) ) while (find || (s! = NULL
进入题库练习
填空题#include <stdio. h> void main( ) int digit; long in , s; seanf(" % Id", (1) ; (2) ; while(in >0) (3) ; s = s + digit* digit; (4) ; pfinff( "sum = % 1dn", s );
进入题库练习
填空题[说明]在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据,先打印销售票据内容,然后再打印脚注。图显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。[C++代码]classComponentpublic:______voidprtTicket()=0;;classSalesTicket:publicComponentpublic:voidprtTicket()cout<<"SalesTicket!"<<endl;;classDecorator:publicComponentpublic:virtualvoidprtTicket();Decorator(Component*myC);private:______myComp;;Decorator∷Decorator(Component*myC)myComp=myC;voidDecorator∷prtTicket()myComp->prtTicket();classFooter:publicDecoratorpublic:Footer(Component*myC);voidprtTicket();voidprtFooter();;Footer∷Footer(Component*myC):______voidFooter∷prtFooter()cout<<"Footer"<<end1;voidFooter∷prtTicket()______;prtFooter();classSalesOrderpublic:voidprtTicket();;voidSalesOrder∷prtTicket()Component*myST;myST=newFooter______;myST->prtTicket();
进入题库练习
填空题[说明] 已有一个工程文件,窗体上有两个图片框,名称为P1,P2。分别用来表示信号灯合汽车,其中在P1中轮流装入“黄灯.ico”、“红灯.ico”、“绿灯.ico”文件来实现信号灯的切换;还有两个计时器 Timer1 和Timer2,Timer1 用于变换信号灯,黄灯1秒,红灯2秒,绿灯3秒;Timer2用于控制汽车向左移动。运动时,信号灯不断变换,单击“开车”按钮后,汽车开始移动,如果移动到信号灯前或信号灯下,遇到红灯或黄灯,则停止移动。下面是实现上述功能的程序,请填空。 Private Sub Timer41_ Timer() a=a+1 If (1) Then a=1 End If Select Case a Case 1 P1. Picture = LoadPicture( “黄灯.ico” ) Case 2, 3 P1. Picture = LoadPicture( “红灯”.ico” ) Case4, 5, 6 P1. Picture = LeadPicture( “绿灯. ico” ) (2) End Select End Sub Private Sub Timer2_Timer( ) If (3) And (P2. Left > P1. Left And P2. Left < P1. Left + P1. Width) Or P2. Left < = 100 Then Timer2. Enabled = False Else (4) End If End Sub
进入题库练习
填空题阅读下列函数说明和C代码,将应填入 (n) 外的字句写在对应栏内。 [说明] 为网球比赛的选手安排比赛日程。设有n(n=2m)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手赛一场,且每位选手每天赛一场,不轮空。 设n位选手被顺序编号为1,2,…,n,比赛的日程表是一个n行n-1列的表,第i行j列的内容是第i号选手第j天的比赛对手。用分治法设计日程表,就是从其中一半选手(2m-1位)的比赛日程导出全体2m选手的比赛日程。从众所周知的只有两位选手的比赛日程出发,反复这个过程,直至为n位选手安排好比赛日程为止。 如两位选手比赛日程表如下所示: 1 1 2 2 1 如四位选手比赛日程表如下所示: 1 2 3 1 2 3 4 2 1 4 3 3 4 1 2 4 3 2 1 函数中使用的预定义符号如下: #define M 64 int a[M+1][M]; [函数] voidd main() int twoml,twom,i,j,m,k; printf("指定n(=2的k次幂)位选手,请输入k:/n"); scanf("%d",&k); /*8预设两位选手的比赛日程*/ a[1][1] =2; a[2][1] =1; m=1; twoml=1; while ( (1) ) m++; twoml+=twoml; twom=twoml*2;/*为2^m位选手安排比赛日程*/ /*填日程表的左下角*/ for(i=twoml+1; (2) ;i++) for(j=1; j a[i][j]=a[i-twoml][j]+twoml; /*填日程表的右上角*/ a[1][twoml]= (3) ;/+填日程表右上角的第1列*/ for(i=2; i a[i][twoml]=a[i-1][twoml]+1; /*填日程表右上角的其他列,参照前一列填当前列*/ for(j=twoml+1; j(twom;j++) for(i=1; i a[i][j]= (4) ; a[twoml][j]=a[1][j-1]; /*填日程表的右下角*/ for(j=twoml; j for(i=1;i a[ (5) [j]=i; /*输出日程表*/ for(i=1; i for(j=1;j printf("%4d",a[i][j]); printf("/n"); printf("/n");
进入题库练习
填空题[说明] 编写一工资调整程序。若基本工资大于等于800元,工资增加20%,若小于800元大于 600元,则工资增加15%,若小于600元则工资增加10%。要求在文本框Text1 中增加某职工的基本工资,单击“计算”按钮,在标签框Label1中输出增加后的工资。 Private Sub Command1_ Click( ) Dim x As Integer, y As Single (1) Select Case x Case Is > = 800 y=x*1.2 Case Is > = 600 y=x, 1.5 (2) y=x*1.1 (3) Label1. Caption = y (4) Private Sub Command2_ Click() Unload Me End Sub
进入题库练习
填空题[说明] 编写一个Application,从键盘输入整数n,并计算从1到n的累加和。 import java. io. *; public class Application1 { public static void main(String [] args) { String s = " "; int n, sum = 0; System. out. println (“计算从1到n 的累加和。”); System. out. print( “请输入n的值:”); try { {{U}}(1) {{/U}} BufferedReader br = new BufferedReader(isr); {{U}}(2) {{/U}} } catch(Exception e) { } {{U}} (3) {{/U}} for(int i=l; i< =n; i++) {{U}} (4) {{/U}} System. out. println ( “你刚才的输入是:” + n); System. out. println ( “1到n的累加和是:”+ sum); } }
进入题库练习
填空题阅读以下说明和程序流程图,将应填入{{U}}(n){{/U}}处的字句写在对应栏内。[说明]假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。注:数组下标从0开始。流程图(图4-1)用于计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针pA和pB,分别指向绝对值较大者和较小者。而对绝对值相加,情况,让pA指向LA,pB指向LB,不区分绝对值大小。pA±pB可用通式pA+flag*pB来计算,flag为+1时即对应pA+pB,flag为-1时即对应pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当最高位借位后正好为0时,结果的总位数应减1;对于加法,有最高进位时,结果的总位数应加1。流程图中涉及的函数说明如下:(1)cmp(int*LA,int*LB)函数,用于比较长整数LA与LB的绝对值大小,若LA绝对值大于LB绝对值则返回正值,LA绝对值小于LB绝对值返回负值,相等则返回0。(2)max(intA,intB)函数,用于返回整数A与B中较大数。另外,对流程图中的写法进行约定:(1)“:=”表示赋值,如“flag:=LA[0]+LB[0]”表示将“LA[0]+LB[0]”的结果赋给flag,相当于C中的赋值语句:“flag=LA[0]+LB[0];”;(2)“:”表示比较运算,如“flag:1”表示flag与1比较。
进入题库练习
填空题[说明]现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图显示了各个类间的关系。这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是JAVA语言实现,能够正确编译通过。[Java代码]//DP1.java文件publicclassDP1staticpublicvoiddraw_a_line(doublex1,doubley1,doublex2,doubley2)//省略具体实现//DP2.java文件publicclassDP2staticpublicvoiddrawline(doublex1,doubley1,doublex2,doubley2)//省略具体实现//mrawing.java文件______publicclassDrawingabstractpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2);//VlDrawing.java文件publicclassVlDrawingextendsDrawingpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2)DP1.draw_a_line(x1,y1,x2,y2);//V2Drawing.java文件publicclassV2DrawingextendsDrawingpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2)//画一条直线______;//Shape.java文件abstractpublicclassShapeabstractpublicvoiddraw();private_______dp;Shape(Drawingdp)_dp=dp;protectedvoiddrawLine(doublex1,doubley1,doublex2,doubley2)______;//mectangle.java文件publicclassRectangleextendsShapeprivatedouble_x1,_x2,_y1,_y2;publicRectangle(Drawingdp,doublex1,doubley1,doublex2,doubley2)______;_x1=x1;_x2=x2;_y1=y1;_y2=y2;publicvoiddraw()//省略具体实现
进入题库练习
填空题阅读以下函数说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。 [Java代码] public class USTax private static USTax instance=null; (1) USTax() private (2) static void doSync() if(instance==null) System.out.println("实例不存在,创建实例.."); instance= (3) ; System.out.println("实例创建成功"); else System.out.println("实例已被创建了"); public static USTax getInstance() if(instance==null) System.out.println("实例暂时不存在"); (4) ;//同步控制 else System.out.println("实例已经存在"); return (5) ;
进入题库练习
填空题[说明]函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出long整型的可表示范围,故采用数组方式存储,例如: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,然后冉将它们相乘。[函数]#defineMAXN100intgcd(inta,intb)//求两个整数a和b的最大公因子if(a<b)intc=a;a=b;b=c;for(inti=b;i>=2;i--)if(______)returni;return1;voidformat(int*a)//将长整型数纰归整inti;for(i=1;i>a[0]‖a[i]>=10;i++)if(i>=a[0])______;a[i+1]+=a[i]/10;a[i]=a[i]%10;if(i>a[0])______;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=i;i<=u[0];i++)//从u各元素去掉d中整数的因子for(j=i;j<=b;j++)x=gcd(u[i],d[j]);//计算最大公约数u[i]/=x;d[j]/=x;______;c[1]=1;长整数C初始化for(i=i;i<=u[0];i++)//将u中各整数相乘,存于长整数C中if(u[i]!=1)for(j=i;j<=c[0];j++)e[j]=______;format(c);//将长整数c归整
进入题库练习