《Java面向对象编程》练习题.docx
- 文档编号:11170187
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:34
- 大小:177.11KB
《Java面向对象编程》练习题.docx
《《Java面向对象编程》练习题.docx》由会员分享,可在线阅读,更多相关《《Java面向对象编程》练习题.docx(34页珍藏版)》请在冰豆网上搜索。
《Java面向对象编程》练习题
专题1初识Java
、填空题
1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“DJDK',则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题
6Java程序的最基本组成单位是
1.Java语言有哪些特点?
2.JDK安装完成后,如何设置环境变量?
4.简述Java应用程序的开发过程
专题2标识符、表达式、数据类型
、填空题
1.Java逻辑常量有两个:
()和()。
2.写出下列表达式的运算结果,设
(1)
(2)
(3)
(4)
(5)
-a%b++
a>=1&&a<=10?
a:
b
cA(a>b)
(-a)vva
(double)(a+b)/5+a/b
3、比较两个数相等的运算符是:
4、Java中的八种基本数据类型分别是:
1.
2.
3、
4.
、选择题
a=2,b=-4,c=trueb()
()
()
()
()
char、
下面这些标识符哪个是错误的(
JavaworldB._sum
下列哪一组运算符的优先级顺序是从高到低排列的(
C.!
、%、++
C.2JavaProgram
)
D.$abc
卜&、!
B.&、A、II
下面哪个赋值语句不会产生编译错误chara='abc';B.byteb=152;
下面哪个单词是Java语言的关键字
FalseB.FORC.
<、<<、++
A.
5.执行下面程序后,哪个结论是正确的(
inta,b,c;
a=1;b=3;c=(a+b>3?
++a:
b++);
A.a的值为2,b的值为3,c的值为1C.a的值为2,b的值为4,c的值为1
()
C.floatc=2.0;
()
For
D.for
B.a的值为2,
D.a的值为2,
b的值为4,
b的值为3,
doubled=2.0;
c的值为2
c的值为2
6.设各个变量的定义如下,哪些选项的值为
inta=3,b=3;
booleanflag=true;
++a==bB.++a==b++C.
表达式(int)6.5/7.5*3的值的类型为()?
shortB.intC.double
7.
true()
(++a==b)IIflagD.(++a==b)&flag
D.float
&设a,b,x,y,z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是()
A.
9.
x>y&&b
下面语句输出的结果为()
Syste.out.println(5八2);
6B.7C.10
C.y==++x
D.y+x*x++
A.
10.对下面的语句执行完后正确的说法是:
intc='c'/3;
System.out.println(c);
A.输出结果为21B.输出结果为22
D.25
11.以下选项中变量a已定义类型,合法的赋值语句为(
A.a=int(y);B.a==1;C.a=a+1=3;
12.执行下列程序段后,ch,x,y的值正确的是:
()intx=3,y=4;
booleanch;
ch=x A.true,3,4B.true,4,3 C.输出结果为32D.输出结果为33 ) D.++a; C.false, 3, 4D.false,4,3 13.下列标识符中,正确的是 A、1_Back B、$_Money C、$-money D、2-Forward 14.现有一个int类型的整数和一个 double类型的浮点数, 当它们之间做了加法运算 之后,得到的结果类型应该是 A、int类型B、double类型 15、以下程序的运行结果为—。 PublicclassA{ publicstaticvoidmain(Stringa[]){ intx=2,y=5; Stringz="5"; System.out.println(x+y); System.out.println(x+z+"x+z"); System.out.println("x+y="+x+y);System.out.println("x+z="+(x+z)); C、float类型 D、Iong类型 } } A.725x+zx+y=25x+z=25 16、设有定义 B.7 7x+zx+y=25x+z=7 C.25 25x+zx+y=7x+z=25 7 25X+Zx+y=25x+z=7 A.144 inta=12;则执行a*=12;语句后,a的值为: B.12 C.24 17、下列标识符中,合法的一个是_。 A.$#@! $ B.$我们$ C.$22$ D.2$$2 18、执行下列程序段后,b,x,y的值分别是_。 intx=6,y=8; booleanb; b=x>y&&++x==--y; A.true,6,8B.false,6,8 19、下列程序运行的结果是_。 publicclassA{ publicstaticvoidmain(Stringargs[]){intx=7%3; while(x){ x--; } System.out.println(x); C.true D.编译错误 、编程题 1.使用Math.pow()方法,求出2的32次方的值。 专题3流程控制语句 、填空题 1.在switch语句中的表达式的类型必须是()或者( 2.break在循环语句中的作用是() 3.分支语句包括()和()。 4.while循环语句的循环次数(次数()。 ),do-while语句的循环次数(),for语句的循环 二、选择题 1.下面程序片段输出的是什么() inta=3,b=1; if(a=b)Syste.out.println( A.a=1B.a=3 2.下面语句执行后,x的值为( inta=4,b=5,x=3;if(++a==b)x=x*a; A.3B.12 3.请看下面的程序代码: if(x<0){Syste.out.println( elseif(x<20){Syste.out.println(else{Syste.out.println( “a=”+a); C.编译错误,没有输出D.正常运行,但没有输出 ) C. 15 “first “third D.20 ”);} “second”);} );} 当程序输出“second”,x的范围是( A.x<=0B.x<20&&x>=0 4.请看下面的程序代码: switch(n){ case0: Syste.out.println( case1: B) C.x>0D.x>=20 “first ”); Syste.out.println(default: Syste.out.println( } 当n为何值时,程序段将输出字符串 A.0B.1C.2 case2 “second”);break; “end”); ”second”) D.以上都可以 5.下列语句执行后,j的值是() intj=3,i=3; while(--i! =i/j)j=j+2; A.4B.5C.6 6.下列语句执行后,x的值是() intx=2; do{x+=x;}while(x<17);A.4B. 7.执行下列语句后, inti=1,j=8; do{ if(i++>--j) continue; }while(i<4); A.i=4,j=5 &下列语句执行后, intj=4,i,k=10;for(i=2;i! =j;i++)k=k-i; A.4B.5C. 9.下列语句执行后,c的值是() charc=0'; for(c='a';c<'z';c+=3){if(c>='e')break; } A.‘e'B.'f' 10.若变量都已经正确说明, a=10;b=50;c=30; if(a>b)a=b;b=c; 16C.32 i、j的值是( B.i=5,j=4k的值是( i=5,j=5 D.i=5,j=6 C.'g' 则以下程序段输出为( D.'h' System.out.println( a=b+a++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 c=a; 11.以下程序段输出是(D intx=1,y=0,a=0,b=0;i=(--a==b++)? --a: ++b; j=a++;k=b;System.out.println( A.i=2,j=1,k=3B. 12.以下程序的输出是(intx=1,y=0,a=0,b=0; switch(x){ case1: “i=”=+i+”j+”=”+k); i=1,j=1,k=2C.i=4,j=2,k=4 B) 2-12 D.i=2,j=-1,k=2 switch(y){ case0: a++;break; case1: b++;break;} case2: a++;break; case3: a++;b++; } System.out.pnntln(“a=”+a+”,b=”+b); A.a=1,b=0B.a=2,b=0C.a=1,b=1 13.以下程序段输出是() inti=0,j=0,a=6; if((++i>0)||(++j>0))a++: System.out.pnntln(“i=”+i+”,j=”+j+” a= 20 a=2,b=2 A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7 14、下列程序运行的结果是 publicclassA{ publicstaticvoidmain(Stringargs[]){ charc='d'; for(inti=1;i<=4;i++){switch(i){case1: c='a'; System.out.print(c);break; case2: c='b'; System.out.print(c);break; case3: +a); D.i=0,j=1,a=7 c='c'; System.out.print(c);default: System.out.print("! ");} 、编程题 1.输入一个年份值,判断是否是闰年,输出相应的信息。 2•编写程序,计算邮局汇款的汇费: 如果汇款金额小于100元,汇费为1元,如果金额在100 元与500元之间,按1%攵取汇费,如果金额大于500元,汇费为50元。 3.求某年某月的天数. 4. while编写程序)。 求从1到100之间所有奇数的平方和(用for、while和do 5.求S=1+2+3+…+n之和,Sv1000的最大n的值。 专题4数组 、填空题 1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值: ()。 2.设有整型数组的定义: “intx[][]={{12,34},{-5},{3,2,6}};则x.length的值为() 3.求取二维数组a[][]的第i行元素个数的表达式是()。 4、一个一维数组有10个元素,则该数组可用的下标范围是 5、StringS[]={安徽”江苏”山东”;则S[1]的值是: 6当声明一个数据组intarr[]=newint[5];时,这代表这个数组所保存的变量类型 ,数组元素下标的使用范围是 二.选择题 1.设有定义语句“inta[]={66,88,99};,则以下对此语句的叙述错误的是() C.6 5、下列二维数组的创建中错误的是 inta[][]=newint[3][]; C. 、编程题 1.将一个数组中的数逆序重新存放。 2.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。 3.求一个二维数组的每行最大数。 **专题5面向对象 、填空题 则称子类中的这个方法覆盖了父类的同名方法。 方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必 须在 类之中定义。 5. 一般Java程序的类主体由两部分组成: 一部分是 ,另一部分是0 6. 分别用—关键字来定义类,用 关键字来分配实例存储空间。 7. 当一个类的修饰符为 时,说明该类不能被继承,即不能有子类。 8. 在Java中,能实现多重继承效果的方式是 选择题 1. A. C. 2. A. C. 3. A. C. 4. A. 方法内定义的变量()o 一定在方法内所有位置可见在方法外可以使用 方法的形参()o 可以没有 必须定义多个形参 return语句()。 不能用来返回对象 方法都必须含有 main()方法的返回值类型是()。 boolean B.可能在方法的局部位置可见 D.在方法外可见 B.至少有一个 D.只能是简单变量 B.只可以返回数值 D.一个方法中可以有多个 B.int C. 5. publicclassA{ publicstaticvoidmain(Stringargs[]){ Aa=newAO; a.method(8); } voidmethod(inti){ System.out.println(int: ”+i); } voidmethod(longi){ System.out.println(Ibng: ”+i); } A.程序可以编译运行,输出结果为: “int: B.程序可以编译运行,输出结果为: “ void 编译并运行下面的程序,运行结果是( D.static 8”long: 8” C.程序有编译错误,因为两个method()方法必须定义为静态(static)的 D.程序可以编译运行,但是没有输出 6.能作为类及其成员的修饰符是()o C. 7. A. C. interface B.class protected D.public 下列方法定义中,方法头不正确的是( )。 Publicstaticx(doublea){…} B.publicstaticintx(doubley){…} voidx(doubled){…} D.publicintx(){…} 构造方法在()时被调用。 & A.类定义时 C.调用对象方法时 9. A. B.使用对象的变量时 D.创建对象时 C. 10. 下列哪个类声明是正确的()。 PublicabstractclassCar{-} protectedprivatenumber; 下列不属于面向对象程序设计的基本特征的是( B.abstractprivatemove(){・・・} D.abstractfinalclassH1{-} )。 A.抽象B.封装 C.继承D.静态 11.请看下面的程序段 classPerson{ Stringname,department; intage; publicPerson(Stringn){name=n;} publicPerson(Stringn,inta){name=n;age=a;} publicPerson(Stringn,Stringd,inta){ //doingthesameastwoargumentsversionifconstructer } 下面那个选项可以添加到//doingthesame处( A.Person(n,a) C.this(n,a) 12.请看下面的程序段 classTest{ privateintm; publicstaticvoidfun(){ //somecode } } 方法fun()如何来访问变量m( A. B. ) this(Person(n,a)) this(name.age) C. 13. A. C. 14. ) 将privateintm改成protectedintm将privateintm改成staticintm有一个类A,对于其构造函数的声明正确的是voidA(intx){…} AA(intx){…} 请看下面的程序段 B. B. 将privateintm改成publicintm将privateintm改成intm )) publicA(intx){…} intA(intx){…} publicclassTest{ longa[]=newIong[10]; pubicstaticvoidmain(Stringargs[]){ System.out.printin(a[6]); } } 哪一个选项是正确的( B.输出0 D.当运行时有错误出现 A.不输出任何内容 C.当编译时有错误出现 15. 关键字()表明一个对象或变量在初始化后不能修改。 extendsB.final C. this D.finalize 16. A.超类 声明为static的方法不能访问()类成员。 B.子类 C.非static D.用户自定义类 17.定义类A如下: (重要) classA{ inta,b,c; publicvoidB(intx,inty,intz){a=x;b=y;c=z;}} 下面对方法B的重载哪些是正确的( A. B. C. PublicvoidA(intx1,inty1,intz1){a=x1;b=y1;c=z1;}publicvoidB(intx1,inty1,intz1){a=x1;b=y1;c=z1;}publicvoidB(intx,inty){a=x;b=y;c=0;} D. PublicB(intx,inty,intz){a=x;b=y;c=z;} 编译运行下面的程序,结果是( 18. publicclassA{ publicstaticvoidmain(Stringargs[]){Bb=newB();b.test(); } voidtest(){ System.out.print( } }classBextendsA{ voidtest(){super.test(); System.out.print( } } A.产生编译错误 )。 (重要) “A”); “B”); B.代码可以编译运行,并输出结果: AB C.代码可以编译运行,但没有输出 19.已知类关系如下: ClassEmpioyee{} ClassManagerextendsEmpioyee{} ClassDirectorextendsEmpioyee{} 则下列语句正确的是: ()。 A. D.编译没有错误,但会产生运行时异常 C. 20. A. Empioyeee=newManager(); Directord=newEmpioyee(); 接口是Java面向对象的实现机制之一,以下说法正确的是( Java支持多重继承,一个类可以实现多个接口 B.Directord=newManager(); D.Managerm=new )。 Director(); B.Java只支持单重继承,一个类可以实现多个接口 C.Java只支持单重继承,一个类可以实现一个接口 D.Java支持多重继承,但一个类只可以实现一个接口 21.下列方法的声明中不合法的是 A.floatarea(){…} B.voidarea(){…} C.area{…} D.intarea(intr){ …} 22、下面哪个包是编程时不需要导入就可以直接使用的 23、调用构造方法是在 A.类定义时 B.创建对象时 C.调用对象的方法时 D.使用对象的变量时 24、在子类构造方法的哪个地方可以调用其父类的构造方法 任何地方 25、关于Java中的继承,下列说法错误的是 A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必 从头开始,避免了工作上的重复。 C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一 些特性,使得它更具体、功能更强大。 D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个 父类,而多重继承则可以有多个父类。 Java中的类都采用多重继承。 26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变 A.staticB.superC.this 29、从下列程序中你发现了几处错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java面向对象编程 Java 面向 对象 编程 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)