scala语法题练习

1、**[primary]**关于和Scala进行交互的基本方式REPL说法错误的是? C

A、R 读取(read)
B、E 求值(evaluate)
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\n")
C、printf("Hello %s", "World\n")
D、val w = "World" ; println("Hello $w")

7、**[primary]**关于函数def sum(args:Int*) = {var r = 0 ; for(arg <- args) r += arg ; r}} 输出结果不一致的是?D

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

8、**[primary]**下列表达式不是过程的是?C

A、def foo(num:Int) = {println(num * 2)}
B、def foo() {println("Hello World")}
C、def foo(num:Int) = {num * 2}
D、def foo():Unit = {println("Hello World")}

9、**[primary]**下列数组定义与其他不一致的是?D

A、val a = Array[Int](0, 0)
B、val a = Array(0, 0)
C、val a = new Array[Int](2)
D、val a = Array[Int](1, 1)

10、**[primary]**下列关于数组缓冲val b = ArrayBuffer[Int]()操作结果的注释说明错误的是?C

A、b += 1 // b 等于 ArrayBuffer(1)
B、b += (1,2,3) // b 等于 ArrayBuffer(1,2,3)
C、b += Array(1,2) // b 等于 ArrayBuffer(1,2)
D、b += (1,2,3,4,5);b.trimEnd(3) // b 等于 ArrayBuffer(1,2)

11、**[primary]**关于数组的常用算法,下列说法错误的是?B

A、Array(1,7,2,9).sum // 等于 19
B、Array(1,7,2,9).sorted // 等于 Array(9,7,2,1)
C、Array("one","two","three").max // 等于 "two"
D、Array("one","two","three").mkString("-") // 等于 "one-two-three"

12、**[primary]**关于元组 Tuple 说法错误的是?D

A、元组的可以包含不同类型的元素
B、元组是不可变的
C、访问元组第一个元素的方式为 pair._1
D、元组最多只有2个元素

13、**[primary]**对于函数

def getGoodsPrice(goods:String) = {

val prices = Map(“book” -> 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 <- 1 to 3; for(j <- 1 to 3; if i != j ) print((10 * i + j)) + " "输出结果正确的是?C

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

21、**[intermediate]**关于函数def fac(n:Int) = { var r = 1 ; for(i <- 1 to n) r = r * i ; r} fac(5)输出结果正确的是?B

A、15
B、120
C、200
D、300

22、**[intermediate]**关于函数def fac(n:Int, x:String="x", y:Int=0) = {println(x*(n+y))} 输出结果不一致的是?C

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 这本书绝不轻易放过每个知识点,全书包含有大量习,要求你自己实现 Scala 标准库或者 Scalaz 中的既有功能。所以,当你读完本书,做完习后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发和语言设计的能力。   ——ThoughtWorks Lead Consultant 杨博   这本书所讲授的,正是基于 Scala函数式编程基础。基于 Scheme、Haskell 等老牌函数式语言的传统教材的问在于,相关语言的语法和思维方式与读者现有的知识体系迥异,容易造成较为陡峭的入门门槛。此外,由于这些语言本身的实际应用机会不多,初学者也难以在实战中获得宝贵的直觉和经验。而在 Scala 的帮助下,这本书并不要求你抛开现有的思维方式另起炉灶,它所做的更像是为你现有的思维方式添砖加瓦,从而令你如虎添翼。   ——Spark committer from Databricks 连城   尽管函数式编程在近十多年用得越来越多,但市面上介绍其高阶特性的书却并不多。这本书在这方面是个重要的补充,它不仅仅面向 Scala 程序员,同样面向用任何编程语言开发的程序员,只要你充满好奇心。   ——挖财网首席架构师 王宏江   “让你洞察计算的本质。”   ——Martin Odersky, Scala的作者   “Scala和Java8开发者的函数式编程指南!”   ——William E. Wheeler, TekSystems   “本书向你展示了提升Scala技能的方法和理念,它已超过‘更好的Java’。”   ——Fernando Dobladez, Code54   “里面的练习有些挑战,很有趣,对你在真实世界中使用它很有益。”   ——Chris Nauroth, Hortonworks   “边干边学,而非只是阅读。”   ——Douglas Alan、Eli和Edythe L. Broad,哈佛和麻省理工学院

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值