2-1
分数 2
60.类ArrayElement定义如下,它的子类定义正确的是?
class ArrayElement(val str:String){
def height =1
}
A.class LineElement(str: String) extends ArrayElement{
def width = str.length
}
B.class LineElement(s: String) extends ArrayElement(s) {
def width = str.length
}
C.class LineElement(str: String) extends ArrayElement(str){
def height =1
}
D.class LineElement(s String) extends ArrayElement{
def str = s
}
2-2
分数 2
98.在下述代码基础上,不能正确执行的操作是?
case class Currency(value: Double, unit: String)
val amt = Currency(29.95, "EUR")
需要指定参数名称才行
A.amt.copy(value = 19.2)
B.amt.copy()
C.amt.copy("CHF")
D.amt.copy(unit = "CHF")
2-3
分数 2
定义类Countter并实例化如下:
Class Countter(name:String){ val a = 1 var b = “counter” }
val counter = new Countter(“computer”),下列操作正确的是?
A.counter.name = “cpu”
B.counter.a = 2
C.counter.b = “conter”
D.counter.a = counter.b
2-4
分数 2
类和单例对象间的差别是?
A.单例对象不可以定义方法,而类可以
B.单例对象不可以带参数,而类可以
C.单例对象不可以定义私有属性,而类可以
D.单例对象不可以继承,而类可以
2-5
分数 2
关于辅助构造器,以下说法正确的是?
A.辅助构造器的必须调用主构造器
B.辅助构造器的可以直接调用超类的主构造器
C.辅助构造器的参数可以是任意多个
D.辅助构造器的名称和类名相同
2-6
分数 2
关于主构造器,以下说法错误的是?
A.主构造器在每个类都可以定义多个
B.主构造器的参数可以直接放在类名后。
C.主构造器的会执行类定义中的所有语句。
D.主构造器中可以使用默认参数。
2-7
分数 2
定义类 Class Person(private val name: String){},以下说法正确是?
A.name是对象私有字段
B.name是类私有字段,有私有的getter方法
C.name是类公有字段,有公有的getter和setter方法
D.name是类私有字段,可以在类内部被改变
2-8
分数 2
scala 中,类成员的缺省访问级别是?
A.public
B.private
C.protected
D.以上都不对
2-9
分数 2
以下单例对象,定义错误的是?
A.object A{var str = ““}。
B.object A(str:String){}
C.object A{def str = ““}
D.object A{val str = ““}
2-10
分数 2
scala中,关于包的说法不正确的是?
A.包的名称不能重复。
B.同一个包可以定义在多个文件中。
C.包路径不是绝对路径。
D.包对象可以持有函数和变量。
2-11
分数 2
scala中,关于包的引用错误的是?
A.包和其成员可以用import
B.可以引用某个文件夹下的特定文件
C.可以引用某个文件夹下的所有文件
D.包引用只能在编译单元的开始处
2-12
分数 2
下面关于override修饰符的描述错误的是?
A.Scala里所有重载了父类具体成员的成员都需要这样的修饰符
B.Scala里如果子类成员实现的是同名的抽象成员则这个修饰符是可选的
C.Scala里如果子类中并未重载或实现什么基类里的成员则禁用这个修饰符
D.Scala里如果子类是抽象类则子类的同名成员不可以使用这个修饰符
2-13
分数 2
44.Scala里,final修饰符的描述正确的是?
A.类的声明上添加final修饰符确保成员不被子类重载
B.类的声明上添加final修饰符把整个类声明为final,这个类不能被继承
C.类的声明上添加final修饰符确保成员只能被子类重载一次
D.以上说法都是错误的
2-14
分数 2
定义一个类,定义正确的是?
A.class House(name){
def getname = “beijing”
}
B.class house {
name = “nanjing”
}
C.class House {
public var counter:String = “shanghai”
}
D.class house (var name:String){
private def getName = name
}
2-15
分数 2
.Scala类中的公有字段自带getter和setter,类class Persen{var age=0} ,age字段默认定义的方法是?
A.getter ,setter
B.getAge, setAge
C.age, age_
D.age, age_=
2-16
分数 2
关于辅助构造器,以下说法不正确的是?
A.辅助构造器的名称为this。
B.辅助构造器的定义要调用已定义的辅助构造器或主构造器。
C.辅助构造器可以有任意多个
D.辅助构造器必须要带参数
2-17
分数 2
Scala中的类,以下说法正确的是?
A.Scala中,类内部的不是从构造器定义的代码,都会在主构造器中执行
B.Scala中,类内部的不是字段的部分或者方法定义的代码,都会在主构造器中执行
C.Scala中,类内部的所有的代码,都会在主构造器中执行
D.以上说法都是错误的。
2-18
分数 2
scala 中,类和它的伴生对象说法错误的是?
A.类和它的伴生对象定义在同一个文件中。
B.类和它的伴生对象可以有不同的名称。
C.类和它的伴生对象可以互相访问私有特性。
D.类和它的伴生对象可以实现既有实例方法又有静态方法。
2-19
分数 2
关于对象的apply方法,正确的是?
A.apply方法返回的是伴生类的对象。
B.apply方法不可以带参数。
C.apply方法返回的是Unit。
D.apply方法定义在类里面。
2-20
分数 2
scala中,关于引入语句的说法不正确的是?
A.引入语句可以引入包.类和对象。
B.引入语句可以出现在任意位置。
C.引入语句可以重命名。
D.引入语句不可以隐藏特定成员。
2-21
分数 2
对于下述代码说法正确的是?
class Cat extends Animal{}
A.Cat是Animal的子类。
B.Animal是Cat的子类
C.Cat是Animal的超类
D.Animal一定是抽象类
2-22
分数 2
scala中的类,下面说法正确的是?
A.scala 中,使用extends进行类的扩展。
B.scala 中, 声明为final的类可以被继承。
C.scala中,超类必须是抽象类。
D.scala中,抽象类可以被实例化。
2-23
分数 2
scala中,下列描述错误的是?
A.Scala里,字段和方法属于相同的命名空间。
B.Scala一共有四个命名空间。
C.Scala里,字段可以重载无参数方法。
D.Scala类和特质属于相同的命名空间。
2-24
分数 2
scala中import java.util.{HashMap=>,}是
A.引入java.util包内的HashMap
B.引入java.util包内除了HashMap之外的所有成员
C.引入java.awt包内所有成员且把引入的成员变为函数
D.引入java.awt包内的所有返回值是HashMap的函数
2-25
分数 2
scala反编译后是
A.C语言
B.C++
C.JAVA
D.字节码文件
7-1 设计一个矩形类Rectangle 分数 10
全屏浏览题目
切换布局
作者 殷伟凤
单位 浙江传媒学院
设计一个名为Rectangle的类表示矩形。这个类包括:
- 两个名为width和height的double类型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1。
- 一个用于创建默认矩形的无参构造方法。
- 一个创建指定width和height值的矩形的构造方法。
- 一个名为getArea()的方法,返回该矩形的面积。
- 一个名为getPerimeter()的方法,返回周长。
编写一个测试程序,分别输入两个矩形的高和宽,创建两个Rectangle对象。按照顺序显示每个矩形的宽、高、面积和周长。
输入格式:
在一行内输入4个数据,依次为两个矩形的高和宽
输出格式:
每行输出一个矩形的宽、高、面积和周长,中间用空格隔开
输入样例:
在这里给出一组输入。例如:
4 40 3.5 35.9
输出样例:
在这里给出相应的输出。例如:
4.0 40.0 160.0 88.0 3.5 35.9 125.64999999999999 78.8
代码长度限制
16 KB
时间限制
400 ms
内存限制
import java.util.Scanner; class Rectangle { double width = 1; double height = 1; public Rectangle() { } public Rectangle(double width ,double height) { this.width = width; this.height = height; } public double getArea() { return width * height; } public double getPerimeter() { return 2 * (width + height); } public String toString() { return width + " " + height; } } public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String l = cin.nextLine(); String[] str = l.split(" "); double w1 = Double.parseDouble(str[0]); double h1 = Double.parseDouble(str[1]); double w2 = Double.parseDouble(str[2]); double h2 = Double.parseDouble(str[3]); Rectangle r1 = new Rectangle(w1 ,h1); Rectangle r2 = new Rectangle(w2 ,h2); System.out.print(w1 + " " + h1 + " "); System.out.println(r1.getArea() + " " + r1.getPerimeter()); System.out.print(w2 + " " + h2 + " "); System.out.println(r2.getArea() + " " + r2.getPerimeter()); } }
7-2 定义一个类表示圆(Circle) 分数 10
全屏浏览题目
切换布局
作者 吴光生
单位 新余学院
定义一个类表示圆(Circle),成员变量r表示圆的半径,成员方法printArea( )用于输出圆的面积。
定义测试类Main,在它的main方法中定义两个Circle类的对象c1、c2,从键盘输入两个数据分别作为c1和c2的半径,并分别调用它们的printArea( )方法输出其面积。
(提示:使用Math.PI表示圆周率,使用Scanner类进行输入,使用printf函数保留小数点后两位。)
输入格式:
输入两个数据分别作为圆c1和c2的半径,中间以空格隔开。
输出格式:
按两行分别输出圆c1和c2的面积,保留小数点后两位。
输入样例:
在这里给出一组输入。例如:
输入样例:
在这里给出一组输入。例如:
3 7.2
输出样例:
在这里给出相应的输出。例如:
28.27 162.86
代码长度限制
16 KB
时间限制
400 ms
内存限制
import java.util.*; class Circle { double r = 0; public Circle(double r1) { this.r = r1; } public double printArea() { return r * r * Math.PI; } } public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); Circle r1 = new Circle(cin.nextDouble()); System.out.printf("%.2f\n" ,r1.printArea()); Circle r2 = new Circle(cin.nextDouble()); System.out.printf("%.2f" ,r2.printArea()); } }
7-3 设计一个银行业务类 分数 20
全屏浏览题目
切换布局
作者 吴光生
单位 新余学院
编写一个银行业务类BankBusiness,具有以下属性和方法:
(1)公有、静态的属性:银行名称bankName,初始值为“中国银行”。
(2)私有属性:账户名name、密码password、账户余额balance。
(3)银行对用户到来的欢迎(welcome)动作(静态、公有方法),显示“中国银行欢迎您的到来!”,其中“中国银行”自动使用bankName的值。
(4)银行对用户离开的提醒(welcomeNext)动作(静态、公有方法),显示“请收好您的证件和物品,欢迎您下次光临!”
(5)带参数的构造方法,完成开户操作。需要账户名name、密码password信息,同时让账户余额为0。
(6)用户的存款(deposit)操作(公有方法,需要密码和交易额信息),密码不对时无法存款且提示“您的密码错误!”;密码正确、完成用户存款操作后,要提示用户的账户余额,例如“您的余额有1000.0元。”。
(7)用户的取款(withdraw)操作(公有方法,需要密码和交易额信息)。密码不对时无法取款且提示“您的密码错误!”;密码正确但余额不足时提示“您的余额不足!”;密码正确且余额充足时扣除交易额并提示用户的账户余额,例如“请取走钞票,您的余额还有500.0元。”。
编写一个测试类Main,在main方法中,先后执行以下操作:
(1)调用BankBusiness类的welcome()方法。
(2)接收键盘输入的用户名、密码信息作为参数,调用BankBusiness类带参数的构造方法,从而创建一个BankBusiness类的对象account。
(3)调用account的存款方法,输入正确的密码,存入若干元。密码及存款金额从键盘输入。
(4)调用account的取款方法,输入错误的密码,试图取款若干元。密码及取款金额从键盘输入。
(5)调用account的取款方法,输入正确的密码,试图取款若干元(取款金额大于余额)。密码及取款金额从键盘输入。
(6)调用account的取款方法,输入正确的密码,试图取款若干元(取款金额小于余额)。密码及取款金额从键盘输入。
(7)调用BankBusiness类的welcomeNext()方法。
输入格式:
输入开户需要的姓名、密码
输入正确密码、存款金额
输入错误密码、取款金额
输入正确密码、大于余额的取款金额
输入正确密码、小于余额的取款金额
输出格式:
中国银行(银行名称)欢迎您的到来!
您的余额有多少元。
您的密码错误!
您的余额不足!
请取走钞票,您的余额还有多少元。
请收好您的证件和物品,欢迎您下次光临!
输入样例:
在这里给出一组输入。请注意,输入与输出是交替的,具体顺序请看测试类中的说明。例如:
张三 123456 123456 1000 654321 2000 123456 2000 123456 500
输出样例:
在这里给出相应的输出。请注意,输入与输出是交替的,具体顺序请看测试类中的说明。例如:
中国银行欢迎您的到来! 您的余额有1000.0元。 您的密码错误! 您的余额不足! 请取走钞票,您的余额还有500.0元。 请收好您的证件和物品,欢迎您下次光临!
代码长度限制
16 KB
时间限制
400 ms
内存限制
import java.util.*; class BankBusiness { public static String bankName = "中国银行"; private String name = null; private String password = null; private double balance = 0; public static void welcome() { System.out.println(bankName + "欢迎您的到来!"); } public static void welcomeNext() { System.out.println("请收好您的证件和物品,欢迎您下次光临!"); } public BankBusiness(String name ,String password) { this.name = name; this.password = password; this.balance = 0; } public void desposit(String password ,double change) { if (!password.equals(this.password)) { System.out.println("您的密码错误!"); } this.balance += change; System.out.println("您的余额有" + this.balance + "元。"); } public void withdraw (String password ,double change) { if (!password.equals(this.password)) { System.out.println("您的密码错误!"); } else { if (balance < change){ System.out.println("您的余额不足!"); } else { this.balance -= change; System.out.println("请取走钞票,您的余额还有" + this.balance + "元。"); } } } } public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); BankBusiness b = new BankBusiness(cin.next() ,cin.next()); b.welcome(); b.desposit(cin.next() ,cin.nextInt()); b.withdraw(cin.next() ,cin.nextInt()); b.withdraw(cin.next() ,cin.nextInt()); b.withdraw(cin.next() ,cin.nextInt()); b.welcomeNext(); } }