资源描述
习题
一、选择题(答案可能不止一个)
1.( )是以对象为特征的可视化程序组件?
A.过程化语言 B.面向对象的语言 C.机器语言 D.以上都不是
2.Java语言在体系结构上是( )。
A.过程化语言 B.抽象的 C.与平台无关的 D.特定的
3.所有Java应用程序必须包含下面哪个方法才能运行?( )
A.start() B.begin() C.main() D.main(String args[])
4.执行编译好的Java程序的命令是( )。
A.javac B.java C.run D.execute
5.在Java中,类可以具有任何数目的超类?( )
A.正确 B.错误
6.以下哪种Java程序可访问JVM之外的资源?( )
A.Java应用程序 B.Java Applet C.Java Servlet D.以上都不是
7.Java源代码文件可使用下列哪个扩展名存储?( )
A..java B..javac C..javax D..src
8.子类也称为( )。
A.内联类 B.嵌套类 C.派生类 D.隐藏类
9.以下哪个选项使Java得以在因特网上流行?
A.Java Applet B.Java应用程序 C.Java字节码 D.以上都不是
10.以下哪个是关于Java的正确说法?( )
A.仅具有编译器 B.仅具有翻译器 C.具有编译器和翻译器 D.具有字节码阅读器
二、填空题
1.Java程序有_______________________和______________________两种类型;
2.现有一个Java类MyJava,其权限为public,则包含该类的Java程序文件名为________________;用javac命令编译后,得到类文件是______________________;要运行该程序,在命令行环境下应输入_________________________命令;
3.在Eclipse集成开发环境中开发Java程序,先要点击________________菜单创建Java项目,然后点出__________________菜单在Java项目中新建Java类,接着编写程序代码,之后点出______________菜单或______________按钮运行程序;
4.通常,主类程序都有一个__________方法,它是Java应用程序的入口点。
三、思考题
1.与其它高级语言比较,Java语言有什么特点?
2.环境变量classpath与path包含的内容、实现的功能有什么不同?
3.什么是JVM ?简述ava程序的执行过程。
四、编程题
1.编写一个主类名为MyJava1的Java程序,输出一行“这是我编写的第一个Java程序”文字;
2.参考例题,编程实现如图1、图2所示功能:输入圆的半径,输出其周长与面积:
图1 输入圆的半径 图2 输出圆的周长与面积
3.参考例题,编写一个小应用程序,输出类似于图3所示结果(图片可从互联网上下载):
图3 小应用程序运行结果
习题
一、选择题(答案可能不止一个)
1.下列哪一个不是Java语言的关键字?( )
A . if B. sizeof C. private D. null
2.下列关于基本数据类型取值范围的描述中,正确的是( )
A. byte类型的取值范围为-128~128 B. boolean类型的取值为ture和false
C. char类型的取值范围为0~65536 D. short类型的取值范围为-32768~32767
3.下列赋值语句中,不正确的是( )
A. boolean b=(5>6); B. double d=0.0f; C. float f=1.23; D. char c=’NBA’;
4.表达式 true || false && true || false && !true的值是( )
A. 0 B. 1 C. true D. false
5.已知:int x=3; int y=6; z=x|y; 则z的值为( )
A. 6 B. 7 C. 8 D. 9
6.在一个应用程序中定义了数组a:int [] a={1,2,3,4,5,6}; 能够打印输出数组最后一个元素的语句是( )
A. System.out.println(a[6]); B. System.out.println(a[5]);
C. System.out.println(a[4]); D. System.out.println(a[a.length]);
7. 观察下列代码段,其运行结果中包括( )选项
for (int i=0;i<2;i++){
for (int j=0;j<3;j++){
if (i==j)
continue;
System.out.println("i="+i+", j="+j);
}
}
A. i=0, j=0 B. i=0, j=1 C. i=0, j=2
D. i=1, j=0 E. i=1, j=1 F. i=1, j=2
8. 执行如下代码段后,程序的输出结果是( )
int x=1;
switch (x){
case 1:
++x;
System.out.print(x);
case 5:
x++;
System.out.print(x);
break;
default:
System.out.print(x);
}
A. 1 B. 12 C. 23 D. 123 E. 234 F. 3
二、填空题
1.请将程序所缺代码补充完整:
public __________ App1{
public _________ void ____________(________ arg[ ]){
__________.out.println("你好!");
}
}
2.设i、d、c的数据类型分别为int、double和char型,它们的值为:i=10, d=23.4, c=’a’。
请将表达式的值填入表格中(假定各表达式互不影响):
表 1 表达式对应的运行结果
表达式
运算结果
表达式
运算结果
r1=i++
r2=++i
i%3
d/2
d >123.45
i==0
i+20 <= d
(i<20) && (c!=’A’)
c>=’a’ && c<=’z’
(int) (c+3)
3. 请把下列数学式或描述写成Java对应的表达式:
(1) ax2+bx+c 对应的Java表达式________________
(2) 对应的Java表达式________________
(3) 对应的Java表达式________________
(4) 4x-7y+2=ab 对应的Java表达式________________
(5) place="广东" 同时 sex='男' 对应的Java表达式________________
(6) ch是0—9的数字字符对应的Java表达式________________
4.某学校评选奖学金的条件是主要课程的平均成绩为95分及95分以上,或是主要课程每科成绩为90分及90分以上。设某学期某年级开设了x1、x2、…、x5门主要课程,则将评选奖学金的条件用Java表达式表示出来应该是____________________________。
三、思考题
1. Java中的数据类型可分哪两大类?基本类型包括哪8种?
2. Java中的包名、类名、接口类、方法名的命名有什么约定俗成的规则?
3. Java中的注释有哪些种类?为什么编写程序代码时要加入注释?
4. 为什么使用&&、||运算符进行逻辑运算时容易出现“短路”现象?如何加以改进?
5. 本章中介绍了哪几种输入、输出方法?请注意它们的区别。
6. 比较Java中的数组与C++中的数组的异同点。
四、编程题
1.要求:以图形界面方式输入任意三个实数,输出其中的最大值。
2.现有一函数:
请编写一个程序,输入x值,输出y值。
3.我国公民个人收入所得税采用分级累进方法计算,实际操作时:先计算 超出个税起征点的金额=月收入- 个税起征点(现阶段为2000元),再根据超出部分数量多少来确定纳税等级(月收入不到个税起征点的不用纳税),最后计算 纳税金额=超出部分金额*相应税率-速算扣除数。具体见表2:
表2 我国个人所得税各等级的税率及速算扣除数
级数
月收入超出个税起征点的金额
税率
速算扣除数(元)
1级
不超过500元的
5%
0
2级
超过500至2000元的部分
10%
25
3级
超过2000元至5000元的部分
15%
125
4级
超过5000元至20000元的部分
20%
375
5级
超过20000元至40000元的部分
25%
1375
6级
超过40000元至60000元的部分
30%
3375
7级
超过60000元至80000元的部分
35%
6375
8级
超过80000元至100000元的部分
40%
10375
9级
超过100000元以上
45%
15375
例如:某人某月收入为5000元,则他应交纳的个人所得税可以这样计算:
超出个税起征点金额:5000-2000=3000元,属于第3级别,故:
应缴个人所得税:3000*15%-125=450-125=325(元)
请编写一个程序,输入任何一个公民的月收入,能够计算其应交纳的个人所得税。
4.利用公式 :
求π的近似值,直到最后一项的绝对值小于10-4为止。(用while语句实现)
5.36块砖,36人搬,男搬4、女搬3、两个小儿抬1砖,要求一次全搬完,问:男、女、小儿各几人?
6.使用Math.random()方法产生50个0—100的随机整数,并将它们存放到一维数组score中,然后统计各分数段上的次数(即分别在0~9,10~19,20~29,…,80~89,90~100上的次数),并将分类统计结果存入到数组result中,最后输出数组result各元素的值。
习题
一、选择题(答案可能不止一个)
1.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )
A.static void method( ) B.public void method( )
C.final void method( ) D.abstract void method( )
2.对于构造方法,下列叙述正确的是( )
A.构造方法是类的一种特殊方法,它的方法名必须与类名相同
B.构造方法的返回类型只能是void型
C.构造方法的主要作用是完成对类的对象的初始化工作
D.一般在创建新对象时,系统会自动调用构造方法
3.若需要定义一个类变量或类方法,应使用哪种修饰符?( )
A.static B.package C.private D.public
4.若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于( )
A.本地方法 B.最终方法 C.静态方法 D.抽象方法
5.不使用static修饰符限定的方法称为实例方法。下列关于实例方法的说法中,正确的是( )
A.实例方法可以直接调用父类的实例方法
B.实例方法可以直接调用父类的类方法
C.实例方法可以直接调用其他类的实例方法
D.实例方法不可以直接调用本类的类方法
6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
7.设有下面的一个类定义:
class AA {
static void Show( ){
System.out.println(“我喜欢Java!”);
}
}
class BB {
void Show( ){
System.out.println(“我喜欢C++!”);
}
}
若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的?( )
A.a.Show( ) B.AA.Show( ) C.AA.Show( ) D.a.Show( )
b.Show( ) BB.Show( ) b.Show( ) BB.Show( )
8.关于下列代码,哪那个语句的描述是正确的?( )
public class Person{
static int arr[] = new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A.编译时将产生错误 B.编译时正确,运行时将产生错误
C.输出零 D.输出空
9. 下列方法定义中,正确的是( )
A. int x( ){ char ch='a'; return (int)ch; } B.void x( ){ ...return true; }
C. int x( ){ ...return true; } D.int x( int a, b){ return a+b; }
10.在某个类A中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( )
A.void getSort(float x) B.int getSort(int y)
C.double getSort(int x,int y) D.void get(int x,int y)
11. 有一个类A,以下为其构造方法的声明,正确的是( )
A. void A(int x){...} B. A(int x){...}
C. a(int x){...} D. void a(int x){...}
12. 符合对象和类关系的是( )
A.人和老虎 B.书和汽车 C.楼和建筑物 D.汽车和交通工具
二、填空题
1.定义一个类包括类的声明和_______两个部分。
2. Java中类成员的访问修饰符有以下几种:private, public, _ __ _ ___, _______ _;类的访问修饰符只能使用缺省和_______ _。
3.类的类型修饰符包含了缺省、 及 三种,分别对应具体类、抽象类和最终类三种类型。
4.this除了可以用作对当前对象的引用外,还可以使用this调用 构造方法以及访问 ___________的成员变量。
5.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 __________了父类的同名方法。
6.创建一个名为MyPackage 的包的语句是 ,该语句应该放在程序的位置为 。
三、思考题
1.面向对象编程语言的基本特征是什么?
2.什么是对象?什么是类?对象与类的关系是什么?
3.类变量与实例变量的区别?
4.类方法与实例方法的区别?
5.什么是方法的重载?
6.构造方法有什么作用?
7.Java中引入包的优点是什么?
8.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?
四、编程题
1.根据下面的要求实现圆类Circle:
Circle类的成员变量:radius 半径
Circle类的成员方法:
(1) Circle() 构造方法,将半径置为0
(2) Circle(double r) 构造方法,创建Circle对象时将半径初始化为r
(3) double getRadius() 获得圆的半径值
(4) void setRadius(double r) 设置圆的半径
(5) double getPerimeter() 获得圆的周长
(6) double gerArea() 获得圆的面积
接着再定义一个类CircleTest,用来调用Circle类,具体如下:
在CircleTest类的main()方法中创建一个半径为0的对象c1,再调用它的setRadius()修改其半径值为50,然后输出c1的周长和面积。
2.先定义一个教师类Teacher,它封装了:
三个成员变量:
strNo //表示工号
strName //表示姓名
intWorkAge //表示工龄
四个成员方法:
Teacher(String no, String name, int workAge) //构造方法
getTeacherNo() //获取教师工号
getTeacherName() //获取教师姓名
getTeacherWorkAge() //获取教师工龄
接着再定义一个类TeacherTest,用来调用Teacher类,具体如下:
在Teacher类的main()方法中创建一个工号为“0234”、姓名为“张三”、工龄为35年的对象t1,然后输出t1的工号、姓名和工龄。
3.设计学生类student,属性包括:sno、sname、Chinese(语文成绩)、Math(数学成绩)和Phsic(物理成绩),,然后创建一个包含四个元素的对象数组stu,stu使用表1中的数据进行初始化,要求输出三门成绩总和为最高的学生学号和姓名。
表1 类属性及属性值
4.请按要求设计一个课程类Course,它封装了:
三个成员变量:
courseID //课程代号
courseName //课程名称
credit //课程学分
四个重载的构造器:
Course() //默认的构造器
Course(String courseID) //单参数的构造器
Course(String courseID,String courseName) //两个参数的构造器
Course(String courseID,String courseName, int credit) //三个参数的构造器
要求:Course(String courseID,String courseName)构造器要调用Course(String courseID,String courseName, int credit)构造器。
习题
一、选择题(答案可能不止一个)
1.现有:String str1="Java"; String str2=new String("Java"); String str3="Java"; String str4=new String("Java"); 在下列表达式中,结果为true的有( )
A . str1==str2; B. str1==str3; C. str2==str4; D. pareTo(str4);
2.若有:String str1="Java"; String str2=new String("Java"); String str3="Java"; String str4=new String("Java"); 在下列表达式中,结果为true的有( )
A. str1.equals(str2); B. str1.equals(str3);
C. str2.equals(str4); D. pareTo(str3);
3.现有:String str="Tel:(020)87818998"; 若要得到第二个“8”的位置,可调用 ( )方法
A. str.indexOf('8'); B. str.lastIndexOf('8');
C. str.indexOf('8', strr.indexOf('8')+1); D. str.charAt('8');
4.若有:String str=new String("广州亚运会")转换为字节数组,正确的语句( )
A. byte b[]=str.getBytes(); B. byte b[]=str.getchars();
C. byte b[]=str.getBytes("GBK"); D. byte b[]=new Byte(str);
5.以下表达式中,正确的有( )
A. String str=""+6; B. "test".trim(); C. "nba".toUpperCase();
D. String words[]="What is your name?".split();
6.具有append()方法的是( )类
A. String B. StringBuffer C. Math D. StringTokenizer
7.要产生[1,100]的随机整数,可通过( )语来实现
A. (int) (1 + Math.random() * 100); B. (int) (1 + Math.random() * 99);
C. (int) (1 + Math.random() * 101); D. (int) (Math.random() * 101);
8.要将字符串"678" 转换成int类型数据,正确的语句是( )
A. Double.parseDouble("678"); B. Int.parseInt("678");
C. Integer.parseInt("678"); D. Integer.valueOf("678");
9.要获得当前系统时间的毫秒数,正确的方法有( )
A. Date now=new Date() ; long n=now.getTime(); B. System. currentTimeMillis();
C. Calendar cal=new GregorianCalendar();long n=cal. getTimeInMillis();
D. Calendar cal=new Calendar();long n=cal. getTime();
10. 假设系统时间为2010年10月1日0时0分0秒 0毫秒,则执行如下语句:Calendar cal=new GregorianCalendar(); System.out.println(cal.get(Calendar.MONTH));后将输出( )
A. 1 B. 4 C. 5 D. 6
二、填空题
1.调用____________表达式可得到圆周率的近似值;
2.执行StringBuffer buffer=new StringBuffer(); 语句后,buffer的初始容量为____字节;
3.若要创建一个指定时间:2008年8月8日20时0分0秒 的对象,可用____________________语句来实现;
4.SimpleDateFormat类的功能是____________________________。
三、思考题
1.字符串常量与使用new String(" …")方法构造的字符串有什么不同?
2.比较字符串时,使用“==”运算符与调用equals()方法有什么差异?
3.StringBuffer与String相比,有什么优点?
4.基本数据类型的包装类有什么用途?
5.比较Date类与Calendar类的区别。
四、编程题
1.编写一个Java程序,实现下列功能:
(1)声明一个名为str的String对象,并使它的内容初始化为“How are you? ”;
(2)打印整个字符串内容;
(3)输出字符串的长度;
(4)输出字符串的第一个字符;
(5)输出字符串的最后一个字符;
(6)输出字符串中的第一个单词(提示:先查找第一个空格位置,再获取该位置之前的子串);
(7)以大写字母方式输出字符串内容。
2.编写一个Java程序,实现如下功能:
(1)声明一个名为bufferr的StringBuffer对象,并使它的内容初始化为“C++”;
(2)输出buffer的内容;
(3)使用append()方法在尾部追加“是一种编程语言”字符串;
(4)使用insert()方法在“一种”和“编程”之间插入“面向对象”字符串;
(5)使用replace()方法将字符串中的“C++”内容替换成“Java”;
(6)使用delete()方法删除字符串中的“一种”两个汉字;
(7)将buffer对象翻转(即从尾到头),再转换为String对象,并输出。
3.使用Math.random()方法产生50个0—100的随机整数,并将它们存放到一维数组score中,然后统计各分数段上的次数(即分别在0—9,10—19,20—29,…,80—89,90—100上的次数),并将分类统计结果存入到数组result中,最后输出数组result各元素的值。
4.编程实现:输入任意一个正整数,输出其对应的二进制、八进制、十六进制字符串。
5.借助SimpleDateFormat类输出系统的当前时间,输出格式为:
北京时间:xxxx年xx月xx日xx时xx分xx秒。
习题
一、选择题(答案可能不止一个)
1.设有下面两个类的定义:
class Person {}
class Student extends Person {
long id; // 身份证号
int score; // 入学总分
String name; // 姓名
int getScore(){return score;}
}
问:类Person和类Student的关系是( )。
A.包含关系 B.继承关系 C.关联关系 D.无关系,上述类定义有语法错误
2.设有下面的两个类定义:
class AA {
void Show(){
System.out.println(“我喜欢Java!”);
}
class BB extends AA {
void Show(){
System.out.println(“我喜欢C++!”);
}
}
则顺序执行如下语句后输出结果为:( )
AA a; BB b;
a.Show(); b.Show();
A.我喜欢Java! B.我喜欢C++!
我喜欢C++! 我喜欢Java!
C.我喜欢Java! D.我喜欢C++!
我喜欢Java! 我喜欢C++!
3.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
4.对于子类的构造方法说明,下列叙述中不正确的是( )。
A.子类无条件地继承父类的无参构造方法。
B.子类可以在自己的构造方法中使用super关键字来调用父类的含参数构造方法,但这个调用语句必须是子类构造方法的第一个可执行语句。
C.在创建子类的对象时,将先执行继承自父类的无参构造方法,然后再执行自己的构造方法。
D.子类不但可以继承父类的无参构造方法,也可以继承父类的有参构造方法。
5.给出下面代码:
1) class Parent {
2) private String name;
3) public Parent(){}
4) }
5) public class Child extends Parent {
6) private String department;
7) public Child() {}
8) public String getValue(){ return name; }
9) public static void main(String arg[]) {
10) Parent p = new Parent();
11) }
12) }
那些行将引起错误? ( )
A.第3行 B.第6行 C.第7行 D.第8行
6.类Teacher和Student是类Person的子类;
Person p;
Teacher t;
Student s;
//p, t and s are all non-null.
if(t instanceof Person) { s = (Student)t; }
最后一句语句的结果是: ( )
A.将构造一个Student对象 B.表达式是合法的
C.表达式是错误的 D.编译时正确,但运行时错误
7.对于下列代码:
1) class Person {
2) public void printValue(int i, int j) {//... }
3) public void printValue(int i){//... }
4)}
5) public class Teacher extends Person {
6) public void printValue() {//... }
7) public void printValue(int i) {//...}
8) public static void main(String args[]){
9) Person t = new Teacher();
10) t.printValue(10);
11) }
第10行语句将调用哪行语句?( )
A.line 2 B.line 3 C.line 6 D.line 7
8.对于下列代码:( )
public class Parent {
public int addValue( int a, int b) {
int s;
s = a+b;
return s;
}
}
class Child extends Parent {
}
下述哪些方法可以加入类Child?
A. int addValue( int a, int b ){// do something...}
B.public void addValue (int a, int b ){// do something...}
C.public int addValue( int a ){// do something...}
D.public int addValue( int a, int b )throws MyException {//do something...}
9.给出下面代码, 那个选项是正确的?( )
public class test{
static int a[] = new a[10];
public static void main(String args[]) {
System.out.println(arr[10]);
}
}
A. 编译时将产生错误 B. 输出零
C. 编译时正确,运行时将产生错误 D. 输出空
二、填空题
1. 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。
2.派生类构造方法可以通过关键字 调用基类构造方法。
2.多态是指 ,在Java中有两种多态,一种是使用方法的 实现多态,另一种是使用方法的 实现多态。
3. Java中所有类都是类 的子类。
4.被关键字 修饰的方法是不能被当前类的子类重新定义的方法。
三、思考题
1.比较Overload(方法重载)和Override(方法覆盖)的区别。
2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?
3.比较this和super的区别
4.什么是多态?面向对象程序设计为什么要引入多态的特性?使用多态有什么优点?
四、编程
展开阅读全文