java考试代码例题.docx
《java考试代码例题.docx》由会员分享,可在线阅读,更多相关《java考试代码例题.docx(21页珍藏版)》请在冰豆网上搜索。
java考试代码例题
Java复习题汇总
编程题
1、编程序,输入a,b,c,求方程 a
+bx+c=0 的解.
package一元二次方程2;
importjava.util.Scanner;
publicclass一元二次方程2{
publicstaticvoidmain(String[]args){
Scannerreader=newScanner(System.in);
doubled=0;
inti=0;
doublea=0;
doubleb=0;
doublec=0;
doubledis=0;
do{
i++;
if(i〉1){
System。
out。
println("数值错误,请重新输入:
");
}
System。
out。
println(”请输入a的值:
");
a=reader.nextInt();
System。
out.println(”请输入b的值:
");
b=reader。
nextInt();
System。
out.println(”请输入c的值:
");
c=reader.nextInt();
doubledis2=b*b—4*a*c;
d=dis2;
dis=Math.sqrt(b*b—4*a*c);
}while(d〈0);
doublex1=(—1*b+dis)/(2*a);
doublex2=(-1*b—dis)/(2*a);
System。
out.println(x1);
System。
out。
println(x2);
}
}
2、编程计算:
1*2*3+3*4*5+…+99*100*101 的值。
package作业618;
publicclass作业618{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<=50;i++){
inta=(2*i—1)*(2*i)*(2*i+1);
sum=sum+a;
}System。
out。
println(sum);
}
}
3、求全部水仙花数.所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。
如:
153=
。
package水仙花数;
publicclass水仙花数{
publicstaticvoidmain(String[]args){
for(inti=100;i〈1000;i++){
inty=i%10;
intx=i/10%10;
intz=i/10/10%10;
intsum=x*x*x+y*y*y+z*z*z;
if(sum==i){
System。
out。
println(i+”是水仙花数”);
}
}
}
}
4、求下列式子的值,y=1—2+3—4+···+99-100并将结果输出,格式为1-2+3-4+···+99—100=表达式的值。
package作业620;
importjava.lang.StringBuffer;
publicclass作业620{
publicstaticvoidmain(String[]args){
StringBuffera=newStringBuffer();
a.append
(1);
intsum=0;
intj=0;
for(inti=1;i〈=100;i++){
intb=0;
if(i%2==0){
b=—1*i;
a。
append(b);
}else{
b=i;
if(j〉0)a.append(”+”+b);
}
sum=sum+b;
j++;
}
Stringc=a.toString();
System。
out。
println(c+”="+sum);
}
}
5、请编制程序判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes;否则输出no。
package作业621;
importjava。
util。
Scanner;
publicclass作业621{
publicstaticvoidmain(String[]args){
System。
out。
println("请输入一个正整数:
");
Scannerreader=newScanner(System.in);
inta=reader。
nextInt();
intb=a%5;
intc=a%7;
if(b==0&&c==0){
System。
out.println(”YES”);
}else{
System。
out。
println(”NO");
}
}
}
6、按以下要求编写程序
(1) 编写Animal接口,接口中声明run() 方法
(2) 定义Bird类和Fish类实现Animal接口
(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
package作业6231;
publicclass作业623{
publicstaticvoidmain(String[]args){
Birda=newBird();
a。
run();
Fishb=newFish();
b。
run();
}
}
interfaceAnimal{
publicvoidrun();
}
classBirdimplementsAnimal{
publicvoidrun(){
System.out。
println("Bird方法实现了Animal接口");
}
}
classFishimplementsAnimal{
publicvoidrun(){
System。
out。
println(”Fish方法实现了Animal接口”);
}
}
7、按以下要求编写程序
(1) 创建一个Rectangle类,添加width和height两个成员变量
(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
(3) 编程利用Rectangle输出一个矩形的周长和面积
package作业6232;
publicclassRectangle{
doublewidth;
doubleheight;
publicstaticvoidmain(String[]args){
Rectanglemj=newRectangle();
mj。
mianji(2.5,3);
mj.zhouchang(4,5);
}
voidmianji(doublea,doubleb){
doublec=a*b;
System.out.println(c);
}
voidzhouchang(doublea,doubleb){
doubled=2*(a+b);
System。
out.println();
}
}
8、对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D',60分以下为‘E' 。
package作业6233;
importjava。
util.Scanner;
publicclass选择1{
publicstaticvoidmain(String[]args){
Scannerreader=newScanner(System。
in);
System.out。
println(”请输入成绩:
”);
doublea=reader。
nextDouble();
if(a〉=90&&a<=100){
System。
out。
println(”A”);
}
elseif(a〈90&&a>=80){
System。
out。
println(”B");
}
elseif(a<80&&a>=70){
System。
out.println(”C”);
}
if(a〈70&&a〉=60){
System.out。
println("D”);
}
if(a<60){
System.out。
println("E");
}
else{
System.out。
println("输入的成绩错误”);
}
}
}
9、设n为自然数,n!
=1*2*3*···*n称为n的阶乘,并规定0!
=1.试编制程序计算2!
4!
,6!
和10!
,并将结果输出到屏幕上。
package阶乘1;
publicclasstre{
publicstaticvoidmain(String[]args){
jiechenga=newjiecheng();
a.xuhh
(2);
a。
xuhh(4);
a。
xuhh(6);
a。
xuhh(10);
}
}
classjiecheng{
inti;
voidxuhh(inta){
intn=a;
intt=1;
for(i=1;i〈=n;i++){
t=t*i;
}
System。
out.println(t);
}
}
10、(2。
7)试编码定义一个公有类pubtest,它含有两个浮点类型变量fvar1和fvar2,还有一个整数类型的变量ivar1,pubtest类中有一个方法sumFI,它将fvar1与ivar1的值相加,结果放在fvar2中。
package作业6281;
publicclasspubtest{
publicstaticvoidmain(String[]args){
pubtestsum=newpubtest();
sum。
sumFI(12。
3f,12);
}
floatfvar1;
floatfvar2;
intivar1;
voidsumFI(floata,intb){
fvar1=a;
ivar1=b;
fvar2=fvar1+ivar1;
System。
out.println(fvar2);
}
}
11、(3。
4)使用java。
lang.Math类,生成100个0~99之间的随机整数,找出它们之中的最大者及最小者,并统计大于50的整数个数。
提示:
Math类支持random方法:
Publicstaticsynchronizeddoublerandom()
该方法返回一个0。
0~1.0之间的小数,如果要得到其他范围的数,需要进行相应的转换。
例如想得到一个0~99之间的整数,可以使用下列语句:
Intnum=(int)(100*Math。
random());
package作业11;
importjava。
lang.Math;
publicclass作业6282{
publicstaticvoidmain(String[]args){
inta[]=newint[100];
intg=0;//计数器
intmin=0;//最小值标记
intmax=0;//最大值标记
for(inti=0;i<100;i++){//用for循环来得到100个数
a[i]=(int)(100*Math。
random());
if(a[i]>50)
g++;
}
for(intj=0;jlength;j++){
if(a[min]〉a[j]){
min=j;
}
if(a[max]〈a[j]){
max=j;
}
}
System.out。
println(a[min]);
System.out。
println(a[max]);
System。
out。
println(”大于50的正整数个数为"+g);
}
}
12、(4.3)选择一组等长的英文单词,例如,一组4个字母组成的单词:
Workbackcomedealdeskbookjavatoolface
一组5个字母组成的单词:
Watchmatchnoiseriskystock
试定义一个字符串数组,数组中每一个元素存储一个英文单词,元素个数根据选择的英语单词长度而定。
再按照电话机表盘定义数字与字母的对应关系。
如数字2对应a或b或c,数字5对应j或k或l。
现编制一个程序,要求将用户输入的数字串转换成相应的字符串(注意一个数字串对应多个字符串),将这些字符串与数组中存储的英文单词逐个比较,如果某一字符串与英文单词匹配成功,则在屏幕上输出数字串及对应的单词,如果都不匹配,则在屏幕上输出一条信息“没有匹配的单词"。
(下面代码复制粘贴时注意注释部分换行报错)
package作业12;
importjava。
util。
Scanner;
publicclass作业6283{
publicstaticvoidmain(String[]args){
Stringdt[]={"work",”back”,"come”,”deal”,”desk",”book","java",”tool”,”face”};
Scannerreader=newScanner(System.in);
System.out.println(”请输入一个四位数:
");
intx=reader.nextInt();
longtha=newlongth();//用自定义的类longth建立对象a
inti=a。
changdu(x);//用a对下面方法的调用
inttemp=x;//将x的数值赋给temp,后面随着求x各个位数上的数使得x值发生了变化,所以在后面用到数值x初始值的地方即可以用temp来代替
StringBuffer[]sz=newStringBuffer[i];//建立每个元素存储内容可以改变的字符串型数组sz,它的长度i就是调用方法所得的值
Stringstr[]=newString[i];//建立一个长度为i的数组,为了后面将StringBuffer型数组转变成String型数组后存入其内部
intARRAY[]=newint[4];//建立数组ARRAY来存储x每个位上的数
StringbasicChar=”abc*def*ghi*jkl*mno*pqrs*tuv*wxyz”;//字符串存储电话号码盘上的字母
String[]sourceStrArray=basicChar.split("\\*");//以*为分界线将字符串分割成数组
for(intT=0;Tsz[T]=newStringBuffer();
}
intaaa=sz.length;
for(intj=4,h=0;h<4;j—-,h++){//这个最大的for循环是为了求得每个位上的数
intt=(int)Math。
pow(10,j—1);
ARRAY[h]=x/t;
x=x%t;
if(ARRAY[h]>=2&&ARRAY[h]<=6||ARRAY[h]==8){//结合前面,aaa的作用是起到了计数器的作用,它的值随着每一次的
aaa=aaa/3;//大for循环执行而除以3或者4,当电话盘号码对应3个字母时除以3,对应
}//4个时除以4,
elseif(ARRAY[h]==7||ARRAY[h]==9){//再结合这里,以9675数字为例,该数字共需要144个长度的数组来保存,
//第一次求得ARRAY[0]为9,所以执行144除以4
aaa=aaa/4;
}else{
System.out.println(”没有匹配的单词”);
break;
}
for(intA=0,B=0,bbb=1;Alength;A++){
if(ARRAY[h]>=2&&ARRAY[h]<=6||ARRAY[h]==8){
if(A==aaa*bbb){
B++;
bbb++;
}
intC=B%3;
sz[A].append(sourceStrArray[ARRAY[h]—2]。
charAt(C));
}
elseif(ARRAY[h]==7||ARRAY[h]==9){
if(A==aaa*bbb){//在第一次执行内for循环时,当A小于144/4时,由于B==0,所以前144/4个元素的
B++;//第一个字母都是存储的9所对应的电话号码盘的第一个字母p,当A=144/4之后,B加了1
bbb++;//所以第二组144/4个元素存储的是9所对应电话号码盘的第二个元素q,同理,第三组144/4
}//个元素存储的是第三个字母r,最后一组144/4个元素对应的是第四个字母s
intD=B%4;//第二次执行大for循环时,aaa的初始值发生了变化,每组元素的个数变成了144/4/3个
//,给每组元素的第二个字母赋值.第三次执行大for循环,每组元素个数变成144/4/3/4个
sz[A]。
append(sourceStrArray[ARRAY[h]-2]。
charAt(D));//依次类推,最后给每个元素存储了四个字母
}
}
}
loop:
for(intjq=0;jq〈sz.length;jq++){
str[jq]=sz[jq]。
toString();//将StringBuffer类型转变为String类型
for(intbq=0;bq〈9;bq++){
if(str[jq]。
equals(dt[bq])){//相等则按要求输出,跳出两个循环
System。
out.println(temp);
System.out.println(dt[bq]);
breakloop;
}
}
if(jq==sz。
length—1){//不想等按要求输出
System。
out。
println("没有匹配的单词");
}
}
}
}
classlongth{//建立这个类的目的是要建立一个方法来查清一共需要多少个元素来存储输入数字串所对应的字母串
intchangdu(intx){
intt=1;
int[]b={0,0,0,0};
for(inta=0;a<4;a++){
b[a]=x%10;
x=x/10;
}
for(intc=0;c〈4;c++){
if(b[c]〉=2&&b[c]〈=6||b[c]==8){
t=t*3;
}
elseif(b[c]==7||b[c]==9){
t=t*4;
}
}
returnt;
}
}
13、(12.10)图书馆用一个文本文件booklist.txt记录图书的书目,其中包括book1,book2,···,book10。
现在又采购了一批新书,请利用本章中的内容编写一个程序,将新书的书目增加到原来的文本文件中。
(被注释掉部分是为了验证对象已被写入文件中,不需要出现在代码中,在运行本程序时一定要先在d盘建立名为“java流练习"的文件,而且由于未找到方法读取booklist1.txt中已经提前存入的十本书的信息)
package作业133;
importjava.io。
*;
publicclass作业763{
publicstaticvoidmain(String[]args)throwsException{
Tt1=newT();
t1.author="巴尔扎克”;
t1。
bookcode="book11”;
t1。
bookname=”《高老头》”;
Tt2=newT();
t2。
author="巴尔扎克";
t2.bookcode=”book12”;
t2。
bookname=”《欧也妮·葛朗台》”;
Tt3=newT();
t3。
author=”大仲马";
t3。
bookcode="book13";
t3。
bookname=”《基督山恩仇记》";
Tt4=newT();
t4。
author="司汤达";
t4.bookcode=”book14”;
t4。
bookname=”《红与黑》”;
FileOutputStreamout;
out=newFileOutputStream(”F:
\\java流练习\\bookList1.txt”);
ObjectOutputStreamoos=newObjectOutputStream(out);
oos.writeObject(t1);
oos.writeObject(t2);
oos.writeObject(t3);
oos.writeObject(t4);
oos。
flush();
oos.close();
//ObjectInputStreamois=newObjectInputStream(newFileInputStream("F:
\\java流练习\\bookList1。
txt”));
//Tt5=(T)ois.readObject();
//Tt6=(T)ois.readObject();
//Tt7=(T)ois.readObject();
//Tt8=(T)ois。