java经典基础练习题及答案.docx
- 文档编号:10021454
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:10
- 大小:16.68KB
java经典基础练习题及答案.docx
《java经典基础练习题及答案.docx》由会员分享,可在线阅读,更多相关《java经典基础练习题及答案.docx(10页珍藏版)》请在冰豆网上搜索。
java经典基础练习题及答案
java经典基础练习题及答案
精品文档
java经典基础练习题及答案
整理:
Lemon
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少,
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt,如果能被整除,则表明此数不是素数,
题目:
打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个”水仙花数”,因为153=1的三次方,5的三次方,3的三次方。
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
如果这个质数恰等于n,则说明分解质因数的过程已
1/12
精品文档
经结束,打印出即可。
如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
题目:
利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.写一个函数,计算一个整数数组的平均值
importjava.util.Random;
publicclassjavaSevenDayLianXi{
publicstaticvoidmain{
intarr[]=newint[10];
Randomscore=newRandom;
floatsum=0.0f;
System.out.print;
for{
2/12
精品文档
arr[i]=score.nextInt;
sum+=arr[i];
System.out.print;
}
System.out.println;
System.out.println;}
}
2.自定义一个整数数组a,读入一个整数n,如果n在数组中存在,则输出n的下标;如果不存在,则输出-1。
Scannersca=newScanner;
int[]a={0,1,2,3,4,5,6,7,8,9};
System.out.print;
intshuJu=sca.nextInt;
booleanbool=true;
for{
if{
System.out.println;bool=false;
break;
}
}
ifSystem.out.println;
3.给定一个数组,输出数组中的最大值和最小值
3/12
精品文档
int[]a=
{12,34,563,2,45,778,554,4421,4456,6786};
Arrays.sort;
intmin=a[0];
intmax=a[a.length-1];
System.out.println;
4.*给定一个数组,把这个数组中所有元素顺序进行
颠倒。
importjava.util.Random;
publicclassjavaSevenDayLianXi{
}publicstaticvoidmain{intarr[]=newint[10];intshu=0;Randomscore=newRandom;System.out.print;for{arr[i]=
score.nextInt;System.out.print;}
for/2;i++){shu=arr[i];arr[i]=arr[arr.length-1-i];arr[arr.length-1-i]=shu;}System.out.println;System.out.print;forSystem.out.print;}
5.*数组的扩容。
给定一个数组,要求写一个expand函数,把原有数
组的长度扩容一倍,并保留原有数组原有的内容。
例如,给定一个数组int[]a={1,2,3},则扩容
之后,a数组为:
{1,2,3,0,0,0}publicclassjavaNineDay
4/12
精品文档
{
publicstaticvoidmain{
int[]arr={1,,,,,,,};
arr=setArrays;
for
System.out.print;
}
publicstaticint[]setArrays{
int[]arrays=newint[arr.length*];
System.arraycopy;
returnarrays;
}
}
6.*数组的插入和删除
写两个函数,一个函数为delete函数,声明如下:
publicstaticvoiddelete
该函数表示删除数组pos位置上的元素。
第二个函数为insert函数,声明如下:
publicstaticvoidinsert
该函数表示在数组pos位置上插入value值。
为了能在多个函数中使用同一个数组,需要把这个数组写在函数的外面,类的里面,并使用static修饰。
5/12
精品文档
为了方便,还应该定义一个index变量,用来保存数组的有效元素的个数。
例如下面的代码:
publicclassTestInsertDelete{
staticint[]a={1,3,2,5,7};//多个函数可以直接操作该数组
staticintindex=;
publicstaticvoidmain{
delete;//1
insert;//1
insert;//1
}
publicstaticvoiddelete{
„
}
publicstaticvoidinsert{
„
}
}
实现方式:
1.delete方法:
把数组pos位后的所有元素向前移动1位
6/12
精品文档
2.insert方法:
把数组pos位以及之后的元素向后移动1位,然后设置value。
要注意的是,insert时有可能需要数组扩容。
有效元素的个数的含义:
对于a数组,调用一次delete之后,a数组的长度不变,长度依然为5,然而有效元素的个数为个。
Tips:
insert方法中,如何判断是否需要扩容:
比较有效元素的个数和数组的长度,如果这两者一致,则需要扩容。
publicclassjavaNineDay{
staticint[]arr={1,,,,,,,,,,};staticint
index=arr.length;
publicstaticvoidmain{
System.out.print;
for
System.out.print;
System.out.print;
delete;
System.out.print;
insert;
}
publicstaticvoiddelete{
7/12
精品文档
intnum=index;
for{
}}System.arraycopy;arr[--num]=0;}elseif{arr[--num]=0;}}index=num;for{if{System.out.print;}}publicstaticvoidinsert{intarrays[];if{arrays=newint[index+1];System.arraycopy;}elsearrays=arr;System.arraycopy;arrays[pos]=value;index++;for{if{System.out.print;}}}
7.*完成数组的冒泡排序算法:
给定一个数组:
int[]
a={1,3,2,7,5},利用冒泡排序对其按照从小到大的顺序
排序,然后输出结果。
publicclassjavaSevenDayLianXi{
publicstaticvoidmain{
int[]arr={1,,,,};
intterm=0;
for{
for{
if{
term=arr[j];
arr[j]=arr[i];
}}}}}System.out.print;for
8/12
精品文档
System.out.print;
8.*使用第二种算法对数组进行排序
importjava.util.Arrays;
publicclassjavaSevenDayLianXi{
publicstaticvoidmain{
int[]arr={1,,,,};
Arrays.sort;
System.out.print;for
System.out.print;
}
}
杨辉三角的特点:
1.第i行有i个元素
2.每一行的第一个元素和最后一个元素都为1
3.除了1之外,每个元素的值,都等于上一行同位置的元素以及前一个元素的和。
例如:
11的下一行
1a1aaa1
a1=+1=
a=+=10
a=+=10
a=1+=
9/12
精品文档
依次类推。
要求:
读入一个整数n,输出杨辉三角的前n行
importjava.util.Scanner;
publicclassjavaSevenDayLianXi{
publicstaticvoidmain{
Scannersca=newScanner;
System.out.print;
introw=sca.nextInt;
intarr[][]=getArrays;
for{
for
System.out.print+““);System.out.println;
沃克IT教育JAVA基础编程练习题
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少,
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到
10/12
精品文档
sqrt,如果能被整除,则表明此数不是素数,
题目:
打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个”水仙花数”,因为153=1的三次方,5的三次方,3的三次方。
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
题目:
利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
11/12
精品文档
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
12/12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 经典 基础 练习题 答案