计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题[说明] 很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,singleton模式有可能出现问题,需要进行同步检查。如果对“检查Singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。 [Java代码] public class USTax private static USTax instance = null; ______ USTax() private ______ static void doSync() if(instance == null) System.out.println ("实例不存在,创建实例..."); instance = ______; System.out.print ln ("实例创建成功"); else System.out.println ("实例已被创建了"); public static USTax getInstance() if(instance == null) System.out.println ("实例暂时不存在"); ______; / /同步控制 else System.out.println ("实例已经存在"); return ______; .
进入题库练习
问答题【说明】栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(StockTop),而另一端称为栈底(StockBottom)。栈的基本操作包括:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如下图所示)。以下C代码采用链式存储结构实现一个整数栈操作。【C代码】typedefstructListintdata;//栈数据structList*next;//上次入栈的数据地址List;typedefstructStackList*pTop;//当前栈顶指针Stack;Stack*NewStack()return(Stack*)calloc(1/sizeof(Stack));intIsEmpty(Stack*S)//判断栈S是否为空栈if((1))return1;return0;intTop(Stack*s)//获取栈顶数据。若栈为空,则返回机器可表示的最小整数if(IsEmpty(S))returnINT_MIN;return(2);voidPush(Stack*S,inttheData)//将数据theData压栈List*newNode;newNode=(List*)calloc(1/sizeof(List));newNode->data=theData;newNode->next=S->pTop;S->pTop=(3);voidPop(Stack*S)//弹栈List*lastTop;if(IsEmpty(S))return;lastTop=S->pTop;S->pTop=(4);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;以上程序运行时的输出结果为:(5)
进入题库练习
阅读下列说明和数据流图,回答问题1至问题3。[说明]图书管理系统旨在用计算机对图书进行管理,包括图书的购入、借阅、归还以及注销。管理人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便掌握图书的流通情况。系统要实现以下四方面的功能:购入新书、读者借书、读者还书以及图书注销。(1)购入新书:需要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,写入图书目录文件中。(2)读者借书:填写借书单,包括读者号、欲借图书分类目录号,系统首先检查该读者号是否有效,若无效,则拒绝借书,否则进一步检查该读者所借图书是否超过最大限制数,若已达到最大借阅数,则拒绝借书,否则读者可以借出该书,登记图书分类目录号、图书流水号、读者号和借阅日期等,写回到借书文件中去。(3)读者还书:根据图书流水号,从借书文件中读出和该图书相关的借阅记录,表明还书日期,再写回借书文件中;如果图书逾期未还,则处以相应罚款。(4)图书注销:将一些过时或无保留价值的图书注销,从图书文件中删除相关记录。(5)流通查询:管理员可以对图书流通情况进行查询,包括某位读者、某种图书和全局图书,给出流通情况统计表。以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图1-1是顶层数据流图,图1-2是第0层数据流图,图1-3是第1层数据流图。[图1-1][图1-2][图1-3][数据字典](1)数据流条目图书管理要求=[入库单|借书单|还书单|注销单]入库单=分类目录号+数量+书名+作者+内容摘要+价格+购书日期借书单=读者号+(d)+借阅日期还书单=(e)+还书日期(2)文件说明文件名:目录文件组成:分类目录号+书名+作者+内容摘要+价格+入库日期+总数+库存数+(f)
进入题库练习
[说明]建立一个供应商零件数据库,数据库要满足如下要求:(1)供应商代码不能为空,且是值唯一的,供应商的名也是唯一的。(2)零件号不能为空,且值是唯一的,零件号不能为空。(3)一个供应商可以供应多个零件,而一个零件可以由多个供应商供应。图是该系统的E-R图。
进入题库练习
填空题 如下的SQL语句是用于查询“每个学生的选修课程数、总成绩、平均成绩”的不完整语句,请在空缺处填入正确的内容。 SELECT Student.SNo,{{U}} (1) {{/U}},SUM(Grade),AVG(Grade) FROM Student,Grade WHERE Student.SNo=Grade.SNo, GROUP BY{{U}} (2) {{/U}};
进入题库练习
填空题[问题2] 张三到图书馆借阅一本书,两个月后,他把这本逾期的书返还给图书馆。画出这个场景的时序图。
进入题库练习
填空题[说明] 利用c++的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数:Leap ()用于判定指定的年份是闰年,Week ()用于计算year年份的1月1日是星期几,其判定规则为:(1) 如果year 年份为1994年,则为星期六。(2) 如果year 年份大于1994年,则星期值weekno 按下列公式计算:differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date=6+differ%7weekno=(date6)? date-7:date(3) 如果year 年份小于1994年,则星期值weekno 按下列公式计算:differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7 # include "iostream. h" # include "iomanip. h" int leap(int n) if( (1) ) return 0 else return 1; int week( int year ) int a1, differ, date, weekno; if (year = = 1994) a1 =0; else if (year > 1994) a1=1; else a1= -1; switch(a1) case 0: return 6; break; case 1: (2) date = 6 + differ% 7; weekno = ( date > 6) ? date - 7 date; return weekno; break; case - 1: differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (2000 - year)/400; weekno =6-differ%7; return weekno; break; void main( ) int i,year,m2,n,j; cout < < “Please input 某年数:”; cin> >year; if ( ! leap(year) ) (3) ; else m2 =28; int month [12]: 31 ,m2,31,30,31,30,31,31,30,31,30,31 ; (4) for ( i=0; i<12; i+ + ) cout< < < <end1< <setw(4*n) < <"; for(j=1 ;j< =month [i] ;j+ +) cout< <setw(4) < <j; n+ +; if(n> =7) (5) cout < < end1;
进入题库练习
填空题[问题3] 如果将上述应用的数据库设计为如下三个关系模式: R1 (A#,A1,A2,A3) R2 (B#,B1,B2) R3 (A#,B#,D1) 那么关系模式R2是否一定满足第3范式?为什么?
进入题库练习
填空题 阅读以下说明和C++代码, [说明] 现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图6-1显示了各个类间的关系。 [图6-1] 这样,系统始终只处理3个对象:Shape对象、Drawingg对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。 [C++代码] class DP1{ public: static void draw_a_line(double x1,double y1,double x2,double y2){ //省略具体实现 } }; class DP2{ public: static void drawline(double x1,double x2,double y1,double y2){ //省略具体实现 } }; class Drawing{ public: {{U}} (1) {{/U}}void drawLine(double x1,double y1,double x2,double y2)=0; }; class V1Drawing:public Drawing{ public: void drawLine(double x1,double y1,double x2,double y2){ DP1::draw_a_line(x1,y1,x2,y2); } }; class V2Drawing:public Drawing{ public: void drawLine(double x1,double y1,double x2,double y2){ {{U}} (2) {{/U}} } }; class Shape{ privatc: {{U}} (3) {{/U}}dp; public: Shape(Drawing*dp); virtual void draw()=0; void drawLine(double x1,double y1,double x2,double y2); }; Shape::Shape(Drawing*dp) { _dp=dp; } void Shape::drawLine(double x1,double y1,double x2,double y2) { //画一条直线 {{U}} (4) {{/U}}; } class Rectangle:public Shape{ privatc: double_x1,_y1,_x2,_y2; public: Rectangle(Drawing *dp,double x1,double y1, double x2,double y2); void draw(); }; Rectangle::Rectangle(Drawing*dp,double x1,double y1,double x2,double y2) :{{U}} (5) {{/U}} { _x1=x1;_y1=yl;_x2=x2;_y2=y2; } void Rectangle::draw() { //省略具体实现 }
进入题库练习
填空题[说明] 编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 import java. io. * ; public class abc { public static void main(String args [ ] ) { int i, n = 10 , max = 0 , min = 0 , temp = 0; try { BufferedReader br = new BufferedReader( new InputStreamReader( System. in) ); {{U}}(1) {{/U}}); } catch ( IOException e ) { } ; for(i = 2 ;i <= n; i ++ ) { try { BufferedReader br = new BufferedReader( new InputStreamReader (System. in) ); temp = Integer. parselnt(br. readLine( ) ); if ( temp > max ){{U}} (2) {{/U}} if (temp < min){{U}} (3) {{/U}} } catch ( IOExeeption e ) { } ; System. out. println( "max =" + max + "/nmin =" + min); } }
进入题库练习
填空题[问题1] 若这三个事务允许并行执行,则请列举出有多少可能的正确结果。
进入题库练习
填空题[说明] 假设二叉树采用链式存储方式存储,编写一个后序遍历二叉树的非递归方式。 Void postorder (btree * B) btree * stack [m0] , *p; int tag [m0], top =0; p=b; do while (p! =NULL) top+ +; (1) tag [top] =0; p =p- >left; if (top >0) (2) if (tag[top3 = =1) (3) print ("%d", p- >data); if(top>0) (4) tag [top] = 1; while (p! = NULL && top ! =0)
进入题库练习
填空题 阅读下列说明和C程序,将应填入{{U}} (n) {{/U}}处的字句写在对应栏中。 [说明] 借助一个栈结构,可实现二叉树的非递归遍历算法。InOrderTraverse数实现中序非递归遍历,遍历 过程如下: 若不是空树,根节点入栈,进入左子树;若已经是空树,则栈顶元素出栈,访问该元素(根节点),进入该节点的右子树,继续直到遍历完成。 函数中使用的预定义符号如下: typedef struct BiTNode{ int data; struct BiTNode *iChiid,*rChiid; } BiTNode,*BiTree; typedef struct SNode{/*链栈的节点类型*/ BiTree elem; struct SNode *next; }SNode; [函数] int InOrderTraverse(BiTree root) { BiTree P; SNode *q,*stop=NULL;/*不带头节点的单链表作为栈的存储结构*/ P=root; while(p !=NULL || stop !=NULL){ if({{U}} (1) {{/U}}){ /*不是空树*/ q=(SNode*)malloc(sizeof q); if(q==NULL)return-1; /*根节点指针入栈*/ {{U}} (2) {{/U}}; q->elem=P; stop=q; P={{U}} (3) {{/U}}; /*进入根的左子树*/ }else{ q=stop; {{U}} (4) {{/U}}; /*栈顶元素出栈*/ printf("%d|,q->elem->data); /*防问根节点*/ P={{U}} (5) {{/U}}; /*进入根的右子树*/ free(q); /*释放原栈顶元素*/ }/*if*/ }/*while*/ return 0; }/*InOrderTraverse*/
进入题库练习
填空题[说明] 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a: xxk1. dat”中。 {{U}} (1) {{/U}} # include <fstream. h > # include < stdlib. h > void main ( ) { {{U}} (2) {{/U}} if ( ! four) { cerr < <“文件没有找开!” < <end1; exit (1); } int x; cin > >x; while({{U}} (3) {{/U}}){ {{U}} (4) {{/U}} cin> >x; } {{U}}(5) {{/U}} }
进入题库练习
填空题阅读以下说明和c++代码,将应填入 (n) 处的字句写在答题纸对应栏内。 [说明] 很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查Singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是c++语言实现,能够正确编译通过。 [C++代码] class USTax (1) : USTax();//构造函数 public: static USTax* getInstance(); private: static USTax*instance; ; (2) =NULL; USTax*USTax::get Instance() if(instance==NULL) //进行某种同步 cout if( (3) ) cout instance= (4) ; cout else cout else cout return (5) ;
进入题库练习
填空题设基本表:Student(SNo,SName,Sex,Age,Year,Major),Course(CNo,Cname,Period,Credit),Grade(SNo,CNo,Grade)通过如下SQL语句建立,请在SQL语句空缺处填入正确的内容。 CREATE TABLE Student(SNO CHAR(6)NOT NULL, SName CHAR(20), Sex CHAR(1), Age INTEGER, Year CHAR(4), Major CHAR(20), (1) ); CREATE TABLE Course(CNo CHAR(6)NOT NULL, CName CHAR(20), Period INTEGER, Credit INTEGER, (2) ); CREATE TABLE Grade(SNo CHAR(6)NOT NULL, CNo CHAR(6)NOT NULL, Grade REAL, (3) , (4) , (5) );
进入题库练习
填空题[问题3] 能否产生“正确”结果但不可串行化的调度?
进入题库练习
填空题[说明] 编写一工资调整程序。若基本工资大于等于800元,工资增加20%,若小于800元大于 600元,则工资增加15%,若小于600元则工资增加10%。要求在文本框Text1 中增加某职工的基本工资,单击“计算”按钮,在标签框Label1中输出增加后的工资。 Private Sub Command1_ Click( ) Dim x As Integer, y As Single {{U}} (1) {{/U}} Select Case x Case Is > = 800 y=x*1.2 Case Is > = 600 y=x, 1.5 {{U}}(2) {{/U}} y=x*1.1 {{U}}(3) {{/U}} Label1. Caption = y {{U}} (4) {{/U}} Private Sub Command2_ Click() Unload Me End Sub
进入题库练习
填空题[说明] 利用c++的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数:Leap ()用于判定指定的年份是闰年,Week ()用于计算year年份的1月1日是星期几,其判定规则为: (1) 如果year 年份为1994年,则为星期六。 (2) 如果year 年份大于1994年,则星期值weekno 按下列公式计算: differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date=6+differ%7 weekno=(date6)? date-7:date (3) 如果year 年份小于1994年,则星期值weekno 按下列公式计算: differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7 # include "iostream. h" # include "iomanip. h" int leap(int n) { if({{U}} (1) {{/U}}) return 0 else return 1; } int week( int year ) { int a1, differ, date, weekno; if (year = = 1994) a1 =0; else if (year > 1994) a1=1; else a1= -1; switch(a1) { case 0: return 6; break; case 1: { {{U}} (2) {{/U}} date = 6 + differ% 7; weekno = ( date > 6) ? date - 7 date; } return weekno; break; case - 1: { differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (2000 - year)/400; weekno =6-differ%7; } return weekno; break; } } void main( ) } int i,year,m2,n,j; cout < < “Please input 某年数:”; cin> >year; if ( ! leap(year) ) {{U}} (3) {{/U}}; else m2 =28; int month [12]: {31 ,m2,31,30,31,30,31,31,30,31,30,31 }; {{U}} (4) {{/U}} for ( i=0; i<12; i+ + ) { cout< < < <end1< <setw(4*n) < <"; for(j=1 ;j< =month [i] ;j+ +) { cout< <setw(4) < <j; n+ +; if(n> =7) { {{U}} (5) {{/U}} cout < < end1; } } } }
进入题库练习
填空题[说明]某学校的教学系统描述如下:学生信息包括:学号(SNo)、姓名(Sname)、性别(Sex)、年龄(Age)、入学年份(Year)、主修专业(Major),其中学号是入学时唯一编定的。课程信息包括:课程号(CNo)、课程名称(CName)、学时(Period)、学分(Credit),其中课程号是唯一编定的。一个学生可选多门课,每个学生选每门课有一个成绩。图是经分析得到的E-R图。
进入题库练习