浙大JAVA-试验题答案10answer_第1页
浙大JAVA-试验题答案10answer_第2页
浙大JAVA-试验题答案10answer_第3页
浙大JAVA-试验题答案10answer_第4页
浙大JAVA-试验题答案10answer_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

优选文档实验10排序和二维数组的使用1.程序填空题,不要改变与输入输出有关的语句。60005排序输入一个正整数repeat(0<repeat<10),做repeat次以下运算:输入一个正整数n,再输入n个整数,将它们从大到小排序后输出。例:括号内是说明输入(repeat=3)51763123554321输出765132154321importjava.util.Scanner;publicclassTest60005{publicstaticvoidmain(String[]args){intri,repeat;inti,index,k,n,temp,a[];Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();a=newint[n];for(i=0;i<n;i++)a[i]=in.nextInt();for(i=0;i<n-1;i++){II选择法递减排序index=i;for(k=i+1;k<n;k++){if(a[k]>a[index])index=k;II找最大值的下标}if(i!=index){temp=a[i];a[i]=a[index];a[index]=temp;}}优选文档if(a[k]<a[k+1]){temp=a[k];a[k]=a[k+1];a[k+1]=temp;}优选文档for(i=0;i<n;i++)System.out.print(a[i]+"");System.out.println();}}}或:for(i=0;i<a.length-1;i++){//冒泡法递减排序for(k=0;k<a.length-1-i;k++){}}60011矩阵运算输入一个正整数repeat(0<repeat<10),做repeat次以下运算:读入1个正整数n(1<n<6),再读入n阶方阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和.(副对角线为从矩阵的右上角至左下角的连线)例:括号内是说明输入:(repeat=1)(n=4)341611181111sum=35(2+3+4+5+6+7+8=35)importjava.util.Scanner;publicclassTest60011{publicstaticvoidmain(String[]args){intri,repeat;inta[][],i,j,n,sum;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();a=newint[n][n];for(i=0;i<n;i++)优选文档优选文档for(j=0;j<n;j++)a[i][j]=in.nextInt();/*------*/sum=0;for(i=0;i<n-1;i++)//i<n-1for(j=0;j<n-1;j++){//j<n-1if((i+j)!=(n-1))sum+=a[i][j];//System.out.println("sum="+sum);}}}

消除最后一行消除最后一列非副对角线元素才加入}60012加法口诀表输入一个正整数repeat(0<repeat<10),做repeat次以下运算:输入1个正整数n(1<n<10),输出一张20以内的加法口诀表加数与被加数都不大于n,摆列.第一行和第一列.(将加数、被加数、和放入一个二维数组中,再输出该数组)例:括号内是说明输入:1(repeat=1)3(n=3)输出:123122343456importjava.util.Scanner;publicclassTest60012{publicstaticvoidmain(String[]args){intri,repeat;inti,j,n,a[][]=newint[10][10];Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();for(i=1;i<=n;i++){//给第0行和第0列所有元素赋值,a[0][0]不用赋值a[0][i]=i;//第0行为被加数,从第1列开始赋值1,2,...,na[i][0]=i;//第0列为加数,从第1行元素开始赋值1,2,...,n优选文档优选文档}for(i=1;i<=n;i++)//计算和,从第1行第1列开始for(j=1;j<=i;j++){a[i][j]=i+j;//或a[i][j]=a[i][0]+a[0][j];//所行家第0列元素+所在列第0行元素}for(i=0;i<=n;i++){for(j=0;j<=n;j++)if(i==0&&j==0)System.out.print("+");//在第0行第0列上输出"+"elseif(i==0||j<=i)System.out.print(a[i][j]+"");//输出第0行和下三角阵各元素System.out.println();}}}}60013判断上三角矩阵输入一个正整数repeat(0<repeat<10),做repeat次以下运算:输入1个正整数n(1<n<6)和n阶方阵a中的元素,若是a是上三角矩阵,输出"YES",否则,输出"NO"。(上三角矩阵,即主对角线以下的元素都为0,主对角线为从矩阵的左上角至右下角的连线)例:括号内是说明输入:(repeat=2)123045006(n=3)10-82(n=2)输出:YESNOimportjava.util.Scanner;publicclassTest60013{publicstaticvoidmain(String[]args){intri,repeat;inta[][],i,j,n;booleanflag;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();a=newint[n][n]for(i=0;i<n;i++)for(j=0;j<n;j++)优选文档优选文档a[i][j]=in.nextInt();flag=true;for(i=1;i<n;i++)//上三角矩阵中值为0的元素地址:行1~n-1,列0~i-1for(j=0;j<i;j++)if(a[i][j]!=0)flag=false;//若有一个元素非0,则不是上三角矩阵if(flag)System.out.println("YES");elseSystem.out.println("NO");}}}60014求矩阵每行元素之和输入一个正整数repeat(0<repeat<10),做repeat次以下运算:输入2个正整数m和n(1<m,n),尔后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并存入一维数组row中,再输出row.例:括号内是说明输入:1(repeat=1)2(m=3,n=2)3-8312输出:sumofrow0is9sumofrow1is-7sumofrow2is15importjava.util.Scanner;publicclassTest60014{publicstaticvoidmain(String[]args){intri,repeat;inti,j,m,n,a[][],row[];Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){m=in.nextInt();n=in.nextInt();a=newint[m][n];row=newint[m];for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=in.nextInt();for(i=0;i<m;i++)优选文档优选文档//row[i]=0;//可以不写这句for(j=0;j<n;j++)row[i]+=a[i][j];//计算数组a的第i+1行元素之和,存入数组row的第i+1个元素for(i=0;i<m;i++)System.out.println("sumofrow"+i+"is"+row[i]);}}}60019找鞍点输入一个正整数repeat(0<repeat<10),做repeat次以下运算:输入1个正整数n和n阶方阵a中的元素,若是找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标,否则,输出"NO"(设a最多有1个鞍点)。例:括号内是说明输入:2(repeat=2)1741483616120789(n=4)1741(n=2)输出:a[2][1]=6NOimportjava.util.Scanner;publicclassTest60019{publicstaticvoidmain(String[]args){intri,repeat;inti,j,k,row,col,n,a[][];booleanflag;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();a=newint[n][n];for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j]=in.nextInt();flag=true;row=0;col=0;II不写这些,就通但是编译for(i=0;ivn;i++){II先在第row行中找出该行的最大值a[row][col]row=i;I/row保存最大值的行坐标col=0;IIcol保存最大值的列坐标,假设第i行第0列元素为最大for(j=1;j<n;j++){优选文档优选文档if(a[row][j]>a[row][col])col=j;}II再判断a[row][col]是否是第col列中的最小值flag=true;for(k=0;k<n;k++){if(a[k][col]<a[row][col]){flag=false;break;II若有比a[row][col]小的,可知它不是鞍点,可结束循环}}if(flag)break;II找到1个鞍点后就不用再找了}if(flag)System.out.println("a["+row+"]["+col+"]="+a[row][col]);elseSystem.out.println("NO");}}}编程题60015编程:交换矩阵中的两行编程,输入一个正整数n(n>0),做n次以下运算:输入1个3X3的整数矩阵,将它们存入数组a中,交换其第一行和最后一行后,再以矩阵格式输出。矩阵中每个元素的输出参数为:a[i][j]+"\t"说明:1)源程序中不得出现package要点字;2)程序中的第一个大括号“{”必定位于类名所行家3)类名与变量名由编程者自取。4)指明为整数或整数的数据,不要用浮点种类。输入输出示例:括号内为说明输入:2(n=2,后边将分别输入2个矩阵)135(第一个矩阵)795优选文档优选文档890735(第二个矩阵)971229766输出:(每个数据后有一个制表符)890(第一个矩阵输出)7951359766(第二个矩阵输出)97122735importjava.util.Scanner;publicclassTest60015{publicstaticvoidmain(String[]args){intn,ri,i,j,a[][],temp;Scannerin=newScanner(System.in);n=in.nextInt();for(ri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论