收藏 分销(赏)

Java上机程序答案.doc

上传人:精**** 文档编号:1494943 上传时间:2024-04-29 格式:DOC 页数:31 大小:143.01KB 下载积分:12 金币
下载 相关 举报
Java上机程序答案.doc_第1页
第1页 / 共31页
Java上机程序答案.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
Java程序的基本结构: public class Test1 //定义一个类,名称为Test1 { //类定义的开始 public static void main(String[] args) //定义主程序 { //主程序的开始 //程序代码部分 //程序代码部分 //程序代码部分 } //主程序的结束 } //类定义的结束 Java的基本数据类型: int 整数类型 long 长整数类型 float 单精度浮点数类型 double 双精度浮点数类型 char 字符类型 声明变量的方法: 类型名称 变量名称1,变量名称2,.....; 例如: int a,b; long c,d,e; float x,y,z; double s,t; char ch1,ch2; 赋值语句结构: 变量名称1=变量名称2; 变量名称=数值; 变量名称=算术表达式;(关系表达式、逻辑表达式) 例如: s=15/6; a=3+b*2; c=a; d=10; 打印语句: System.out.print(打印项); System.out.print(打印项1+打印项2+......+打印项n); System.out.println(打印项); System.out.println(打印项1+打印项2+......+打印项n); 例如: System.out.print(s); System.out.print(“s=”+s); System.out.println(a); System.out.println(“a=”+a); 输入语句: imports Java.io.*; public class Ta1 { public static void main(String args[])throws IOException { InputStreamReader read1=new InputStreamReader(System.in); BufferedReader input1=new BufferedReader(read1); String s1; ...... s1=input1.readLine(); //从键盘读取字符串给变量s1 a=Integer.parseInt(s1); //将s1转换为整数类型数值给变量a b=Double.parseDouble(s1); //将s1转换为双精度类型数值给变量b ...... } } 条件语句: 格式1: if(条件关系式) { 语句块1; } 格式2: if(条件关系式) { 语句块1; } else { 语句块2; } 关系运算符: 等于 == 不等于 != 大于 > 大于等于 >= 小于 < 小于等于 <= 逻辑运算符: 非 ! 与 && 或 || for循环语句: for(循环变量=初始值;循环变量<=终止值;循环变量=循环变量+步长值) { 循环体语句; } for(循环变量=初始值;循环变量>=终止值;循环变量=循环变量-步长值) { 循环体语句; } for(循环变量=初始值;循环变量<=终止值;循环变量=循环变量*步长值) { 循环体语句; } while循环语句: 当关系表达式成立时,执行循环体中的语句,然后返回重新检验关系表达式是否成立,若不成立则不执行循环体中语句,结束循环。 while(关系表达式) { 循环体语句块; } do...while循环语句: 首先执行循环体中语句块,然后检验关系表达式是否成立,若成立,则继续执行循环体中语句,否则,结束循环。 do { 循环体语句块; }while(关系表达式) 数组的声明方法: 数据类型 数组名称[ ]=new 数据类型[元素个数]; 数据类型 数组名称[ ]={数据集合}; 例如: double s[]=new double[20]; double t[]={12,34,56,78,98}; 数组的输入模块: int i; for(i=0;i<20;i=i+1) { a[i]=Math.floor(Math.random()*(N-M+1))+M; } for(i=0;i<5;i=i+1) { s1=input1.readLine(); a[i]=Double.parseDouble(s1); } 数组的输出模块: for(i=0;i<20;i=i+1) { System.out.println(a[i]); } 随机函数的使用: 随机函数:Math.random() 返回[0,1.0) 之间的随机数。0<=Math.random()<1 生面某范围内随机整数: 1. 产生0~1这间的随机小数x x=Math.random( ); 2. 产生[0,n]这间的随机整数x x=(int)Math.floor((n+1)*Math.random( )); 3. 产生[m,n]范围内的随机整数x x=(int)Math.floor((n-m+1)*Math.random( )+m); 练习: 1.已知一般人平均每磅体重每天需19卡路里,若已知某人的体重(单位:千克),求此人一天需要多少卡路里?(1磅约为0.455千克) Class Calories { Public static void main(String args[]) { double body=120; double ca=body*19/0.455; System.out.println(“此人一天需:”+ca+“卡路里”); } } 2.身体质量指数(BMI)是衡量身体健康与否的一种标准,一般认为身体质量指数(BMI)在20至25之间是健康的。计算BMI的公式:体重除以身高的平方(体重单位为千克,身高单位为米)。根据自己的实际情况,计算出自己的BMI。 import java.util.*; public class demo02 { public static void main(String[] args) { Scanner br = new Scanner(System.in); double weight = br.nextDouble(); double height = br.nextDouble(); double bmi = weight/Math.pow(height,2); System.out.println("BMI指数是:"+bmi); } } 3.已知三角形边长分别为33、35、12,利用海伦公式求其面积。 海伦公式: 假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:     S=    而公式里的p为半周长:p=(a+b+c)/2 其中,平方根的表示法:Math.sqrt(x) public class demo03 { public static void main(String[] args) { int a = 33; int b = 35; int c = 12; int p = (a+b+c)/2; double s =Math.sqrt(p*(p-a)*(p-b)*(p-c)); System.out.println(s); } } 4. 已知一个圆的半径是20cm,求该圆的周长与面积。其中,圆周率的表示法:Math.PI。 public class demo04 { public static void main(String[] args) { int r = 20; double c = 2*Math.PI*r; double s = Math.PI*Math.pow(r, 2); System.out.println("圆周长是:"+c+",圆面积是:"+s); } } 5.当给出X的值时,求下列函数的值: y=0 (x<0) y=x的平方根 (x>=0) public class demo05 { public static void main(String[] args) { Scanner br = new Scanner(System.in); double x = br.nextDouble(); double y = 0; if (x >= 0) { y = Math.sqrt(x); } System.out.println(y); } } 6. 某商场对苹果进行促销,规定购买2公斤以上可以在原价每公斤1.5元的基础上打8折,设计一个程序计算购买X公斤苹果的应付款。 import java.util.Scanner; public class demo06 { public static void main(String[] args) { double perkgcost = 1.5; Scanner br = new Scanner(System.in); double kilogram = br.nextDouble(); double pay =0; if (kilogram >2) { pay = kilogram*perkgcost*0.8; }else{ pay = kilogram*perkgcost; } System.out.println("价格是:"+pay); } } 7. 如果一个数能被7整除,则输出这个数,否则输出“此数不能整除7”。 import java.util.Scanner; public class demo07 { public static void main(String[] args) { Scanner br = new Scanner(System.in); int number = br.nextInt(); if (number%7!=0){ System.out.println("此数不能整除7"); }else{ System.out.println(number); } } } 8. 火车行李托运费,行李重量在50kg以下,每千克按0.10元计,如50kg,超出部分每千克按0.20元计。 import java.util.Scanner; public class demo08 { public static void main(String[] args) { Scanner br = new Scanner(System.in); double weight = br.nextDouble(); double over = weight-50; double fare = 0; if (over >= 0){ fare = 50*0.1+over*0.2; }else{ fare = weight*0.1; } System.out.println("运费是:"+fare); } } 9. 闰年判断:判断条件是:该年份能被4但不能被100整除,或能被400整除。 import java.io.*; public class e04 { public static void main(String args[]) throws IOException { InputStreamReader reader=new InputStreamReader(System.in); BufferedReader input=new BufferedReader(reader); System.out.print("Enter the 年份:"); String s1=input.readLine(); int x=Integer.parseInt(s1); if ((x%4==0)&(x%100!=0)||(x%400==0)) System.out.println(x+"是闰年"); else System.out.println(x+"不是闰年"); } } 10. 通过键盘输入一个数,判断一个数是正数、零还是负数。 import java.util.Scanner; public class demo10 { public static void main(String[] args) { Scanner br = new Scanner(System.in); double number = br.nextDouble(); if(number==0){ System.out.println("输入的是零"); }else{ if(number>0){ System.out.println("输入的是正数"); }else { System.out.println("输入的是负数"); } } } } 11.输入三个整数,输出其中最大数。 import java.util.Scanner; public class demo11 { public static void main(String[] args) { Scanner br = new Scanner(System.in); int a = br.nextInt(); int b = br.nextInt(); int c = br.nextInt(); int temp = 0; if (a>b){ temp=a; }else{ temp=b; } if (c>temp){ temp=c; } System.out.println("最大的数是:"+temp); } } 12.求解二次方程Ax2+Bx+C=0的根,系数A,B,C由键盘输入 import java.util.Scanner; public class demo12 { public static void main(String[] args) { Scanner br = new Scanner(System.in); double a = br.nextDouble(); double b = br.nextDouble(); double c = br.nextDouble(); double x1 = 0; double x2 = 0; double x = 0; if (a==0){ //A=0 x=-c/b; System.out.println("此方程式不是一元二次方程,其解为:"+x); }else{ double delta=Math.pow(b,2)-4*a*c; //delta=b^2-4ac if(delta<0){ //delta<0 System.out.println("此方程式无解!"); }else{ //delta>=0 x1=(-b+Math.sqrt(delta))/(2*a); x2=(-b-Math.sqrt(delta))/(2*a); if (x1==x2){ System.out.println("此方程式有一个解为:"+x1); }else{ System.out.println("此方程式有两个解为:"+x1+"和"+x2); } } } } } 13.显示所有100内的偶数; public class demo13 { public static void main(String[] args) { int num; System.out.println("100以内的偶数有:"); for (num=0;num<=100;num+=2){ System.out.print(num+" "); } } } 14.显示所有100内的奇数; public class demo14 { public static void main(String[] args) { int num; System.out.println("100以内的奇数有:"); for (num=1;num<=100;num+=2){ System.out.print(num+" "); } } } 15.显示所有200-300间的偶数; public class demo15 { public static void main(String[] args) { int num; System.out.println("200到300间的偶数有:"); for (num=200;num<=300;num+=2){ System.out.print(num+" "); } } } 16.显示所有100内有能被7整除的数 public class demo16 { public static void main(String[] args) { int num; System.out.println("100以内能被7整除的数有:"); for (num=1;num<=100;num+=1){ if(num%7==0){ System.out.print(num+" "); } } } } 17.显示所有既能被3整除又能被7整除的两位正整数,数值之间用“:”隔开。 public class demo17 { public static void main(String[] args) { int num,tmp=0; System.out.println("既能被3整除又能被7整除的两位正整数有:"); for (num=1;num<100;num+=1){ if((num%7==0)&&(num%3==0)){ if(tmp==1){ System.out.print(":"+num); }else{ tmp=1; System.out.print(num); } } } } } 18.显示所有能被3整除的两位正奇数,数值之间用“-”隔开。 public class demo18 { public static void main(String[] args) { int num,tmp=0; System.out.println("能被3整除的两位正奇数有:"); for (num=11;num<=100;num+=2){ if(num%3==0){ if(tmp==1){ System.out.print("-"+num); }else{ System.out.print(num); tmp=1; } } } } } 19.求之和。165 public class demo19 { public static void main(String[] args) { int i,j=0; for(i=3;i<=30;i+=3){ j+=i; } System.out.print(j); } } 20.求之和。1326 public class demo20 { public static void main(String[] args) { int i,j=0; for (i=1;i<=101;i+=4){ j+=i; } System.out.print(j); } } 21.求之和。110 public class demo21 { public static void main(String[] args) { int i,j=0; for(i=2;i<=20;i+=2){ j+=i; } System.out.print(j); } } 22.求之和。4.18737751763962 提示:算式中每个分数的分母有规律,则用循环变量来描述分母的变化过程,但是每次累加的内容是分母所对应的整个分数。 (如:若分数的结构是分子为1、分母为x,则分数为1/x) public class demo22 { public static void main(String[] args) { double i,j=0; for(i=2;i<=100;i++){ j+=1/i; } System.out.print(j); } } 23.求之和。17.354641295237272 提示:若分子为x,则分母为x+1,则分数为:x/(x+1) public class demo23 { public static void main(String[] args) { double i,j=0; for(i=1;i<=20;i++){ j+=i/(i+1); } System.out.print(j); } } 24.求之和。44200 public class demo24 { public static void main(String[] args) { // TODO Auto-generated method stub int i,j=0; for(i=1;i<51;i++){ j+=i*(i+1); } System.out.print(j); } } 25.求之积。3628800 提示:注意累乘变量的初始值是什么值? public class demo25 { public static void main(String[] args) { int i,j=1; for(i=1;i<11;i++){ j*=i; } System.out.print(j); } } 26.求之积。3.7158912E9 public class demo26 { public static void main(String[] args) { float i,j=1; for(i=2;i<21;i+=2){ j*=i; } System.out.print(j); } } 27.求之和。1111111 public class demo27 { public static void main(String[] args) { int i,j=0; for(i=0;i<7;i++){ j+=Math.pow(10, i); } System.out.print(j); } } 28.求之和。1234567 public class demo28 { public static void main(String[] args) { int i,j,k=0; for (i=0;i<7;i++){ for(j=0;j<=i;j++){ k+=Math.pow(10, j); } } System.out.print(k); } } 29.求之和。0.9990234375 public class demo29 { public static void main(String[] args) { double i,j=0; for(i=2;i<=1024;i*=2){ j+=1/i; } System.out.print(j); } } 30.求之和。4037913 提示:先求乘积的算式,再累加所求的积。 public class demo30 { public static void main(String[] args) { int i,j,k=0; for(i=1;i<11;i++){ int l=1; for(j=i;j>=2;j--){ l*=j; } k+=l; } System.out.print(k); } } 31.求之和。220 public class demo31 { public static void main(String[] args) { int i,j,k=0; for(i=1;i<11;i++){ for(j=i;j>=1;j--){ k+=j; } } System.out.print(k); } } 32.求之和。42925 public class demo32 { public static void main(String[] args) { int i,j,k=0; for(i=1;i<100;i+=2){ for(j=1;j<=i;j+=2){ k+=j; } } System.out.print(k); } } 33.有一群龟鹤,头150只,足400只,问龟鹤各有几只?50,100 public class demo33 { public static void main(String[] args) { int heads=150,foots=400,gui_foot=4,he_foot=2; int he=(heads*gui_foot-foots)/(gui_foot-he_foot); int gui=heads-he; System.out.println("龟有:"+gui); System.out.println("鹤有:"+he); } } 34.一个数被2、3、4、5、6除都余1,而正好能被7整除,问1000以内的自然数中这样的数都有哪些?301,721 public class demo34 { public static void main(String[] args) { int i; for(i=1;i<1001;i++){ if((i%2==1)&&(i%3==1)&&(i%4==1)&&(i%5==1)&&(i%6==1)&&(i%7==0)){ System.out.println(i); } } } } 35.一个数被2除余1,被3除余2,被4除余3,被5除余4。在500以内的自然数中这样的数有哪几个? public class demo35 { public static void main(String[] args) { int i; for(i=1;i<501;i++){ if((i%2==1)&&(i%3==2)&&(i%4==3)&&(i%5==4)){ System.out.println(i); } } } } 36.当时,求k最小的值。20 public class demo36 { public static void main(String[] args) { int i,j=0; for(i=1;;i++){ j+=i; if(j>200){ System.out.print(i); break; } } } } 37.当时,求k最大的值。26 public class demo37 { public static void main(String[] args) { int i,j=0,k=0; for(i=2;;i+=2){ j+=i; if(j<200){ k=i; }else{ break; } } System.out.print(k); } } 38.二分硬币和五分硬币共40枚,1.31元,问每种硬币各有多少枚? 二分硬币:23,五分硬币17 public class demo38 { public static void main(String[] args) { int a1=2,a2,b1=5,b2; a2=(40*b1-131)/(b1-a1); b2=40-a2; System.out.println("两分硬币有:"+a2); System.out.println("五分硬币有:"+b2); } } 39.下式中两个囗号内是一个相同的数,它到底是多少? 囗3×6528=3囗×8256 数字是:4 public class demo39 { public static void main(String[] args) { int i; for(i=1;i<10;i++){ if((3+10*i)*6528==(30+i)*8256){ System.out.println(i); } } } } 40.两数之和是40,它们的积是375,求此二数。 这两个数是:15,25 public class demo40 { public static void main(String[] args) { int i=0,j; do{ i=i+1; j=40-i; }while(i*j!=375); System.out.println("这两个数分别是"+i+"和"+j); } } 41.求出所有三位正整数的各位数码之和。 和:12600 public class exam 41 { public static void main(String a1[]) { double x,y,a,b,c; x=99; y=0; do { x=x+1; a=Math.floor(x/100); b=Math.floor(x/10)%10; c=x%10; y=y+a+b+c; }while(x!=999); System.out.println("和为="+y); } } 42.求出所有百位数字与十位数字之和等于个位数字的三位正整数。 共有45个。 public class exam 42 { public static void main(String a1[]) { double x,y,a,b,c; x=99; y=0; do { x=x+1; a=Math.floor(x/100); b=Math.floor(x/10)%10; c=x%10; if(a+b==c) { y=y+1; } }while(x!=999); System.out.println("三位正整数个数有"+y); } } 43.在自然数中,如果一个三位数等于其自身各个数字立方和,这样的三位数称为“水仙花数”。如:153=1×1×1+5×5×5+3×3×3,所以153是水仙花数。求所有的水仙花数。 共有4个:153,370,371,407 public class demo43 { public static void main(String[] args) { // TODO Auto-generated method stub int i,j=0; System.out.print("水仙花数有:"); for(i=100;i<1000;i++){ j=(i/100)*(i/100)*(i/100)+(i/10%10)*(i/10%10)*(i/10%10)+(i%10)*(i%10)*(i%10); if(i==j){ System.out.print(" "+j); } } } } 44.有一个两位正整数,加6后再把其个位数字与十位数字互换得到一个新的两位数,这样加6再互换共三次后,又得到了原来的两位数。求这样的两位数都有哪些? 共有5个:19,41,52, 74,85. public class demo44 { public static void main(String[] args) { int i,j,k,m,n; for(i=10;i<100;i++){ j=i; for(k=1;k<4;k++){ j+=6; m=j%100/10; n=j%10; j=m+n*10; } if(j==i){ System.out.print(i+" "); } } } } 45.显示出所有的三位质数。共143个 提示:判断x为质数,除了1和x本身之外,不能整除其它整数,则说明x是质数。换句话说:如果x除了能整除1和x本身之外,还能整除2~(x-1)之间的某个整数,则说明x不是质数,而是合数。 public class demo45 { public static void main(String
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服