计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
软件设计应用技术
软件设计基础知识
软件设计应用技术
问答题[说明]下面的流程图(如图所示)用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:[流程图][算法说明]将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数intp(intA[],intlow,inthieh)实现了上述流程图的划分过程并返回基准数在数组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~3问题。[说明]学生信息管理系统旨在用微型计算机对全校的学生事务进行管理,其内容包括新生管理、成绩管理、重修管理、毕业资格审定以及随机查询和打印报表等。教务人员在进入系统时,系统通过注册登录来提供用户的访问权限,系统会检查用户的合法性,如不合法,系统拒绝用户进入,如是合法用户,则根据命令要求类型处理。本系统主要有新生管理、成绩管理、重修处理、资格审定四大功能,分别进行不同的管理。新生管理首先按照各专业录入新生信息,录入时若录入的信息不完整,则给出提示信息,要求用户录入完整信息;若新生库中已经存在该生信息了,则给出提示信息,保证不重复录入新生信息。在录入阶段,会显示新生库中的记录,可以进行浏览、删除、修改等操作,以便用户录入正确无误的新生信息。录入完毕后,打印编好学号和分好班次的新生名单并将新生记录写入学生信息库。成绩管理使用一般方法和特殊方法对学生成绩进行管理。分别按照这两种方法进行成绩的录入和计算。成绩处理完毕后,合并到学生成绩库,可以对学生成绩总库进行浏览、修改、删除、插入、查找等操作,同时提供成绩查询功能,可按照学号、姓名、课程号、课程名称、专业班级查询学生成绩,最后打印各种形式的学生成绩单。重修处理首先对学生重修总体情况进行浏览,可以查询未交费学生重修情况、某个学生重修情况等,打印各种形式的重修单和重修证。另外进行重修交费登记,输入某个重修学生学号,则显示该生相关信息(姓名、专业等)、重修课程信息、重修总学分、应交金额等,交费登记后,写入重修表和交费表。资格审定主要对毕业生的毕业资格进行审定,计算毕业生的已修学分,审定后填写资格库,显示审定结果,打印毕业生资格表和毕业证书等。学生信息管理系统顶层图如图10-1所示;学生信息管理系统的第0层DFD图如图10-2所示,其中,加工3的细化图如图10-3所示,加工4的细化图如图10-4所示。[数据流图10-1][数据流图10-2][数据流图10-3][数据流图10-4]
进入题库练习
问答题【说明】Point是平面坐标系上的点类,Line是从Point派生出来的直线类。 #include <iostream.h> class Point public: Point (int x, int y) ; Point (Point ~Point(); void set (double x, double y) ; void print(); private:double X,Y; ; Point::Point (int x, int y) //Point 构造函数 X=x; Y=y; Point::Point ( (1) ) //Point 拷贝构造函数 X=p.X; Y=p.Y; void Point::set (double x, double y) X=x; Y=y; void Point::print() cout<<' ('<<X<<","<<Y<<") "<<endl; Point::~Point() cout<<"Point 的析构函数被调用! "<<endl; class Line: public Point public: Line (int x, int y, int k) ; Line (Line ~Line(); void set (double x, double y, double k) void print(); private:double K; ; (2) //Line 构造函数实现 K=k; (3) //Line 拷贝构造函数实现 K=s.K; void Line::set (double x, double y, double k) (4) ; K=k; void Line::print() cout<<" 直线经过点"; (5) ; cout<<"斜率为: k="<<K<<endl; Line: :~Line() cout<<"Line 析构函数被调用! "<<endl; void main() Line 11 (1,1,2) ; 11 .print(); Linel2 (11) ; 12.set (3,2,1) ; 12.print();
进入题库练习
问答题问题:5.1 请填写(1)(2)(3)(4)(5)
进入题库练习
问答题[说明]公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况。期刊在公司内部传阅,员工可以要求加入传阅队列。图书室登记公司收到的期刊,交给名单中的第一名员工。员工应在三个工作日内完成阅读,员工阅读完毕后通知系统,系统提醒下一位阅读者取书,下一个员工必须确认已收到期刊。当传阅名单中“下一位”员工出差在外时将无法进行传阅,此时将期刊传给再下一位,而将该员工作标记,再次传递此书时优先考虑该员工。最后一位员工阅读完毕后,将期刊交还图书室以便共用。系统能在员工忘记传递期刊时发出提醒信息。系统详细记录期刊传阅情况,当员工阅读完后通知系统,系统记录该员工员工号及日期,并在备注栏注明是传出;同样,当员工收到期刊后给系统确认,系统记录该员工员工号及日期,并在备注栏注明是收到。公司的员工都有一个唯一的员工号。公司订阅了多种期刊,为每一本期刊(有唯一期刊流水号)产生一份传阅名单,并详细记录传阅情况。员工的出差情况存储在系统主机中。该系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图表示,图1-1是该系统的类图的一部分,图1-2描述了成功传递期刊的序列图。[图1-1][图1-2]
进入题库练习
问答题【说明】 本程序在3×3方格中填入1~N(N≥10)内的某9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。试求出满足这个要求的所有填法。3×3方格中的每个方格按行按列(先行后列)序号排列为:0,1,2,3,4,5,6,7,8。 程序采用试探法,即从序号为0的方格开始,为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数。如不能为当前方格找到一个合理的可填整数,就要回退到前一方格,调整前一方格的填入整数;直至序号为8的方格也填入合理的整数后,就找到了一个解,将该解输出。再调整序号为8的方格所填整数,继续去找下一个解。为了检查当前方格的填入整数的合理性,程序引入二维数组check Matrix,存放需要进行合理性检查的相邻方格的序号。 # include <stdio. h> # define N 12 int b[N+1]; int pos; int a[9];/* 用于存储诸方格所填入的整数*/ int AllNum=0;/* 统计有多少种填法*/ int checkMatrix[][3]= -1,0,-1,1,-1, 0,-1,1,3,-1,2,4,-1, 3,-1,4,6,-1,5,7,-1; void write(int a[]) int i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) printf("%3d", a[3*i+j]); printf("/n"); int isPrime(int m) int i; if(m==2)return 1; if(m==1 ‖ m%2==0)return 0; for(i=3; i*i<m;) if(m%i==0)return 0; i+=2; return 1; int selectNum(int start) int j; for(j=start; j<=N; j++) if(b[j])return j; return 0; int check()/*检查填入pos位置的整数是否合理*/ int i,j; for(i=0; (j= (1) )>=0; i++) if(!isPrime(a[pos]+a[j])) (2) ; (3) ; extend ()/* 为下一方格找一个尚未使用过的整数*/ a[ (4) ]=selectNum(1); b[a[pos]]=0; void change ()/*为当前方格找下一个尚未使用过的整数(找不到回溯)*/ int j; while(pos >=0 if(pos<0)return; b[a[pos]]=1; a[pos]=j; b[j]=0; int find () int ok=1; pos=0; a[pos]=1; b[a[pos]]=0; do if(ok) if(pos==8) write(a); change(); AllNum++;/* 统计有多少种填法*/ else extend(); else change(); ok=check(); while(pos>=0); void main() int i; for(i=1; i<=N; i++) b[i]=1; find(); prinrf("共有%d种不同填法!/n", AllNum);
进入题库练习
问答题【问题 4】(3 分) 根据问题描述,写出客户、委托书和派工单这三个关系的主键。
进入题库练习
问答题问题:5.1 (15分) 阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
进入题库练习
问答题
进入题库练习
问答题[问题2] 如果在游戏A中付5元,游戏B中付4元,使用风险决策树分析应该选择哪个游戏。
进入题库练习
问答题[说明]某机器上需要处理n个作业job1,job2,…,jobn,其中:(1)每个作业jobi(1≤i≤n)的编号为i,jobi有一个收益值P[i]和最后期限值d[i];(2)机器在一个时刻只能处理一个作业,而且每个作业需要一个单位时间进行处理,一旦作业开始就不可中断,每个作业的最后期限值为单位时间的正整数倍;(3)job1~jobn的收益值呈非递增顺序排列,即p[1]≥p[2]≥…≥p[n];(4)如果作业jobi在其期限之内完成,则获得收益p[i];如果在其期限之后完成,则没有收益。为获得较高的收益,采用贪心策略求解在期限之内完成的作业序列。图3-25是基于贪心策略求解该问题的流程图。(1)整型数组J[]有n个存储单元,变量k表示在期限之内完成的作业数,J[1..k]存储所有能够在期限内完成的作业编号,数组J[1..k)里的作业按其最后期限非递减排序,即d[J[1]]≤…≤d[J[k]]。(2)为了便于在数组J中加入作业,增加一个虚拟作业job0,并令d[0]=0,J[0]=0。(3)算法大致思想是:先将作业job1的编号1放入J[1],然后,依次对每个作业jobi(2≤i≤n)进行判定,看其能否插入到数组J中。若能,则将其编号插入到数组J的适当位置,并保证J中作业按其最后期限非递减排列;否则不插入。jobi能插入数组J的充要条件是:jobi和数组J中已有作业均能在其期限之内完成。(4)流程图中的主要变量说明如下。i:循环控制变量,表示作业的编号;k:表示在期限内完成的作业数;r:若jobi能插入数组J,则其在数组J中的位置为r+1;q:循环控制变量,用于移动数组J中的元素。
进入题库练习
问答题 阅读以下说明和流程图,回答问题1至问题3,将答案写在对应栏内。 【说明】 下面给出的是某高级公寓管理系统的一套分层数据流图。其功能描述如下所述。 (1)系统随时根据住户送来的入住单更新住户基本信息文件。 (2)每月初系统根据物业管理委员会提供的月附加费(清洁费、保安费等)表和房租调整表,计算每家住户的月租费(包括月附加费),向住户发出交费通知单。住户交费时,系统输入交费凭证,核对后输出数据给住户。 (3)系统定期向物业管理委员会提供住房分配表和交费情况表。 (4)住户因分户或换房,在更新账户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分尸或换房前的房租。 假定题中提供的顶层图是正确的,请回答下列问题。
进入题库练习
问答题[说明]计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46512037-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46512037-*+”的计算过程如下:a.依次将46、5、120、37压入栈中;b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;e.表达式结束,则计算过程完成。函数computing(charexpr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。函数computing中所用栈的基本操作的函数原型说明如下。●voidInitStack(STACK*s):初始化栈。●voidPush(STACK*s,inte):将一个整数压栈,栈中元素数目增1。●voidPop(STACK*s):栈顶元素出栈,栈中元素数目减1。●intTop(STACKs):返回非空栈的栈顶元素值,栈中元素数目不变。●intIsEmpty(STACKs):若s是空栈,则返回1;否则返回0。[C函数]
进入题库练习
问答题[说明]下面是一个Appkt程序,其功能是从3~100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。程序运行结果如图4所示。importjava.awt.*importjava.applet.Applet<appletcode=ex2_7,classwidth=800height=400></applet>publicclassex2_7extendsAppletpublicColorcolor2_7=Color.black;privateihtn2_7=3;publicmyPrimethPrime2_7;publicvoidinit()thPrime2_7=newmyPrime(this);thPrime2_7,start();publicvoidpaint(Graphicsg)g,setColor(color2_7);g.drawString((1),50,50);publicintgetlnt()returnn2_7;publicvoidsetlnt(inti)n2_7=i;classmyPrimeextendsThreadIex2_7obj2_7;myPrime(ex2_7o)this.obj2_7=o;publicbooleanisPrime(intn)booleanbPrime=true;ihti=2;if((2))returnfalse;while(i<n-]i++;returnbPrime;publicvoidrun()inti;for(i=3;(4);i++)if(isPrime(i))obj2_7,color2_7=Color,gray;elseobj2_7,color2_7=Color.green;(5);obj2_7,repaint();trysleep(S00);catch(InterruptedExceptionie)ex2_7,html<HTML><HEAD><TITLE>ex2_7</TITLE></HEAD><BODY><appletcode="ex2_?,class"width=800height=400></applet></BODY></HTML>
进入题库练习
问答题阅读以下说明和数据流图,根据要求回答下列问题。[说明]现准备为某银行开发一个信用卡管理系统CCMS,该系统的基本功能如下。1.信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交CCMS。如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认函后成为信用卡客户。2.信用卡激活。信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功激活。3.信用卡客户信息管理。信用卡客户的个人信息可以在CCMS中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。4.交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在CCMS中。信用卡客户可以通过CCMS查询并核实其交易信息(包括信用卡交易记录及交易额)。图8-15和图8-16分别给出了该系统的顶层数据流图和0层数据流图的初稿。
进入题库练习
问答题请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> int m; void fun(char*s) int i=0,j=0; char *p=s; while(*(p+i)) if(*(p+i)>='A'&&*(p+i)<='Z') (1) ; (2) ; s[j]='/0'; (3) ; main() char str[80]; clrscr(); printf("/nEnter a string:"); gets(str); printf("/n/nThe string is:/%s/n",str); fun(str); printf("/n/nThe string of changing is: /%s/n",str); printf("/n/nThe length of changed strtng is:/%d/n",m);
进入题库练习
问答题【说明】现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DF2则用drawline(x1,x2,y1,y2)画一条直线。当实例画矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图9-7显示了各个类间的关系。这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。【C++代码】classDP1{public:staticvoiddraw_a_line(doublex1,doubley1,doublex2,doubley2){//省略具体实现});classDP2{public:staticvoiddrawline(doublex1,doublex2,doubley1,doubley2){//省略具体实现}};classDrawing{public:{{U}}(1){{/U}}voiddrawLine(doublex1,doubley1,doublex2,doubley2)=0;};classV1Drawing:publicDrawing{public:voiddrawLine(doublex1,doubley1,doublex2,doubley2){DP1::draw_a_line(x1,y1,x2,y2);}};classV2Drawing:publicDrawing{public:voiddrawLine(doublex1,doubley1,doublex2,doubley2){ {{U}}(2){{/U}};}};classShape{private:{{U}}(3){{/U}}_dp;public:Shape(Drawing*dp);virtualvoiddraw()=0;voiddrawLine(doublex1,doubley1,doublex2,doubley2);};Shape::Shape(Drawing*dp){_dp=dp;}voidShape::drawLine(doublex1,doubley1,doublex2,doubley2){//画一条直线 {{U}}(4){{/U}};}classRectangle:publicShape{private:double_x1,_y1,_x2,_y2;public:Rectangle(Drawing*dp,doublex1,doubley1,doublex2,doubley2);voiddraw();};Rectangle::Rectangle(Drawing*dp,doublex1,doubley1,doublex2,doubley2):{{U}}(5){{/U}}{_x1=x1;_y1=y1;_x2=x2;_y2=y2;}voidRectangle::draw(){//省略具体实现}
进入题库练习
问答题试题七(共15分)阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现有n(n<1000)节火车车厢,顺序编号为1,2,3,...,n,按编号连续依次从A方向的铁轨驶入,从B方向铁轨驶出,一旦车厢进入车站(Station)就不能再回到A方向的铁轨上;一旦车厢驶入B方向铁轨就不能再回到车站,如图7-1所示,其中Station为栈结构,初始为空且最多能停放1000节车厢。
进入题库练习
问答题【程序说明】 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。 【程序】 #include "iomanip.h" struct polygon int n; int* x; int *y; polygon * next; ; void Push(polygon * & head,int n) polygon * newNOde=newpolygon; newNOde=newpo,Ygon; newNOde->next= (1) ; newNOde->x=new int [n]; newNOde->y=new int[n]; newNOde->n= (2) ; for(int i=0;i<= (3) ;i++) cout<<“请输入多边形各顶点x、y坐标,坐标值之间用空格分隔:”; cin>>newNOde->x[i]>>newNOde->y[i]; (4) =head; //在head前不需要额外的。 head=newNOde; polygon * create() polygon * head=NULL; polygon * tail; int n; cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; if(n==0)return (5) ; Push(head, (6) ; tail=head; cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; while(n!=0) Push(tail->next, (7) ; //在tail->next增加结点 tail =tail->next; //advance tail to point to last node cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”; cin>>n; return head; void disp(polygon * head) int i,No=1; cout<<setw(10)<<"x" <<setw(6)<<"y"<<end1; while(head!=NULL) cout<<“第” <<No<<“结点:” <<end1; for(i=0;i<=head->n-1;i++) cout<<setw(10)<<head- >x[i]<<setw(6)<<head- >y[i]<<endl; (8) ; head= (9) ; //Match while statement void del(polygon * head) polygon * p; while(head!=NULL) p= (10) ; head=head->next; delete p->x; delete P->y; deletep; //Match while statement void main() polygon * head; head=create(); disp(head); del(head);
进入题库练习