浙大JAVA实验题答案answer
浙大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实验题答案13answer
实验13字符串处理(二)和类的设计1.程序填空题,不要改变与输入输出有关的语句。
以下题目请采用字符串处理来实现:40010求整数的位数以及各位数之和输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个整数,输出它的位数以及各位数之和。
例:括号内是说明输入4 (repeat=4)123456 -100 -1 99输出number=6, sum=21 (123456的位数是6,各位数之和是21)number=3, sum=1 (-100的位数是3,各位数之和是1)number=1, sum=1 (-1的位数是1,各位数之和是1)number=2, sum=18 (99的位数是2,各位数之和是18)import java.util.Sca nner;public class Test40010 {public static void main( Stri ng[] args){int ri, repeat;int nu mber, sum,n;Scanner in=new Scann er(System.i n);repeat=in.n extI nt();for(ri=1; ri<=repeat; ri++){n=in.n extI nt();}}}50003统计一个整数中数字的个数输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1个整数,统计并输出该数中2的个数。
要求定义并调用函数countdigit(number,digit) ,它的功能是统计整数number中数字digit的个数。
例如,countdigit(10090,0) 的返回值是3。
例:括号内是说明输入:3 (repeat=3)-219022345543输出:count=2 (-21902 中有2 个2)count=1 ( 有1 个2)count=0 (345543 中没有2)import java.util.Sca nner;public class Test50003{public static void main( Stri ngargs[]){ int ri, repeat;int count;long n;Scanner in=new Sca nn er(System.i n); repeat=in.n extI nt();for(ri=1; ri<=repeat; ri++){n=in.n extI nt();n=Math. abs (n);count= coun tdigit (n ,2);System.out.pri ntl n("cou nt="+co unt);50009将一个整数逆序输出输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个整数,将它逆序输出。
浙大远程教育考试java(多选)
单选题1.1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?A ArrayListmyList=newObject();B ListmyList=newArrayList();C ArrayListmyList=newList();D ListmyList=newList();正确答案:B单选题2.3.指出正确的表达式A byte=128;B Boolean=null;C longl=0xfffL;D double=0.9239d;正确答案:C单选题3.7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?A CardLayoutB FlowLayoutC BorderLayoutD GridLayout正确答案:B单选题4.4.指出下列程序运行的结果public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); Sytem.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } }A goodandabcB goodandgbcC testokandabcD testokandgbc正确答案:D单选题5.11.下列代码哪几行会出错: 1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I > 0 ) { 5) j = I * 2; 6) System.out.println (" The value of j is " + j ); 7) k = k + 1; 8) I--; 9) } 10} }A line4B line6C line7D line8正确答案:C单选题6.8.给出下面代码:public class Person{ static int arr[] = new int[10];public static void main(String a[]) { System.out.println(arr[1]); } } 那个语句是正确的?A编译时将产生错误;B 编译时正确,运行时将产生错误;C 输出零;D 输出空。
浙大远程教育考试JAVA在线作业-我给复制下来了
单选题1.1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的? B ListmyList=newArrayList();正确答案:B2.2.paint()方法使用哪种类型的参数?A Graphics 正确答案:A3.5.运行下列程序, 会产生什么结果public class X extends Thread implements Runable{ public void run(){ System.out.println("this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } }A 第一行会产生编译错误正确答案:A4.3.指出正确的表达式 C longl=0xfffL;正确答案:C5.10.下列哪些语句关于内存回收的说明是正确的? B 内存回收程序负责释放无用内存正确答案:B6.11.下列代码哪几行会出错: 1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I > 0 ) { 5)j = I * 2; 6) System.out.println (" The value of j is " + j ); 7) k = k + 1; 8) I--; 9) } 10} }C line7 正确答案:C单选题7.9.哪个关键字可以对对象加互斥锁?B synchronized正确答案:B8.7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? B FlowLayout 正确答案:B9.4.指出下列程序运行的结果 public class Example{ String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){ Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+" and "); Sytem.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } }B goodandgbc正确答案:B10.6.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合?AFileInputStreamin=newFileInputStream("file.dat");in.skip(9);intc=in.read(); 正确答案:A11.8.给出下面代码: public classPerson{ static int arr[] = newint[10];public static voidmain(String a[]){ System.out.println(arr[1]); } } 那个语句是正确的?C 输出零;正确答案:C12.2.下面的表达式哪个是正确的?A Strings="你好";inti=3;s+=i;E .Strings=null;inti=(s!=null)&&(s.length>0)?s.length():0;正确答案:AE多选题13.8.下列说法正确的是B ng.Runnable是接口C Double对象在ng包中正确答案:BC14.1.执行下列代码后,哪个结论是正确的 String[] s=new String[10];B s[9]为null; D s.length为10正确答案:BD多选题15.4.哪个布局管理器使用的是组件的最佳尺寸( preferred size)A FlowLayoutE GridBagLayout正确答案:AE多选题16.9.指出正确的表达式A doublea=1.0;B Doublea=newDouble(1.0);正确答案:AB多选题17.12.如果下列的方法能够正常运行,在控制台上将显示什么?publicvoidexample(){ try{ unsafe();System.out.println("Test1");} catch(SafeExceptione){System.out.println("Test 2");}finally{System.out.println("Test3");}System.out.println("Test 4"); }A Test1C Test3D Test4正确答案:ACD多选题18.5.下列哪个方法可用于创建一个可运行的类?ApublicclassXimplementsRunable{publicvoidrun(){......}}BpublicclassXimplementsThread{publicvoidrun(){......}}正确答案:AB19.11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。
浙大JAVA-实验题答案08answerdoc资料
浙大J A V A-实验题答案08a n s w e r实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句。
50001 求1 + 1/2! +....+ 1/n!输入一个正整数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)输出:1.51.7183import java.util.Scanner;public class Test50001 {public static void main(String[] args) {int ri,repeat;int i,n;double s;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*-----------*/s=0;for(i=1;i<=n;i++)s+=1.0/fact(i);System.out.println((long)(s*10000+0.5)/10000.);}}/*---------------*/static double fact(int n) {int i;double f=1;for(i=1;i<=n;i++)f*=i;return f;}}50002 求a+aa+aaa+aa…a输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。
要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。
浙江大学Java语言程序设计实验答案全集
Java答案全集实验汇总。
实验2 数据类型和变量的使用一、程序填空,在屏幕上显示一个短句“Programming in Java is fun!”import java.io.*;public class Test10001{public static void main(String args[]){/*------------------------*/System.out.println("Programming in Java is fun!"); }}二、程序填空,在屏幕上显示如下网格。
+---+---+| | || | |+---+---+import java.io.*;public class Test10002{public static void main(String args[]){/*------------------------*/System.out.println("+---+---+");System.out.println("| | |");System.out.println("| | |");System.out.println("+---+---+");}}三、编写程序,在屏幕上显示如下图案。
(要求:第1行行首无空格,每行行尾无空格)* * * ** * ** **public class Test10003{public static void main(String args[]){/*------------------------*/System.out.println("* * * *");System.out.println(" * * *");System.out.println(" * *");System.out.println(" *");} }实验3 运算符和表达式的使用1、运行结果:m=2 k=1x=1.0 y=2.0 z=-3.0ch1=-A ch2=Ach1=-A ch2=aHello,Welcome to core Java!思考题:(1)字符'A'的Unicode码比字符'a'的Unicode码小32。
浙江大学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实验题答案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的个数。
浙江大学Java语言程序设计实验答案全集
} }
System.out.println(" *");
-2-
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
浙大 JAVA语言程序设计编程答案8
int flag=1; long a=0,digit; if(number<0){
flag=-1; number=-number; } while(number>0){
digit=number%10; //分离出个位数字 a=a*10+digit; //形成当前的逆序数 number=number/10;
例:括号内是说明 输入: 3 (repeat=3) 15 100 0 输出: 1111 1100100 0
import java.util.Scanner; public class Test50010{
public static void main(String args[]){ int ri,repeat; int i,n; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ n=in.nextInt(); /*---------*/ dectobin(n); System.out.println(); }
例:括号内是说明 输入 4 (repeat=4) 123456 -100 -2 99 输出 654321 -1 -2 99
import java.util.Scanner; public class Test50009{
public static void main(String args[]){ int ri,repeat; long n, res; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ n=in.nextInt(); /*---------*/ res=reverse(n); System.out.println(res); }
浙大JAVA 实验题答案10answer
实验10 排序和二维数组的使用1.程序填空题,不要改变与输入输出有关的语句。
60005 排序输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n,再输入n个整数,将它们从大到小排序后输出。
例:括号内是说明输入3 (repeat=3)4 5 1 7 63 1 2 35 5 4 3 2 1输出7 6 5 13 2 15 4 3 2 1import java.util.Scanner;public class Test60005{public static void main(String []args){int ri, repeat;int i, index, k, n, temp,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();/*---------*/for(i=0;i<n-1;i++) { //选择法递减排序index=i;for(k=i+1;k<n;k++){if(a[k]>a[index]) index=k; //找最大值的下标 }if(i!=index){temp=a[i];a[i]=a[index]; a[index]=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++){if(a[k]<a[k+1]){temp=a[k];a[k]=a[k+1];a[k+1]=temp;}}}60011 矩阵运算输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 1 个正整数n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和.(副对角线为从矩阵的右上角至左下角的连线)例:括号内是说明输入:1 (repeat=1)4 (n=4)2 3 4 15 6 1 17 1 8 11 1 1 1sum=35 (2+3+4+5+6+7+8=35)import java.util.Scanner;public class Test60011{public static void main(String []args){int ri, repeat;int a[][],i,j,n,sum;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[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-1 排除最后一行for(j=0;j<n-1;j++){ //j<n-1 排除最后一列if((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)输出:+ 1 2 31 22 3 43 4 5 6import java.util.Scanner;public class Test60012{public static void main(String []args){int ri, repeat;int i,j,n,a[][]=new int[10][10];Scanner in=new Scanner(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列上输出"+ " else if(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"。
浙大 Java语言程序设计编程答案5
实验6 循环结构程序的设计(一)程序填空,不要改变与输入输出有关的语句。
1. 求1+1/2+1/3+……+1/n输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1 个正整数 n(n<=100),计算并输出1+1/2+1/3+……+1/n 。
例:括号内是说明输入2 (repeat=1)210输出1.52.9289684import java.util.Scanner;public class Test40001 {public static void main(String[] args) {int ri, repeat;int i, n;float sum;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();/*--------------------*/sum=0;//注意这条赋初值语句的位置for(i=1;i<=n;i++){sum+=1.0f/i;}System.out.println((int)(sum*1000+0.5)/1000.);}}}2. 求n!输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1 个正整数 n(n<=50),计算并输出n! 。
例:括号内是说明输入3 (repeat=2)1105输出1.03628800.0120.0import java.util.Scanner;public class Test40002 {public static void main(String[] args) {int ri, repeat;int i, n;double fact;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();/*--------------------*/fact=1;for(i=1;i<=n;i++)fact*=i;System.out.println(fact);}}}3. 求x的n次幂输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1 个正实数x和1个正整数 n(n<=50),计算并输出x的n次幂。
浙大JAVA实验习题答案answer
浙⼤JAVA实验习题答案answer 实验4 顺序结构程序的设计1.程序填空题,不要改变与输⼊输出有关的语句。
20002输⼊1个实数x,计算并输出其平⽅根。
例:输⼊1.21输出}取余,int number, digit1, digit2, digit3, digit4, newnum;number=in.nextInt();/*------------------*//*先分离出各位上的数字*/digit1=number/1000;digit2=number/100%10; //或 digit2=(number-digit1*1000)/100; digit3=number/10%10; //或digit3=(number-digit1*1000-digit2*100)/10;digit4=number%10;/*再调整各位上的数字*/digit1=(digit1+9)%10;digit2=(digit2+9)%10;digit3=(digit3+9)%10;digit4=(digit4+9)%10;}Gg}输⼊输出⽰例:括号内为说明输⼊1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出interest = 76.89public class Test20008 {public static void main(String[] args) {int money, year;double interest, rate;Scanner in=new Scanner(System.in);/*使⽤in.nextDouble()和in.nextInt()输⼊double和int型数据*/money=in.nextInt();year=in.nextInt();rate=in.nextDouble(); //注意:这三条输⼊语句不能改变顺序interest=money*Math.pow((1+rate), year)- money;//注意:指数运算没有运算符,应使⽤数学类的⽅法pow()}}}20012 计算x的平⽅(提⽰:注意输出格式)输⼊x,计算x的平⽅y。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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);}}/*------------*/s tatic 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的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number 中数字digit的个数。
例如,countdigit(10090,0)的返回值是3。
例:括号内是说明输入:3 (repeat=3)-219022345543输出:count=2 (-21902中有2个2)count=1 (有1个2)count=0 (345543中没有2)public class Test50003{public static void main(String args[]){int ri, repeat;int count;long n;Scanner in=new Scanner;repeat=();for(ri=1; ri<=repeat; ri++){n=();/*---------*/n=(n);count=countdigit(n,2);}}/*------------*/static int countdigit(long number,int digit){....要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)的返回值是13。
例:括号内是说明输入:3 (repeat=3)1 10 (m=1, n=10)20 100 (m=20, n=100)1000 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 main(String args[]){int ri,repeat;int i, m, n;long f;Scanner in=new Scanner;repeat=();for(ri=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和n(1<=m,n<=10000),输出m 到n之间的所有完数(完数就是因子和与它本身相等的数)。
要求定义并调用函数factorsum(number),它的功能是返回number的因子和。
例如,factorsum(12)的返回值是16(1+2+3+4+6)。
例:括号内是说明输入:2 (repeat=2)20 500 (m=100, n=400)1 100 (m=1, n=100)输出:28 4961 6 28public class Test50007{public static void main(String args[]){int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=();for(ri=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==1)sum=1;for(int i=1;i<=number-1;i++)if(number%i==0)sum+=i;return sum;}}50008输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。
要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。
例:括号内是说明输入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)输出:153 370 371 (1*1*1+5*5*5+3*3*3=153; 3*3*3+7*7*7=370;3*3*3+7*7*7+1*1*1=371)1public class Test50008{public static void main(String args[]){int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=();for(ri=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+=digit*digit*digit;}if(number==sum)return true;else return false;}}50009输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个整数,将它逆序输出。
要求定义并调用函数reverse(number),它的功能是返回number的逆序数。
例如reverse(12345)的返回值是54321。
例:括号内是说明输入4 (repeat=4)123456 -100 -2 99输出654321-1-299public class Test50009{public static void main(String args[]){int ri,repeat;long n, res;Scanner in=new Scanner;repeat=();for(ri=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=a*10+digit; //形成当前的逆序数number=number/10;}return flag*a;}}50011输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入三个整数a、b和c,输出其中较大的数。
要求定义和调用函数max(a, b, c)找出a、b 中较大的数,函数形参a、b和c的类型是int。
输入输出示例:括号内是说明输入3 (repeat=3)输入:5 8 9 (a=5, b=8)-1 -10 -5 (a=-1, b=-10)1 1 1 (a=1, b=1)输出:max(5,8,9)=9max(-1,-10,-5)=-1max(1,1,1)=1public class Test50011 {public static void main(String args[]) {int ri, repeat;int a,b,c,maximun;Scanner in = new Scanner;repeat = ();for (ri = 1; ri <= repeat; ri++) {a = ();b = ();c=();/*-----------------*/maximun=maximun(a,b,c);Sy}}/*-------------------*/static int maximun(int a,int b,int c){int max=a;if(max<b)max=b;if(max<c)max=c; return max; }}。