文档库 最新最全的文档下载
当前位置:文档库 › java模拟试题

java模拟试题

java模拟试题
java模拟试题

java模拟试题

2017年java模拟试题

1.代码填空(满分3分)

以下程序打印出0~9的数字,请补充缺少的代码。

publicclassMyTest

{

publicstaticvoidf(intbegin,intend)

{if(begin>end)return;

System.out.println(begin);

f(begin+1,end);

}

publicstaticvoidmain(String[]args)

{

f(0,9);

}

}

2.代码填空(满分4分)

如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。

a=a^b;

b=___a^b______;

a=___a^b______;

3.代码填空(满分3分)

许多人都曾经玩过“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17等都不能数出),下一人继续数下面的数字。违反规则者受罚。下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。

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

{

if(i%7==0)

printf("*/n");

elseif(____i/10==7||i%10==7_______________)

printf("*/n");

else

printf("%d/n",i);

}

4.代码填空(满分5分)

下面的静态方法的目的是求出某个日期是该年度的第几天。试完善之。

如果传入:year=1980,month=1,day=1

则返回1

如果传入:year=1980,month=2,day=1

则返回32

publicstaticintgetDayOfYear(intyear,intmonth,intday)

{

int[][]days=____newint[][]{{0,31,29,31,30,31,30,31,31,30 ,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}}________ _________;

intflag=(year%4==0&&year%100!=0)||year%400==0?1:0;

intsum=day;

for(inti=0;i

sum+=days[flag][i];

}

returnsum;

}

5.代码填空(满分2分)

下列方法的目的是,找出1~n之间所有的平方数。试补全缺失的代码。

当n=10时,输出结果是:

149

当n=100时,输出结果是:

149162536496481

publicstaticvoidshowSqure(intn)

{

for(inti=0;i

{

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

{

if(i==___j*j__________)System.out.print(i+"");

}

}.

System.out.println();

}

6.代码填空(满分9分)

(a+b)的n次幂的.展开式中各项的系数很有规律,对于n=2,3,4时分别是:121,1331,14641。这些系数构成了著名的杨辉三角形:

1

11

121

1331

14641

15101051

下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。

publicstaticintf(intm,intn)

{

if(m==0)return1;

if(n==0||n==m)return1;

returnf(m-1,n-1)+f(m-1,n);

}

7.代码填空(满分4分)

下面的代码将数组中的元素的位置颠倒过来:

比如:原来的元素是[1,2,3]

则颠倒后变为:[3,2,1]

publicstaticvoidreverse(int[]arrs)

{

for(inti=0,j=arrs.length-1;i<____j_____;i++,j--)

{

inttemp=arrs[i];

arrs[i]=arrs[j];

arrs[j]=temp;

}

}

8.程序设计(满分15分)

从键盘输入一个整数(1~20)

则以该数字为矩阵的大小,把1,2,3…n*n的数字按照顺时针螺旋的形式填入其中。例如:

输入数字2,则程序输出:

12

43

输入数字3,则程序输出:

894

765

输入数字4,则程序输出:

1234

1213145

1116156

10987

importjava.util.Scanner; publicclassTest8{

publicstaticvoidmain(String[]args){ intnum=1;

intcirCle[][]=newint[20][20]; intinputNum;

inti,j,line,t;

System.out.println("请输入一个正整数"); Scannerin=newScanner(System.in); inputNum=in.nextInt();

line=inputNum;

for(t=0;t

for(i=t,j=t;j

cirCle[i][j]=num;

num++;

for(j=j-1,i=i+1;i

num++;

}

for(j=j-1,i=i-1;j>=t;j--){

cirCle[i][j]=num;

num++;

}

for(j=j+1,i=i-1;i>t;i--){

cirCle[i][j]=num;

num++;

}

}

for(intm=0;m

for(intn=0;n

System.out.print(cirCle[m][n]+""); }

System.out.println();

}

}

}

9.程序设计(满分9分)

从键盘输入一个日期,格式为yyyy-M-d

要求计算该日期与1949年10月1日距离多少天

例如:

用户输入了:1949-10-2

程序输出:1

用户输入了:1949-11-1

程序输出:31

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd");

Dated=newDate();

Stringd1="1949-10-1";

Datea=newDate();

System.out.println("请输入一个日期以(YYYY-MM-DD)格式输入:");

Scannersc=newScanner(System.in);

Strings=sc.nextLine();

try{

d=sf.parse(d1);

a=sf.parse(s);

}catch(ParseExceptione1){

e1.printStackTrace();

}

longx=a.getTime()-d.getTime();

System.out.println(x/1000/(24*60*60));

}

}

10.程序设计(满分20分)

任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。

比如,刚才的数字会落入:[82962,75933,63954,61974]这个循环圈。

请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为[0],这个可以不考虑。循环圈的输出格式仿照:

[82962,75933,63954,61974]

其中数字的先后顺序可以不考虑。

importjava.util.Arrays;

publicclassMyTest{

publicstaticvoidmain(Stringargs[]){

intf=Sort(array(34256));

intx=Sort(array(34256)); for(inti=0;i<4;i++){

x=Sort(array(x)); System.out.print(x+""); }

}

staticint[]array(intn){ inta[]=newint[5];

inti=0;

intm=n;

while(i<5){

a[i]=m%10;

if(m%10==0)

a[i]=0;

m/=10;

i++;

}

returna;

}

staticintSort(inta[]){ Arrays.sort(a); Stringmin="";

for(inti=0;i<5;i++){

min=min+String.valueOf(a[i]);

}

intMin=Integer.parseInt(min);

StringBuffersb=newStringBuffer(min).reverse(); Stringmax=newStringBuffer(sb).toString(); intMax=Integer.parseInt(max);

intc=Max-Min;

returnc;

}

}

相关文档