计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题【说明】本程序通过移动滑动条修改颜色RGB值,从而控制颜色。程序中有一个面板、3个标签和3个滑动条,标签和滑动条一一对应,分别对应三原色红、绿、蓝,任意拖动其中的一个滑动条,所对应的颜色值就会发生变化,面板的颜色也会发生对应的变化,如下图所示,滑动条值的范围是0~255。【Java代码】importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclasssimpleextendsJFrameimplementsAdjustmentListener{publicsimple(){setTitle("simple");setSize(300,200);addWindowListener(newWindowAdapter(){publicvoidwindowClosing({{U}}(1){{/U}}){System.exit(0);}});ContainercontentPane=getContentPane();JPanelp={{U}}(2){{/U}};p.setLayout(newGridLayout(3,2));p.add(redLabel=newJLabel("Red0"));p.add(red=newJScrollBar(Adjustable.HORIZONTAL,0,0,0,255));red.setBlocklncrement(16);red.addAdjustmentListener(this);p.add(greenLabel={{U}}(3){{/U}}("Green0"));p.add(green=newJScrollBar(Adjustable.HORIZONTAL0,0,0,255));greensetBIocklncrement(16);green.addAdjustmentListener(this);p.add(blueLabel=newJLabel("Blue0"));p.add(btue=newJScrollBar(Adjustable.HORIZONTAL,0,0,0,255));blue,setBIocklncrement(16);blue.addAdjustmentListener(this);contentPane.add(p,"South");colorPanet=newJPanel();colorPanet.setBackground(newColor(0,0,0));contentPane.add({{U}}(4){{/U}},"Center");}publicvoidadjustmentValueChanged(AdjustmentEventevt){redLabel.setText("Red"+red.getValue());greenLabel.setText("Green"+green.getValue());blueLabel.setText("Blue"+blue.getValue());coiorPanel.setBackground(newColor(red.getValue(),green.getValue(),blue.getValue()));colorPanel.repaint();}publicstaticvoidmain(String[]args){JFramef={{U}}(5){{/U}};f.show();}privateJLabelredLabel;privateJLabelgreenLabel;privateJLabelblueLabel;privateJScrollBarred;privateJScroilBargreen;privateJScrollBarblue;privateJPanelcolorPanel;
进入题库练习
问答题【说明】 本程序利用非递归算法实现二叉树后序遍历。 【函数】 #include<stdio.h> #include<stdlib.h> typedef struct node{/*二叉树的结点数据结构类型*/ char data; struct node *left; struct node *right; }BTREE; void SortTreelnsert(BTREE **tree, BTREE *s) { if(*tree==NULL)*tree=s; else if(s->data<(*tree)->data) SortTreelnsert({{U}} (1) {{/U}},s); else if(s->data>=(*tree)->data) SortTreelnsert({{U}} (2) {{/U}},s); } void TraversalTree(BTREE *tree) { BTREE *stack[1 000],*p; int tag[1000],top=0; p=tree; do{ while(p !=NULL) { stack[++top]=p; {{U}} (3) {{/U}}; tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/ } while(top>0 putchar(p->data); } if(top>0)/*对栈顶结点的右子树进行后序遍历*/ { {{U}} (5) {{/U}}; tag[top]=1; } }while(top>0); } void PrintSortTree(BTREE *tree) { if(tree !=NULL) { printSortTree(tree->left); putchar(tree->data); pdntSortTree(tree->right); } } main() { BTREE *root=NULL, *node; char ch; ch=getchar(); while(ch !='#') { node=(BTREE*)malloc(sizeof(BTREE)); node->data=ch; node->left=node->right=NULL; SortTreelnsert( ch=getchar(); } PrintSortTree(root); putchar('/n'); TraversalTree(root); }
进入题库练习
问答题阅读下列说明、图和C++代码,回答问题1至问题3。【说明】已知四个类之间的关系如图2-2所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为2:perimeter(),依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。【C++代码】Triangle*tr=newTriangle();Square*sq=newSquare();Shape*sh=tr;
进入题库练习
问答题阅读以下说明和C++代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明]某应急交通控制系统(TraficControlSystem)在红灯时控制各类车辆(Vehicle)的通行,其类图如下图所示,在紧急状态下应急车辆红灯时也可通行,其余车辆按正常规则通行。类图下面的C++代码实现以上设计,请完善其中的空缺。[C++代码]#include<typeinfo>#include<iostream>usingnamespacestd;classVehicle{/*抽象基类,车辆*/public:virtualvoidrun()=0;};classEmergency{/*抽象基类,可在红灯时通行的接口,函数均为纯虚函数*/public:______=0;//isEmergent()函数接口______=0;//runRedLight()函数接口};classCar:publicVehicle{public:~Car(){}voidrun(){/*代码略*/));classTruck:publicVehicle{public:~Truck(){}voidrun(){/*代码略*/});classPoliceCar:______{private:boolisEmergency;public:PoliceCar():Car(),Emergency(){this->isEmergency=false;}PoliceCar(boolb):Car(),Emergency(){this->isEmergency=b;}~P0liceCar(){}boolisEmergent(){return______}voidrunRedLight(){/*代码略*/});/*类Ambulance、FireEngine实现代码略*/classTraficControlsystem{/*交通控制类*/private:Vehicle*v[24];intnumVehicles;/*在构造函数中设置初始值为0*/public:voidcontrol(){//控制在紧急情况下应急车辆红灯通行,其他情况按常规通行for(inti=0;i<numVehicles;i++){Emergency*ev=dynamic_cast<Emergency*>(v[i]);if(ev!=0)______->runRedLight();else______->run();}}voidadd(Vehicle*vehicle){v[numVehicles++]=vehicle;}/*添加车辆*/voidshutDown(){for(inti=0;i<numVehicles;i++){deletev[i];}}};intmain(){TraficControlSystem*tcs=newTraficControlSystem;tcs->add(newCar());tcs->add(newPoliceCar());tcs->add(newAmbulance());tcs->add(newAmbulance(true));tcs->add(newFireEngine(true));tcs->add(newFireEngine());tcs->add(newTruck());tcs->contr01();tcs->ShutDown();deletetcs;}
进入题库练习
问答题阅读以下说明和Java程序,填充代码中的空缺,将解答填入答题纸的对应档内。 【说明】 某学校在学生毕业时要求对其成绩进行综合评定,学生的综合成绩(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表示。 [Java代码】 abstract class Student{ protected String name; protected int stuNo; protected double GPA; /*综合成绩*/ protected int[][]grades; /*各门课程成绩和学分*/ //其他信息略 public Student(int stuNo,String name,int[][]grades){ this.stuNo=stuNo;this.name=name;this.grades=grades; } ____(1)____; double computeWg(){ int totalGrades=0,totalCredits=0: for(int i=0;i<grades.length;i++){ totalGrades+=grades[i][0]*grades[i][1]; totalCredits+=grades[i][1]; } return(double)totalGrades/totalCredits; } } class ActStudent extends Student{ private int Apoints; ActStudent(int stuNo,String name,int[][]grades,int Apoints){ ____(2)____; this.Apoints=Apoints; } public double getGPA(){ return GPA=____(3)____; } } Class CmpStudent extends Student{ Private int[][]Awards; CmpStudent(int stuNo,String name,int[][]grades,int[][]awards){ ____(4)____; this.Awards=awards; } publ ic double getGPA(){ int totalAwards=0; for(int I=0;i<Awards.length;i++){ totalAwards+=Awards[i][0]*Awards[i][1]; } return GPA=____(5)____; } } public class GPASystem{//以计算3个学生的综合成绩为例进行测试 public static void main(String[]args){ 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[][]e1={{2,3},{1,2)},e2={{1,3});//竞赛成绩 Student student[]={ new ActStudent(i01,”John”,g1,3),//3为活动分 new ActStudent(102,”Zhang”,g2,0), new ActStudent(103,”Li”,g3,e2), }; //输出每个学生的综合成绩 for(int i=0;i<student.length;i++){ System.out.println(____(6)____); } } }
进入题库练习
问答题试题八(共15分)阅读以下说明和Java代码,将解答写入答题纸的对应栏内。[说明]已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。[Java代码]
进入题库练习
问答题[说明] 本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。[Java代码]import java. io. *:public class User public String user; public Siring pass; public User() public User( String u,String p) user=u; pass=p; public String (1) () return this. user; public String (2) () return this. pass; public static void main(String[] args) User ua[]=new User("Li","123456"), new User("wang","654321"), new User("Song","666666"); while(true) InputStreamReader reader = new InputStreamReader(System. in); BufferedReader inpul = new BnfferedReader(reader); System. out. print("Enter your name:"); String name = null; try name = input. readLine(); catch (IOException ex) if( (3) ) break; int i; for (i=0;i<3;i++) if (name. equals(ua[i]. getUser())) System. out. println("密码:"+ua[i].getPass()); (4) ; if ( (5) ) System. out. println("该用户不存在!");
进入题库练习
问答题【说明】 本题中的函数encode()和decode()分别实现对字符串的变换和复原。其中变换函数encode()顺序考查已知字符串的字符,按以下规则逐组生成新字符串: (1)若已知字符串的当前字符不是数字字符,则将该字符复制在新字符串中。 (2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中。 (3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括后继字符是一个数字字符)重复复制n+1次到新字符串中。 (4)以上述一次变换为一组,在不同组之间另插入一个下划线“_”用于分隔。例如,encode()函数对字符串26a3t2的变换结果为666_a_tttt_2。 复原函数decode()做与变换函数encode()相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中略过变换函数,为不同组之间添加的一个下划线字符。 假定调用变换函数encode()时的已知字符串中不含下划线字符。 【函数】 int encode(char *instr, char *outstr) char *ip, *op, c; int k,n; ip=instr; op=outstr; while(*ip) if(*ip>='0' c= (2) ; for(k=0; k<n;k++) *op++=c; else (3) ; *op++='_'; ip++; if(op>outstr)op--; (4) ; return op-outstr; int decode(char *instr, char *outstr) char *ip, *op, c; int n; ip=instr; op=outstr; while(*ip) c=*ip; n=0; while(*ip==c n++; if( (5) )*op++='0'+n-1; *op++=c; if( (6) )ip++; *op='/0'; return op-outstr;
进入题库练习
问答题【函数1.1说明】 函数strcpy(char*to,char*from)将字符串from复制到字符串to。 【函数1.1】 void strcpy(char*to,char*from) { while ({{U}} (1) {{/U}});} 【函数1.2说明】 函数merge(int a[],int n,int b[],int m,int*c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。 【函数1.2】 void merge(int a[ ],int n,int b[ ] ,int m,int * c) { int i,j; for(i=j=0;i<n ) *c++=a[i] <b[j]?a[i++]:b[j++]; while({{U}} (2) {{/U}})*c++=a[i++]; while({{U}} (3) {{/U}})*c++=b[j++]; } 【函数1.3说明】 递归函数sum(int a[],int n)的返回值是数组a[]的前n个元素之和。 【函数1.3】 int sum(int a[] ,int n) { if( n >0) return {{U}}(4) {{/U}}; else {{U}}(5) {{/U}}; }
进入题库练习
问答题试题二(共15 分) 阅读以下说明和C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 函数int find_Max_Min(int a[],int n)的功能是:找出n 个元素的数组a 中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值;再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;依此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。 [函数] int find_Max_Min(int a[],int n) { /*找出n 个元素的数组a 的最大、最小元素并输出,返回查找过程元素中的比较次数*/ int i,Count = 0; int temp,Maxnum,Minnum; for(i = 0; i a[ (1) ]) { /*数组元素交换代码略*/} } Maxnum = a[n-1]; Minnum = a[0]; for(i = 1; i < n/2 + n%2; i++) { Count = (2) ; /*元素比较次数计数*/ Minnum = (3) ? a[i] : Minnum; /*找最小元素*/ Maxnum = (4) ? (5) : Maxnum; /*找最大元素*/ } printf("Max=%d/n",Maxnum); printf("Min=%d/n",Minnum); return Count; }
进入题库练习
问答题【说明】以下【C程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。该应用程序约定学生学习课程不超过30种,课程成绩文件的第1个数字就是课程号。统计过程中,同一课程号的成绩文件不能重复输入。该应用程序采用链表结构存储学生的相关信息,链表中的每个表元对应一位学生。在数据输入过程中,形成一个按学号从小到大顺序链接的有序链表。当数据输入结束后,程序按总成绩从高到低,学号从小到大的顺序对链表排序。最后程序按指定格式输出链表中的信息。【C程序】#include<stdio.h>#defineM30#defineNLEN10typedefstructnode{intcur_s;/*最近输入成绩的科目*/Charno[NLEN];intscore;structnode*next;}NODE;ints[M],sp,ss,i,mark,order,C;FILE*fp;NODE*h,*U,*V,*p;Charfname[80],no[NLEN],ans;main(){for(h=NULL,sp=0;;){printf("输入科目成绩文件名(输入aaaa表示强行结束)。/n");while(1){scanf("%s",fname);if(strcmp(fname,"aaaa")==0)break;if((fp=fopen(fname,"r"))==NULL)printf("不能打开文件%s,请重新输入科目文件名。/n",fname);elsebreak;}if(strcmp(fname,"aaaa")==0)break;fscanf(fp,"%d",/*输入科目号*/s[sp]=s;for(i=0;s[i]!=ss;1++);if({{U}}(1){{/U}}){printf("该科目的成绩已输入,请输入别的科目成绩文件。/n");continue;}sp++;while(fscanf(fp,"%s%d",no,v!=NULLu=v,v=v->next);if(v!=NULL/*累计总成绩*/v->cur_s=ss;}/*同一科目成绩重复输入,后输入成绩被忽略*/}else{p=(NODE*)malloc(sizeof(NODE));/*一位新的学生*/strcpy(p->no,no);p->score=mark;p->cur_s=ss;p->next=v;if(v==h){{U}}(2){{/U}};else{{U}}(3){{/U}};}}fclose(fp);printf("还有科目成绩文件要输入吗?(Y/N)");scanf("%c",if(ans=='N'||ans=='n')break;}/*以下按总成绩和学号对链表排序*/v=(NODE*)malloc(sizeof(NODE));v->next=h;h=v;while(v->next!=NULL){/*在余下的部分链表中找总成绩高学号小的表元*/for(p=v,u=v->next;u->next!=NULL;u=u->next)if(u->next->score>p->next->score||u->next->score==p->next->scoreif(p!=v){u=p->next;p->next={{U}}(4){{/U}};{{U}}(5){{/U}}=v->next;v->next=u;}v=v->next;}v=h;h=h->next;free(v);printf("名次总成绩人数学号/n");/*以下按格式要求输出*/v=h;order=1;while(v!=NULL){for(c=1,u=v->next;u!=NULL{{U}}(6){{/U}};printf("%4d%7d%8d",order,v->score,c);for(order+=c,i=1;{{U}}(7){{/U}};v=v->next,i++){if(i>1printf("%s",v->no);}printf("/n");}}
进入题库练习
问答题【说明】本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示:【程序】#include<iostream.h>#include<stdio.h>classbase{protected:charname[8];public:voidgetname(){cout<<"name:";cin>>name;}voidprintname(){cout<<"name:"<<name<<endl;}{{U}}(1){{/U}}};classstudent:{{U}}(2){{/U}}{intnum;public:voidgetnum(){cout<<"score:";cin>>num;}boolisgood(){return{{U}}(3){{/U}}}};classteacher:{{U}}(2){{/U}}{intnum;public:voidgetnum(){cout<<"paper:";cin>>num;}boolisgood(){return(num>3)?true:false;}voidmain(){base*p[50];student*pstud;teacher*ptech;charch;intcount=0;do{cout<<"inputteacher(t)orstudent(s):";cin>>ch;if(ch=='s'){pstud=newstudent;pstud->getname();pstud->getnum();p[count++]=pstud;}elseif(ch=='t'){{{U}}(4){{/U}}ptech->getname();ptech->getnum();p[count++]=ptech;}elsecout<<"inputiswrong"<<endl;cout<<"continuetoiput(y/n)?";cin>>ch;}while(ch=='y');for(inti=0;i<count;i++)if({{U}}(5){{/U}})p[i]->printname();}
进入题库练习
问答题从下列3道试题(试题5至试题7)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。阅读以下应用说明及VisualBasic程序,根据要求回答问题1至问题2。[说明]某VisualBasic应用程序用于监测某种锅炉设备内液面高度(0~50cm),其运行窗口界面如图4-16所示。图4-16某锅炉设备液面高度显示界面在图4-16中,设计了一个高度计(矩形形状shpMeter)及其中指示当前液面高度的水银柱(矩形形状shpT),文字标签标记了液面高度的刻度;另有一个图片框picCurve,用于动态描述检测到的液面高度曲线(用户见到的曲线与水银柱等高变化);[开始](CmdStart)按钮用于启动液面高度检测,命令按钮“暂停”(CmdStop)用于暂停液面高度检测。液面高度计形状控件shpMeter是固定的,其属性FillsStyle默认为透明。矩形形状shpT(水银柱)的Visible属性初始设置为不可见,属性Filltype设置为Solid(实心),FillColor设置为红色;图片框picCurve的属性AutoRedraw设置为True;程序设计过程中,创建了一个定时器TimT,属性Enabled初始设置为False(不可用),属性Interval(定时间隔)的值应设置为{{U}}(1){{/U}}。为模拟锅炉设备液面高度的检测,程序中利用了(0,1)之间均匀分布的伪随机数获得[0,50]之间的随机液面高度WH。为便于在图片框picCurve中绘制曲线,程序中对该图片框建立了如下坐标系统:图片框的左上角定义为原点(0,0),水平向右方向为X轴,垂直向上方向为Y轴,右下角坐标为(50.200)。为了便于观察记录的液面高度值,图片框中从上到下创建了7条水平虚线Ls(i),i=0,1…6,并在程序中按等间隔排列进行位置设置。应用程序中每隔3秒算出曲线点(x,y),其中x=O,1,2……,再用直线段连接各相邻曲线点形成液面高度曲线。[VisualBasic程序代码]Dim{{U}}(2){{/U}}ASInteger'试题全局变量PrivateSubCmdStart_Click()TimT.Enabled={{U}}(3){{/U}}ShpT.Visible=TrueEndSubPrivateSubCmdStop_Click()TimT.Enabled=FalseEndSubPrivateSubForm_Load()Dimi,SAsIntegerPicCurve.Scale(0,0)-(50,200)'设置图片框坐标系:左上角-右下角S=25'H等于图片框高度的1/8Fori=0To6'设置7条水平线Ls(i)的位置Ls(i).X1=0'Ls(i)起点横坐标Ls(i).Y1={{U}}(4){{/U}}'Ls(i)起点纵坐标Ls(i).X2=50'Ls(i)终点横坐标Ls(i).Y2=Ls(i).Y1'Ls(i)终点纵坐标Ls(i).BorderColor=&H00FCFCFC'设置水平线颜色{{U}}(5){{/U}}x=0'设置曲线坐标初值EndSubPrivateSubtimT_Timer()DimWH,HAsInteger'WH为实时液面高度,H为图片框中液面高度点显示高度WH=Int(Rnd*51)'随机模拟产生锅炉内液面高度(0~50cm)H=ShpMeter.Height*{{U}}(6){{/U}}'算出水银柱的高度ShpT.Top={{U}}(7){{/U}}'设置水银柱顶部位置ShpT.Height=H'设置水银柱的高度'绘制液面高度曲线y={{U}}(8){{/U}}'算出曲上当前点的纵坐标Ifx=51Then'当超出图片框时PicCurve.Cls'清框图片框内以前画的曲线{{U}}(9){{/U}}ElseIfx>0Then'除左边点外PicCurve.Line(x-1,Lasty)-(x,y),vbRed'由前1点到当前点画红色线段EndIfx=x+1'准备下一点坐标Lasty=y'保存当前坐标供下次使用EndSub
进入题库练习
问答题[说明] 以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下: 姓名 成绩 合格否 Mary 90 PASS John 88 PASS Alice 67 FAIL Tom 56 FAIL [C++程序] #include <stdio.h> #include <string.h> #define N 10 class student { protected: char name[10]; int deg; public: void setname(charna[]) {strcpy(name,na);} char * getname() {return name;} void setdeg(int d) {deg= d;} int getdeg(){return deg;} }; class compute { int ns; student na[N]; public: void getdata(); void sort(); void disp(); }; void compute::getdata() { int i,tdeg; char tname[10]; printf("输入学生人数:"); scanf("%d", printf("输入学生姓名和成绩:/n"); for(i=0;i<ns;i+ +){ scanf("%s%d",tname, {{U}}(1) {{/U}}; na[i].setdeg(tdeg); } } void compute::sort() { int i,j,pick; {{U}} (2) {{/U}}; for(i=0;i<ns-1;i+ +){ pick=i; for(j=i+1;j<ns;j+ +) if(na[j].getdeg()>na[pick].getdeg()){{U}} (3) {{/U}}; temp=na[i]; na[i]=na[pick]; na[pick]=temp; } } void compute::disp() { int cutoff,i; printf("RESULT/n"); printf("姓名 成绩 合格否/n"); cutoff=ns*7/10-1; for(i=0;i<ns;i+ +) { printf("%-6s%3d",{{U}} (4) {{/U}}); if({{U}} (5) {{/U}}) printf("/tPASS/n"); else printf("/tFAIL/n"); void main() { compute obj; obj.getdata(); obj.sort(); obj.disp(); }
进入题库练习
问答题试题四(15分,每空3分)阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300进行编号。竞赛时间为9:00~11:00。8道竞赛题目依次从‘A’~‘H’编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。选手提交答案的情况及判定结果由专人即时录入,录入的数据如下表1所示,对竞赛情况进行统计和排名的结果如表2所示。统计和排名的规则如下:1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算:解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时罚时=提交题目P错误解答的次数×20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间为87分钟,由于之前的两次提交错误解答,罚时为2×20=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)。2.已经提交正确答案的题目再次提交时不再计算。3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为0的选手不参加排名。函数voidStatistic()的功能是:读取输入数据,进行统计、排名并输出结果。#defineMAXN300typedefstruct{intno;/*选手编号*/intnum;/*完成的题目数量*/inttime;/*完成题目的总用时*/intd[8];/*d[i]用于记录提交第i个题目错误答案的次数*/inta[8];/*a[i]用于记录第i个题目是否已经提交正确答案*/}Info;【函数】voidStatistic(){charch,pass;inti,j,k,h,m,t,time,MaxIndex;InfoR[MAXN+1];for(i=1;iMaxIndex)MaxIndex=k;}/*while*/for(i=1;i0){if(R[i].num!=R[0].num||R[i].time!=R[0].time)k++;R[0]=(5);printf("%d:%3d%4d%5d\n",k,R[i].no,R[i].num,R[i].time);}/*if*/}/*Statistic*/
进入题库练习
问答题【说明】 用创建Thread类的子类的方法实现多线程,判断一个数是否是素数。如果是,打印“是素数”,如果不是,则打印“不是素数”;如果没有参数输入,显示“请输入一个命令行参数”。【Java程序】 import java.io.* ;public class TestThread //Java Application主类 public static void main(Sting args[ ]) if (args length<l) //要求用户输入一个命令行,否则程序不能进行下去 system.out.println("请输入一个命令行参数"); system.exit(0) ; //创建用户Thread子类的对象实例,使其处于NewBorn状态 primeThread getPrimes = new primeThread (Integer.parseInt(args[0])); getPrimes.start () ; //启动用户线程,使其处于Runnable状态 while(getPrimes.isAlive() //说明主线程在运行 try Thread. sleep (500); //使主线程挂起指定毫秒数,以便用户线程取得控制权, //sleep是static的类方法 Catch(InterruptedException e) //sleep方法可能引起的异常,必须加以处理 return ; //while循环结束 System.out.println ("按任意键继续……") ; //保留屏幕,以便观察 try (1) ; Catch(IOException e) //main方法结束class primeThread extends Thread //创建用户自己的Thread子类run()中实现程序子线程操作 boolean m_bContinue=true; //标志本线程是继续 int m_nCircleNum ; /循环的上限 prime Thread(int Num) //构造函数 m_nCircleNum =Nam; boolean ReadyToGoOn () //判断本线程是否继续执行 return ( (2) ); public void run () //继承并重载父类Thread的run ()方法,在该线程被启动时自动执行 int number =3; boolean flag=true; while (true) //无限循环 for( (3) ; i++) //检查number是否为素数 if(number %i==0) (4) ; system, out. println (flag); if (flag) //打印该数是否为素数的信息 system,out.print in (number+ "是素数") ; else sys rem.out.print In (number+ "是素数") ; number++ ; //修改number的数值,为下一轮素数检查做准备 if (number> m_nCircleNum) //到达要求检查数值的上限 m_bCont inue= false ; //则准备结束此线程 return ; //结束run()方法,结束线程 (5) ; try //经过一轮检查之后,暂时休眠一段时间 sleep(500); //使主线程挂起指定毫秒数,以便父线程取得控制权 Catch(InterruptedException e) Return; //for循环结束 //while循环结束 //run()方法结束 //primeThread类定义结束
进入题库练习
问答题【问题4】(1分) 该流程图共有多少条实际执行路径?
进入题库练习
问答题阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。 【说明】 埃拉托斯特尼筛法求不超过自然数N的所有素数的做法是:先把N个自然数按次序排列起来,1不是素数,也不是合数,要划去;2是素数,取出2(输出),然后将2的倍数都划去;剩下的数中最小者为3,3是素数,取出3(输出),再把3的倍数都划去;剩下的数中最小者为5,5是素数(输出),再把5的倍数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,每次从序列中取出的最小数构成的序列就是不超过N的全部质数。 下面的程序实现埃拉托斯特尼筛法求素数,其中,数组元素sieve[i](i>0)的下标i对应自然数i,sieve[i]的值为1/0分别表示i在/不在序列中,也就是将i划去(去掉)时,就将sieve[i]设置为0。 【C程序】 #include<stdio.h> #define N 10000 int main() { char sieve[N+1]={0); int i=0,k; /*初始时2~N都放入sieve数组*/ for(i=2;____(1)____;i++) sieve[i]=1; for(k=2;;){ /*找出剩下的数中最小者并用K表示*/ for(;k<N+1&&sieve[k]==0;____(2)____); if(____(3)____)break; print(“%d\t”,k);/*输出素数*/ /*从sieve中去掉k及其倍数*/ for(i=k;i<N+1;i=____(4)____) ____(5)____; } return 0; } / *end of main* /
进入题库练习
问答题[说明]下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和n,假定m大于等于n,算法的主要步骤为:(1)以n除m并令r为所得的余数;(2)若r等于0,算法结束;n即为所求;(3)将n和r分别赋给m和n,返回步骤(1)。[流程图][问题1]将流程图中的(1)~(4)处补充完整。[问题2]若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。
进入题库练习
问答题[说明]函数intToplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中,图G表示一个具有n个顶点的AOE-网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下。typedefstructGnode{/*邻接表的表节点类型*/intadjvex;/*邻接顶点编号*/intweight;/*弧上的权值*/structGonde*nextare;/*指示下一个弧的节点*/}Gnode;typedefstructAdjlist{/*邻接表的头节点类型*/charvdata;/*顶点的数据信息*/structGnode*Firstadj;/*指向邻接表的第一个表节点*/}Adjlist;typedefstructLinkedWDigraph{/*图的类型*/structAdjlisthead;/*指向图中第一个顶点的邻接表的头节点*/}LinkedWDigraph;例如,某AOE-网如图4-14所示,其邻接表存储结构如图4-15所示。图4-14某AOE-网图4-15邻接表存储结构图[函数]intToplogical(LinkedWDigraphG){Gnode*p;intj,w,top=0;intStack,*ve,*indegree;ve=(int*)mallloc(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}}(1){{/U}};p=p->nextarc;}/*while*/}/*for*/for(j=1;j<=G.n;j++)/*求网中入度为0的顶点并保存其编号*/if(!indegree[j])Stack[++top]=j;while(top>O){w={{U}}(2){{/U}};printf("%c",G.head[w].vdata);p=G.head[w].Firstadj;while(p){{{U}}(3){{/U}};if(!indegree[p->adjvex])Stack[++top]=p->adjvex;if({{U}}(4){{/U}})Ve[p->adjvex]=ve[w]+p->weight;P=p->nextarc;}/*while*/}/*while*/return{{U}}(5){{/U}};}/*Toplogical*/
进入题库练习