Java程序设计编程题目
Java程序設計編程題目
一般題:
1、 編寫一個應用程序,對程序中給定的四個double型數據求其最大值和最小值。
import java.util.*;
public class no1
{
public static void main(String args[])
{
System.out.println("input the number:");
Scanner input = new Scanner(System.in);
double[] x=new double[4];
for (int i=0;i<4;i++)
x[i]=input.nextDouble();
double max=Math.max(Math.max(x[0], x[1]), Math.max(x[2], x[3]));
double min=Math.min(Math.min(x[0], x[1]), Math.min(x[2], x[3]));
System.out.println("max:"+max+" min:"+min);
}
}
2、 一個數如果恰好等于它的因子之和,這個數就稱為“完數”。例如6的因子為1、2、3,而6=1+2+3。因此6是“完數”。編寫一個小應用程序求1000之內的所有完數
public class no2
{
public static void main(String args[])
{
int sum;
for (int i=1;i<=1000;i++)
{
sum=0;
for (int j=1;j<=i/2;j++)
{
if (i%j==0) sum+=j;
}
if (sum==i)
{
System.out.println(i);
}
}
}
}
3、 要求1000!(1000*999*998...*2*1)的值。
import java.math.BigInteger;
public class no3
{
public static void main(String args[])
{
BigInteger x = BigInteger.valueOf(1);
for(int i=2; i<=1000; i++) {
x = x.multiply(BigInteger.valueOf(i));
}
System.out.println(x);
}
}
4、 設計一個能隨機產生100個大寫英文字母的方法,在該方法中統計產生了多少個元音字母,并輸出這個數字。
import java.util.*;
public class no4
{
public static void main(String args[])
{
int a=(int)'A';
int y[]=new int[26];
int t=0;
Random r=new Random();
for (int i=0;i<100;i++)
{
t=Math.abs(r.nextInt())%26;
y[t]++;
System.out.print((char)(a+t)+" ");
}
System.out.println("");
for (int yi=0;yi<26;yi++)
{
System.out.print((char)(a+yi)+" "+y[yi]+" ");
}
}
}
5、 有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第3個月后每個月又生一對兔子,假如兔子不死,問每個月的兔子總數為多少?
public class no5
{
public static void main(String args[])
{
int a=0,b=0,c=2;
int x,y,z;
for (int i=0;i<24;i++)
{
z=a/2;
y=c;
x=a+b;
a=x;
b=y;
c=z;
System.out.println(a+b+c);
}
}
}
6、 打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:
153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
public class no6
{
public static void main(String args[])
{
int y;
int t;
for (int x=100;x<=999;x++)
{
t=x;
y=0;
while(t>=1)
{
y+=Math.pow(t%10,3);
t/=10;
}
if (y==x) System.out.println(x);
}
}
}
7、 輸入一行字
符,分別統計出其中英文字母、空格、數字和其它字符的個數。
import java.util.Scanner;
public class no7
{
public static void main(String args[])
{
int y[]=new int[4];
char x;
Scanner input=new Scanner(System.in);
String s=input.nextLine();
int l=s.length()-1;
while(l>=0)
{
x= s.charAt(l);
if ((x-'a'>=0&&x-'a'<26) || (x-'A'>=0&&x-'A'<26))
{
y[0]++;
}
else
if (x-'0'<10&&x-'0'>0)
{
y[1]++;
}
else
if (x==' ')
{
y[2]++;
}
else
y[3]++;
l--;
}
for (int i=0;i<4;i++)
{
System.out.println(y[i]);
}
}
}
8、 一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?
public class no8
{
public static void main(String args[])
{
dum(100,0,10);
}
public static void dum(int h,int s,int t)
{
s+=h;
h/=2;
t--;
if (t>0) dum(h,s,t);
else System.out.println(s+" "+h);
}
}
9、 企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬 元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
import java.util.*;
public class no9
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
double sum=0;
double n=in.nextInt();
if (n>100) sum=(n-100)*0.01+3.95;
if (n>60 && n<=100) sum=(n-60)*0.015+3.35;
if (n>40 && n<=60) sum=(n-40)*0.03+2.75;
if (n>20 && n<=40) sum=(n-20)*0.05+1.75;
if (n>10 && n<=20) sum=(n-10)*0.075+1;
if (n<10 && n>=0) sum=n*0.1;
System.out.println(sum);
}
}
10、 猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個 第二天早上又將剩 下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
public class no10
{
public static void main(String args[])
{
peach(10,1);
}
public static void peach(int day,int num)
{
day--;
num=(num++)*2;
if (day>0) peach(day,num);
else System.out.println(num);
}
}
11、 利用遞歸方法求5!。
public class no11
{
public static void main(String args[])
{
System.out.println(foo(5));
}
public static int foo(int t)
{
if (t==0)return 1;
else return t*foo(t-1);
}
}
12、 求
一個3*3矩陣對角線元素之和.
import java.util.*;
public class no12
{
public static void main(String args[])
{
int sum=0;
int t=0;
Scanner in=new Scanner(System.in);
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
{
t=in.nextInt();
if (i==j) sum+=t;
}
System.out.println(sum);
}
}
13、 輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。
import java.util.*;
public class no13
{
public static void main(String args[])
{
int n=4;
int x[]=new int[100];
int max=0;
int min=0;
int t=0;
Scanner in=new Scanner(System.in);
for (int i=0;i<n;i++)
{
x[i]=in.nextInt();
if (x[i]>x[max]) max=i;
if (x[i]<x[min]) min=i;
}
t=x[0];
x[0]=x[max];
x[max]=t;
t=x[n-1];
x[n-1]=x[min];
x[min]=t;
for (int i=0;i<n;i++)
System.out.println(x[i]+" ");
}
}
14、 定義復數的類Complex并測試其功能:
1. 復數由實部、虛部兩個部分組成,在類的定義中應包含保存這兩部分信息的內容。
2. 在類中定義構造函數,使用戶能夠在構造對象的同時為對象賦初值。
3. 在類中定義復數的加法、減法、乘法三個二元操作符來完成復數間的加、減、乘的功能。
4. 通過重載tosthing,使得Complex類的對象能夠顯示其自身信息。
5. 通過顯示定義一個成員函數完成對象的賦值操作,使用戶能夠對Complex類的對象進行賦值。
6. 編寫一段主程序(main函數),使用戶能夠通過這段主程序輸入復數并進行復數的計算。
import java.util.*;
public class no14
{
public static void main(String args[])
{
Scanner in =new Scanner(System.in);
System.out.println("first real and image:");
Complex x=new Complex();
x.setreal(in.nextDouble());
x.setimage(in.nextDouble());
System.out.println("second real and image:");
Complex y=new Complex();
y.setreal(in.nextDouble());
y.setimage(in.nextDouble());
Complex t=new Complex(1,1);
t.copy(x);
System.out.print("add:");
x.add(y);
x.tosthing();
System.out.print("decreace:");
x.copy(t);
x.decrease(y);
x.tosthing();
System.out.print("multi:");
x.copy(t);
x.multi(y);
x.tosthing();
System.out.print("division:");
x.copy(t);
if (x.division(y))
x.tosthing();
else System.out.print("error");
}
}
class Complex
{
double real;
double image;
public Complex()
{
real=0;
image=0;
}
public Complex(double r,double i)
{
real=r;
image=i;
}
public void copy(Complex t)
{
this.real=t.real;
this.image=t.image;
}
public void add(Complex t)
{
this.real+=t.real;
this.image+=t.image;
}
public void decrease(Complex t)
{
this.real-=t.real;
this.image-=t.image;
}
public void multi(Complex t)
{
double x=this.real*t.real-this.image*t.image;
this.image=this.real*t.image+this.image*t.real;
this.real=x;
}
public boolean division(Complex t)
{
if ((Math.pow(t.real,2)+Math.pow(t.image,2))==0)return false;
double x=(this.real*t.real-this.image*t.image)/(Math.pow(t.real,2)+Math.pow(t.image,2));
this.image=(this.real*t.image+this.image*t.real)/(Math.pow(t.real,2)+Math.pow(t.image,2));
this.real=x;
return true;
}
public void setreal(double r)
{
this.real=r;
}
public void setimage(double i)
{
this.image=i;
}
public void tosthing()
{
System.out.println("("+this.real+","+this.image+")");
}
}
15、 建立一個銀行賬戶類,要求能夠存放用戶的賬號、姓名、密碼和賬戶余額等個人信息,并包含存款、取款、查詢余額和修改賬戶密碼等操作,并用此類創建對象,對象的賬號為100,姓名為Tom,密碼為11111,賬戶余額為10000。
public class no15
{
public static void main(String args[])
{
bankacount bk=new bankacount("Tom","11111",100,10000);
System.out.println("$50 in");
bk.in(50);
bk.check();
System.out.println("$100 out");
if (bk.out(100))
bk.check();
else System.out.println("error");
bk.setpsw("asd");
}
}
class bankacount
{
String name=new String();
String psw=new String();
int id =0;
int balance=0;
public bankacount(String n,String p,int o,int b)
{
this.name=n;
this.psw=p;
this.id=o;
this.balance=b;
}
public void in(int i)
{
this.balance+=i;
}
public boolean out(int i)
{
if (this.balance>=i)
this.balance-=i;
else return false;
return true;
}
public void check()
{
System.out.println("balance:"+balance);
}
public void setpsw(String i)
{
this.psw=i;
}
}
16、 有哺乳動物類mammal,將其作為父類,從其派生出子類貓cat和子類狗dog,基類中有方法speak()。
public class no16
{
public static void main(String args[])
{
cat a=new cat();
a.speak();
dog b=new dog();
b.speak();
}
}
class mammal
{
void speak(String s)
{
System.out.println(s);
}
}
class cat extends mammal
{
void speak()
{
super.speak("nyanyanya");
}
}
class dog extends mammal
{
void speak()
{
super.speak("wangwangwang");
}
}
17、 求100之內的素數
public class no17
{
public static void main(String args[])
{
System.out.println(1);
System.out.println(2);
tag: for (int i=3;i<=100;i++)
{
int t=0;
for (int j=2;j<=i/2;j++)
{
if (i % j== 0) continue tag;
}
System.out.println(i);
}
}
}
18、 對10個數進行排序
import java.util.*;
public class no18
{
public static void main(String args[])
{
int n=10;
Scanner in=new Scanner(System.in);
int x[]=new int[n];
System.out.print("input:");
for (int i=0;i<n;i++)
{
x[i]=in.nextInt();
}
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
{
if (x[i]>x[j])
{
int t=0;
t=x[i];
x[i]=x[j];
x[j]=t;
}
}
for (int i=0;i<n;i++)
{
System.out.print(x[i]+" ");
}
}
}
19、 從鍵盤上輸入10個整數,并將其放入一個一維數組中,然后將其前5個元素與后5個元素對換,即:第1個元素與第10個元素互換,第2個元素與第9個元素互換…第5個元素與第6個元素互換。分別輸出數組原來各元素的值和對換后各元素的值。
import java.util.*;
public class no19
{
public static void main(String args[])
{
int n=10;
int x[]=new int[n];
Scanner in=new Scanner(System.in);
for (int i=0;i<n;i++)
{
x[i]=in.nextInt();
}
System.out.println("before:");
for (int i=0;i<n;i++)
{
System.out.print(x[i]+" ");
}
for (int i=0;i<n/2;i++)
{
int t=0;
t=x[i];
x[i]=x[n-i-1];
x[n-i-1]=t;
}
System.out.println("");
System.out.println("after:");
for (int i=0;i<n;i++)
{
System.out.print(x[i]+" ");
}
}
}
20、 設計一個圓類,將圓的位置(圓心坐標和半徑)作為屬性(提供任意圓的設置),并能計算圓的面積。
public class no20
{
public static void main(String args[])
{
circle c=new circle(4,4,2);
System.out.println(c.s());
}
}
class circle
{
double r;
double x;
double y;
public circle(double i,double j,double k)
{
this.x=i;
this.y=j;
this.r=k;
}
public double s()
{
return 3.14*Math.pow(this.r,2);
}
}
21、 設計一個Course類,它代表學校中的一門課程。按照實際情況將這門課程的相關信息組織成它的屬性,并定義必要的相應的方法。
public class no21
{
public static void main(String args[])
{
Course c=new Course("哲♂學","比利海靈頓",1000,"1999-9-9");
c.show();
c.teach();
c.homework();
c.test();
}
}
class Course
{
String name=new String();
String teacher=new String();
int fullmark=0;
String startdate=new String();
public Course(String n,String t,int f,String s)
{
this.name=n;
this.teacher=t;
this.fullmark=f;
this.startdate=s;
}
public void show()
{
System.out.println("Course name:"+name+" teacher:"+teacher+" fullmark:"+fullmark+" startdate:"+startdate);
}
public void test()
{
System.out.println("testing...");
}
public void teach()
{
System.out.println("teaching...");
}
public void homework(
)
{
System.out.println("doing homework...");
}
}
22、 設計并實現一個Vehicle類及其子類,它們代表主要的交通工具,定義必要的屬性信息和方法
23、 設計并實現一個MyGraphic類及其子類,它們代表一些基本的圖形,這些圖形包括:矩形、三角形、圓、橢圓等。試給出能描述這些圖形所必需的屬性及必要的方法。
24、 先在一個包中編寫第一類ClassA,要求寫該類中具有四種不同訪問權限的成員,再在另一個包中寫第二個類ClassB,并在該類中編寫一個方法訪問第一個類的成員。
25、 設計一個汽車類Multiplication,在其中定義三個同名的mul方法:第一個方法是計算兩個整數的積;第二個方法是計算兩個浮點數的積;第三個方法是計算三個浮點數的積。
26、 使用繼承和接口技術,編寫一個程序,求解幾何圖形(如直線、三角形、矩形、圓和多邊形)的周長和面積。
進階題:
27、 隨便輸入一段字符串,把出現次數最多的打印出來,如:aabbbbbbbbbcccdffff,就把b打印出來,用java代碼實現
import java.util.*;
public class no27
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
String s=in.nextLine();
int l=s.length();
int x[]=new int[l];
boolean b;
int max=0;
for (int i=0;i<l;i++)
{
b=false;
for (int j=i-1;j>0;j--)
{
if (s.charAt(i)==s.charAt(j))
{
x[i]=x[j]+1;
b=true;
break;
}
}
if (!b)
{
x[i]=1;
}
if (x[i]>x[max])
{
max=i;
}
}
System.out.println(s.charAt(max));
}
}
28、 有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
public class no28
{
public static void main(String args[])
{
int sum=0;
for (int i=1;i<5;i++)
for (int j=1;j<5;j++)
for (int k=1;k<5;k++)
{
if (i!=j&&j!=k&&k!=i)
{
System.out.println(i+""+j+""+k);
sum++;
}
}
System.out.println("sum:"+sum);
}
}
29、 輸入某年某月某日,判斷這一天是這一年的第幾天?
import java.util.*;
public class no29
{
public static void main(String args[])
{
int x[]={0,30,60,91,121,152,182,213,244,274,305,335};
Scanner in=new Scanner(System.in);
int year=in.nextInt();
int month=in.nextInt();
int day=in.nextInt();
if (!((year%4==0&&year%100!=0)||(year%400==0)))
for (int i=2;i<12;i++)
x[i]--;
System.out.println("day:"+(x[month-1]+day));
}
}
30、 兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向 隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。
31
、 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。
import java.util.*;
public class no31
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int x[]=new int[n];
int d=3;
int m=n;
int t=0;
int k=0;
while(n>1)
{
if (t>m-1) t=0;
if (x[t]==0)
{
k++;
if (k==d)
{
x[t]=1;
k=0;
n--;
}
}
t++;
}
for (int i=0;i<m;i++)
if (x[i]==0)
System.out.print(i+1);
}
}
32、 哥德巴赫猜想是說任何一個大于2的偶數都能表示為兩個素數之和。請編寫一個Java程序,驗證1~100內哥德巴赫猜想的正確性,也就是近似證明哥德巴赫猜想。
public class no32
{
public static void main(String args[])
{
int x[]=new int[100];
x[0]=1;
x[1]=2;
int l=2;
tag: for (int i=3;i<=100;i++)
{
int t=0;
for (int j=2;j<=i/2;j++)
{
if (i % j== 0) continue tag;
}
x[l++]=i;
}
tbg:for (int y=4;y<=100;y+=2)
{
for (int i=0;i<l;i++)
for (int j=l-1;j>=0;j--)
if (x[i]+x[j]==y)
{
System.out.println(y+"="+x[i]+"+"+x[j]);
continue tbg;
}
}
}
}
33、 一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同
import java.util.*;
public class no33
{
public static void main(String args[])
{
System.out.println("input [10000,99999]:");
Scanner in =new Scanner(System.in);
String s=in.nextLine();
int n=5;
boolean b=true;
for (int i=0;i<n/2;i++)
{
if (!(s.charAt(i)==s.charAt(n-i-1)))
{
System.out.println("no");
b=false;
break;
}
}
if (b)
System.out.println("yes");
}
}
34、 愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,每步上2階,最后剩1階;若每步上3階,最后剩2階;若每步上5階,最后剩4階;若每步上6階,最后剩5階;只有每步上7階,最后一階也不剩。請問該階梯至少有多少階。編寫一個Java程序解決該問題。
public class no34
{
public static void main(String args[])
{
for (int i=7;i<10000;i+=7)
{
if (i%2==1&&i%3==2&&i%5==4&&i%6==5)
{
System.out.println(i);
break;
}
}
}
}
Java免費學習資料直播公開課群:175161984
???????????再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow
總結
以上是生活随笔為你收集整理的Java程序设计编程题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python+OpenCV之图片批处理(
- 下一篇: 交叉熵函数