Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. 您想要将每个分数及其基数位置打印到单独的行中。在不使用 varval 的情况下,哪种方法允许同时迭代值和其位置?

fun main() {
  val highScores = listOf(4000, 2000, 10200, 12000, 9030)
}
  • .withIndex()
  • .forEachIndexed()
  • .forEach()
  • .forIndexes()

参考链接

Q2. 当实例化 Airplane 类时,它显示 Aircraft = null,而不是 Aircraft = C130,为什么?

abstract class Aircraft {
  init { println("Aircraft = ${getName()}") }
  abstract fun getName(): String
}
class Airplane(private val name: String) : Aircraft() {
  override fun getName(): String = name
}
  • 类按照文件中的顺序初始化,因此,Aircraft 应该在 Airplane 之后显示
  • 代码需要将参数传递给基类的主构造函数。因为没有传递参数,所以会接收到 null
  • 抽象函数始终返回 null
  • 超类在其子类之前初始化。因此,在渲染之前尚未设置名称

参考链接 讨论链接

Q3. Kotlin 接口和抽象类非常相似。抽象类可以做到接口不能做的一件事是什么?

  • 只有抽象类可以被子类继承
  • 只有抽象类可以从多个超类继承
  • 只有抽象类可以拥有抽象方法
  • 只有抽象类可以存储状态

参考链接

Q4. 在扩展函数内部,与接收对象对应的变量名称是什么?

  • 变量名为 it
  • 变量名为 this
  • 变量名为 receiver
  • 变量名为 default

参考链接

Q5. 您的应用程序有一个 add 函数。您如何使用其 invoke 方法并显示结果?

fun add(a: Int, b: Int): Int {
  return a + b
}
  • println(add(5,10).invoke())
  • println(::add.invoke(5, 10))
  • println(::add.invoke{5, 10})
  • println(add.invoke(5,10))

参考链接

Q6. Kotlin 应用程序的入口点是什么?

  • fun static main(){}
  • fun main(){}
  • fun Main(){}
  • public static void main(){}

Q7. 您正在用 Kotlin 编写一个处理用户输入的控制台应用程序。如果用户输入空字符串,程序将退出。哪种循环最适合此应用程序?请记住,至少会执行一次循环。

  • 使用 do..while 循环
  • 使用 for 循环
  • 使用 while 循环
  • 使用 forEach 循环

参考链接

Q8. 您将一个整数传递给期望类型为 Any 的函数。这样做没有问题。为什么原始整数可以与期望对象的函数一起工作?

fun showHashCode(obj: Any){
  println("${obj.hashCode()}")
}
fun main() {
  showHashCode(1)
}
  • 尽管代码运行,但并未产生正确的结果
  • 整数始终是一个类
  • 编译器在整数上运行了一个隐式的 .toClass() 方法
  • 整数被自动包装为 Kotlin 的 Int 类

参考链接

Q9. 您已经启动了一个长时间运行的协程,其工作您已经分配给名为 task 的变量。如果有需要,您如何中止协程?

val task = launch {
  // long running job
}
  • task.join()
  • task.abort()
  • job.stop()
  • task.cancel()

参考链接

Q10. 您正在尝试将一个整数变量分配给一个长整型变量,但 Kotlin 编译器将其标记为错误。为什么?

  • 您必须将所有隐式转换包装在 try/catch 块中
  • 您只能将 Long 分配给 Int,反之亦然
  • IntLong 没有隐式转换
  • Kotlin 中的所有整数都是 Long 类型

参考链接

Q11. 您编写了一小段代码来显示掷骰子的结果。当骰子显示 3 到 6 时,您希

望显示一条特殊消息。使用 Kotlin 范围,您应该添加哪些代码?

when (die) {
  1 -> println("die is 1")
  2 -> println("die is 2")
  ___ -> println("die is between 3 and 6")
  else -> println("die is unknown")
}
  • 3,4,5,6
  • in 3..6
  • 3 : 6
  • {3,4,5,6}

参考链接

Q12. 函数 typeChecker 接收类型为 Any 的参数 obj。根据 obj 的类型,它打印不同的消息,对于 Int、String、Double 和 Float 类型,它分别打印不同的消息;如果不是上述类型之一,则打印 "unknown type"。哪种操作符允许您确定对象的类型?

  • instanceof
  • is
  • typeof
  • as

参考链接

Q13. 此代码不会在控制台上打印任何输出。哪里出了问题?

firstName?.let {
  println("Greeting $firstname!")
}
  • 抛出空指针异常
  • firstName 等于 null
  • firstName 等于空字符串
  • firstName 等于布尔值 false

参考链接

Q14. 您有一个频繁调用的函数 simple()。您在该函数上添加了 inline 前缀。这对代码有什么影响?

inline fun simple(x: Int): Int{
  return x * x
}

fun main() {
  for(count in 1..1000) {
    simple(count)
  }
}
  • 代码将引发堆栈溢出错误
  • 编译器会警告性能影响不大
  • 编译器会警告显著的内存使用
  • 代码速度显著提高

参考链接

Q15. 如何填写下面的空白,以使用最少的代码显示 1 到 10 之间所有的偶数?

for (_____) {
  println("There are $count butterflies.")
}
  • count in 1..10
  • count in 2..10 step 2
  • count in 1..10 % 2
  • var count=2; count <= 10; count+=2

参考链接

Q16. println() 输出什么值?

val set = setOf("apple", "pear", "orange", "apple")
println(set.count())
  • 3
  • 4
  • 1
  • 5

参考链接

Q17. 哪一行代码展示了如何显示可空字符串的长度,并在为空时显示 0 而不是 null?

  • println(b!!.length ?: 0)
  • println(b?.length ?: 0)
  • println(b?.length ?? 0)
  • println(b == null? 0: b.length)

Q18. 在 main.kt 文件中,您正在过滤整数列表,并希望使用已经存在的函数 removeBadValues。在下面的代码行中,什么是调用 filter 中函数的正确方式?

val list2 = (80..100).toList().filter(_____)
  • ::removeBadValues
  • GlobalScope.removeBadValues()
  • Mainkt.removeBadValues
  • removeBadValues

参考链接

Q19. 哪个代码片段正确显示了使用范围的 for 循环,以显示 "1 2 3 4 5 6"?

  • for(z in 1..7) println("$z ")
  • for(z in 1..6) print("$z ")
  • for(z in 1 to 6) print("$z ")
  • for(z in 1..7) print("$z ")

参考链接

Q20. 您正在将一个 Java 类升级为 Kotlin。您应该使用什么来替换 Java 类的静态字段?

  • 匿名对象
  • 静态属性
  • 伴生对象
  • 后备字段