《Java面向对象编程》练习题 下载本文

专题3 流程控制语句 一、填空题

1.在switch语句中的表达式的类型必须是( int型 )或者( Boolean )。 2.break在循环语句中的作用是(跳出整个循环 )。 3.分支语句包括( 双重分支)和( 多重分支)。

4.while循环语句的循环次数(不限 ),do-while语句的循环次数( 至少一次 ),for语句的循环次数(不限 )。

二、选择题

1.下面程序片段输出的是什么( C) int a=3, b=1;

if(a=b) Syste.out.println(“a=”+a);

A.a=1 B.a=3 C.编译错误,没有输出 D.正常运行,但没有输出 2.下面语句执行后,x的值为(C ) int a=4, b=5, x=3; if(++a==b) x=x*a;

A.3 B.12 C.15 D.20 3.请看下面的程序代码:

if(x<0) {Syste.out.println(“first”);} else if(x<20) {Syste.out.println(“second”);} else {Syste.out.println(“third”);}

当程序输出“second”时,x的范围是( B)

A.x<=0 B.x<20 && x>=0 C.x>0 D.x>=20 4.请看下面的程序代码: switch(n){

case 0: Syste.out.println(“first”); case 1:

case 2: Syste.out.println(“second”); break; default: Syste.out.println(“end”); }

当n为何值时,程序段将输出字符串”second”( D ) A. 0 B.1 C.2 D.以上都可以 5.下列语句执行后,j的值是(D ) int j=3, i=3; while(--i!=i/j) j=j+2;

A. 4 B.5 C.6 D.7 6.下列语句执行后,x的值是(D) int x=2 ;

do{x+=x ; }while(x<17);

A. 4 B.16 C.32 D.256 7.执行下列语句后,i、j的值是( B) int i=1, j=8; do{

if(i++>--j) continue; }while(i<4);

A. i=4, j=5 B.i=5,j=4 C.i=5,j=5 8.下列语句执行后,k的值是( B ) int j=4, i, k=10; for(i=2; i!=j; i++) k=k-i;

A. 4 B.5 C.6 D.7 9.下列语句执行后,c的值是(C ) char c=?\\0?;

for(c=?a?; c

if(c>=?e?) break;

}

A. ?e? B.?f? C.?g? D.?h? 10.若变量都已经正确说明,则以下程序段输出为( A ) a=10; b=50; c=30; if(a>b) a=b;b=c; c=a;

System.out.println(“a=”+a+” b=”+b+” c=”+c);

A.a=10 b=50 c=10 B.a=10 b=30 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=30 11.以下程序段输出是(D )

D.i=5,j=6

int x=1,y=0,a=0,b=0; i=(--a==b++)? - -a : ++b; j=a++; k=b;

System.out.println(“i=”+i+” ,j=”+j+” ,k=”+k); 2 -1 2 A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 12.以下程序的输出是( B ) int x=1,y=0,a=0,b=0; switch(x){ case 1: switch(y){

case 0: a++;break; case 1: b++;break; } case 2: a++;break; case 3: a++;b++; }

System.out.println(“a=”+a+”,b=”+b); 2 0 A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是( C ) int i=0,j=0,a=6;

if ((++i>0) || (++j>0 )) a++ :

System.out.println(“i=”+i+” ,j=”+j+” ,a=”+a);

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是 C 。 public class A{

public static void main(String args[]){ char c = 'd'; for (int i = 1; i <= 4; i++) { switch (i){ case 1: c = 'a'; System.out.print(c); break; case 2: c = 'b'; System.out.print(c);

}

}

}

break; case 3: c = 'c'; System.out.print(c); default: System.out.print(\ }

A.! B.dbc! C.abc! D.abc!!

三、编程题

1.输入4个数,将这4个数按从小到大输出。

2.输入一个年份值,判断是否是闰年,输出相应的信息。

3.输入一元二次方程系数,若有实数根,求根并输出,否则输出“不是二次方程或没有实数根”的信息。

4.编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。 5.求某年某月的天数.

6.求从1到100之间所有奇数的平方和(用for、while和do??while编写程序)。

7.求S=1+2+3+?+n之和,S<1000的最大n的值。

8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少? 10.输出九九乘法表。

11.输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个

数就称为完数。 12.输出100以内的全部素数。 13.求1!+2!+3!+??+10! 14.求2+22+222+2222+22222。

专题4 数组 一、填空题

1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:(int y []={1,2,3,4,5} )。