您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 数组练习卷(1)answer
鲁迅中学柯桥校区信息学竞赛小组数组练习(1)姓名:得分:11、有如下程序:programabc(output);vark:integer;a:array[1..5]ofinteger;beginfork:=1to5doa[k]:=2*k;fork:=2to4doa[k]:=a[k+1]+a[k-1];writeln(a[2],‘’,a[4])end.该程序运行后,输出的结果是(826)2、设A为一个一维数组,以下程序运行结果为()。2A[1]:=1;4ForI:=1to5do6Forj:=Ito5doA[j]:=a[I]+1;8ForI:=1to5doWriteln(a[I])103、以下程序的功能是求5阶方阵中两条对角线上元素的最大值及其位置programmatrix(input,output);varI,j,max,m,n:integer;a:array[1..5,1..5]ofinteger;beginwriteln(‘inputA5*5matrix:’);forI:=1to5dobeginforj:=1to5doread(a[I,j]);readlnend;max:=a[1,1];m:=1;n:=1;forI:=1to5doforj:=1to5doif(I=j)or(I+j=6)thenifa[I,j]maxthenbeginmax:=a[I,j];m:=1;n:=j;end;writeln(‘max=’,max);writeln(‘m=’,m,’n=’:4,n);end.4、已知变量声明如下:vara:array[1..3,1..3]ofinteger;I,j:integer;下面程序段的输出结果是()100forI:=1to3do010forj:=1to3do001a[I,j]:=(Idivj)*(jdivI);forI:=1to3dobeginforj:=1to3dowrite(a[I,j]:2);writeln;end;5、下面程序的用冒泡排序法对有10个数据元素的数组从小到大进行排序,数据由键盘输入,并将排序的结果输出。请将程序补充完整。Programsortbb(input,output);Constn=10;TypeArr=array[1..n]ofinteger;Vara:arr;Temp,I,j:integer;BeignWriteln(‘input10intpgernum:’);ForI:=1tondoread(a[I]);Readln;Forj:=1to(n-1)doForI:=1to(n-j)doIfa[I]a[I+1]thenBegin(temp:=a[i])(a[i]:=a[i+1])(a[i+1]:=temp)end;writeln(‘putput:‘);forI:=1tondowrite(a[I]:4);writelnend.6、下列程序的功能是:输入100个实数,计算相邻两个数的差,并分10行打印出来。请将程序填写完整。Programtemp(input,output);Typenr=array[1..100]ofreal;Dr=array[1..99]ofreal;Varnumbers:nr;Differences:dr;Counter:integer;BeginForcounter:=1to100doRead(numbers[counter])Readln;Forcounter:=1to99doDifferences[counter]:=(numbers[counter+1])-(numbers[counter]);Forcounter:=1to99doBeginWrite(differences[counter]:10:3);Ifcountermod10=(0)ThenwritelnEndEnd.7、有如下程序:programtkl(input,output);label10,20;varm:array[1…3,1…3]ofinteger;I,j,k:integer;BeginForI:=1to3doForj:=1to3doM[I,j]:=I+(j-1)*3;10:forI:=1to2do20:forj:=I+1to3dobegink:=m[I,j];m[I,j]:=m[j,I];m[j,I]:=kendend.请回答下列问题:在执行语句10之前,数组m的第一行元素的值是(147)。在程序执行完毕后,数组m第一行元素的值是(123),若将程序中标号为10,20的语句改为:10:forI:=1to3do20:forj:=1to3do则程序执行后,m数组的第一行结果是(147)。8、以下程序实现从终端按行读入一个4*4的二维数组,分别求出其主,次对角线上元素之和,其中变量sumz用以累加主对角线元素的和,sumc用以累加次对角线元素之和。请在空白处填入正确内容。Programcal(input,output);鲁迅中学柯桥校区信息学竞赛小组数组练习(1)姓名:得分:2VarA:array[1..4,1..4]ofinteger;N,m,sumz,sumc:integer;BeginForn:=1to4doForm:=1to4doReadln(a[n,m])Sumz:=0;sumc:=0;Forn:=1to4doBeginSumz:=sumz+(a[n,n]);M:=(5-n);Sumc:=sumc+a[n,m]End;Writeln(sumz:3,sumc:3)End.9、下面的程序从键盘接收任意6个数置放入数组a中,假设这6个数为:814256,则可输出一个如下内容的方阵。814256681425568142256814425681142568programlatin(input,output);vara:array[1..6]ofinteger;I,j,k:integer;BeginForI:=1to6doRead(a[I]);Readln;ForI:=1to6doBeginIfI=1thenk:=1Elsek:=(8-I);Forj:=1to(6)doBeginWrite(a[k]:2);Ifk=6thenk:=1Elsek:=(k+1)End;WritelnEndEnd.10、设有二维数组A:123…10246…20……..102030…100对该二维数组元素求和的程序段如下:sum:=0;forI:=1to(10)doforj:=(1)to10dosum:=sum+(a[I,j])writeln(‘result:’,sum);11、programexe614;Vara,b,c:array[1..100,1..100]ofinteger;M,n,h,I,j,s,k:integer;BeginWrite(‘m=’);readln(m);Write(‘N=’);readln(n);Wrie(‘H=’);readln(h);Writeln(‘inputA’)Fori:=1tomdoForj:=1tondoread(a[I,j]);Writeln(‘inputB’)Fori:=1tondoForj:=1tohdoread(b[I,j]);Fori:=1tomdoForj:=1tohdoBeginS:=0;Fork:=1tondos:=s+a[I,k]*b[k,j];C[I,j]:=s;End;Fori:=1tomdoBeginForj:=1tohdowrite(c[I,j]:4);Writeln;End;End.输入:m=2N=3H=1InputA123456InputB12314输出结果:3212、求一个N*N数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下:5678945678345212349012548则1行1列上的数就是马鞍数,Constn=5;Vara:array[1..n,1..n]ofinteger;H,l:array[1..n]ofinteger;Min,max,I,j:integer;BeginFori:=1tondoForj:=1tondoread(a[I,j])Fori:=1tondoBeginMin:=a[I,1];Forj:=2tondoIfa[I,j]minthenmin:=a[I,j];H[i]:=min;End;Forj:=1tondoBeginMax:=a[1,j];Fori:=2tondoIfa[I,j]maxthenmax:=a[I,j]L[j]:=max;End;ForI:=1tondoForj:=1tondoIf(a[I,j]=h[I])and(a[I,j]=L[j])thenWriteln(‘(‘,I,’,’,j,’)’:’,a[I,j]);End.
本文标题:数组练习卷(1)answer
链接地址:https://www.777doc.com/doc-5023066 .html