计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
程序员应用技术
程序员基础知识
程序员应用技术
单选题
进入题库练习
单选题
进入题库练习
案例分析题试题一 阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内
进入题库练习
案例分析题阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内
进入题库练习
案例分析题试题六 阅读下列说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内
进入题库练习
案例分析题试题三 阅读以下代码和问题, 回答问题, 将解答填入答题纸的对应栏内
进入题库练习
问答题阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。{{B}}[{{/B}}说明{{B}}]{{/B}}求连续函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数值的符号,如果发现f(a)与f(b)符号相反(a<b),则在区间(a,b)中必然存在f(x)的根。因为当x从a变到b时,连续函数的值将从正变到负(或从负变到正),必然要经过0。区间(a,b)就是根的初始范围。取该区间的中点m,如果f(m)=0,则根就是m。如果f(a)与f(m)符号相反,则根一定在区间(a,m)中;如果f(m)与f(b)符号相反,则根一定在区间(m,b)中。因此,根的范围缩小了一半。依此类推,将区间一半一半地分下去,当区间的长度很小(达到根的精度要求,例如0.001)时,或者当区间中点处的函数值几乎接近于0(即绝对值小于预先规定的微小量,例如0.001)时,近似计算就可以结束了。以下流程图描述了用二分法近似计算区间(a,b)中f(x)的根的过程。{{B}}[{{/B}}流程图{{B}}]{{/B}}
进入题库练习
问答题[Vsual Basic 程序代码] Private Sub CmdSelect_Cliek() For i = O To List2.ListCount - 1 If Listl.Text = List2.List(i) Then Exit Sub '不要重复选择 Next i List2.Addltem{{U}} (1) {{/U}} '在List2中增添List1中所选的项 End Sub Private Sub CrndSelAll_Click() List2.Clear '先删除List2中的已有项 For i = 0 To {{U}}(2) {{/U}} '对List1中所有各项做循环处理 List2.Addltem {{U}}(3) {{/U}} '将该项增添到 List2中 Next i End Sub Private Sub CmdDelete_Cliek() If List2.Listlndex >= O Then '如果List2中有选中的项, List2.Removeltem {{U}} (4) {{/U}} '则删除所选的项 End If End Sub Private Sub CmdDelAll_Cliek() {{U}}(5) {{/U}} End Sub
进入题库练习
问答题阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。[说明1]函数f(doubleeps)的功能是:利用公式计算并返回π的近似值。[C函数1]doublef(doubleeps){doublen=1.0,s=1.0,term=1.0,pi=0.0;while(fabs(term)>=eps){pi=pi+term;n=______;s=______;term=s/n;}returnpi*4;}[说明2]函数fun(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符,形成一个十进制整数(最多8位)。例如,若str中的字符串为“iyt?67kpf3g8d5.j4ia2e3p12”,则函数返回值为67385423。[C函数2]longfun(char*str){inti=0;longnum:0;char*p=str;while(i<8++i;}______;}returnnum;}
进入题库练习
问答题【说明】 以下【C程序】的功能是从文件text_01.ini中读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到文件word_xml.out中。 该C程序采用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立。然后中序遍历该二叉树,将遍历经过的二叉树上节点的内容输出。 程序中的外部函数 int getword(FILE *fpt,char *word) 从与fpt所对应的文件中读取单词置入word,并返回1;若已无单词可读,即到文件尾部时,则函数返回0。【C程序】#include <stdio.h>#include <malloc.h>#include <ctype.h>#include <string.h>#define INF "TEXT_01.INI"#define OUTF "WORD_XML.OUT"typedef struct treenode char *word; int count; struct treenode *left, *right; BNODE;int getword(FILE *fpt,char *word);void binary tree(BNODE **t,char *word) BNODE *ptr, *p; int cmpres; p = NULL; (1) ; while (ptr) /*寻找插入位置*/ cmpres = strcmp(word, (2) ); /* 保存当前比较结果*/ if (!cmpres) (3) return; else (4) ; ptr = cmpres > 0 ? ptr->right : ptr->left; ptr = (BNODE *)malloc(sizeof(BNODE)); ptr->right = ptr->left = NULL; ptr->word = (char *)malloc(strlen(word)+1); strcpy(ptr->word,word); ptr->count = 1; if (p == NULL) (5) ; else if (cmpres > 0) p->right = ptr; else p->left = ptr; void midorder(FILE *fpt, BNODE *t) if ( (6) ) return; midorder(fpt , t->left); fprintf(fpt , " %s %d/n " , t->word , t->count); midorder(fpt , t->right); void main() FILE *fpt; char word[40]; BNODE *root = NULL; if ((fpt = fopen(INF , "r")) == NULL) printf("Can't open file %s/n",INF); return; while (getword(fpt,word) == 1) binary_tree( (7) ); fclose(fpt); fopen(OUTF,"w"); midorder(fpt, root); fclose(fpt);
进入题库练习
问答题【说明】 设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。 【函数】 void Locate( int while(p!=frist if(p! =first) /*链表中存在x*/ {{{U}} (2) {{/U}}; <结点类型说明> * current = P; /*从链表中摘下这个结点*/ Current -> prior -> next = current -> next; Current -> next -> prior = current -> prior; P = current -> prior; /*寻找重新插入的位置*/ While(p! =first Current-> next = {{U}}(4) {{/U}}; /*插入在P之后*? Current -> prior = P; P -> next -> prior = current; P->next={{U}} (5) {{/U}}; } else printf("Sorry. Not find! /n"); /*没找到*/ }
进入题库练习
问答题[说明] 本程序使用类来管理员工的通讯地址信息。已知程序的输出为: 输出记录:5 姓名:王丽华 街道地址:中华路15号 市:襄樊市 省;湖北省 邮政编码:430070 [C++程序] #include < iostream, h > #include < string, h > class employee. { protected: char name[10]; char street[ 20 ]; char city[10]; char{{U}} (1) {{/U}}[10]; char post[7]; int no; {{U}} (2) {{/U}}: {{U}}(3) {{/U}}(char [] ,char [] ,char [] ,char [] ,char [] ,int); void changename ( char n [] ) { strcpy ( name, n); } void changestreet( char s[] ) { strcpy(street,s) ;} void changecity ( char c [] ) { strcpy ( city, c ); } void changeprov( char p [] ) { strcpy(prov,p); } void changeno(int nnm) {{{U}} (4) {{/U}};} void display( ); }; employee::{{U}} (3) {{/U}}(char n[] ,char s[] ,char c[] ,char p1[] ,char p2[] ,int nam) { strcpy(name,n); strcpy ( street, s); strcpy ( city, c); strcpy ( prov, p1 ); strcpy ( post, p2 ); no = nam; } void employee:: display( ) { cont< <"输出记录: "< <no< <endl; cout< < "姓名: "< < name < < endl; coot < < "街道地址: "< < street < < endl; cout < < "市: "< < city < < endl; cout< <"省: "< <prov < <endl; cout < <"邮政编码: "< < post < < endl; } void main( ) { employee cmp("王华" ,"中华路15号" ,"武汉市","湖北省","430070", 1 ); emp. changename( "五丽华" ); emp. changecity ( "襄樊市" ); emp. changeno(5); {{U}}(5) {{/U}};
进入题库练习
问答题[说明]给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:(1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1],a[2],……,a[k];(2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];(3)图中i,j分别是循环1和循环2中的循环变量;(4)图中q用于记录每次除法所得的商值。[流程图]
进入题库练习
问答题【程序2.1说明】 求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。 【程序2.1】 void main() int i, j,n,s; for(i=100;i<=999;i++) n=i; j=n/11; s=0; while( (1) ) (2) n/=10; if( (3) ) printf("%d/t",i); 【程序2.2说明】 本程序输入一字符串,将其中的大写字母改变成小写字母。 【程序2.2】 void main() int i=0; char s[120]; scanf("%s",s); while( (4) ) if( (5) ) s[i]=s[i]- 'A'+'a'; i++; printf("%s/n",s);
进入题库练习
问答题【说明】 希赛教育集团公司为发展生产向社会公开招聘M个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿考虑录取。 程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。 程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组rz[]的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。 【程序】 #include<stdio.h> #include<malloc.h> #define M 20 #define PEMARK 5 typedef struct stu{ int no, total, z[2], sortm, zi; struct stu *next; }STU; struct rzmode{ int Imt, count; STU *next; }rz[M]; STU *head=NULL, *over=NULL; int all FILE *fp; char dataf[]="pp07.dat"; print(STU *p){ for(;p!=NULL;p=p->next) printf("%d(%d)/t",p->no,p->total); } insert(STU **p, STU *u){ STU *v, *q; for(q=*p;q!=NULL;v=q,{{U}} (1) {{/U}}) if(q->sortm<u->sortm)break; if(q==*p){{U}} (2) {{/U}}; else{{U}} (3) {{/U}}; U->next=q; } main(){ int zn, i, no, total, z1, z2; STU *p, *v, *q; fp=fopen(dataf, "r"); if(fp==NULL){ printf("Can't open file %s./n",dataf); exit(0); } fscanf(fp, "%d", for(all=0,i=1;i<=zn;i++){ fscanf(fp,"%d", rz[i].count=0;rz[i].next=NULL; all+={{U}} (4) {{/U}}; } for(;;){ if((fscanf(fp, "%d%d%d%d", p=(STU*)malloc(sizeof(STU)); p->no=no; p->total=p->sortm=total; p->zi=0;p->z[0]=z1;p->z[1]=z2; {{U}} (5) {{/U}}; } fclose(fp); for(;all ){ p=head; head=head->next; if(rz[p->z[p->zi]].count<{{U}} (6) {{/U}}){ rz[p->z[p->zi]].count++; insert( all--; continue; } if(p->zi>=1){ p->next=over;over=p; continue; } p->sortm-=DEMARK;{{U}} (7) {{/U}}; insed( } for(i=1;i<=zn;i++){ printf("%d:/n",i); print(rz[i].next); printf("/n"); } printf("over:/n");print(head); print(over);printf("/n"); }
进入题库练习
问答题试题七(15分,每空3分)阅读以下应用说明及VisualBasic部分程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[应用说明]设一个简单的“通讯录”存储在一个ACCESS类型的数据库表中,包括姓名、电话和email三个字段。下面的应用程序实现对“通讯录”数据库表中的记录进行增加、删除及修改处理,其运行界面如下:(1)数据控件(data1)与“通讯录”数据库表相连接,用户可通过“??”和“??”按钮指定表中的当前记录。(2)文本框Txt_name、Txt_phone和Txt_email分别与数据库表中的“姓名”、“电话”和“email”字段绑定,用于显示当前记录的内容。(3)应用程序启动时,“确定”按钮(Cmd_ok)和“取消”按钮(Cmd_cancel)不可操作,文本框中显示表中的第一条记录,这时文本框处于不可操作状态。(4)单击“增加”按钮(Cmd_add)或“修改”按钮(Cmd_modify)后,方可以编辑记录内容,同时“增加”、“删除”、“修改”和“退出”按钮变为不可操作状态。“增加”和“修改”操作需通过“确定”和“取消”按钮确认。(5)单击“删除”按钮(Cmd_del)后,弹出对话框,再单击“确定”按钮,当前记录被删除。[程序代码]PrivateSubenableop(isEnabledAsBoolean)Txt_name.Enabled=isEnabled:Txt_phone.Enabled=isEnabledTxt_email.Enabled=isEnabledCmd_ok.Enabled=isEnabled:Cmd_cancel.Enabled=isEnabledCmd_add.Enabled=NotisEnabled:Cmd_del.Enabled=NotisEnabledCmd_end.Enabled=NotisEnabled:Cmd_modify.Enabled=NotisEnabledEndSubPrivateSubForm_Load()Callenableop(False)Data1.RefreshIfData1.Recordset.RecordCount=0ThenCmd_del.Enabled=False:Cmd_modify.Enabled=(1)EndIfEndSubPrivateSubCmd_add_Click()'单击“增加”按钮的代码Callenableop((2))Data1.Recordset.AddNew'在数据库表中添加一个新记录Txt_name.(3)EndSubPrivateSubCmd_del_Click()'单击“删除”按钮的代码OnErrorGoToerror3ans=MsgBox("确定删除吗?",vbYesNo+vbInformation,"操作提示!")If(ans=vbYes)ThenData1.Recordset.(4)Data1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.RefreshEndIfExitSuberror3:MsgBoxErr.Description,vbOKOnly,"错误提示!"EndSubPrivateSubCmd_ok_Click()'单击“确定”按钮的代码OnErrorGoToerror1Data1.Recordset.(5)Callenableop(False)ExitSuberror1:MsgBoxErr.Description,vbOKOnly,"错误提示!"Data1.UpdateControlsCallenableop(False)EndSub’“修改”和“取消”按钮的程序代码(略)
进入题库练习
问答题【说明】 本程序根据输入的月份数,输出它是哪个季节。 【代码】 import java.io.*; public class season public static void main(String[] args) String strln=""; (1) in=new InputStreamReader(System.in); BufferedReader buffln=new BufferedReader(in); System.out.print("Please enter a month(1-12):"); try strln=buffln.readLine();//从命令行读入数据 catch( (2) ) System.out.println(e.toStdng()); int month= (3) (strln);//将字符串转换成整数型 int season=0; if(month<12 //计算季节的公式 (4) (season) case 1: System.out.println("the season is Springl"); break; case 2: System.out.println("the season is Summer!"); case 3: System.out.println("the season is Fall!"); case 4: System.out.println("the season is Winter!"); break; (5) ; System.out.println("this is not correct month!");
进入题库练习
问答题[说明]某小型家电超市开发了下面的程序,用以实现商品提货信息的汇总和输出功能。程序的运行界面如下图所示:程序界面包含两个控件数组,分别是提货商品复选框控件数组Check1以及提货数量文本框控件数组Text1(相同下标的复选框和文本框相对应),提货清单的显示由List控件实现,按钮“打印清单”和“清除”分别名为Command1和Command2。[VisualBasic代码]’提货商品复选框的单击事件响应代码PrivateSubCheck1_Click(IndexAsInteger)IfCheck1(Index).Value=1Then(1).SetFocusEndSub’按钮“打印清单”的单击事件响应代码PrivateSubCommand1_Click()Dimi,n,priceAsInteger,sumAsLong,titleAsStringsum=0Fori=OTo4SelectCaseiCase0:title="电视机":price=3580Case1:title="微波炉":price=660Case2:title="电冰箱":price=1850Case3:title="DVD":price=2880Case4:title="空调":price=2500EndSelectIf(2)=1AndTextl(i).Text<>""Then(3)title&Text1(i).Text&"台"n=n+Val(Textl(i))sum=(4)EndIfNextiIfsum<>0Then(3)"共:"&n&"台,"&"合计金额:"&sum&"元。"EndIfEndSub’按钮“清除”的单击事件响应代码PrivateSubCommand2_Click()(5)EndSub
进入题库练习
问答题【说明】 魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。 奇数阶魔方阵的生成方法如下: (1)第一个位置在第一行正中。 (2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。 (3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为: 8 1 6 3 5 7 4 9 2 了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。 【程序】 #include <stdio.h> #define MAX 15 void main() { int n; int m=1; int i,j; int a[MAX][MAX]; printf("Please input the rank of matrix:"); scanf("%d", i=0; {{U}} (1) {{/U}} while({{U}} (2) {{/U}}) a[i][j]=m; m++; i--; j++; if((m-1)%n==0 } if(j>(n-1)) //超出上界 {{U}} (4) {{/U}} if(j>(n-1)) {{U}} (5) {{/U}} } for(i=0;i<n;i++) //输出魔方阵 for(j=0;j<n;j++) { if(a[i][j]/10==0) printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐 else printf("%d ",a[i][j]); if(j==(n-1)) printf("/n"); } }
进入题库练习
问答题阅读下列说明和C++代码,填充代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 某学校在学生毕业时要求对其成绩进行综合评定,学生的综合成绩(GPA)由其课程加权平均成绩(Wg)与附加分(Ag)构成,即GPA=Wg+Ag。 设一个学生共修了n门课程,则其加权平均成绩(Wg)定义如下: 其中,gradei、Ci分别表示该学生第i门课程的百分制成绩及学分。 学生可以通过参加社会活动或学科竞赛获得附加分(Ag)。学生参加社会活动所得的活动分(Apoints)是直接给出的,而竞赛分(Awards)则由下式计算(一个学生最多可参加m项学科竞赛): 其中,li和Si分别表示学生所参加学科竞赛的级别和成绩。 对于社会活动和学科竞赛都不参加的学生,其附加分按活动分为0计算。 下面的程序实现计算学生综合成绩的功能,每个学生的基本信息由抽象类Student描述,包括学号(stuNo)、姓名(name)、课程成绩学分(grades)和综合成绩(GPA)等,参加社会活动的学生由类ActStudent描述,其活动分由Apoints表示,参加学科竞赛的学生由类CmpStudent描述,其各项竞赛的成绩信息由awards表示。 【C++代码】 #include #include using namespace std; const int n=5; /*课程数*/ const int m=2; /*竞赛项目数*/ class Student{ protected: int stuNo;string name; double GPA; /*综合成绩*/ int(*grades)[2]; /*各门课程成绩和学分*/ public: Student(const int stuNo,const string&name,int grades[][2]){ this->stuNo=stuNo;this->name=name;this->grades=grades; } Virtual~Student(){} int getstuNo(){/*实现略*/} string getName(){/*实现略*/} ____(1)____; double computeWg(){ int totalGrades=0,totalCredits=0: for(int i=0;i<N;i++){ totalGrades+=grades[i][0]*grades[i][1];totalGredits+=grades[i][1]; } return GPA=(double)totalGrades/totalCredits; } }; class ActStudent;public Student{ int Apoints; public; ActStudent(const int stuNo,const string&name,int gs[][2],int Apoints) :____(2)____{ this->Apoints=Apoints: } double getGPA(){return GPA=____(3)____;} }; class CmpStudent:public Student{ private: int(*awards)[2]; public: cmpstudent(const int stuNo,const string&name,int gs[][2],int awards[][2]) :____(4)____{ this->award=award;} double getGPA()f int Awards=0; for(int i=0;i<M;i++){ Awards+=awards[i][0]*awards[i][1]: } Return GPA=____(5)____; } }; int main() { //以计算3个学生的综合成绩为例进行测试 int g1[][2]={{80,3},{90,2},{95,3},{85,4},{86,3}}, g2[][2]={{60,3},{60,2),{60,3},{60,4},{65,3}}, g3[][2]={{80,3},(90,2},{70,3},{65,4},{75,3}}; //课程成绩 int c3[][2]={{2,3},{3,3)}; //竞赛成绩 Student*student[3]={ new ActStudent(101,”John”,g1,3), //3为活动分 new ActStudent(102,”Zhang”,g2,0), new ActStudent(103,”Li”,g3,c3), }; //输出每个学生的综合成绩 for(int i=0;i<3;i++) cout<<____(6)____<<end1; delete*student; return 0; }
进入题库练习