第四章题库.docx

上传人:b****2 文档编号:2558041 上传时间:2023-05-04 格式:DOCX 页数:26 大小:20.94KB
下载 相关 举报
第四章题库.docx_第1页
第1页 / 共26页
第四章题库.docx_第2页
第2页 / 共26页
第四章题库.docx_第3页
第3页 / 共26页
第四章题库.docx_第4页
第4页 / 共26页
第四章题库.docx_第5页
第5页 / 共26页
第四章题库.docx_第6页
第6页 / 共26页
第四章题库.docx_第7页
第7页 / 共26页
第四章题库.docx_第8页
第8页 / 共26页
第四章题库.docx_第9页
第9页 / 共26页
第四章题库.docx_第10页
第10页 / 共26页
第四章题库.docx_第11页
第11页 / 共26页
第四章题库.docx_第12页
第12页 / 共26页
第四章题库.docx_第13页
第13页 / 共26页
第四章题库.docx_第14页
第14页 / 共26页
第四章题库.docx_第15页
第15页 / 共26页
第四章题库.docx_第16页
第16页 / 共26页
第四章题库.docx_第17页
第17页 / 共26页
第四章题库.docx_第18页
第18页 / 共26页
第四章题库.docx_第19页
第19页 / 共26页
第四章题库.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第四章题库.docx

《第四章题库.docx》由会员分享,可在线阅读,更多相关《第四章题库.docx(26页珍藏版)》请在冰点文库上搜索。

第四章题库.docx

第四章题库

一.填空题以及答案

1.以下方法fun的功能是求两参数之积。

(returna*b)

intfun(inta,intb){__________________;}

2.以下方法fun的功能是求两参数之积。

(return(float)a*b)

floatfun(inta,doubleb){__________________;}

3.以下方法fun的功能是求两参数的最大值。

(returna>b?

a:

b)

intfun(inta,intb){__________________;}

4.以下方法m的功能是求两参数之积的整数部分。

(return(int)(a*b))

intm(floatx,floaty){__________________;}

5.下面是用户程序对Applet类中方法paint()的重新定义。

(voidcall)

public___paint(Graphics____)

{call.drawString("Hello,java!

",10,20);}

6.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。

(booleantrue)

public________isEven(inta)

{if(a%2==0)

return_____;

else

returnfalse;

}

7.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载。

(参数列表)

二.选择题及答案

1.下列方法定义中,正确的是(D)。

A)intx(inta,b){return(a-b);}

B)doublex(inta,intb){intw;w=a-b;}

C)doublex(a,b){returnb;}

D)intx(inta,intb){returna-b;}

2.下列方法定义中,正确的是(D)。

A)voidx(inta,intb);{return(a-b);}

B)x(inta,intb){returna-b;}

C)doublex{returnb;}

D)intx(inta,intb){returna+b;}

3.下列方法定义中,不正确的是(D)。

A)floatx(inta,intb){return(a-b);}

B)intx(inta,intb){returna-b;}

C)intx(inta,intb);{returna*b;}

D)intx(inta,intb){return1.2*(a+b);}

4.下列方法定义中,正确的是(A)。

A)intx(){charch='a';return(int)ch;}

B)voidx(){...returntrue;}

C)intx(){...returntrue;}

D)intx(inta,b){returna+b;}

5.列方法定义中,方法头不正确的是(D)。

A)publicintx(){...}

B)publicstaticintx(doubley){...}

C)voidx(doubled){...}

D)publicstaticx(doublea){...}

6.在某个类中存在一个方法:

voidgetSort(intx),以下能作为这个方法的重载的声明的是(C)。

A)publicgetSort(floatx)B)intgetSort(inty)

C)doublegetSort(intx,inty)D)voidget(intx,inty)

7.在某个类中存在一个方法:

voidsort(intx),以下不能作为这个方法的重载的声明的是(B)。

A)publicfloatsort(floatx)B)intsort(inty)

C)doublesort(intx,inty)D)voidsort(doubley)

8.为了区分类中重载的同名的不同方法,要求(A)。

A)采用不同的形式参数列表B)返回值类型不同

C)调用时用类名或对象名做前缀D)参数名不同

三.问答题及答案

1.方法可以没有返回值吗?

可以有多个返回值吗?

(可以;不能)

2.一个方法如果没有返回值,方法头定义中的返回值类型为何?

(void)

3.何为形式参数?

何为实在参数?

(略)

4.一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用?

这种变量称为什么变量?

(不能;局部变量)

5.采用_______的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高。

(模块化)

6.重载的方法可以通过它们的返回值类型的不同来区分吗?

(不能)

7.编译程序如何区分重载方法的调用?

(根据参数列表不同来区分)

四.程序设计题及答案

1.编写方法求两个浮点数的最大值,并通过调用该方法求得从键盘读入的三个浮点数的最大值。

publicclassMaxMethod

{

publicstaticdoublemax(doublex,doubley)

{

doublez;

z=(x>y)?

x:

y;

returnz;

}

publicstaticvoidmain(String[]args)

{

System.out.println(“请输入3个浮点数,以回车结束每个数的输入:

”);

doublea=MyInput.readDouble();

doubleb=MyInput.readDouble();

doublec=MyInput.readDouble();

doubletemp=max(a,b);

temp=max(temp,c);

System.out.println(“最大值为:

”+temp);

}

}

2.编写方法,输出n以内的所有完数。

其中n是用户输入的。

完数:

如果一个数恰好等于它的因子之和,则这个数就是“完数”。

例如:

6的因子是1、2、3,而6=1+2+3,因此6就是完数。

publicclassWanshu

{

publicstaticvoidqiuwanshu(intn)

{

inti,j,sum;

for(i=1;i<=n;i++)

{

sum=0;

for(j=1;j

if(i%j==0)

sum+=j;

if(i==sum)

System.out.print(i+””);

}

Sytem.out.println();

}

publicstaticvoidmain(String[]args)

{

System.out.println(“请输入整数n,我们将给出n以内的所有完数:

”);

intn=MyInput.readInt();

qiuwanshu(n);

}

}

3.编写两个方法,分别求两个整数的最大公约数和最小公倍数。

提示:

可以利用辗转相除法求得两个整数的最大公约数。

最小公倍数*最大公约数=两个数的乘积

publicclassGLNumber

{

publicstaticintGcd(intm,intn)

{

while(n!

=0)

{

inttemp=m;

m=n;

n=temp%n;

}

returnm;

}

publicstaticintLcd(intm,intn)

{

returnm*n/Gcd(m,n);

}

publicstaticvoidmain(String[]args)

{

System.out.println(“请输入两个整数m,n,我们将给出这两个数的最大公约数和最小公倍数:

”);

intm=MyInput.readInt();

intn=MyInput.readInt();

System.out.println(“最大公约数是:

”+Gcd(m,n));

System.out.println(“最小公倍数是:

”+Lcd(m,n));

}

}

4.编写一个方法,用来计算并输出:

1-1/2+1/3-1/4+………+(-1)(n-1)*1/n,其中n是用户输入的正整数。

publicclassShuLie

{

publicstaticvoidsum(intn)

{

intsign=-1;

doublesum=1.0;

doubleunder=1.0;

for(inti=2;i<=n;i++)

{

under=1.0*i;

sum=sum+sign/under;

sign=sign*(-1);

}

System.out.println(“计算结果是:

”+sum);

}

publicstaticvoidmain(String[]args)

{

System.out.println(“请输入整数n:

”);

intn=MyInput.readInt();

sum(n);

}

}

5.利用数组实现对10个整数进行升序排列,并输出结果。

publicclassBubbleSort

{

publicstaticvoidbubbleSort(int[]a)

{

intn=a.length;

inttemp;

for(inti=n-1;i>0;i--)

{

for(intj=0;j

{

if(a[j+1]

{

temp=a[j+1];

a[j+1]=a[j];

a[j]=temp;

}

}

}

}

publicstaticvoidmain(String[]args)

{

int[]m={10,8,21,65,32,51,74,14,28,95};

System.out.println(“排序前的数组:

”);

for(inti=0;i

System.out.print(m[i]+””);

bubbleSort(m);

System.out.println();

System.out.println(“排序后的数组:

”);

for(inti=0;i

System.out.print(m[i]+””);

}

}

6.利用数组实现打印以下的杨辉三角(打印10行)

1

11

121

1331

14641

15101051

publicclassYangHui

{

publicstaticvoidmain(String[]args)

{

inti,j;

inta[][]=newint[11][11];

for(i=1;i<11;i++)

{

a[i][i]=1;

a[i][1]=1;

}

for(i=3;i<11;i++)

{

for(j=2;j<=i-1;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

for(i=1;i<11;i++)

{

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

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

System.out.println();

}

}

}

7.利用随机数产生一个10行,10列的整型矩阵。

完成如下操作:

a)输出矩阵中元素的最大值及最大值所在的位置(行、列值)

b)输出该矩阵的转置矩阵。

publicclassMatrix

{

publicstaticvoidmain(String[]args)

{

inta[][]=newint[10][10];

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

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

a[i][j]=(int)(100*Math.random());

System.out.println(“系统随机生成的矩阵是:

”);

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

{

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

System.out.print(a[i][j]+“”);

System.out.println();

}

intmax=a[0][0];

inthang=0;

intlie=0;

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

{

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

if(max

{

max=a[i][j];

hang=i;

lie=j;

}

}

System.out.println(“最大数”+max+”在第”+hang+”行,第”+lie+”列”);

System.out.println(“它的转置矩阵是:

”);

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

{

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

System.out.print(a[i][j]+“”);

System.out.println();

}

}

}

8.编写方法求12+22+…+…+n2.

publicclassPingfanghe

{

publicstaticvoidmain(String[]args)

{intn;

System.out.print(“pleaseinputaninteger:

”);

n=MyInput.ReadInt();

System.out.println("12+22+…+…+n2is"+YY(n));

}

publicstaticintYY(intn)

(inti=1,s=0;

while(i<=n)

{s+=i*i;i++;}

returns;

}

}

9.编写程序是先如下要求:

·说明一个方法,判断一个整数是否是素数。

使用如下方法说明:

publicstaticBooleanisPrime(intnum);

一个大于1的整数,如果它的因子只有1和它本身,则被称为素数(primenumber)。

例如,isPrime(11)返回true,而isPrime(9)返回false。

·用isPrime方法求前100个素数,并每行10个显示出来,输出格式如下:

2357111317192329

31374143475359616771

7379838997

publicclassExercise4_6

{

publicstaticvoidmain(String[]args)

{

intcount=0;

for(inti=2;i<=100;i++)

{

if(isPrime(i))

{

System.out.print(i+"");

count++;

if(count%10==0)

System.out.println("");

}

}

}

publicstaticbooleanisPrime(intnum)

{

if(num==2)

{

returntrue;

}

for(inti=2;i<=num/2;i++)

{

if(num%i==0)

returnfalse;

}

returntrue;

}

}

10.编写方法实现对用户输入的3个数(可以是int或double型),输出其最小者。

publicclassTestMin

{

//Mainmethod

publicstaticvoidmain(String[]args)

{

doublex,y,z;

x=MyInput.ReadDouble();

y=MyInput.ReadDouble();

z=MyInput.ReadDouble();

System.out.println("Theminimumoneis:

"

+min(x,y,z));

}

//Findtheminbetweentwodoublevalues

staticdoublemin(doublenum1,doublenum2)

{

if(num1>num2)

returnnum1;

else

returnnum2;

}

//Findtheminamongthreedoublevalues

staticdoublemin(doublenum1,doublenum2,doublenum3)

{

returnmin(min(num1,num2),num3);

}

}

11.写一个方法计算一个整数各位数字的和。

使用如下方法说明:

publicstaticintsumDigits(longn)

publicclassExercise4_2

{

publicstaticvoidmain(String[]args)

{

intn;

System.out.print(“pleaseinputaninteger:

”);

n=MyInput.ReadInt();

System.out.println("thesumofdigitsfor“+n+“is"+sumDigits(n));

}

publicstaticintsumDigits(longn)

{

inttemp=(int)Math.abs(n);

intsum=0;

while(temp!

=0)

{

intremainder=temp%10;

sum+=remainder;

temp=temp/10;

}

returnsum;

}

}

12.使用下述方法说明编写一个方法,将摄氏度转换为华氏度:

publicstaticdoublecelsToFahr(doublecels)

转换公式如下:

华氏度=(9.0/5)*摄氏度+32

用for循环编写程序,调用celsToFahr方法输出下表:

Cels.Temp.Fahr.Temp

……………………………………………

40.0104.00

39.00102.20

38.00100.40

37.0098.60

36.0096.80

35.0095.00

34.0093.20

33.0091.40

32.0089.60

31.0087.80

//Exercise4_4.java:

Createamethodfor

//convertingCelsiustoFahrenheit

publicclassExercise4_4

{

publicstaticvoidmain(String[]args)

{

System.out.println("Cels.Temp.\t\tFahr.Temp.");

System.out.println("-------------------------------");

for(doublecelsius=40;celsius>=31;celsius--)

{

System.out.println(celsius+"\t\t\t"+celsToFahr(celsius));

}

}

publicstaticdoublecelsToFahr(doublecels)

{

return(9.0/5.0)*cels+32;

}

}

13.编写方法,调用该方法求如下数值:

1+1/3+…+…+1/n;

publicclassFenshuhe

{

publicstaticvoidmain(String[]args)

{intn;

System.out.print(“pleaseinputaninteger:

”);

n=MyInput.ReadInt();

System.out.println("1+1/3+…+…+1/(2n-1)="+QQ(n));

}

publicstaticdoubleQQ(intn)

(inti=1;

doubles=0.0;

while(i<=n)

{s+=1/(2*i-1);i++;}

returns;

}

}

14.写一个方法计算给定年数和利率的投资终值。

终值由下列公式计算:

终值=现值×(1+月利率)年数×12

使用下述方法说明:

publicstaticdoublefutureTnvestmentValue(doubleinvestmentAmount,

doublemonthlyInterestRate,

intyears)

publicclassTouzizhongzi

{

//Mainmethod

publicstaticvoidmain(String[]args)

{

doublex,y;

intz;

x=MyInput.ReadDouble();

y=MyInput.ReadDouble();

z=MyInput.ReadInt();

System.out.println("TheTouzizhongziis:

"+futureTnvestmentValue(x,y,z));

}

//Findtheminbetweentwodoublevalues

publicstaticdoublefutureTnvestmentValue(doubleinvestmentAmount,

doublemonthlyInterestRate,

intyears)

{doubles=0.0;

s=investmentAmount*pow((1+monthlyInterestRate),(years*12));

returns;

}

15.有一个已经排好升序的数组。

现输入一个数,要求按原来的规律将它插入数组中。

pub

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

当前位置:首页 > 解决方案 > 学习计划

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

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