资源描述
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
展开阅读全文