问答题【说明】设有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
