计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题【说明】设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:其中填自然数的思想如下;(1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。(2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。【程序】#include<stdio.h>#definesize10inta[3][size];voidmain()inti,k,m,n;printf("imputthen:");scanf("%d",k=1;for(i=0;i<=n/2;i++)a[1][2*i]=k;k++;if((i==n/2)k++;(2)k++;if(n%2==1)(3)k++;m=n;else(4)for(i=0;i<n/2;i++)a[1][m-2*i]=k;k++;(5)k++;a[2][m-2*i-1]=k;k++;a[1][1]=k;printf("/n");printf("");for(i=1;i<=n;i++)printf("%6d",a[0][i]);printf("/n/n");for(i=0;i<=n+1;i++)printf("%6d",a[1][i]);printf("/n/n");printf("");for(i=1;i<=n;i++)printf("%6d",a[2][i]);printf("/n");
进入题库练习
问答题【算法说明】 某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。 本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。 【算法】 第一步 读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。 第二步 输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。 第三步 根据变量E的值,用二分法在数组ENG中查找。具体步骤如下: 1.1→L,N→H 2.INT((L+H)/2)→K 3.若E=ENG(K),则C→CN(K),转向第二步 若E<ENG(K),则K-1→ (1) ;若E>ENG(K),则K+1→ (2) 4.若H<L则 对I=N,L,-1(始值,终值,增量)循环执行: ENG(I)→ENG(I+1) CN(I)→CN(I+1) 然后,将E和C分别存入 (3) 和 (4) ,N+1→N最后转向第二步 否则,转向 (5) 第四步 将数组ENG和CN输出,形成新的英汉词典文件,算法结束。
进入题库练习
问答题试题五(15分,每空3分)阅读以下应用说明及VisualBasic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[应用说明]某单位举办了一场知识竞赛,有300名选手参加竞赛,依次从1~300为选手编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。选手提交答案的情况及判定结果由专人即时录入,录入数据包括提交答案的时间、选手编号、题目编号(A~H)、是否正确(Y/N)。对竞赛情况进行统计和排名的规则如下:1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算:解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时罚时=提交题目P错误解答的次数×20例如:设14号选手在10:27提交了题目A的正确解答,则该选手正确解答该题目所用时间为87分钟,由于他在09:37和09:52两次提交了题目A的错误解答,因此罚时为2×20=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)。2.已经提交正确答案的题目再次提交时不作计算。3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为0的选手不参加排名。本应用程序的运行窗口如下图所示:窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。组合列表框Combo1提供题目编号(A~H),录入时从中选择。检查框Chk_yn用于输入解答是否正确信息。当单击“确定”按钮(Cmd_comfirm)时,录入的提交信息加入列表框List1中,排名情况在列表框List2输出。单击“关闭”按钮时退出应用程序。在开发过程中,需要编写的部分程序代码如下:[程序代码]PrivateTypeInfonoAsInteger'选手编号numAsInteger'完成的题目数量timeAsInteger'完成题目的总用时d(8)AsInteger'd[i]用于记录提交第i个题目错误答案的次数a(8)AsBoolean'a[i]用于记录第i个题目是否已经提交正确答案EndTypeDimR(301)AsInfo'R[j]用于统计编号为j的选手提交答案的情况DimMaxIndexAsInteger'MaxIndex记录提交答案的选手中编号最大者PrivateSubForm_Load()Fori=1To8Combo1.AddItemChr((1))NextCombo1.Text=Combo1.List(0):Txt_time.Text="":Txt_player.Text=""Fori=1To300R(i).num=0:R(i).time=0:R(i).no=iForj=1To8R(i).d(j)=0:R(i).a(j)=FalseNextj,iEndSubPrivateSubCmd_confirm_Click()Dimh,m,k,timeAsInteger,ch,pass,s1AsStringk=InStr(Txt_time.Text,":"):Ifk11Orh=11Andm>0Orm>=60ThenGoToerror1time=(2)'计算答题时间,以分钟为单位IfTxt_player.Text300ThenGoToerror1ch=(3)'取题目编号pass=IIf(Chk_yn.(4)=0,"N","Y")s1=Txt_time.Text+Space(4)+Txt_player.Texts1=s1+Space(10-Len(Txt_player.Text))+ch+Space(8)+passList1.AddItems1k=Val(Txt_player.Text)'k为选手编号R(k).no=k'编号为k的选手的提交信息记录在下标为k的数组元素中Ifk>MaxIndexThenMaxIndex=km=Asc(ch)-Asc("A")Ifpass<>"Y"Then'编号为k的选手提交第m个题目的解答不正确R(k).d(m)=R(k).d(m)+1ElseIfR(k).a(m)<>TrueThen'已经提交正确的题目的解答不再计算R(k).a(m)=True:R(k).num=R(k).num+1R(k).time=R(k).time+(5)CallStatistic'调用过程Statistic进行实时排名和输出EndIfExitSuberror1:MsgBox"录入信息有误!",vbOKOnlyEndSub
进入题库练习
问答题【说明】 为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置。(假设R[]中的元素互不相同) [算法] 1.变量声明 X: Data Type i,j,low, high,mid,r:0..n 2.每循环一次插入一个R[i] 循环:i以1为步长,从2到n,反复执行。 (1)准备 X←R[i]; (1) ; high←i-1; (2)找插入位置 循环:当 (2) 时,反复执行。 (3) 若X.key<R[mid].key 则high←mid-1; 否则 (4) (3)后移 循环:j以-1为步长,从 (5) ,反复执行。 R[j+1]←R[j] (4)插入 R[low]←X 3.算法结束
进入题库练习
问答题【说明】本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示:【程序】#include<iostream.h>#include<stdio.h>classbaseprotected:charname[8];public:voidgetname()cout<<"name:";cin>>name;voidprintname()cout<<"name:"<<name<<endl;(1);classstudent:(2)intnum;public:voidgetnum()cout<<"score:";cin>>num;boolisgood()return(3);classteacher:(2)intnum;public:voidgetnum()cout<<"paper:";cin>>num;boolisgood()return(num>3)?true:false;voidmain()base*p[50];student*pstud;teacher*ptech;charch;intcount=0;docout<<"inputteacher(t)orstudent(s):";cin>>ch;if(ch=='s')pstud=newstudent;pstud->getname();pstud->getnum();p[count++]=pstud;elseif(ch=='t')(4)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((5))p[i]->printname();
进入题库练习
问答题[说明] 当用户启动html浏览器并首次打开下面的html文档时,Java Applet小程序在第一个显示面板上显示字符串"HelloWorld";在第二个显示面板上画一条直线。[Java代码]import java.awt. *;import javax.swing. *;public class HelloWorldApplet extends JApplet pubhc void (1) (2) str="HetloWorld"; JLabel label = new JLabel(str); this. getContentPane().add(label); import java.applet.Applet;import java.awt.Graphics;public class AppletPaint extends (3) public void paint( (4) ) g.drawLine(0,0,300,200); [HTML文档]<html><head><title> HTML Test Page </title></head><body><applet code=" (5) " width="300" height="100"></applet><applet code=" AppletPaint.class" width="300" height="100"></applet></body></html>
进入题库练习
问答题7.
进入题库练习
问答题【Java代码】 class usethread implements (1) int num usethread(int n) num=n; public void (2) for(int i=0;i<3;i++) System.out.println("running:"+num); System.out.println("finished:"+num); public class multhread public static void main(String args[]) (3) InterruptedException Thread m1=new Thread(new usethread(1)); Thread m2=new Thread(new usethread(2)); m1.start(); m2.start(); m1.join(); m2.join(); 【问题1】 补充完整上面Java代码中 (n) 处。 【问题2】 写出上面Java代码运行的结果。
进入题库练习
问答题阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。 [说明] 正整数n若是其平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。下面的程序求解不超过10000的所有同构数。 已知一位的同构数有三个:1,5,6,因此二位同构数的个位数字只可能是1,5,6这三个数字。依此类推,更高位数同构数的个位数字也只可能是1,5,6这三个数字。 下面程序的处理思路是:对不超过10000的每一个整数a,判断其个位数字,若为1、5或6,则将a转换为字符串as,然后对a进行平方运算,并截取其尾部与as长度相等的若干字符形成字符串后与as比较,根据它们相等与否来断定a是否为同构数。 [C程序] #include<stdio.h> #include<stdlib.h> #include<string.h> int myitoa(int,char*); /*将整数转换为字符串*/ /*right取得指定字符串尾部长度为length的子串,返回所得孔串的首字符指针*/ char*right(char*,int length); int main() { int a,t; int len; char as[10],rs[20]; printf("[1,10000]内的同构数:\n"); for(a=1; a<=10000;a++) { t=______; /*取整数a的个位数字*/ if(t!=1 len=myitoa(a,as); /*数a转换为字符串,存入as*/ myitoa(a*a,rs); /*数a的平方转换为字符串,存入rs*/ /*比较字符串as与rs末尾长度为len的子串是否相等*/ if(strcmp(as,______)==0) /*若相同则是同构数并输出*/ printf("%s的平方为%s\n",as,rs); } return 0; } int myitoa(int num,char*s) /*将整数num转换为字符串存入s*/ { int i,n=0; char ch; /*从个位数开始,取num的每一位数字转换为字符后放入s[]*/ while(num){ s[n++]=______+"0"; num=num/10; } s[n]="\0"; for(i=0; i<n/2;i++){ /*将S中的字符串逆置*/ ______;s[i]=s[n-i-1]; s[n-i-1]=ch; } return n; /*返回输入参数num的位数*/ } char*right(char*ms,int length) /*取字符串ms尾部长度为length的孔串,返回所得孔串的首字符指针*/ { int i; for(;*ms;ms++); /*使ms到达原字符串的尾部*/ for(i=0;i<length;______); /*使ms指向所得孔串的首部字符*/ return ms; }
进入题库练习
问答题[说明]本程序提供了三阶矩阵加、减及乘运算的功能。用户单击“生成操作数”按钮将随机生成两个矩阵(即操作数1和操作数2),再单击某一矩阵运算按钮后,程序将输出相应运算的结果。程序运行界面如下:开发过程中,界面上从左至右三个文本框分别取名为Text1至Text3,“生成操作数”按钮名为CmdNew,“+”、“-”和“*”构成按钮控件组,分别名为CmdOperate(0)、CmdOperate(1)和CmdOperate(2)。已知n阶矩阵加、减法运算法则是对应位置的元素相加、减;n阶矩阵的乘法C=AB有公式:Cij=AilBij+AilBij+…+An1Bnj其中记号Xij表示矩阵X第i行第j列上的元素。程序使用的主要变量是三维数组matrix(3,3,3),其元素matrix(i,j,k)代表第i个矩阵j行k列上的元素,这里i,j,k均从0开始计数,第0、1、2个矩阵分别表示操作数1、操作数2和结果矩阵。代码中用到的子过程及其功能说明如下:(1)SubnewMatrices():随机产生矩阵运算的两个操作数;(2)SubprintOut(txtAsTextBox,iAsIntegcr):定义矩阵i向文本框txt的输出格式;(3)Suboperate(operationAsString):计算并输出矩阵运算结果。[VisualBasic代码]Dimmatrix(3,3,3)AsIntegerSubnewMatrices()………EndSubSubprintOut(txtAsTextBox,iAsInteger)………EndSubSuboperate(operationAsString)Dimi,j,kAsIntegerFori=0To2Forj=0To2(1)Case"+":matrix(2,i,j)=matrix(0,i,j)+matrix(1,i,j)Case"-":matrix(2,i,j)=matrix(0,i,j)-matrix(1,i,j)Case"*"matrix(2,i,j)=0Fork=0To2matrix(2,i,j)=matrix(2,i,j)+(2)NextEndSelectNextNextprintOut(3)EndSubPrivateSubCmdNew_Cliek()’“生成操作数”按钮的单击事件响应代码(4)printoutText1,0printoutText2,1EndSubPrivateSubCmdOperale_Click(IndexAsInteger)’矩阵运算按钮组的单击事件响应代码operateCmdOperate(Index).(5)EndSub
进入题库练习
问答题6.
进入题库练习
问答题【说明】 本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。 【代码】 #include<stdio.h> #include<stdlib.h> #include<string.h> char*replace(char *s1, char *s2,char *s3) char *p, *q, *r, *s; int |2,|3, i=0; |2=strlen(s2); |3=strlen(s3); p=s1; while((p=strstr(p,s2))!=NULL) i++; /* 统计s2串出现的次数*/ (1) ; i= (2) ; s=r=(char*)malloc(i); /*分配动态内存存放新字符串*/ p=s1; while(1) q=strstr(p, s2); /* s2串是否在s1中出现,q是首次出现的位置*/ if(q!=NULL) i=q-p; (3) ; r+=i; (4) ; r+=|3; p=q+|2; /*将指向s1串的指针移到s2子串出现的位置后, 为下一次循环做好准备*/ else /*q为空,表示剩余的s1串中已经没有s2*/ (5) ; break; /*终止循环*/ return(s); /*返回指向所形成的新串的指针*/ void main() char *a="sabcababde", *b="ab", *c="efg", *d; d=replace(a, b, c); printf("result=%s/n", d); free(d);
进入题库练习
问答题[说明] 邻接表是图的一种顺序存储与链式存储结合的存储方法。其思想是:对于图G中的每个顶点 vi,将所有邻接于vi的顶点vj连成一个单链表,这个单链表就称为顶点vi的邻接表,其中表头称作顶点表结点VertexNode,其余结点称作边表结点EdgeNode。将所有的顶点表结点放到数组中,就构成了图的邻接表AdjList。邻接表表示的形式描述如下: #define MaxVerNum 100 /*最大顶点数为100*/typedef struct node /*边表结点*/ int adjvex; /*邻接点域*/ struct node *next; /*指向下一个边表结点的指针域*/ EdgeNode;typedef struct vnode /*顶点表结点*/ int vertex; /*顶点域*/ EdgeNode *firstedge; /*边表头指针*/VertexNode;typedef VertexNode AdjList[MaxVerNum]; /*AdjList是邻接表类型*/typedef struct AdjList adjlist; /*邻接表*/ int n; /*顶点数*/ALGraph; /*ALGraph是以邻接表方式存储的图类型*/ 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。 下面的函数利用递归算法,对以邻接表形式存储的图进行深度优先搜索:设初始状态是图中所有顶点未曾被访问,算法从某顶点v出发,访问此顶点,然后依次从v的邻接点出发进行搜索,直至所有与v相连的顶点都被访问;若图中尚有顶点未被访问,则选取这样的一个点作起始点,重复上述过程,直至对图的搜索完成。程序中的整型数组visited[]的作用是标记顶点i是否已被访问。[函数]void DFSTraverseAL(ALGraph *G)/*深度优先搜索以邻接表存储的图G*/ int i; for(i=0;i< (1) ;i++) visited[i]=0; for(i=0;i< (1) ;i++)if( (2) ) DFSAL(G,i);void DFSAL(ALGraph *G,int i) /*从Vi出发对邻接表存储的图G进行搜索*/ EdgeNode *p; (3) ; p= (4) ; while(p!=NULL) /*依次搜索Vi的邻接点Vj*/ if(! visited[ (5) ]) DFSAL(G, (5) ); p=p->next; /*找Vi的下一个邻接点*/
进入题库练习
问答题[说明] 本程序使用类来管理员工的通讯地址信息。已知程序的输出为: 输出记录:5 姓名:王丽华 街道地址:中华路15号 市:襄樊市 省:湖北省 邮政编码:430070[Java代码]public class Employee protected String (1) ; protected String street; protected String city; protected String prov; protected String post; protected int no; public Empbyee() public Employee(String name,String street,String city,String prov,String post, (2) ) this.name=name; this.street=street; this.city=city; this.prov=prov; this.post=post; this.no=no; public static void main(String[]args) Employee emp=new Employee(“王华”,“中华路15号”,“武汉市”,“湖北省”,“430070”,1); emp.changeName(“王丽华”); (3) (“襄樊市”); emp.changeNo(5); (4) ; void changeName(String name)this.name=name; void changeStreet(String street)this.street=street; void changeCity(String city)this.city=city; void changeProv(String prov)this.prov=prov; void changeNo(int no) (5) ; void display() System.out.println(“输出记录:”+this.no); System.out.Println(“姓名:”+this.name); System.out.println(“街道地址:”+this.street); System.out.println(“市:”+this.city); System.out.println(“省:”+this.prov); System.out.println(“邮政编码:”+this.post);
进入题库练习
问答题试题五(15分,每空3分)阅读以下说明及VisualBasic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[说明]甲乙两地之间的铁路线上有二十多个火车站,为方便乘客查询票价,特开发了火车票价查询程序,其运行窗口如下图所示。乘客只要通过两个下拉列表框分别选择起点与终点站名,再单击“查询”按钮,则票价文本框中就会显示相应的票价。在开发过程中,设选择起点和终点站名的组合框(ComboBox)名分别为ST和SP,显示票价的文本框(TextBox)名为Price,“查询”按钮(CommandButton)名为Query;设ST与SP中的诸列表项完全相同,且都是从甲地开始依次排列,从第i站到第j站的票价存放在二维对称矩阵P的元素P(i,j)中。假设从甲地到第i站行驶的距离存放在d(i)中,火车票价等于其行驶距离乘以C(常数)。[VisualBasic代码]Dimp(30,30)AsSingle'通用声明ConstC=0.2PrivateSubForm_Load()Dimd(30)AsSingle(1)="甲地"'在ST组合框中设置首个列表项……'在ST和SP中设置其他列表项(若干行语句)……'对数组d(i)赋值(若干行语句)Fori=0toST.(2)-1'对ST中各列表项循环Forj=0toSP.(2)-1'对SP中各列表项循环(这两处填写内容相同)P(i,j)=(3)NextjNextiEndSubPrivateSubquery_Click()i=(4)'组合框ST中选择的当前项编号j=……'组合框SP中选择的当前项编号(语句略)(5)=str$(p(i,j))EndSub
进入题库练习
问答题{{B}}试题一{{/B}}阅读以下说明和流程图,回答问题1至问题3。[说明]信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示:流程图2-1描述了对n*n矩阵的某种处理。流程图2-2是将矩阵A顺时针旋转90°形成矩阵B的具体算法。
进入题库练习
问答题【说明】 已知窗体上有两个名为cmdGene和cmdSort的命令按钮。单击cmdCene按钮时,随机产生10个[1,100]范围内的整数并将它们放在数组intA中;单击cmdSort按钮时,用选择法排序这10个数并输出。 【程序代码】 Dim intA(1 To 10)As integer Private Sub cmdGene_Click( ) Dim intl As Integer Randomize For intl = 1 To 10 intA(intl) = (1) Next intl End Sub Private Sub cmdSort_Click( ) Dim intl, intJ,intMin, intTemp As Integer For intl = 1 To 9 intMin = intA(intl) For intJ= (2) To 10 If intA(intJ) < intMin Then Temp = intA(intJ) intA(intJ)= (3) intMin = intTemp End If Next intJ (4) (5) For intl = 1 To 10 Print Str(intA(intl))+" "; Next intl Next lntl Print End Sub
进入题库练习
问答题
进入题库练习
问答题【函数2.1说明】 有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。 【函数2.1】 main() int i,j,k; printf("/n"); for( (1) ) /*以下为三重循环*/ for(j=1; j<5;j++) for (k=1;k<5;k++) if ( (2) ) /*确保i, j, k 三位互不相同*/ printf("%d,%d,%d/n",i,j,k); 【函数2.2说明】 计算并输出100之内的素数,每行输出10个,超过10个则换行。 【函数2.2】 #include <stdio.h> #include "math.h" #define N 101 main() int i,j,line,a[N]; for(i=2;i<N;i++) (3) ; for(i=2;i<sqrt(N);i++) for(j=i+1;j<N;j++) if(a[i]!=0 printfC/n"); for(i=2,line=0;i<N;i++) if(a[i]!=0) prinff("%5d",a[i]); (5) ; if(line==10) prinff("/n"); line=0;
进入题库练习
问答题[说明]下面的程序演示了根据随机产生的奖牌数,生成金银奖牌榜的过程。程序使用的排序法是简单排序法。以金牌得数为例,其思想是选择最大的元素,将它交换到最前面;然后对剩下的部分采用同样的方法,直到全部排序完成。程序界面中,左右两个文本框分别用于存放随机产生的奖牌数以及生成的奖牌榜,名为Text1和Text2,上下两个按钮分别名为Command1和Command2。代码中使用的量主要有:一维数组cntries,用于存储10个国家的名称,二维数组medals,其元素medals(i,0)和medals(i,1)分别用于存放第i个(i从0开始)国家的金、银牌数目。[VisualBasic代码]Dimcntries(10)AsString,medals(10,2)AsInteger’随机产生奖牌数SubnewMedals()……’为数组cntries和medals赋值EndSub’输出奖牌榜SubprintOut(txtAs(1))DimstrResuhAsString,iAsIntegerstrResult=“国家”&Chr(9)&“金牌数”&Chr(9)&“银牌数”&vbCrLfFori=0To9strResult=strResult&cntries(i)&Chr(9)&medals(i,0)&Chr(9)&medals(i,1)&vbCrLfNexttxt.Text=strResultEndSub’交换两变量的值Subexchange((2)aAsVariant,(2)bAsVariant)DimtempAsVarianttemp=a:a=b:b=tempEndSub’随机产生并输出奖牌数PrivateSubCommand1_Click()newMedalsprintOutText1EndSub’生成并输出奖牌榜PrivateSubCommand2_Click()Dimi,j,kAsInteger,tempAsStringFori=0To9’按金牌数排序j=i’找到自第i个位置起全部数据中金牌得数最多者,记其下标为jFork=i+1To9If(3)Thenj=kNextIfi<>jThen’若i,j不等,则交换对应位置的国家名、金银牌数目exchangecntnes(i),entries(j)exchangemedals(i,0),medals(j,0)exchangemedals(i,1),medals(j,1)EndIfNextFori=0To9’按银牌数进行二次排序j=iFork=i+1To9Ifmedals(k,0)<>medals(j,0)Then(4)If(5)Thenj=kNextIfi<>jThenexchangecntries(i),cntries(j)exchangemedals(i,1),medals(j,1)EndIfNextprintOutText2EndSub
进入题库练习