50道JAVA基础编程练习题.docx

上传人:b****3 文档编号:11743148 上传时间:2023-06-02 格式:DOCX 页数:65 大小:41.14KB
下载 相关 举报
50道JAVA基础编程练习题.docx_第1页
第1页 / 共65页
50道JAVA基础编程练习题.docx_第2页
第2页 / 共65页
50道JAVA基础编程练习题.docx_第3页
第3页 / 共65页
50道JAVA基础编程练习题.docx_第4页
第4页 / 共65页
50道JAVA基础编程练习题.docx_第5页
第5页 / 共65页
50道JAVA基础编程练习题.docx_第6页
第6页 / 共65页
50道JAVA基础编程练习题.docx_第7页
第7页 / 共65页
50道JAVA基础编程练习题.docx_第8页
第8页 / 共65页
50道JAVA基础编程练习题.docx_第9页
第9页 / 共65页
50道JAVA基础编程练习题.docx_第10页
第10页 / 共65页
50道JAVA基础编程练习题.docx_第11页
第11页 / 共65页
50道JAVA基础编程练习题.docx_第12页
第12页 / 共65页
50道JAVA基础编程练习题.docx_第13页
第13页 / 共65页
50道JAVA基础编程练习题.docx_第14页
第14页 / 共65页
50道JAVA基础编程练习题.docx_第15页
第15页 / 共65页
50道JAVA基础编程练习题.docx_第16页
第16页 / 共65页
50道JAVA基础编程练习题.docx_第17页
第17页 / 共65页
50道JAVA基础编程练习题.docx_第18页
第18页 / 共65页
50道JAVA基础编程练习题.docx_第19页
第19页 / 共65页
50道JAVA基础编程练习题.docx_第20页
第20页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

50道JAVA基础编程练习题.docx

《50道JAVA基础编程练习题.docx》由会员分享,可在线阅读,更多相关《50道JAVA基础编程练习题.docx(65页珍藏版)》请在冰点文库上搜索。

50道JAVA基础编程练习题.docx

50道JAVA基础编程练习题

50道JAVA基础编程练习题

【程序18】

题目:

两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

importjava.util.ArrayList;

publicclassLx18{

Stringa,b,c;

publicstaticvoidmain(String[]args){

String[]op={"x","y","z"};

ArrayListarrayList=newArrayList();

for(inti=0;i<3;i++)

for(intj=0;j<3;j++)

for(intk=0;k<3;k++){

Lx18a=newLx18(op[i],op[j],op[k]);

if(!

a.a.equals(a.b)&&!

a.b.equals(a.c)&&!

a.a.equals("x")

&&!

a.c.equals("x")&&!

a.c.equals("z")){

arrayList.add(a);

}

}

for(Objecta:

arrayList){

System.out.println(a);

}

}

publicLx18(Stringa,Stringb,Stringc){

super();

this.a=a;

this.b=b;

this.c=c;

}

@Override

publicStringtoString(){

//TODOAuto-generatedmethodstub

return"a的对手是"+a+","+"b的对手是"+b+","+"c的对手是"+c+"\n";

}

}

【程序26】

题目:

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

1.程序分析:

用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

importjava.util.Scanner;

publicclassLx26{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

charweekSecond;

Scannerinput=newScanner(System.in);

System.out.print("请输入星期值英文的第一个字母,我来帮您判断是星期几:

");

Stringletter=input.next();

//判断用户控制台输入字符串长度是否是一个字母

if(letter.length()==1){

//利用取第一个索引位的字符来实现让Scanner接收char类型输入

charweekFirst=letter.charAt(0);

switch(weekFirst){

case'm':

//当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能

case'M':

System.out.println("星期一(Monday)");

break;

case't':

case'T':

System.out.print("由于星期二(Tuesday)与星期四(Thursday)均以字母T开头,故需输入第二个字母才能正确判断:

");

letter=input.next();

if(letter.length()==1){

weekSecond=letter.charAt(0);

if(weekSecond=='U'||weekSecond=='u'){

System.out.println("星期二(Tuesday)");

break;

}elseif(weekSecond=='H'||weekSecond=='h'){

System.out.println("星期四(Thursday)");

break;

}else{

System.out.println("输入错误,不能识别的星期值第二个字母,程序结束!

");

break;

}

}else{

System.out.println("输入错误,只能输入一个字母,程序结束!

");

break;

}

case'w':

case'W':

System.out.println("星期三(Wednesday)");

break;

case'f':

case'F':

System.out.println("星期五(Friday)");

break;

case's':

case'S':

System.out.print("由于星期六(Saturday)与星期日(Sunday)均以字母S开头,故需输入第二个字母才能正确判断:

");

letter=input.next();

if(letter.length()==1){

weekSecond=letter.charAt(0);

if(weekSecond=='A'||weekSecond=='a'){

System.out.println("星期六(Saturday)");

break;

}elseif(weekSecond=='U'||weekSecond=='u'){

System.out.println("星期日(Sunday)");

break;

}else{

System.out.println("输入错误,不能识别的星期值第二个字母,程序结束!

");

break;

}

}else{

System.out.println("输入错误,只能输入一个字母,程序结束!

");

break;

}

default:

System.out.println("输入错误,不能识别的星期值第一个字母,程序结束!

");

break;

}

}else{

System.out.println("输入错误,只能输入一个字母,程序结束!

");

}

}

}

做完【程序35】

题目:

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

importjava.util.Scanner;

publicclassLx35{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

inti;

inttemp1;

inttemp2;

Scannerin=newScanner(System.in);

inta=in.nextInt();

intarray[]=newint[a];

for(i=0;i

System.out.println("请输入第"+(i+1)+"个数字");

array[i]=in.nextInt();

}

intmax=0;

intmin=0;

for(i=1;i

if(array[i]>array[max]){

max=i;

}

if(array[i]

min=i;

}

}

temp1=array[0];

temp2=array[min];

array[0]=array[max];

array[max]=temp1;

if(min!

=0){

array[min]=array[a-1];

array[a-1]=temp2;

}else{

array[max]=array[a-1];

array[a-1]=temp1;

}

for(i=0;i

System.out.print(array[i]+"");

}

}

}

做完【程序36】

题目:

有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

importjava.util.Scanner;

publicclassLx36{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Scannerin=newScanner(System.in);

System.out.print("请输入一个数n代表n个整数:

");

intn=in.nextInt();

int[]a=newint[n];

System.out.print("请输入"+n+"个数:

");

for(inti=0;i

a[i]=in.nextInt();

}

System.out.print("请输入一个数:

");

intm=in.nextInt();

int[]b=newint[m];

int[]c=newint[n-m];

for(inti=0;i

b[i]=a[i];

}

for(inti=m,j=0;i

c[j]=a[i];

}

for(inti=0;i

a[i]=c[i];

}

for(inti=0;i

System.out.print(a[i]+"");

}

}

}

做了【程序1】

题目:

古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

(20个月)

1.程序分析:

兔子的规律为数列1,1,2,3,5,8,13,21....

publicclassEx1{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

//兔子的规律为数列1,1,2,3,5,8,13,21....

for(inti=1;i<=20;i++){

System.out.println(f(i));

}

}

publicstaticintf(intx){

if(x==1||x==2){

return1;

}

else{

returnf(x-1)+f(x-2);

}

}

}

做了【程序2】

题目:

判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:

判断素数的方法:

用一个数分别去除2到sqrt(这个数),如果能被整除,

则表明此数不是素数,反之是素数。

importjava.util.ArrayList;

publicclassEx2{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

//intx=0;

ArrayListlist=newArrayList();//集合,用来装所有的素数

for(inti=101;i<=200;i++)

{

booleanb=true;//标签为b为真

for(intj=2;j

{

if(i%j==0)//求余数是否为0

{

b=false;//如果为0,将标签设置为false

break;//可以整除就跳出这个循环

}

}

if(b==true)//

{

list.add(i);//将符合要求的i加到集合里

//x++;素数个数加1

}

}

System.out.println("素数为:

"+list);

}

}

做了【程序3】

题目:

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:

利用for循环控制100-999个数,每个数分解出个位,十位,百位。

publicclassEx3{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

for(inti=100;i<=999;i++){

inth=i/100;

intj;

intk;

inta=i%100;

if(a>=10){

j=a/10;

k=a%10;

}

else{

j=0;

k=a;

}

if(h*h*h+j*j*j+k*k*k==i)

System.out.println(i);

}

}

}

做了【程序4】

题目:

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

程序分析:

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

importjava.util.Scanner;

publicclassexp2{

publicstaticvoidmain(String[]args){

intk;

Scannerin=newScanner(System.in);

System.out.println("请输入一个正整数");

intn=in.nextInt();//

System.out.print(n+"=");

for(k=2;k<88;k++)//

{

while(n!

=k)//找到最小质数

{

if(n%k==0){

System.out.print(k+"*");

n=n/k;

}else{

break;

}

}

}

System.out.println(n);

}

}

做了【程序5】

题目:

利用条件运算符的嵌套来完成此题:

学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:

(a>b)?

a:

b这是条件运算符的基本例子。

importjava.util.Scanner;

publicclassEx5{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

System.out.println("请输入成绩:

");

doublen=in.nextDouble();

grade(n);

}

//成绩计算器

publicstaticvoidgrade(doublen){

if(n>100||n<0){

System.out.println("输入无效!

");

}else{

Stringstr=(n>=90)?

"分,属于A等":

(n>=60)?

"分,属于B等":

"分,属于C等";

System.out.println(n+str);

}

}

}

做了【程序6】

题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:

利用辗除法。

importjava.util.Scanner;

publicclassLx6{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Scannerin=newScanner(System.in);

intm;

intn;

System.out.println("请输入一个数");

m=in.nextInt();

System.out.println("请输入另一个数");

n=in.nextInt();

System.out.println(m+"和"+n+"的最大公约数是"+gys(m,n));

System.out.println(m+"和"+n+"的最小公倍数是"+gbs(m,n));

}

//最大公约数

publicstaticintgys(intm,intn){

while(m%n!

=0){

intr=m%n;

m=n;

n=r;

}

returnn;

}

//最小公倍数

publicstaticintgbs(intm,intn){

returnm*n/gys(m,n);

}

}

做了【程序7】

题目:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:

利用while语句,条件为输入的字符不为'\n'.

importjava.util.Scanner;

publicclassEx7{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

intabc=0;//英文字母个数

intsp=0;//空格键个数

intnum=0;//数字个数

intoth=0;//其他字符个数

Scannerin=newScanner(System.in);

System.out.println("输入一行字符");

Stringstr=in.nextLine();

char[]ch=str.toCharArray();//作用:

将字符串拆分为字符到数组。

for(inti=0;i

if(Character.isLetter(ch[i])){

//判断是否字母

abc++;

}elseif(Character.isDigit(ch[i])){

//判断是否数字

num++;

}elseif(Character.isSpaceChar(ch[i])){

//判断是否空格键

sp++;

}else{

//以上都不是则认为是其他字符

oth++;

}

}

System.out.println("字母个数:

"+abc);

System.out.println("数字个数:

"+num);

System.out.println("空格个数:

"+sp);

System.out.println("其他字符个数:

"+oth);

}

}

做了【程序8】

题目:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),

几个数相加有键盘控制。

1.程序分析:

关键是计算出每一项的值。

importjava.util.Scanner;

publicclassEx8{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

System.out.println("输入a的值0-9之间");

Scannerin=newScanner(System.in);

inta=in.nextInt();

System.out.println("输入a叠加的最大个数");

intnum=in.nextInt();

intsum=0;

for(inti=1;i<=num;i++){//i是个数

inttemp=0;//每一项的值

for(intj=1;j<=i;j++){

temp+=Math.pow(10,j-1)*a;

}

sum+=temp;

}

System.o

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2