浙大JAVA 实验题答案11answer

合集下载

浙大JAVA实验题答案

浙大JAVA实验题答案

实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句;50001输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和保留 4 位小数;s = 1 + 1/2 +....+ 1/n要求定义并调用函数factn计算n的阶乘;例:括号内是说明输入:2 repeat=22 n=210 n=10输出:public class Test50001 {public static void mainString args {int ri,repeat;int i,n;double s;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/-----------/s=0;for i=1;i<=n;i++s+=fact i;}}/---------------/static double fact int n {int i;double f=1;for i=1;i<=n;i++f=i;return f;}}50002输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aa…an个a之和;要求定义并调用函数fna,n,它的功能是返回aa…an个a;例如,fn3,2的返回值是33;例:括号内是说明输入2 repeat=22 3 a=2, n=38 5 a=8, n=5输出246 2+22+22298760 8+88+888+8888+88888imponner;public class Test50002{public static void mainString args{int ri, repeat;int i, n,a;long sn;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{a=;n=;/------------/sn=0;for i=1;i<=n;i++sn+=fn a,i;}}/------------/s tatic int fn int a,int n{int s=0;forint i=1;i<=n;i++s=s10+a;return s;}}50003输入一个正整数repeat 0<repeat<10,做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数;要求定义并调用函数countdigitnumber,digit,它的功能是统计整数number中数字digit的个数;例如,countdigit10090,0的返回值是3;例:括号内是说明输入:3 repeat=3-219022345543输出:count=2 -21902中有2个2count=1 有1个2count=0 345543中没有2public class Test50003{public static void mainString args{int ri, repeat;int count;long n;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{n=;/---------/n=n;count=countdigit n,2;}}/------------/static int countdigit long number,int digit{....要求定义并调用函数fibn,它的功能是返回第n项Fibonacci数;例如,fib7的返回值是13;例:括号内是说明输入:3 repeat=31 10 m=1, n=1020 100 m=20, n=1001000 6000 m=1000, n=6000输出:1 123 5 8 1到10之间的Fibonacci数21 34 55 89 20到100之间的Fibonacci数1597 2584 4181 1000到6000之间的Fibonacci数public class Test50006{public static void mainString args{int ri,repeat;int i, m, n;long f;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{m=;n=;/---------/i=1;f=1;while f<=n{if f>=m " ";i++;f=fib i;}}}/------------/sta ti c long fib int n{ //返回第n项Fibonacci数int i;long a=1,b=1,f=1;for i=3;i<=n;i++{ //从第3项开始计算f=a+b;a=b;b=f;}return f;}}50007输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=10000,输出m 到n之间的所有完数完数就是因子和与它本身相等的数;要求定义并调用函数factorsumnumber,它的功能是返回number的因子和;例如,factorsum12的返回值是161+2+3+4+6;例:括号内是说明输入:2 repeat=220 500 m=100, n=4001 100 m=1, n=100输出:28 4961 6 28public class Test50007{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if i==factorsum i" ";}}/---------/static int factorsum int number{ //返回number的因子和int sum=0;if number==1sum=1;forint i=1;i<=number-1;i++if number%i==0sum+=i;return sum;}}50008输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=1000,输出m 到n之间的所有满足各位数字的立方和等于它本身的数;要求定义并调用函数isnumber判断number的各位数字之立方和是否等于它本身;例:括号内是说明输入:2 repeat=2100 400 m=100, n=4001 100 m=1, n=100输出:153 370 371 111+555+333=153; 333+777=370; 333+777+111=3711public class Test50008{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if is i" ";}}/---------///判断number的各位数字之立方和是否等于它本身static boolean is int number{int sum=0,n,digit;n=number;while n>0{digit=n%10;n=n/10;sum+=digitdigitdigit;}if number==sum return true;else return false;}}50009输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入一个整数,将它逆序输出;要求定义并调用函数reversenumber,它的功能是返回number的逆序数;例如reverse12345的返回值是54321;例:括号内是说明输入4 repeat=4123456 -100 -2 99输出654321-1-299public class Test50009{public static void mainString args{int ri,repeat;long n, res;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/---------/res=reverse n;}}/---------/static long reverse long number{//返回number的逆序数int flag=1;long a=0,digit;if number<0{flag=-1;number=-number;}while number>0{digit=number%10; //分离出个位数字a=a10+digit; //形成当前的逆序数number=number/10;}return flaga;}}50011输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入三个整数a、b和c,输出其中较大的数;要求定义和调用函数maxa, b, c找出a、b中较大的数,函数形参a、b和c的类型是int;输入输出示例:括号内是说明输入3 repeat=3输入:5 8 9 a=5, b=8-1 -10 -5 a=-1, b=-101 1 1 a=1, b=1输出:max5,8,9=9max-1,-10,-5=-1max1,1,1=1public class Test50011 {public static void mainString args {int ri, repeat;int a,b,c,maximun;Scanner in = new Scanner;repeat = ;for ri = 1; ri <= repeat; ri++ {a = ;b = ;c=;/-----------------/maximun=maximuna,b,c;Sy}}/-------------------/static int maximunint a,int b,int c{int max=a;ifmax<bmax=b;ifmax<cmax=c;return max;}}。

java第十一章课后习题答案

java第十一章课后习题答案

11.1、线程的概念:Thread 每个正在系统上运行的程序都是一个进程。

每个进程包含一到多个线程。

进程也可能是整个程序或者是部分程序的动态执行。

线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。

也可以把它理解为代码运行的上下文。

所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。

通常由操作系统负责多个线程的调度和执行。

多线程的概念:多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

线程是在同一时间需要完成多项任务的时候实现的。

多线程的优点:使用线程可以把占据长时间的程序中的任务放到后台去处理用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度·11.2、答:一个线程从创建到不再有用称为线程的生命周期。

线程的生命周期可以分为4个状态:①创建(new)状态;②可运行(runnable)状态;⑧不可运行(not runnable)状态;④消亡(dead)状态。

创建状态是指创建一个线程所对应的对象的过程。

Java系统中,这些对象都是从java. lang包内一个称为Thread的类用关键字new创建的。

刚创建的线程不能执行,必须向系统进行注册、分配必要的资源后才能进入可运行状态,这个步骤是由start操作完成的。

而处于可运行状态的线程也未必一定处于运行中,它有可能由于外部的I/O请求而处于不可运行状态。

进入消亡状态后,此线程就不再存在了。

答:一个线程创建之后,总是处于其生命周期的4个状态之一中。

线程的状态表明此线程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程进行操作来改变状态。

这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起(suspend)、恢复(resume)、等待(wait)和通知(notify)。

每一个操作都对应了一个方法,这些方法是由软件包ng提供的。

浙大Java语言程序设计编程答案10

浙大Java语言程序设计编程答案10

实验11 字符串处理1. 统计单词(选做) 40031输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一行字符,统计其中单词的个数。

各单词之间用空格分隔,空格数可以是多个。

例:括号内是说明输入2 (repeat=2)Reold building room 123Programming is fun输出43import java.util.Scanner;public class Test40031{public static void main(String []args ){int ri, repeat,count, word,i;String line;char c;Scanner in=new Scanner(System.in);repeat=(in.nextLine()).charAt(0)-'0';for(ri=1; ri<=repeat; ri++){line=in.nextLine();/*---------*/count=word=0;for(i=0;i<line.length();i++){c=line.charAt(i); //从字符串line中取出第i个字符,放入变量cif(c==32) word=0; //当前字符是空格,表示不是单词else if(word==0){ //当前字符不是空格,同时word=0,表示新单词开始word=1;count++;}}System.out.println( count);}}}2. 输出一个整数的各位数字(选做) 40032输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个整数,从高位开始逐位输出它的各位数字。

输出语句:System.out.print(digit+" ");例:括号内是说明输入3 (repeat=3)123456-6008输出1 2 3 4 5 66 0 08import java.util.Scanner;public class Test40032{public static void main(String []args ){int ri, repeat;int digit;long n, temp, pow;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextLong();/*---------*/n=Math.abs(n);String s=String.valueOf(n); //把整数n转换成字符串for(int i=0;i<s.length();i++){digit=s.charAt(i)-'0'; //从高位到低位依次得到一位数字System.out.print(digit+" "); //输出该位数字,再加一个空格}System.out.println();}}}注意:若语句digit=s.charAt(i)-'0';改为digit=s.charAt(i);则变量digit的值为该字符的unicode编码。

java习题及答案第11章 习题参考答案

java习题及答案第11章 习题参考答案

习题11 课后习题答案1.常见网络端口有哪些?答案:在计算机中操作系统内部使用1-1024保留端口号,所以设计应用程序时需选择除此之外的端口。

如:20文件传输协议(默认数据口) ,80全球信息网超文本传输协议(www)。

2.如何连接和读取URL中的资源?答案:(1)通过URLConnection连接WWW:用URL的openStream()方法从网络上读取数据,若要输出数据,用类URLConnection,与URL建立连接,然后对其进行读/写操作。

(2)用URL读取WWW数据资源:在取得一个URL对象后,通过使用URL的openStream()方法,可以获得所需的特定的WWW 资源。

3.什么是套接字?有哪几种套接字?答案:套接字Socket是网络通信的应用程序接口,可以实现客户机与服务器之间的通信。

常用的TCP/IP协议的3种套接字类型有:流套接字(SOCK_STREAM);数据包套接字(SOCK_DGRAM);原始套接字(SOCK_RAW)。

流套接字用于提供面向连接、可靠的数据传输服务。

该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。

数据包套接字提供了一种无连接的服务。

该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据包套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据包套接字只能读取UDP协议的数据。

因此,如果要访问其他协议发送数据必须使用原始套接字。

4.简述TCP套接字的实现过程?答案:实现TCP套接字基本步骤分为服务器端和客户端两部分。

(1)服务器端步骤创建套接字;绑定套接字;设置套接字为监听模式,进入被动接收连接请求状态;接收请求,建立连接;读/写数据;终止连接。

(2)客户端步骤创建套接字;与远程服务器程序连接;读/写数据;终止连接。

JAVA实验答案全

JAVA实验答案全
实验 3:Java 流程控制及数组
4.编写一个 Java Application 程序,输出区间[200,300]上的所有素数,要求写出程序的运 行结果。
public class primePrint{ public static void main(String args[])
{ int Leabharlann ,j; System.out.println("区间[200,300]上的所有素数:"); for(i=200;i<=300;i++){ for(j=2;j<=Math.sqrt(i);j++) if(i%j==0) break; if(j>Math.sqrt(i)) System.out.print(i+" "); } } }
} } 3.按下面的要求完成 Java Application 程序,写出程序的运行结果。 (1)定义一个 Java 类 Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的 横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前 位置等。 (2)定义一个测试类 JavaTest,创建 Point 类的对象并对其进行有关的操作。
} public class JavaTest {
public static void main(String args[]){ Point P; P=new Point(); P.set_Location(1.1f,1.2f); System.out.print(P.getLocation()); P.changeLocation(1.3f,1.4f); System.out.print(P.getLocation()); } }

浙江大学java上机参考答案48页word文档

浙江大学java上机参考答案48页word文档

一、求两个数的和与差。

程序填空,不要改变与输入输出有关的语句。

输入整数a和b,计算并输出a、b的和与差。

import java.io.*;import java.util.Scanner;public class Test20001{public static void main(String args[]){int a, b, sum, diff;Scanner in=new Scanner(System.in);a=in.nextInt();b=in.nextInt();sum=a+b;diff=a-b;System.out.println("The sum is "+sum);System.out.println("The difference is "+diff);二、求平方根。

程序填空,不要改变与输入输出有关的语句。

输入1个实数x,计算并输出其平方根。

例:输入1.21输出The square root of 1.21 is 1.1import java.io.*;import java.util.Scanner;public class Test20002{public static void main(String args[]){double x, root;Scanner in=new Scanner(System.in);x=in.nextDouble();r oot=Math.sqrt(x);System.out.println("The square root of "+x+" is "+root);三、华氏温度转换为摄氏温度。

程序填空,不要改变与输入输出有关的语句。

输入华氏温度f,计算并输出相应的摄氏温度c。

c = 5/9(f-32).例:括号内是说明:输入17.2 (华氏温度)输出The temprature is -8.222222222222223 import java.util.Scanner;public class Test20003 {public static void main(String[] args) {Scanner in=new Scanner(System.in);double f, c;f=in.nextDouble();c=5.0/9*(f-32);System.out.println("The temprature is "+c);四、计算旅途时间。

浙大JAVA 实验题答案11answer

浙大JAVA 实验题答案11answer

实验11 数组作为方法的参数1.程序填空题,不要改变与输入输出有关的语句。

60030 编写排序函数(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n,再输入n个整数,将它们从小到大排序后输出。

要求将排序编写为一个sort()方法。

例:括号内是说明输入3 (repeat=3)4 5 1 7 63 1 2 35 5 4 3 2 1输出1 5 6 71 2 31 2 3 4 5import java.util.Scanner;public class Test60030{public static void main(String []args){int ri, repeat;int i, n, a[];Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[n];for(i=0; i<n; i++)a[i]=in.nextInt();sort(a);for(i=0; i<n; i++)System.out.print(a[i]+" ");System.out.println();}}/*---------*///说明:数组作参数时,传递的是地址,形参数组和实参数组共用同一块内存,//方法sort()中对形参数组b排序,实际上就是对实参数组a排序,//所以不需要返回值。

static void sort(int b[]){int i,j,k,temp;for(i=0;i<b.length-1;i++) { //选择法递增排序k=i;for(j=i+1;j<b.length;j++)if(b[k]>b[j]) k=j;if(i!=k){temp=b[i];b[i]=b[k]; b[k]=temp;}}}}60031 判断两个矩阵是否相同(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 1 个正整数n(1≤n≤6), 再读入2个 n 阶方阵 a和b , 判断2个方阵是否相同。

浙大JAVA实验题答案answer完整版

浙大JAVA实验题答案answer完整版

浙大J A V A实验题答案a n s w e rHEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句。

50001输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。

s = 1 + 1/2! +....+ 1/n!要求定义并调用函数fact(n)计算n的阶乘。

例:括号内是说明输入:2 (repeat=2)2 (n=2)10 (n=10)输出:public class Test50001 {public static void main(String[] args) {int ri,repeat;int i,n;double s;Scanner in=new Scanner;repeat=();for(ri=1;ri<=repeat;ri++){n=();/*-----------*/s=0;for(i=1;i<=n;i++)s+=fact(i);}}/*---------------*/static double fact(int n) {int i;double f=1;for(i=1;i<=n;i++)f*=i;return f;}}50002输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。

要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。

例如,fn(3,2)的返回值是33。

例:括号内是说明输入2 (repeat=2)2 3 (a=2, n=3)8 5 (a=8, n=5)输出246 (2+22+222)98760 (8+88+888+8888+88888)imponner;public class Test50002{public static void main(String args[]){int ri, repeat;int i, n,a;long sn;Scanner in=new Scanner;repeat=();for(ri=1; ri<=repeat; ri++){a=();n=();/*------------*/sn=0;for(i=1;i<=n;i++)sn+=fn(a,i);}}/*------------*/static int fn(int a,int n){int s=0;for(int i=1;i<=n;i++)s=s*10+a;return s;}}50003输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验11 数组作为方法的参数1.程序填空题,不要改变与输入输出有关的语句。

60030 编写排序函数(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n,再输入n个整数,将它们从小到大排序后输出。

要求将排序编写为一个sort()方法。

例:括号内是说明输入3 (repeat=3)4 5 1 7 63 1 2 35 5 4 3 2 1输出1 5 6 71 2 31 2 3 4 5import java.util.Scanner;public class Test60030{public static void main(String []args){int ri, repeat;int i, n, a[];Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[n];for(i=0; i<n; i++)a[i]=in.nextInt();sort(a);for(i=0; i<n; i++)System.out.print(a[i]+" ");System.out.println();}}/*---------*///说明:数组作参数时,传递的是地址,形参数组和实参数组共用同一块内存,//方法sort()中对形参数组b排序,实际上就是对实参数组a排序,//所以不需要返回值。

static void sort(int b[]){int i,j,k,temp;for(i=0;i<b.length-1;i++) { //选择法递增排序k=i;for(j=i+1;j<b.length;j++)if(b[k]>b[j]) k=j;if(i!=k){temp=b[i];b[i]=b[k]; b[k]=temp;}}}}60031 判断两个矩阵是否相同(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 1 个正整数n(1≤n≤6), 再读入2个 n 阶方阵 a和b , 判断2个方阵是否相同。

要求:编写判断函数(方法)judge()。

例:括号内是说明输入:2 (repeat=2)3 (n=3)1 2 3 4 5 6 7 8 9 (a矩阵)1 1 1 1 1 1 1 1 1 (b矩阵)21 2 3 41 2 3 4输出:NoYesimport java.util.Scanner;public class Test60031{public static void main(String []args){int ri, repeat;int a[][],b[][],i,j,n;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[n][n]; b=new int[n][n];for(i=0; i<n; i++)for(j=0;j<n;j++)a[i][j]=in.nextInt();for(i=0; i<n; i++)for(j=0;j<n;j++)if(judge(a,b))System.out.println("Yes");elseSystem.out.println("No");}}/*--------------------*/static boolean judge(int a[][],int b[][]){for(int i=0;i<a.length; i++)for(int j=0;j<a[i].length;j++)if(a[i][j]!=b[i][j]) return false;return true;}}60032 编写函数求矩阵最大值输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 2 个正整数 m和n(1≤m,n≤6), 再读入1个m×n 阶矩阵 a , 计算该矩阵元素的最大值。

要求:编写max(),返回矩阵元素的最大值。

例:括号内是说明输入:1 (repeat=1)3 2 (m=3,n=2)23 465567 7889 4输出:max=567import java.util.Scanner;public class Test60032{public static void main(String []args){int ri, repeat;int a[][],i,j,m,n;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){m=in.nextInt(); n=in.nextInt();a=new int[m][n];for(i=0; i<m; i++)for(j=0;j<n;j++)System.out.println("max="+max(a));}}/*---------*/static int max(int b[][]){int max=b[0][0];for(int i=0;i<b.length;i++)for(int j=0;j<b[i].length;j++)if(max<b[i][j]) max=b[i][j];return max;}}60033 矩阵相加(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 1 个正整数n(1≤n≤6), 再读入2个 n 阶方阵 a和b , 计算矩阵的和。

要求:(1)编写计算矩阵和的函数(方法)add()。

(2)编写输出矩阵的方法prt()。

矩阵元素输出使用:System.out.print(a[i][j]+" ");例:括号内是说明输入:1 (repeat=1)3 (n=3)1 2 3 4 5 6 7 8 9 (a矩阵)1 1 1 1 1 1 1 1 1 (b矩阵)输出:A Matrix1 2 34 5 67 8 9B Matrix1 1 11 1 11 1 1A+B Matrix2 3 45 6 78 9 10import java.util.Scanner;public class Test60033{public static void main(String []args){int ri, repeat;int a[][],b[][],c[][],i,j,n;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[n][n]; b=new int[n][n];c=new int[n][n];for(i=0; i<n; i++)for(j=0;j<n;j++)a[i][j]=in.nextInt();for(i=0; i<n; i++)for(j=0;j<n;j++)b[i][j]=in.nextInt();add(a,b,c);prt("A Matrix",a);prt("B Matrix",b);prt("A+B Matrix",c);}}/*----加法-----*/static void add(int x[][],int y[][],int z[][]){for(int i=0;i<x.length;i++)for(int j=0;j<x[i].length;j++)z[i][j]=x[i][j]+y[i][j];}/*----输出-----*/static void prt(String s,int a[][]){System.out.println(s);for(int i=0; i<a.length; i++){for(int j=0;j<a[i].length;j++)System.out.print(a[i][j]+" ");System.out.println();}}}2.编程题60006 编程:简化的插入排序(提示:本题只需考虑整数升序排列的情况)输入一个正整数n (n>0),做n 次下列运算:输入一组(5个)有序的整数,再输入一个整数x,把x 插入到这组数据中,使该组数据(6个数)仍然有序。

说明:1)源程序中不得出现package关键字;2)程序中的第一个大括号“{”必须位于类名所在行。

3)类名与变量名由编程者自取。

4)指明为整数或整数的数据,不要用浮点类型。

输入输出示例:括号内为说明输入:2 (n=2,后面将输入2组数据和对应的x)1 2 4 5 7(第一组有序整数)3 (待插入整数x=3)1 2 5 7 9(第二组有序整数)-10 (待插入整数x=-10)输出(输出的每个数后有一个空格,每组数占一行):1 2 3 4 5 7 (插入后的第一组6个有序数)-10 1 2 5 7 9 (插入后的第二组6个有序数)import java.util.Scanner;public class Test60006 {public static void main(String []args){int ri,n;int a[],x,i,j;Scanner in=new Scanner(System.in);n=in.nextInt();for(ri=1; ri<=n; ri++){a=new int[6]; //增加一个元素,保存插入的整数for(i=0; i<5; i++) //i<5可写成:i<a.length-1a[i]=in.nextInt();x=in.nextInt();//1.找到插入点 ifor(i=0;i<5;i++) //如果插入到最前面,i=0时就停止循环了if(a[i]>=x) break; //如果插入到最后面,循环正常结束,i=5 //2.插入点及其后元素后移for(j=4;j>=i;j--) //j=4可写成:j=a.length-2a[j+1]=a[j]; //如果插入到最后面,i=5,不会执行该循环//3.插入整数a[i]=x;for(i=0; i<a.length; i++)System.out.print(a[i]+" ");System.out.println();}}}60007 编程:查找指定元素编程,输入一个正整数n (n>0),做n 次下列运算:输入6个整数,将它们存入数组a 中,再输入一个整数x,然后在数组a 中查找与x 相同的元素,如果找到,输出x 在数组a 中对应元素的最小下标,如果没有找到,输出相应信息。

相关文档
最新文档