
课后练习
一、选择题
1.下列Java标识符中,错误的是( )。
A._sys_varl
B.$change
C.User_name
D.1_file
2.自定义类型转换是按优先关系从低级数据转换为高级数据,优先次序为( )。
A.char-int-long-float-double
B.int-long-float-double-char
C.long-float-int-double-char
D.float-long-int-double-char
3.关于下列程序片断的执行,说法正确的是( )。
A.b的值为100
B.b的值为2000
C.第6行出错
D.第8行出错
4.在多分支语句switch(表达式){}中,表达式不可以返回哪种类型的值?( )
A.整型
B.实型
C.接口型
D.字符型
5.关于while和do-while循环,下列说法正确的是( )。
A.两种循环除了格式不同外,功能完全相同
B.与do-while语句不同的是,while语句的循环至少执行一次
C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
D.以上都不对
6.下列不属于面向对象编程的3个特征的是( )。
A.封装
B.指针操作
C.多态性
D.继承
7.类所实现的接口及修饰不可以是( )。
A.public
B.abstract
C.final
D.void
8.关键字super的作用是( )。
A.用来访问父类被隐藏的成员变量
B.用来调用父类中被重载的方法
C.用来调用父类的构造函数
D.以上都是
9.下列类的定义,错误的是( )。
A.public class test extends Object{
…
}
B.final class operators{
…
}
C.class Point{
…
}
D.void class Point{
…
}
二、填空题
1.在Java语言中,boolean型常量只有true和____两个值。
2.标识符是以____、____下画线或美元符号作为首字母的字符串序列。
3.下面的语句是声明一个变量并赋值:boolean b1=5!=8;b1的值是____。
4.在Java程序中,用关键字____修饰的常量对象创建后就不能再修改了。
5.数据类型包括简单数据类型和复合数据类型。复合数据类型又包括类、数组、____。
6.类变量在类中声明,而不是在类的某个方法中声明,它的作用域是____。
7.Java语言中的各种数据类型之间提供自动转换,如第1操作数是byte类型,第2操作数是float类型,其结果是____类型。
8.抽象方法只能存在于抽象类中。抽象方法用关键字____来修饰。
9.Java语言中____是所有类的父类。
10.在Java中有一种名为____的特殊方法,在程序中用它来对类成员进行初始化。
11.new是____对象的操作符。
12.在Java程序中,把关键字____加到方法名称的前面,实现子类调用父类的方法。
13.在Java程序中,同一类中重载的多个方法具有相同的方法名和____的参数列表,重载的方法可以有不同的返回值类型。
14.Java语言通过接口支持____继承,使类继承具有更灵活的扩展性。
15.接口是一种只含有抽象方法或____的特殊抽象类。
16.abstract方法____(不能或能)与final并列修饰同一个类。
三、操作题
1.求a+aa+aaa+…+a..a(n个)的和,其中a为19之间的整数。例如,当a=3、n=4时,求3+33+333+3333的和。
2.给定一个正整数m,判断它的具体位数,分别打印每一位数,再按照逆序打印出各位数字。
3.依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格)并计算人数。
4.定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)和pay(月工资)。
5.输出本科生和研究生的成绩等级。要求为:首先设计抽象类Student,它包含学生信息:姓名、学生类型、三门课程的成绩和成绩等级等;其次,设计Student类的两个子类:本科生类(Undergraduate)和研究生类(Postgraduate),创建测试类分别输出其等级。要求分别使用抽象类和接口两种方法编程。其中本科生和研究生成绩等级标准如表3-3所示。
表3-3 学生成绩等级标准