第2章Scala语言基础

第2章Scala语言基础单元测验

1、单选题:
‍以下哪个选项不是Scala的数据类型?‎
选项:
A: A Byte,Short,Int,Unit
B: Integer,Void
C: Long,Char,String
D: Float,Double,Boolean
答案: 【 Integer,Void

2、单选题:
‍Scala关于变量定义、赋值,错误的是?‎
选项:
A: val a = 3
B: val a:String = 3
C: var b:Int = 3 ; b = 6
D: var b = "Hello World!" ; b = "123"
答案: 【 val a:String = 3

3、单选题:
‏下面四个选项中,哪一个选项中a的取值与其他三个选项不同?‍
选项:
A: val a = 3
B: val a:Double = 1 + 2
C: var a = 1; a += 2
D: val b = 1.+(2); val a = b.toInt
答案: 【 val a:Double = 1 + 2

4、单选题:
‌下面输出与其他不一致的是?‍
选项:
A: println("Hello World")
B: print("Hello Worldn")
C: printf("Hello %s", "Worldn")
D: val w = "World" ; println("Hello $w")
答案: 【 val w = "World" ; println("Hello $w")

5、单选题:
​关于元组 Tuple 说法错误的是?‌
选项:
A: 元组可以包含不同类型的元素
B: 元组是不可变的
C: 访问元组tuple第一个元素的方式为tuple._1
D: 元组最多只有2个元素
答案: 【 元组最多只有2个元素

6、单选题:
‎以下对集合的描述有误的是?​
选项:
A: Set是一组没有先后次序的值
B: Map是一组(键,值)对偶
C: 每个Scala集合特质或类都有一个带有apply方法的伴生对象,可以用此方法来构建该集合中的实例
D: 为了顾及安全性问题,Scala仅支持不可变集合而不支持可变集合
答案: 【 为了顾及安全性问题,Scala仅支持不可变集合而不支持可变集合

7、单选题:
‍有关操作符优先级的描述不正确的是?​
选项:
A: *=的优先级低于+
B: >的优先级高于&
C: +的优先级高于!
D: %的优先级高于+
答案: 【 +的优先级高于!

8、单选题:
​对集合(Set)进行操作"Set(2, 0, 1) + 1 + 1 - 1"之后的结果为?​
选项:
A: Set(2, 0, 1, 1)
B: Set(2, 0, 1)
C: Set(2, 0)
D: 以上均不正确
答案: 【 Set(2, 0)

9、单选题:
‍如果需要使用scala库中的sqrt函数,如sqrt(2),下列引用包的方式错误的是?​
选项:
A: import scala.math._
B: import sqrt
C: import math._
D: import math.sqrt
答案: 【 import sqrt

10、单选题:
​关于辅助构造器,以下说法正确的是?‎
选项:
A: 辅助构造器的必须调用主构造器
B: 辅助构造器的可以直接调用超类的主构造器
C: 辅助构造器的参数可以是任意多个
D: 辅助构造器的名称和类名相同
答案: 【 辅助构造器的参数可以是任意多个

11、单选题:
‌Scala中,类成员的缺省访问级别是?‌
选项:
A: public
B: private
C: protected
D: 以上都不对
答案: 【 public

12、单选题:
‏以下关于闭包描述错误的是?‍
选项:
A: 闭包是一个函数,其返回值依赖于声明在函数包部的一个或多个变量
B: 通常来讲,可以将闭包看作是可以访问一个函数里面局部变量的另一个函数
C: 对于def mulBy(factor: Double) = (x: Double) => factor * x; val triple = mulBy(3);,函数triple是一个闭包
D: 对于def mulBy(factor: Double) = (x: Double) => 3 * x; val triple = mulBy(3);,函数triple是一个闭包
答案: 【 对于def mulBy(factor: Double) = (x: Double) => 3 * x; val triple = mulBy(3);,函数triple是一个闭包

13、单选题:
‎高阶函数是指?‎
选项:
A: 在程序中应该首先被定义的函数
B: 将函数作为参数,并返回结果为函数的函数
C: 函数参数为函数或返回结果为函数的函数
D: 执行时间长的函数
答案: 【 函数参数为函数或返回结果为函数的函数

14、单选题:
‎对于以下代码描述有误的是?​‎val data = Map(1 -> "One", 2 -> "Two")​‎val res = for((k, v) <- data; if(k > 1)) yield v​
选项:
A: 运行后res的结果为List("Two")
B: 运行后res的结果为List("One", "Two")
C: 对映射data中的每一个(键,值)对,k被绑定对键,而v则被绑定到值
D: 其中的if(k > 1)是一个守卫表达式
答案: 【 运行后res的结果为List("One", "Two")

15、单选题:
​Scala中,下面的哪个类定义是不正确的?‌
选项:
A: class Counter{def counter = “counter”}
B: class Counter{val counter = “counter”}
C: class Counter{var counter:String}
D: class Counter{def counter () {}}
答案: 【 class Counter{var counter:String}

16、单选题:
‎以下关于类和单例对象的对比说法正确的是?‍
选项:
A: 单例对象不可以定义方法,而类可以
B: 单例对象不可以带参数,而类可以
C: 单例对象不可以定义私有属性,而类可以
D: 单例对象不可以继承,而类可以
答案: 【 单例对象不可以带参数,而类可以

17、单选题:
​Scala语言中,关于List的定义,不正确的是?‌
选项:
A: val list = List(1,2,3)
B: val list = List[Int](1,2,3)
C: val list = List[String]('A','B','C')
D: val list = List[String]()
答案: 【 val list = List[String]('A','B','C')

18、单选题:
‎对于Map("book" -> 5, "pen" -> 2).map(m => m._1 -> m._2 * 2)的结果,下面哪个是正确的?‎
选项:
A: Map("bookbook" -> 5, "penpen" -> 2)
B: Map("bookbook" -> 10, "penpen" -> 4)
C: Map("book" -> 10, "pen" -> 4)
D: Map("book" -> 5, "pen" -> 2 ,"book" -> 5, "pen" -> 2)
答案: 【 Map("book" -> 10, "pen" -> 4)

19、单选题:
‌以下单例对象,定义错误的是?‌
选项:
A: object Person{var PID = “”}
B: object Person(PID:String){ }
C: object Person{def PID = “”}
D: object PersonA{val PID = “”}
答案: 【 object Person(PID:String){ }

20、单选题:
​表达式for(i <- 1 to 3; j <- 1 to 3; if i != j ) {print((10 * i + j));print(" ")}输出结果正确的是?‍
选项:
A: 11 12 13 21 22 23 31 32 33
B: 11 13 21 23 31 33
C: 12 13 21 23 31 32
D: 11 12 21 22 31 32
答案: 【 12 13 21 23 31 32

21、单选题:
‎以下程序段的输出结果是‍‎import util.control.Breaks._‍‎val array = Array(2,6,10,5,4)‍‎for(i <- array) {‍‎    breakable{‍‎        if (i >5) break‍‎    println(i)‍‎    }‍‎}‍‎‍
选项:
A: 2, 6, 4
B: 2, 5, 4
C: 6,10, 5
D: 10 ,5, 4
答案: 【 2, 5, 4

22、单选题:
‌以下选项说法错误的是?‍‌abstract class Car‍‌{‍‌    val carBrand : String‍‌    def  info()‍‌    def  greeting() {‍‌        println(“welcome”)‍‌    }‍‌}‍‌‍
选项:
A: 类Car不能被实例化
B: Car是一个抽象类
C: carBrand是一个抽象成员
D: info和 greeting都是Car的抽象方法
答案: 【 info和 greeting都是Car的抽象方法

23、单选题:
​类class Counter{ var value =0 } ,Scala采用类似Java中的getter和setter方法,value字段默认定义的方法是?‌
选项:
A: value, value_
B: value, value_=
C: getter, setter
D: getValue, setValue
答案: 【 value, value_=

24、单选题:
‌def pw (x:Int) : Int = {if (x == 0) 1  else  2*pw(x-1) } , 求 pw(5) ? ‏
选项:
A: 15
B: 120
C: 32
D: 16
答案: 【

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注