A、R读取(read)B、E求值(evaluate)C、P解析(Parse)D、L循环(Loop)
2、**[primary]**不属于Scala7种数值类型的是D
A、CharB、IntC、FloatD、LongLong
3、**[primary]**如果需要使用scala库中的sqrt函数,如sqrt(2),下列引用包的方式错误的是B
A、importscala.math._B、importsqrtC、importmath._D、importmath.sqrt
4、**[primary]**Scala关于变量定义、赋值,错误的是?B
A、vala=3B、vala:String=3C、varb:Int=3;b=6D、varb="HelloWorld!";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("HelloWorld")B、print("HelloWorld\n")C、printf("Hello%s","World\n")D、valw="World";println("Hello$w")
7、**[primary]**关于函数defsum(args:Int*)={varr=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、deffoo(num:Int)={println(num*2)}B、deffoo(){println("HelloWorld")}C、deffoo(num:Int)={num*2}D、deffoo():Unit={println("HelloWorld")}
9、**[primary]**下列数组定义与其他不一致的是?D
A、vala=Array[Int](0,0)B、vala=Array(0,0)C、vala=newArray[Int](2)D、vala=Array[Int](1,1)
10、**[primary]**下列关于数组缓冲valb=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//等于19B、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._1D、元组最多只有2个元素
13、**[primary]**对于函数
结果说法错误的是?D
A、getGoodsPrice("book")//等于5B、getGoodsPrice("pen")//等于2C、getGoodsPrice("sticker")//等于1D、getGoodsPrice("sock")//等于“sock”
14、**[primary]**对于元组valt=(1,3.14,"Fred")说法错误的是?A
A、t_1等于1B、t的类型为Tuple3[Int,Double,java.lang.String]C、val(first,second,_)=t//second等于3.14D、t._0无法访问,会抛出异常
15、**[primary]**对于拉链操作valt1=Array(1,3);valt2=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”*3B、ccrraazzyyC、crazycrazycrazyD、crazy
17、**[intermediate]**下面选项中a的取值不一致的是?B
A、vala=3B、vala:Double=1+2C、vara=1;a+=2D、valb=1.+(2);vala=b.toInt
18、**[intermediate]**指出在Scala中何种情况下赋值语句x=y=1是合法的?A
A、varx={}B、varx=1C、varx="test"D、varx=(1,1)
19、**[intermediate]**编写一个过程countdown(n:Int),打印从n到0的数字?C
A、
B、
C、
D、
20、**[intermediate]**表达式for(i<-1to3;for(j<-1to3;ifi!=j)print((10*i+j))+""输出结果正确的是?C
A、111213212223313233B、111321233133C、121321233132D、111221223132
21、**[intermediate]**关于函数deffac(n:Int)={varr=1;for(i<-1ton)r=r*i;r}fac(5)输出结果正确的是?B
A、15B、120C、200D、300
22、**[intermediate]**关于函数deffac(n:Int,x:String="x",y:Int=0)={println(x*(n+y))}输出结果不一致的是?C
A、fac(2)B、fac(1,y=1)C、fac(1,"x")D、fac(1,"x",1)
23、**[intermediate]**关于数组vala=Array(1,2,3)下列说法错误的是?A
A、valb=2*a//b等于Array(2,4,6)B、valb=a.map(_*2)//b等于Array(2,4,6)C、valb=for(elem<-a)yield2*elem//b等于Array(2,4,6)D、valb=for(elem<-aifelem%2==0)yield2*elem//b等于Array(4)
24、**[intermediate]**关于数组Array.ofDim[Int](2,3)的初始化结果说明正确的是?B
A、Array(0,0,0,0,0,0)B、Array(Array(0,0,0),Array(0,0,0))C、Array(Array(0,0),Array(0,0),Array(0,0))D、(Array(0,0),Array(0,0),Array(0,0))
25、**[intermediate]**对于Map("book"->5,"pen"->2).map(m=>m._1->m._2*2)结果说法正确的是?C
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)
26、**[intermediate]**对于valprices=Map("book"->5,"pen"->2,"sticker"->1)结果说法错误的是?D
A、prices("sticker")//等于1B、(prices+("shoes"->30))("shoes")//等于30C、(prices-"pen")("book")//等于5D、prices("sock")//等于0
27、**[intermediate]**对于表达式"NewYork".partition(_.isUpper)返回结果正确的是?B
A、("New","York")B、("NY","erork")C、("erork","NY")D、("NewYork","NY")
28、**[intermediate]**对于表达式
说法正确的是?D
A、map(“one”)等于2B、map(“two”)等于2C、map(“three”)等于3D、map(“four”)等于2
29、**[intermediate]**编写一个函数,返回Int数组中最大最小的数字?B
30、**[intermediate]**对于拉链操作
返回结果正确的是?A
A、m(1)等于“one”B、m(2)等于“one”C、m(“one”)等于“1”D、m(“two”)等于1
31、**[primary]**scala中,下面的哪个类定义是不正确的?C
A.classCounter{defcounter=“counter”}B.classCounter{valcounter=“counter”}C.classCounter{varcounter:String}D.classCounter{defcounter(){}}
32、**[primary]**scala的类在实现属性时,下面说法中错误的是?B
A.varfoo:Scala自动合成一个getter和一个setterB.valfoo:Scala自动合成一个getter和一个setterC.可以单独定义foo方法D.可以单独定义foo_=方法
33、[primary]定义类Countter并实例化如下:
valcounter=newCountter(“computer”),下列操作正确的是?C
34、**[primary]**类和单例对象间的差别是?B
A.单例对象不可以定义方法,而类可以B.单例对象不可以带参数,而类可以C.单例对象不可以定义私有属性,而类可以D.单例对象不可以继承,而类可以
35、**[primary]**关于辅助构造器,以下说法正确的是?C
A.辅助构造器的必须调用主构造器B.辅助构造器的可以直接调用超类的主构造器C.辅助构造器的参数可以是任意多个D.辅助构造器的名称和类名相同
36、**[primary]**关于主构造器,以下说法错误的是?A
A.主构造器在每个类都可以定义多个B.主构造器的参数可以直接放在类名后。C.主构造器的会执行类定义中的所有语句。D.主构造器中可以使用默认参数。
37、**[primary]**定义类ClassPerson(privatevalname: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.publicB.privateC.protectedD.以上都不对
40、**[primary]**以下单例对象,定义错误的是?B
A.objectA{varstr=“”}。B.objectA(str:String){}C.objectA{defstr=“”}D.objectA{valstr=“”}
41、**[primary]**scala中,关于包的说法不正确的是?A
A.包的名称不能重复。B.同一个包可以定义在多个文件中。C.包路径不是绝对路径。D.包对象可以持有函数和变量。
42、**[primary]**scala中,关于包的引用错误的是?D
A.包和其成员可以用importB.可以引用某个文件夹下的特定文件C.可以引用某个文件夹下的所有文件D.包引用只能在编译单元的开始处
43、**[primary]**下面关于override修饰符的描述错误的是?D
A.Scala里所有重载了父类具体成员的成员都需要这样的修饰符B.Scala里如果子类成员实现的是同名的抽象成员则这个修饰符是可选的C.Scala里如果子类中并未重载或实现什么基类里的成员则禁用这个修饰符D.Scala里如果子类是抽象类则子类的同名成员不可以使用这个修饰符
44、**[primary]**Scala里,final修饰符的描述正确的是?B
45、**[primary]**scala语言中,关于List的定义。不正确的是?C
A.vallist=List(1,2,3)。B.vallist=List[Int](1,2,3)。C.vallist=List[String](‘a’,’b’,’c’)。D.vallist=List[String]()。
46、**[intermediate]**定义一个类,定义正确的是?D
A.
B.
C.
D.
47、**[intermediate]**Scala类中的公有字段自带getter和setter,类classPersen{varage=0},age字段默认定义的方法是?D
A.getter,setterB.getAge,setAgeC.age,age_D.age,age_=
48、**[intermediate]**关于辅助构造器,以下说法不正确的是?D
A.辅助构造器的名称为this。B.辅助构造器的定义要调用已定义的辅助构造器或主构造器。C.辅助构造器可以有任意多个D.辅助构造器必须要带参数
49、**[intermediate]**Scala中的类,以下说法正确的是?B
A.Scala中,类内部的不是从构造器定义的代码,都会在主构造器中执行B.Scala中,类内部的不是字段的部分或者方法定义的代码,都会在主构造器中执行C.Scala中,类内部的所有的代码,都会在主构造器中执行D.以上说法都是错误的。
50、**[intermediate]**scala中,类和它的伴生对象说法错误的是?B
A.类和它的伴生对象定义在同一个文件中。B.类和它的伴生对象可以有不同的名称。C.类和它的伴生对象可以互相访问私有特性。D.类和它的伴生对象可以实现既有实例方法又有静态方法。
51、**[intermediate]**关于对象的apply方法,正确的是?A
A.apply方法返回的是伴生类的对象。B.apply方法不可以带参数。C.apply方法返回的是Unit。D.apply方法定义在类里面。
52、**[intermediate]**scala中,关于引入语句的说法不正确的是?D
A.引入语句可以引入包、类和对象。B.引入语句可以出现在任意位置。C.引入语句可以重命名。D.引入语句不可以隐藏特定成员。
53、**[intermediate]**对于下述代码说法正确的是?A
A.Cat是Animal的子类。B.Animal是Cat的子类C.Cat是Animal的超类D.Animal一定是抽象类
54、**[intermediate]**scala中的类,下面说法正确的是?A
55、**[intermediate]**scala中,下列描述错误的是?B
A.Scala里,字段和方法属于相同的命名空间。B.Scala一共有四个命名空间。C.Scala里,字段可以重载无参数方法。D.Scala类和特质属于相同的命名空间。
56、**[intermediate]**下面定义的代码和哪个选项是等效的?D
57、**[intermediate]**类定义如下,描述不正确的是?C
A.Element是一个抽象类。B.Element不能实例化。C.Contents成员定义错误,没有初始化。D.contents方法是类Element的抽象成员。
58、**[intermediate]**scala语言中,下面描述正确的是?D
A.scala中,Float是Double的子类。B.scala中,Int是Long的子类。C.scala中,Double是AnyRef的子类D.scala中,Long是AnyVal的子类
59、**[intermediate]**Scala中,下面的代码执行正确的是C
A.vallist=1::2::3。B.vallist=1.::(2).::(3).::(Nil)C.vallist=1::“s”::“b”::Nil。D.varlist=1:::2:::3:::Nil
60、**[intermediate]**类ArrayElement定义如下,它的子类定义正确的是?B
61、**[primary]**对于由scala.io.Source.fromFile创建的Source对象的使用以下描述正确的是?A
62、**[primary]**在正则表达式中,如下哪个符号用于匹配单个字符?B
A..B.C.*D.+
63、**[primary]**在正则表达式中,如下哪个符号用于匹配一次或多次?D
64、**[primary]**可以正确匹配"12340"的正则表达式是?C
A."\s+[0-9]+\s+".rB.""\s+[0-4]+\s+".rC."""\s+\d+\s+""".rD.以上均不正确。
65、**[primary]**如下选项中,不能做为Scala标识符的是?C
A.`type`B.|>C.2KD.hello
66、**[primary]**下述关于中置表达式(a操作符b)的描述错误的是?B
A.其中的“操作符”代表一个带有两个参数的方法(一个隐式的参数和一个显式的参数)。B.中置表达式,一定可以提高代码的可阅读性。C.Scala在当方法只有一个参数时,可以省略点号、以及括号,从而形式上变成中置表达式。D.通常可以将此中置表达式修改为"a.操作符(b)",若此操作符具有右结合性则应修改为"b.操作符(a)"。
67、**[primary]**有关操作符结合性的描述不正确的是?D
A.操作符的结合性决定了它们是从左到右求值还是从右到左求值。B.|操作符是左结合的。C.以冒号结尾的操作符是右结合的。D.赋值操作符是左结合的。
68、**[primary]**以下代码的执行结果的描述正确的是?C
A.编译过程报错。B.运行过程中报错。C.执行后,xing的结果是"Yuan",ming的结果是"Jianzheng"。D.以上描述全部错误。
69、**[primary]**以下关于闭包描述错误的是?D
70、**[primary]**有关柯里化描述错误的是?D
A.柯里化是指将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数作为参数的函数。B.有时,使用柯里化将某个函数参数单拎出来,可以提供更多用于类型推断的信息。C.将函数defadd(x:Int,y:Int)=x+y,变形为defadd(x:Int)(y:Int)=x+y的过程是一个柯里化过程。D.柯里化是多参数列表函数的特例。
71、**[primary]**高阶函数是指?C
72、**[primary]**以下选项中,哪一个可以在Scala中定义一个按名调用(call-by-name)的函数?B
A.deffunctionOne(x:Int)B.deffunctionOne(x:=>Int)C.deffunctionOne(x:->Int)D.deffunctionOne(x:Name)
73、**[primary]**如下代码执行结果是?A
A.6B.4C.8D.9
74、**[primary]**集合可以分为三大类,以下描述中不是这三大类的是?A
A.列表(List)B.序列(Seq)C.集(Set)D.映射(Map)
75、**[primary]**以下对集合的描述有误的是?D
A.Set是一组没有先后次序的值。B.Map是一组(键,值)对偶。C.每个Scala集合特质或类都有一个带有apply方法的伴生对象,可以用此方法来构建该集合中的实例。D.为了顾及安全性问题,Scala仅支持不可变集合而不支持可变集合。
76、**[primary]**如下的操作中,哪一个不能将valnames=List("Petter","Paul","Mary")中的相应地字符串全部变成大写?D
A.names.map(_.toUpperCase)B.for(name<-names)yieldname.toUpperCaseC.for(name<-names)yieldfor(c<-name)yieldc.toUpperD.for(name<-names;c<-name)yieldc.toUpper
77、**[primary]**以下关于caseclass描述有误的是?A
A.默认情况下可对其属性进行修改。B.在模式匹配时会进行解构操作。C.两个caseclass进行比较时进行全等比较,而非按是否引用同一个对象进行比较。D.相比于class而言更简洁的实例化过程(不需要使用new操作符)及其它操作语法。
78、**[primary]**下面有关sealed类的描述有误的是?D
79、**[primary]**下面有Option类型描述有误的是?C
A.Option类型可以用来表示那种可能存在、也可能不存在的值。B.Option类型的两种状态分别是Some和None。C.Option类型的两种状态分别是Success和Failure。D.可以使用isEmpty方法来判断是否存在值。
80、**[primary]**对于以下代码描述有误的是?B
A.运行后res的结果为List("Two")。B.运行后res的结果为List("One","Two")。C.对映射data中的每一个(键,值)对,k被绑定对键,而v则被绑定到值。D.其中的if(k>1)是一个守卫表达式。
81、**[intermediate]**对于scala.io.Source对象的fromFile来说,以下哪一种描述是错误的?C
A.可以使用指定文件名(String)来创建一个SourceB.可以使用一个文件的URI(java.net.URI)来创建一个SourceC.可以使用一个文件的URL(java.net.URL)来创建一个SourceD.可以使用一个File对象(java.io.File)来创建一个Source
A.可以直接使用scala的库来读取二进制文件。B.可以直接使用scala的库来写入文件文件。C.在读取文件时,如果不指定文件编码格式则scala会推断出正确的格式进行读取。D.以上描述均不正确。
83、**[intermediate]**对于scala.sys.process提供用于与shell交互的工具而言,对于"ls-al.."!如下描述正确的是?C
A.表示仅执行ls-al..命令并没有任何返回值。B.表示执行ls-al..命令,并返回执行的结果。C.表示执行ls-al..命令,并将此命令执行的退出码返回。D.以上描述均不正确。
84、**[intermediate]**以下关于特质的说法错误的是?C
A.类可以实现任意数量的特质。B.特质可以要求实现它们的类具备特定的字段、方法或超类。C.与Java接口(Interface)相同,Scala特质也可以提供方法和字段的实现。D.当将多个特质叠加在一起时,顺序很重要——其方法先被执行的特质排在更后面。
85、**[intermediate]**关于Scala中不支持多重继承的原因描述正确的是?D
A.在实际使用中,真正必须使用多重继承的时机很少。B.若多重继承的两个基类具有相同的字段或方法,就会引发菱形继承问题,造成问题的复杂性。C.通过使用Trait可以达到多重继承的类似效果。D.以上均正确。
86、**[intermediate]**关于Scala中的trait和Java中的Interface描述错误的是?A
A.Scala特质和Java接口都可以包含抽象方法和具体实现。B.Scala和Java都不允许多重继承,但可以叠加多个特质或接口。C.Java只能在类层面上添加接口的实现,而Scala可以在类和对象层面上“混入”特质。D.以上描述至少有一项有误。
87、**[intermediate]**对于Scala中混入了特质的对象,关于其在构造时构造器执行顺序的描述错误的是?C
A.首先调用超类的构造器。B.特质构造器在超类构造器之后、类构造器之前执行。所有特质构造完毕,子类被构造。C.特质由右到左被构造。如果多个特质共有一个父特质,而那个父特质已经被构造,则不会再次构造。D.每个特质中,父特质先被构造。
88、**[intermediate]**对于下述代码描述错误的是?D
A.log.realName并不是期望的"test.log"。B.可以通过vallog=newMyClass{valtestName="test";}withTestLog,来达到log.realName的值为"test.log"。C.可以通过将TestLog中的realName定义修改为,lazyvalrealName=testName+".log",来达到log.realName的值为"test.log"。D.以上描述最多有两个描述正确。
89、**[intermediate]**对于以this:类型=>代码开始定义的特质,描述错误的是?D
A.此描述叫作“自身类型(selftype)”,表示此特质只能被混入指定类型的子类中。B.在此特质的方法中,可以调用上述类型中所具有的任何方法。C.此类型,可以是一个方法的集合,如{defgetMessage():String}用于表示此特质可以被混入任何拥有getMessage方法的类中。D.以上描述最多有两个描述正确。
90、**[intermediate]**Scala将特质翻译成JVM的类和接口的描述错误的是?D
A.只有抽象方法的特质被简单地变成一个Java接口。B.如果特质中包含具体方法,则Scala会帮我们创建出一个伴生类,该伴生类用静态方法存放特质的方法。C.特质中的字段对应到接口中的抽象的getter和setter方法。D.以上描述至少有一个是错误的。
91、**[intermediate]**对于一元操作符下述描述错误的是?B
A."+"、"-"、"!"、"~"这四个操作符可以作为前置操作符,出现在参数之前。B.前置表达式"操作符a",可以表示为"a.unary_操作符(1)"。C.如果此操作符出现在参数之后,那么它就是一个后置操作符,如"a操作符"。D.后置表达式"a操作符",可以表示为"a.操作符()"。
92、**[intermediate]**有关操作符优先级的描述不正确的是?C
A.*=的优先级低于+。B.>的优先级高于&。C.后置操作符的优先级高于中置操作符。D.%的优先级高于+。
93、**[intermediate]**对于f(arg1,arg2,...)描述有误的是?D
A.若其未出现在赋值表达式的左侧,若f是函数或方法,则其只是对其的调用。B.若其未出现在赋值表达式的左侧,且f不是函数或方法,则其等同于f.apply(arg1,arg2,...)。C.若其出现在赋值表达式的左侧,如"f(arg1,arg2,...)=value",则其等同于f.update(arg1,arg2,...,value)。D.以上描述至少有一个是错误的。
94、**[intermediate]**以下关于Scala中函数的描述错误的是B
A.函数是“头等公民”,就和数字一样。B.可以将函数赋值给变量,如valfun=scala.math.ceil。C.支持非具名函数,也即匿名函数。D.可以将函数作为参数,传递给其它函数。
95、**[intermediate]**对集(Set)进行操作"Set(2,0,1)+1+1-1"之后的结果为?C
A.Set(2,0,1,1)B.Set(2,0,1)C.Set(2,0)D.已上均不正确。
96、**[intermediate]**下述方法中,哪一个不能将"valtmp=List(1,2,3)"中的所有元素求和,并将最终结果6返回?D
A.tmp.foldLeft(0)(_+_)B.tmp.reduceLeft(_+_)C.(0/:tmp)(_+_)D.tmp.scanLeft(0)(_+_)
97、**[intermediate]**下面有关valf:PartialFunction[Char,Int]={case'+'=>1;case'-'=>-1}的描述有误的是?D
A.f是一个偏函数,且其参数类型为Char、返回类型为Int。B.f('-')的结果是返回-1。C.f.isDefinedAt('0')的结果是返回false。D.f('0')在执行时由于没有对应的case语句,故会返回一个任意Int值。
98、**[intermediate]**在下述代码基础上,不能正确执行的操作是?C
A.amt.copy(value=19.2)B.amt.copy()C.amt.copy("CHF")D.amt.copy(unit="CHF")
99、**[intermediate]**对于下述代码,哪个描述是正确的?A
A.one.isDefinedAt(Some(1))==trueB.one.isDefinedAt(1)==trueC.one.isDefinedAt(Some(100))==falseD.one.isDefinedAt(None)==true
100、**[intermediate]**在对htmlText进行匹配时,应该使用哪一种case语句?B
A.caseSome(x)=>caseNone(x)=>B.caseSuccess(v)=>caseFailure(e)=>C.caseString(x)=>caseUrl(y)D.caseTry1(v)=>caseTry2(v)=>