首页 >> 知识 >> scala习题精选100道

scala习题精选100道

A、R 读取(read) B、E 求值(evalsuate) C、P 解析(Parse) D、L 循环(Loop)

2、**[primary]**不属于Scala7种数值类型的是? D

A、Char B、Int C、Float D、LongLong

3、**[primary]**如果需要使用scala库中的sqrt函数,如sqrt(2),下列引用包的方式错误的是? B

A、import scala.math._ B、import sqrt C、import math._ D、import math.sqrt

4、**[primary]**Scala关于变量定义、赋值,错误的是?B

A、val a = 3 B、val a:String = 3 C、var b:Int = 3 ; b = 6 D、var b = "Hello World!" ; b = "123"

5、**[primary]**在Scala中如何获取字符串“Hello”的首字符和尾字符?B

A、"Hello"(0),"Hello"(5) B、"Hello".take(1),"Hello".reverse(0) C、"Hello"(1),"Hello"(5) D、"Hello".take(0), "Hello".takeRight(1)

6、**[primary]**下面输出与其他不一致的是?D

A、println("Hello World") B、print("Hello World ") C、printf("Hello %s", "World ") D、val w = "World" ; println("Hello $w")

7、**[primary]**关于函数def sum(args:Int*) = {var r = 0 ; for(arg 5, “pen” -> 2, “sticker” -> 1) prices.getOrElse(goods, 0) }

结果说法错误的是?D

A、getGoodsPrice("book") // 等于 5 B、getGoodsPrice("pen") // 等于 2 C、getGoodsPrice("sticker") // 等于 1 D、getGoodsPrice("sock") // 等于 “sock”

14、**[primary]**对于元组val t = (1, 3.14, "Fred")说法错误的是?A

A、t_1 等于 1 B、t 的类型为 Tuple3[Int, Double, java.lang.String] C、val (first, second, _) = t // second 等于 3.14 D、t._0无法访问, 会抛出异常

15、**[primary]**对于拉链操作val t1 = Array(1, 3); val t2 = Array(2,4) ; t1.zip(t2)返回结果正确的是?C

A、(1,2,3,4) B、((1,3),(2,4)) C、((1,2),(3,4)) D、((1,4),(3,4))

16、**[intermediate]**Scala允许你用数字去乘字符串—去REPL中试一下"crazy"*3。这个操作结果返回什么?C

A、“crazy”*3 B、ccrraazzyy C、crazycrazycrazy D、crazy

17、**[intermediate]**下面选项中a的取值不一致的是?B

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

18、**[intermediate]**指出在Scala中何种情况下赋值语句x=y=1是合法的?A

A、var x={} B、var x=1 C、var x="test" D、var x=(1,1)

19、**[intermediate]**编写一个过程countdown(n:Int),打印从n到0的数字?C

A、

def countdown(n:Int){ 0 to n foreach print }

B、

def countdown(n:Int){ (0 until n).reverse foreach print }

C、

def countdown(n:Int){ (0 to n).reverse foreach print }

D、

def countdown(n:Int){ (0 to n-1).reverse foreach print }

20、**[intermediate]**表达式for(i 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)

26、**[intermediate]**对于val prices = Map("book" -> 5, "pen" -> 2, "sticker" -> 1)结果说法错误的是?D

A、prices("sticker") // 等于 1 B、(prices + ("shoes" -> 30))("shoes")// 等于 30 C、(prices - "pen")("book") // 等于 5 D、prices("sock") // 等于 0

27、**[intermediate]**对于表达式"New York".partition(_.isUpper)返回结果正确的是?B

A、("New", "York") B、("NY", "er ork") C、("er ork", "NY") D、("New York", "NY")

28、**[intermediate]**对于表达式

val tokens = "one two three four two two three four".split(" ") val map = new HashMap[String,Int] for(key nums.min }

C、

def maxmin(nums:Array[Int]) = { val max = nums.max val min = nums.min max,min }

D、

def maxmin(nums:Array[Int]) = { val max = nums.sorted.head val min = nums.sorted.last (max,min) }

30、**[intermediate]**对于拉链操作

val key = Array(1, 2) val value = Array(“one”,”two”) val m = key.zip(value).toMap

返回结果正确的是?A

A、m(1) 等于 “one” B、m(2) 等于 “one” C、m(“one”) 等于 “1” D、m(“two”) 等于 1

31、**[primary]**scala中,下面的哪个类定义是不正确的?C

A.class Counter{def counter = “counter”} B.class Counter{val counter = “counter”} C.class Counter{var counter:String} D.class Counter{def counter () {}}

32、**[primary]**scala的类在实现属性时,下面说法中错误的是?B

A. var foo: Scala自动合成一个getter 和一个setter B. val foo: Scala自动合成一个getter 和一个setter C. 可以单独定义foo方法 D. 可以单独定义foo_=方法

33、[primary] 定义类Countter并实例化如下:

Class Countter(name:String){ val a = 1 var b = “counter” }

val counter = new Countter(“computer”),下列操作正确的是?C

A. counter.name = “cpu” B. counter.a = 2 C. counter.b = “conter2” D. counter.a = counter.b

34、**[primary]**类和单例对象间的差别是?B

A. 单例对象不可以定义方法,而类可以 B. 单例对象不可以带参数,而类可以 C. 单例对象不可以定义私有属性,而类可以 D. 单例对象不可以继承,而类可以

35、**[primary]**关于辅助构造器,以下说法正确的是?C

A. 辅助构造器的必须调用主构造器 B. 辅助构造器的可以直接调用超类的主构造器 C. 辅助构造器的参数可以是任意多个 D. 辅助构造器的名称和类名相同

36、**[primary]**关于主构造器,以下说法错误的是?A

A. 主构造器在每个类都可以定义多个 B. 主构造器的参数可以直接放在类名后。 C. 主构造器的会执行类定义中的所有语句。 D. 主构造器中可以使用默认参数。

37、**[primary]**定义类 Class Person(private val name: String){},以下说法正确是?B

A. name是对象私有字段 B. name是类私有字段,有私有的getter方法 C. name是类公有字段,有公有的getter和setter方法 D. name是类私有字段,可以在类内部被改变

38、**[primary]**scala 中,以下说法错误是?C

A. scala 中, 可以在类中定义类。 B. scala 中, 可以在函数中定义函数。 C. scala 中, 不可以在类中定义object。 D. scala 中, 可以在函数中定义类。

39、**[primary]**scala 中,类成员的缺省访问级别是?A

A. public B. private C. protected D. 以上都不对

40、**[primary]**以下单例对象,定义错误的是?B

A. object A{var str = “”}。 B. object A(str:String){} C. object A{def str = “”} D. object A{val str = “”}

41、**[primary]**scala中,关于包的说法不正确的是?A

A. 包的名称不能重复。 B. 同一个包可以定义在多个文件中。 C. 包路径不是绝对路径。 D. 包对象可以持有函数和变量。

42、**[primary]**scala中,关于包的引用错误的是?D

A. 包和其成员可以用import B. 可以引用某个文件夹下的特定文件 C. 可以引用某个文件夹下的所有文件 D. 包引用只能在编译单元的开始处

43、**[primary]**下面关于override修饰符的描述错误的是?D

A. Scala里所有重载了父类具体成员的成员都需要这样的修饰符 B. Scala里如果子类成员实现的是同名的抽象成员则这个修饰符是可选的 C. Scala里如果子类中并未重载或实现什么基类里的成员则禁用这个修饰符 D. Scala里如果子类是抽象类则子类的同名成员不可以使用这个修饰符

44、**[primary]**Scala里,final修饰符的描述正确的是?B

A. 类的

网站地图