计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题[说明]对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。[图5-1][C++代码]template(1)>classIteratorpublic:virtualboolhasNext()=0;(2)Object*next()=0;;classBook//省略具体方法和属性;classBookShelfprivate:vectorbooks;public:BookShelf()Book*getBookAt(intindex)returnintgetLength()returnbooks.size();;templateclassBookshelfIterator:public(3)private:BookShelf*bookShelf;intindex;public:BookshelfIterator(BookShelf*bookShelf)this->bookShelf=bookShelf;index=0;boolhasNext()//判断是否还有下一个元素if(indexgetLength())returntrue;elsereturnfalse;Objeot*next()//取得下一个元素returnbookShelf->getBookAt(index++);;intmain()BookShelfbookShelf;//将书籍上架,省略代码Book*book;Iterator*it=newBookShelfIterator((4));while((5))//遍历书架,输出书名book=(Book*)it->next();/*访问元素*/return0;
进入题库练习
问答题[问题1] 如果将数据库服务器(记为DB)作为一个外部实体,那么在绘制该系统的数据流图时,还应有哪些外部实体和数据存储?
进入题库练习
问答题[说明] 以下C程序实现了将字符串转化为浮点数的功能。例如字符串“1234567”转化为浮点数1234567;字符串“100.02035”转化为浮点数100.02035;字符串“-100.02035”转化为浮点数-100.02035。程序中的部分变量的含义如表9-5。 表9-5 变量名 含 义    intpart    字符串转化为浮点数后的整数部分    doublepart    字符串转化为浮点数后的小数部分    kdouble    记录小数部分的阶次    resoult    字符串转化为浮点数后的结果    psign    字符串转化为浮点数后的符号标识 [C程序] double StrToDouble(char*s) char hexch[]="0123456789"; int i,j,psign=1; DWORD n,k,intpart=0; double doublepart=0,kdouble,resoult; char ch; if (*s=='.' (1) ; (2) ; char*s1=s,*temp=NULL; temp=strrchr ( s1,'.' ); if (!temp) k=1; intpart=0; for (i=strlen (s); i>0;i--) ch=s[i-1]; if (ch>0x3f) ch n=0; for (j=0; j<10; j++) if ( ch==hexch[j]) n=j; intpart+= (n*k); k*=10; else s1=temp+1; kdouble=0.1; doublepart=0; for ((3) ) ch=s1[i-1]; if (ch>0x3f) ch n=0; for (j=0; j<10; j++ ) if (ch==hexch[j]) n=j; doublepart+= (n*kdouble); (4) ; *temp=NULL; k=1; intpart=0; for ((5) ;) ch=s[i-1]; if (ch>0x3f) ch n=0; for (j=0; j<10; j++) if (ch==hexch[j]) n=j; intpart+= (n*k); k*=10; //end else (6) ; return resoult;
进入题库练习
问答题【说明】 下面是某医院信息管理系统中需要的信息。 科室:科名、科地址、科电话、医生姓名。 病房:病房号、床位号、所属科室名。 医生:姓名、职称、所属科室名、年龄、工作证号。 病人:病历号、姓名、性别、诊断、主管医生、病房。 其中,一个科室有多个病房,多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可以负责多个病人的诊治,一个病人的主管医生只有一个。
进入题库练习
问答题阅读下列说明和C代码,回答问题。 [说明] 设有n个货物要装入若干个容量为C的集装箱以便运输,这n个货物的体积分别为{S1,S2,…,Sn},且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装运这n个货物。 下面分别采用最先适宜策略和最优适宜策略来求解该问题。 最先适宜策略(Firstfit)首先将所有的集装箱初始化为空,对于所有货物,按照所给的次序,每次将一个货物装入第一个能容纳它的集装箱中。 最优适宜策略(Bestfit)与最先适宜策略类似,不同的是,总是把货物装到能容纳它且目前剩余容量最小的集装箱,使得该箱子装入货物后闲置空间最小。 [C代码] 下面是这两个算法的C语言核心代码。 {{U}} 1 {{/U}}变量说明。 n:货物数。 C:集装箱容量。 s:数组,长度为n,其中每个元素表示货物的体积,下标从0开始。 b:数组,长度为n,b[i]表示第i+1个集装箱当前已经装入货物的体积,下标从0。 i,j:循环变量。 k:所需的集装箱数。 min:当前所用的各集装箱装入了第i个货物后的最小剩余容量。 m:当前所需要的集装箱数。 temp:临时变量。 {{U}} 2 {{/U}}函数firstfit。 int firstfit(){ inti,j; k=0; for(i=0;i<n;i++){ b[i]=0; } for(i=0;i<n;i++){ {{U}} {{U}} 1 {{/U}} {{/U}}; while(C-b[j]<s[i]){ j++; } {{U}} {{U}} 2 {{/U}} {{/U}}; k=k>(j+1)?k:(j+1); } returnk } {{U}} 3 {{/U}}函数bestfit。 int bestfit(){ int i,j,min,m,temp; k=0; for(i=0;i<n;i++){ b[i]=0; } for(i=0;i<n;i++){ min=C; m=k+1; for(j=0;j<k+1;j++){ temp=C-b[j]-s[i]; if(temp>0&&temp<min){ {{U}} {{U}} 3 {{/U}} {{/U}}; m=j; } } {{U}} {{U}} 4 {{/U}} {{/U}}; k=k>(m+1)?k:(m+1); } return k; }
进入题库练习
问答题【说明】C市刚开通了地铁线,为方便乘客,计划开发自动售票系统。该公司在每一个地铁站放置了多台自动售票机,每一台售票机有一唯一编号,售票记录统一汇总主机。自动售票机只发售从该站起始的各种地铁票,因此乘客只需输入目的站,起始站默认为该站,售票机给出从该站到达目的站的单程票。打印地铁票时为其编一个唯一的流水号,并同时打印自动售票机的编号及票价。售票机的状态变化如下:“空闲”时,显示地铁线路图,等待乘客输入目的站;当乘客输入目的站后,转入“目的站确认/票数输入”状态,同时给出票价,此时若目的站有误,可返回到空闲状态重新输入,否则,输入票数;乘客输入票数后,转入“票数确认/付款”状态,同样此时若票数有误,可返回到上一状态重新输入,否则,投入钱币付款;当付款金额足够时,“出票/找零”(有必要时进行找零);然后转入“空闲”等待输入目的站状态。该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图9-18所示是该系统类图的一部分,图9-19描述了自动售票机的状态转换图。
进入题库练习
问答题[说明]已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批。主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图3-27所示。[C++代码]
进入题库练习
问答题[说明]公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况。期刊在公司内部传阅,员工可以要求加入传阅队列。图书室登记公司收到的期刊,交给名单中的第一名员工。员工应在三个工作日内完成阅读,员工阅读完毕后通知系统,系统提醒下一位阅读者取书,下一个员工必须确认已收到期刊。当传阅名单中“下一位”员工出差在外时将无法进行传阅,此时将期刊传给再下一位,而将该员工作标记,再次传递此书时优先考虑该员工。最后一位员工阅读完毕后,将期刊交还图书室以便共用。系统能在员工忘记传递期刊时发出提醒信息。系统详细记录期刊传阅情况,当员工阅读完后通知系统,系统记录该员工员工号及日期,并在备注栏注明是传出;同样,当员工收到期刊后给系统确认,系统记录该员工员工号及日期,并在备注栏注明是收到。公司的员工都有一个唯一的员工号。公司订阅了多种期刊,为每一本期刊(有唯一期刊流水号)产生一份传阅名单,并详细记录传阅情况。员工的出差情况存储在系统主机中。该系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图表示,图1-1是该系统的类图的一部分,图1-2描述了成功传递期刊的序列图。[图1-1][图1-2]1.根据题意,给出类“传阅记录”的主要属性。
进入题库练习
问答题假定SP表存储供应情况,如下的SQL语句是用于查询“产地为‘Beijing’、零件号为‘P101’的零件的所供应的总数(包括所有供应商)”的不完整语句,请在空缺处填入正确的内容。 SELECT SUM(Qty) FROM SP WHERE PNo=”P101’ {{U}} (1) {{/U}}PNo{{U}} (2) {{/U}} (SELECT PNo FROM{{U}} (3) {{/U}} WHERE city="Beijing") {{U}} (4) {{/U}}PNo;
进入题库练习
问答题请补充函数fun(),该函数的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Are you come from Sichuan?”,则输入“are you come from si- chuan?”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<stnng.h> #include<conlo.h> char *fun(char tt[]) int i; for(i=0; tt[i];i++) if((tt[i]>='A')&&( (1) )) (2) ; return( (3) ); main() charn[81]; printf("/nPlease enter a string:"); gets(tt); printf("/nThe result string is:/n%s",fun(tt));
进入题库练习
问答题阅读以下说明和流程图,回答问题1和问题2,将答案写在答卷的对应栏内。【说明】本流程图实现从比赛成绩文件生成赛车成绩一览表。某国际高等级赛车比赛使用如图所示的成绩处理流程,比赛成绩记录在成绩文件F0中,其记录格式如下:赛车号车手姓名第1赛段成绩第2赛段成绩…第n赛段成绩由该成绩文件生成如下所示的车手成绩一览表。生成的车手成绩一览表按总名次(系统会根据总成绩和分段成绩按规定方式计算得出总名次,不会有相同名次存在)降序排列。表中第n赛段的名次是该车手相应赛段在全部车手中的名次,成绩是根据规定方式计算而得的成绩,总名次是总成绩在所有车手中排名的名次。赛车号车手姓名赛段1…赛段n全程成绩名次……成绩名次总成绩总名次                    流程图中的顺序文件F0是车手成绩文件,F0文件经处理l处理后产生顺序文件F,然后经处理2至处理4对文件F进行处理和更新,在处理5中,仅仅对文件F的记录进行车手成绩一览表的编排输出,不进行排序和增加名次等处理。
进入题库练习
问答题问题:1.4 (5分) 图1-2所示的数据流图中,功能(6)发送通知包含创建通知并发送给学生或老师。请分解图1-2中加工(6),将分解出的加工和数据流填入答题纸的对应栏内。(注:数据流的起点和终点须使用加工的名称描述)
进入题库练习
问答题【问题2】 经改写后的文法是否是LL(1)的?指出它的预测分析表中(1)~(3)处的内容。
进入题库练习
问答题[问题1] 在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图4-4所示。指出图中的A,B,C和D分别是哪个用例?
进入题库练习
问答题函数intToplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:typedefstructGnode{/*邻接表的表结点类型*/intadjvex;/*邻接顶点编号*/intweight;/*弧上的权值*/structGnode*nextarc;/*指示下一个弧的结点*/}Gnode;typedefstructAdjlist{/*邻接表的头结点类型*/charvdata;/*顶点的数据信息*/structGnode*Firstadj;/*指向邻接表的第一个表结点*/}Adjulist;typedefstructLinkedWDigraph{/*图的类型*/intn,e;/*图中顶点个数和边数*/structAdjlist*head;/*指向图中第一个顶点的邻接表的头结点*/}LinkedWDigraph;例如,某AOE网如图1所示,其邻接表存储结构如图2所示。图1AOE网图2AOE网邻接表存储结构[函数代码]intToplogical(LinkedWDigraphG){Gnode*p;intj,w,top=0;int*Stack,*ve,*indegree;ve=(int*)malloc((G.n+1)*sizeof(int));indegree=(int*)malloc((G.n+1)*sizeof(int));/*存储网中各项点的入度*/stack=(int*)malloc((G.n+1)*sizeof(int));/*存储入度为0的顶点的编号*/if(!ve||!indegree||!Stack)exit(0);for(j=1;j<=G.n;j++){ve[j]=0;indegree[j]=0;}/*for*/for(j=1;j<=G.n;j++){/*求网中各项点的入度*/p=G.head[j].Firstadj;while(p){{{U}}{{U}}{{/U}}{{/U}};p=p->nextarc;}/*while*/}/*for*/for(j=1;j<=G.n;j++)/*求网中入度为0的顶点并保存其编号*/if(!indegree[j])Stack[++top]=j;while(top>0){w={{U}}{{U}}{{/U}}{{/U}};printf("%c",G.head[w].vdata);p=G.head[w].Firstadj;while(p){{{U}}{{U}}{{/U}}{{/U}};if(!indegree[p->adjvex])Stack[++top]=p->adjvex;if({{U}}{{U}}{{/U}}{{/U}})ve[p->adjvex]=ve[w]+p->weight;p=p->nextarc;}/*while*/}/*while*/return{{U}}{{U}}{{/U}}{{/U}};}/*Toplogical*/
进入题库练习
问答题试题六(15分,每空3分)阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。[说明]通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中。应用系统在启动时首先将配置文件加载到内存中,这些内存配置信息应该有且仅有一份。下面的代码应用了单身模式(Singleton)以保证Configure类只能有一个实例。这样,Configure类的使用者无法定义该类的多个实例,否则会产生编译错误。
进入题库练习
问答题【说明】下面是一个Applet程序,其功能是通过一个按钮控制一个窗口的创建,显示与隐藏,并且以按钮文字作为提示,可以随着窗口的状态改变,即如果窗口出现,则按钮文字为"HidemyFrm",提示用户点击按钮,则隐藏窗口,反之亦然。请将横线处语句补充完整。程序运行结果如图5所示:importjava.awt.*;importjava.applet.*;<appletcode="ex8_7.class"width=800height=400></applet>*/publicclassex8_7extendsAppletprivateFramefrm;privateButtonshowBtn;publicvoidinit()showBtn=newButton("ShowFrame");(1);publicbooleanaction(Evente,Objecto)if(e.target==showBtn)if((2))(3);frm.dispose()(4)showBtn,setLabel("ShowmyFrm");elsefrm=newFrame("myFrm");frm.resize(200,150);frm.setBackground(Color.gray);(5);showBtn,setLabel("HidemyFrm");returntrue;ex8_7,html<HTML><HEAD><TITLE>ex8_7</TITLE></HEAD><BODY><appletcode="ex8_7,class"width=800height=400></applet></BODY></HTML>
进入题库练习
问答题【说明】本程序ExceptionTester实现功能:读入两个整数,第1个数除以第2个数,之后输出。若第2个数为0,则自动进行异常处理。 程序如下: (1) ; public class ExceptionTester public static void main(String args[]) int result; int number[]=new int[2]; boolean valid; for(int i=0;i<2;i++) valid= (2) ; while(!valid) try System.out.println("Enter number"+(i+1)); number[i]=Integer.valueOf(Keyboard.getString()).intValue(); valid=true; catch(NumberFormatExceptione) System.out.println("Invalid integer entered.Please try again."); by result=number[0]/number[1]; System.out.print(number[0]+"/"+number[1]+"="+result); catch( (3) ) System.out.println("Second number is 0,cannot do division!"); 其中,Keyboard类的声明为: impon java.io.*; public class Keyboard static BufferedReader inputStream=new (4) (new InputStreamReader(System.in)); public static int getInteger() try return(Integer,valueOf(inputStream.readLlne().trim()).intValue()); catch(Exceptione) e.printStackTrace(); return 0; public (5) by return(inputStream.readLine()); catch(IOExceptione) return "0";
进入题库练习
问答题【说明】栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(StockTop),而另一端称为栈底(StockBottom)。栈的基本操作包括:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如下图所示)。以下C代码采用链式存储结构实现一个整数栈操作。【C代码】typedefstructList{intdata;//栈数据structList*next;//上次入栈的数据地址}List;typedefstructStack{List*pTop;//当前栈顶指针}Stack;Stack*NewStack(){return(Stack*)calloc(1/sizeof(Stack));}intIsEmpty(Stack*S){//判断栈S是否为空栈if({{U}}(1){{/U}})return1;return0;}intTop(Stack*s){//获取栈顶数据。若栈为空,则返回机器可表示的最小整数if(IsEmpty(S))returnINT_MIN;return{{U}}(2){{/U}};}voidPush(Stack*S,inttheData){//将数据theData压栈List*newNode;newNode=(List*)calloc(1/sizeof(List));newNode->data=theData;newNode->next=S->pTop;S->pTop={{U}}(3){{/U}};}voidPop(Stack*S){//弹栈List*lastTop;if(IsEmpty(S))return;lastTop=S->pTop;S->pTop={{U}}(4){{/U}};free(lastTop);}#defineMD(a)a<<2intmain(){inti;Stack*myStack;myStack=NewStack();Push(myStack,MD(1));Push(myStack,MD(2));Pop(myStack);Push(myStack,MD(3)+1);while(!IsEmpty(myStack)){printf("%d",Top(myStack));Pop(myStack);}return0;}以上程序运行时的输出结果为:{{U}}(5){{/U}}
进入题库练习
问答题【程序5说明】 著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。 程序中用1~4表示四种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用 adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。 【程序5】 #include<stdio.h> #define N 10 void output(int color[])/*输出一种着色方案*/ int i; for(i=0;i<N;i++) printf("%4d",color[i]); printf("/n"); int back (int * ip,int color[])/*回溯*/ int c=4; while(c==4) if(*ip<=0)return 0; --(*ip); c= (1) ; color[*ip]=-1; return c; /*检查区域i,对c种颜色的可用性*/ int colorOk(int i,int c,int [][N],int color[] int j; for(j=0;j<i;j++) if( (2) ) return 0; return 1; /*为区域i选一种可着的颜色*/ int select (int i,int c,int adj[][N],int color[]) int k; for(k=c;k<=4;k++) if(colorOK( (3) )) return k; return 0; int coloring(int adj[][N])/*寻找各种着色方案*/ int color[N],i,c,cnt; for(i=0;i<N;i++)color[i] =-1; i=c=0;cnt=0; while(1) if((c= (4) )==0) c=back(&i,color); if(c==0)return cnt; else (5) ;i++; if(i==N) output(color); ++cnt; c=back(&i,color); else c=0; void main() int adj[N][N]= 0,1,0,1,1,1,1,1,1,1, 1,0,1,1,0,1,1,1,1,0, 0,1,0,1,0,1,1,0,1,1, 1,1,1,0,1,1,0,0,1,1, 1,0,0,1,0,1,0,0,0,0, 1,1,1,1,1,0,1,0,0,1, 1,1,1,0,0,1,0,0,1,0, 1,1,0,0,0,0,0,0,1,1, 1,1,1,1,0,0,1,1,0,1, 1,0,1,1,0,1,0,1,1,0 ; printf("共有%d组解./n",coloring(adj));
进入题库练习