Mobile wallpaper 1
14037 字
70 分钟
全栈开发综合测试题库汇总

:这是金山办公校企合作项目的随堂测试题,仅供学习使用。

第一次课#

  1. 【单选题】在Git中,如果想查看当前工作区与暂存区的差异,应使用哪个命令?

    A. git diff

    B. git status

    C. git commit

    D. git log

    答案:A

  2. 【单选题】如何将本地的一个新建分支推送到远程仓库?

    A. git push origin master

    B. git push origin new_branch

    C. git commit -m ‘new branch’

    D. git merge new_branch

    答案:B

  3. 【单选题】在Git中如何查看历史提交记录?

    A. 使用 git diff 命令

    B. 使用 git status 命令

    C. 使用 git log 命令

    D. 使用 git checkout 命令

    答案:C

  4. 【单选题】如何将本地的修改提交到远程仓库?

    A. git commit -m ‘message’

    B. git push origin master

    C. git add .

    D. git clone

    答案:B

  5. 【单选题】在 Git 中,如何查看当前状态的最简命令是什么?

    A. git log

    B. git status

    C. git diff

    D. git commit

    答案:B

  6. 【单选题】在 Git 中使用 stash 命令的目的是什么?

    A. 保存当前的工作进度,将工作目录和索引恢复到上一次提交的状态

    B. 提交当前的所有改动

    C. 查看远程仓库的状态

    D. 删除本地仓库的所有文件

    答案:A

  7. 【单选题】Git amend用于什么场景?

    A. 用于删除最后一次提交

    B. 用于更改最后一次提交的信息

    C. 用于创建新的分支

    D. 用于合并分支

    答案:B

  8. 【单选题】下面哪个不是Go语言的特点?

    A. 静态类型

    B. 垃圾回收

    C. 并发执行

    D. 解释执行

    答案:D

  9. 【单选题】Git 如何撤销最后一次的 commit 操作?

    A. git reset —soft HEAD~1

    B. git checkout HEAD

    C. git merge origin/master

    D. git pull origin master

    答案:A

  10. 【单选题】在SSH协议中,客户端和服务端之间的加密信息传输是基于什么进行认证的?

    A. 对称密钥

    B. 非对称密钥

    C. 密码短语

    D. 用户名和密码

    答案:B

  11. 【多选题】当你想撤销最近一次的提交但保留对文件的修改时,应使用下列哪些Git命令?

    A. git revert HEAD

    B. git reset —soft HEAD^

    C. git reset —hard HEAD^

    D. git checkout HEAD

    答案:AB

  12. 【多选题】如何正确使用git checkout命令来进行分支和文件操作?

    A. 使用git checkout branch_name可以切换到另一个分支

    B. 执行git checkout — file_name撤销对该文件的未提交更改

    C. 使用git checkout -b new_branch将创建一个新的本地分支并切换到这个分支

    D. git checkout previous_state将仓库状态回退到previous_state状态

    答案:ABC

  13. 【多选题】在使用git checkout时,以下哪些操作是有效的?

    A. git checkout — file.txt将文件回滚到最近的commit或add状态

    B. git checkout branch_name能够切换到已存在的分支branch_name

    C. git checkout -b new_branch从当前分支创建新分支并切换到那里

    D. git checkout tag_name将代码库恢复到某个特定标签的状态

    答案:ABC

  14. 【多选题】关于git checkout的用法,以下哪些描述是正确的?

    A. git checkout branch_name可以切换到指定的分支

    B. git checkout -b branch_name可以创建并切换到新的分支

    C. git checkout commit_id可以将仓库恢复到指定的提交

    D. git checkout file_name会恢复该文件到上次提交的状态,删除所有本地修改

    答案:ABD

  15. 【多选题】Git Stash 命令在以下哪几种情况下是有用的?

    A. 当你需要切换分支但工作目录不干净时可以使用 stash 来保存当前工作进度

    B. stash 只能在 master 分支中有效

    C. 使用 git stash apply 恢复最近的 stash 之后,该 stash 会自动从列表中删除

    D. 通过 git stash list 可以查看所有存储的 stash 记录

    答案:AD

  16. 【单选题】在Git中,如何临时保存当前工作进度以便切换到其他分支进行工作?

    A. 使用 git stash apply 命令

    B. 使用 git commit 命令

    C. 使用 git stash 命令

    D. 使用 git merge 命令

    答案:C

  17. 【单选题】Go语言中的init函数可以接受参数吗?

    A. 可以,可以接受任意类型的参数

    B. 可以,但只能接受同一个包内的类型为参数

    C. 不可以,init函数不能有参数,也不能定义返回值

    D. 可以,但只能接受基本类型的参数

    答案:C

  18. 【单选题】在Go语言中,如果一个包中包含了多个init函数,它们的执行顺序是什么?

    A. init 函数的执行顺序是在包初始化时按照他们在代码中出现的顺序执行

    B. 按照文件名的字典序执行

    C. 随机执行顺序

    D. 编译器优化决定执行顺序

    答案:A

  19. 【单选题】执行’go mod init myproject’命令在Go项目中会发生什么?

    A. 初始化一个名为myproject的Go模块

    B. 创建一个名为myproject的新的Go文件

    C. 删除名为myproject的Go模块

    D. 升级名为myproject的Go模块

    答案:A

  20. 【单选题】在Go语言中,如何创建一个新的module?

    A. 使用 go create 命令

    B. 使用 go mod init 命令

    C. 使用 go new 命令

    D. 直接创建一个新文件夹

    答案:B

  21. 【单选题】在Go中,如果一个函数可能返回多种错误,常见的处理方式是?

    A. 定义一个错误变量,通过它返回具体错误信息

    B. 使用不同的panic来抛出不同的错误

    C. 将所有错误处理为同一类型

    D. 不考虑错误处理

    答案:A

  22. 【单选题】在Go语言中,如果一个函数需要被外部包访问,函数名应该如何书写?

    A. 首字母小写并使用public关键字

    B. 首字母大写

    C. 完全小写

    D. 使用func关键字作为前缀

    答案:B

  23. 【多选题】关于 main() 函数,下面说法正确的是?

    A. 不能带参数;

    B. 不能定义返回值;

    C. 所在的包必须为 main 包;

    D. 可以使用 flag 包来获取和解析命令行参数;

    答案:ABCD

  24. 【多选题】关于函数声明,下面语法正确的是?

    A. func f(a, b int) (value int, err error)

    B. func f(a int, b int) (value int, err error)

    C. func f(a, b int) (value int, error)

    D. func f(a int, b int) (int, int, error)

    答案:ABD

  25. 【多选题】关于init函数,下面说法正确的是()

    A. 一个包中,可以包含多个 init 函数;

    B. 程序编译时,先执行依赖包的 init 函数,再执行 main 包内的 init 函数

    C. main 包中,不能有 init 函数;

    D. init 函数可以被其他函数调用;

    答案:AB

  26. 【单选题】在 Go 语言中,函数传参存在引用传递吗?

    A. 存在

    B. 不存在

    C. 视情况而定

    D. 以上都不对

    答案:B

  27. 【单选题】Go中的init函数有什么作用?

    A. 用于程序执行前的包初始化

    B. 用于增加包的执行速度

    C. 用于声明变量和常量

    D. 用于配置文件的读取

    答案:A

  28. 【单选题】Golang中,下列哪个函数可以用于单元测试?

    A. A. func TestAbc()

    B. B. func MainTest()

    C. C. func UnitTest()

    D. D. func CheckTest()

    答案:A

  29. 【单选题】以下哪种方式可以初始化一个 Go 模块?

    A. 使用 go init 命令

    B. 在项目目录下创建一个名为 go.mod 的文件

    C. 使用 go mod init 命令

    D. 以上都不对

    答案:C

  30. 【单选题】在 Go 中,依赖包的版本是如何控制的?

    A. 在 go.mod 文件中指定

    B. 自动选择最新版本

    C. 由开发者随意决定

    D. 以上都不对

    答案:A

  31. 【单选题】在 Go 中,安装的包通常会安装到哪里?

    A. 项目的当前目录

    B. GOPATH 目录下

    C. 系统默认目录

    D. 以上都不对

    答案:B

  32. 【单选题】关于 Go.sum 文件,以下说法正确的是?

    A. 它包含了依赖包的版本信息

    B. 它用于验证依赖包的完整性

    C. 它是项目的配置文件

    D. 以上都不对

    答案:B

  33. 【单选题】 Go.mod 文件主要的作用是?

    A. 存储项目的依赖包信息

    B. 定义项目的代码结构

    C. 记录项目的运行配置

    D. 以上都不对

    答案:A

  34. 【单选题】在 Go 语言中,以下关于下划线的作用描述正确的是?( )

    A. 作为变量名,用于存储无用的值

    B. 表示私有变量

    C. 用于注释

    D. 以上都不对

    答案:A

  35. 【单选题】以下哪种是 Go 语言的短变量声明方式?

    A. var x = 5

    B. x := 5

    C. x int = 5

    D. let x = 5

    答案:B

  36. 【多选题】flag 是 bool 型变量,下面 if 表达式符合编码规范的是?

    A. if flag == 1

    B. if flag

    C. if flag == false

    D. if !flag

    答案:BCD

  37. 【多选题】Go语言中如何通过go get安装特定版本的包?

    A. 直接运行go get package@version

    B. 修改go.mod文件指定依赖版本

    C. 使用go install package@version

    D. 设置GOPROXY环境变量

    答案:AB

  38. 【单选题】在UTF-8编码中,一个英文字符通常占用多少字节?

    A. 1字节

    B. 2字节

    C. 3字节

    D. 4字节

    答案:A

  39. 【多选题】关于Go语言中defer语句的正确用法

    A. defer语句通常用于资源释放、解锁以及错误处理

    B. defer语句会在包含它的函数结束时按照定义的顺序执行

    C. defer语句仅能在循环内部使用

    D. defer语句执行的顺序是先进后出,即后定义的defer语句会先执行

    答案:ABD

  40. 【单选题】以下哪个选项是internal目录下的代码可以被引用的情况?

    A. 任何其他项目

    B. 同一个项目下的任何代码

    C. 系统的标准库

    D. 来自不同项目的internal目录

    答案:B




第二次课#

  1. 【单选题】在Go中,如何处理未使用的导入包

    A. 注释掉

    B. 删除

    C. 使用空白标识符(_)

    D. 忽略编译器警告

    答案:B

  2. 【单选题】在Go语言中,以下哪种注释方式是正确的?

    Go语言支持 // 形式的单行注释和 /* */ 形式的多行注释。

    A. // 这是单行注释

    B. /* 这是多行注释 */

    C. # 这是单行注释

    D. A和B都正确

    答案:D

  3. 【单选题】在Go中,如果一个函数可能返回多种错误,常见的处理方式是?

    A. 定义一个错误变量,通过它返回具体错误信息

    B. 使用不同的panic来抛出不同的错误

    C. 将所有错误处理为同一类型

    D. 不考虑错误处理

    答案:A

  4. 【单选题】在Go语言中,如果一个函数需要被外部包访问,函数名应该如何书写?

    A. 首字母小写并使用public关键字

    B. 首字母大写

    C. 完全小写

    D. 使用func关键字作为前缀

    答案:B

  5. 【多选题】以下创建一个空映射的方式正确的是

    A. m := map[string]int{}

    B. m := make(map[string]int)

    C. m := new(map[string]int)

    D. 以上都正确

    答案:AB

  6. 【多选题】以下哪个声明正确地使用了Go语言的map类型?

    A. map[string]int = {“one”: 1, “two”: 2}

    B. var myMap map[string]int = make(map[string]int)

    C. myMap := map[int]string{1: “one”, 2: “two”}

    D. newMap := map[“string”]int

    答案:BC

  7. 【单选题】在Go语言中,下面哪个声明是正确的字符串定义方式?

    A. var str string

    B. str := ‘hello’

    C. var str = 123

    D. string str = “hello”

    答案:A

  8. 【单选题】在UTF-8编码中,一个英文字符通常占用多少字节?

    A. 1字节

    B. 2字节

    C. 3字节

    D. 4字节

    答案:A

  9. 【单选题】Unicode和UTF-8之间的关系是什么?

    A. Unicode是一种字符集,UTF-8是Unicode的一种编码方式

    B. Unicode和UTF-8都是编程语言

    C. UTF-8是一种字符集,Unicode是UTF-8的一种编码方式

    D. 没有任何关系

    答案:A

  10. 【单选题】在Go语言中,rune类型通常用于处理什么?

    A. 整型数据

    B. 浮点数数据

    C. Unicode字符

    D. 布尔型数据

    答案:C

  11. 【多选题】关于 main() 函数,下面说法正确的是?

    A. 不能带参数;

    B. 不能定义返回值;

    C. 所在的包必须为 main 包;

    D. 可以使用 flag 包来获取和解析命令行参数;

    答案:ABCD

  12. 【多选题】关于 switch 语句,下面说法正确的是?

    A. 单个 case 中,可以出现多个结果选项;

    B. 需要使用 break 来明确退出一个 case;

    C. 只有在 case 中明确添加 fallthrought 关键字,才会继续执行紧跟的下一个 case;

    D. 条件表达式必须为常量或者整数;

    答案:AC

  13. 【单选题】下面代码输出什么?

    func hello(num ...int) {
    num[0] = 18
    }
    func Test13(t *testing.T) {
    i := []int{5, 6, 7}
    hello(i...)
    fmt.Println(i[0])
    }
    func main() {
    t := &testing.T{}
    Test13(t)
    }

    A. 18

    B. 5

    C. Compilation error

    D. 其他

    答案:A

  14. 【单选题】下面代码能编译通过吗?可以的话,输出什么?

    func DeferTest2(i int) (r int) {
    defer func() {
    r += i
    }()
    return 2
    }
    func main() {
    fmt.println(DeferTest2(1))
    }

    A. 1

    B. 2

    C. 3

    D. 以上都不是

    答案:C

  15. 【多选题】Go语言defer的实际应用场景

    A. 在打开文件后立即使用defer来安排文件的关闭

    B. 在数据库连接成功后使用defer来安排断开连接

    C. 仅在程序的主函数中使用defer来进行错误处理

    D. 使用defer来执行重要的日志记录

    答案:ABD

  16. 【多选题】在Go语言中使用defer的注意事项

    A. 在使用defer时,应避免在循环中创建大量的defer调用

    B. defer语句可以读取有名返回值

    C. defer语句的执行可以被其他defer语句阻塞

    D. 多个defer语句的执行顺序与它们被定义的顺序相同

    答案:AB

  17. 【多选题】flag 是 bool 型变量,下面 if 表达式符合编码规范的是?

    A. if flag == 1

    B. if flag

    C. if flag == false

    D. if !flag

    答案:BCD

  18. 【单选题】下面代码输出什么?

    func main() {
    isMatch := func(i int) bool {
    switch(i) {
    case 1:
    fallthrough
    case 2:
    return true
    }
    return false
    }
    fmt.Println(isMatch(1))
    fmt.Println(isMatch(2))
    }

    A. false true

    B. true true

    C. false false

    D. true false

    答案:B

  19. 【单选题】下面这段代码输出什么?

    var x = []int{2: 2, 3, 0: 1}
    func main() {
    fmt.Println(x)
    }

    A. [1 0 2 3]

    B. [2 3 1]

    C. [2 3 1 0]

    D. [0 2 3 1]

    答案:A

  20. 【多选题】下面哪些场景会触发异常?

    A. 空指针解析;

    B. 下标越界;

    C. 除数为0;

    D. 调用panic函数;

    答案:ABCD

  21. 【多选题】关于整型切片的初始化,下面正确的是?

    A. s := make([]int)

    B. s := make([]int, 0)

    C. s := make([]int, 5, 10)

    D. s := []int{1, 2, 3, 4, 5}

    答案:BCD

  22. 【多选题】关于函数声明,下面语法正确的是?

    A. func f(a, b int) (value int, err error)

    B. func f(a int, b int) (value int, err error)

    C. func f(a, b int) (value int, error)

    D. func f(a int, b int) (int, int, error)

    答案:ABD

  23. 【多选题】关于变量的自增和自减操作,下面语句正确的是?

    A. i := 1; i++

    B. i := 1; j = i++

    C. i := 1; ++i

    D. i := 1; i—

    答案:AD

  24. 【多选题】关于 bool 变量 b 的赋值,下面错误的用法是?

    A. b = true

    B. b = 1

    C. b = bool(1)

    D. b = (1 == 2)

    答案:BC

  25. 【多选题】关于switch语句,下面说法正确的有?

    A. 条件表达式必须为常量或者整数;

    B. 单个case中,可以出现多个结果选项;

    C. 需要用break来明确退出一个case;

    D. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;

    答案:BD

  26. 【多选题】关于循环语句,下面说法正确的有

    A. 循环语句既支持 for 关键字,也支持 while 和 do-while;

    B. 关键字 for 的基本使用方法与 C/C++ 中没有任何差异;

    C. for 循环支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环;

    D. for 循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量;

    答案:CD

  27. 【单选题】下面代码里的 counter 的输出值?

    func main() {
    var m = map[string]int{
    "A": 21,
    "B": 22,
    "C": 23,
    }
    counter := 0
    for k, v := range m {
    if counter == 0 {
    delete(m, "A")
    }
    counter++
    fmt.Println(k, v)
    }
    fmt.Println("counter is ", counter)
    }

    A. 2

    B. 3

    C. 2或3

    D. 其他

    答案:C

  28. 【单选题】下面这段代码正确的输出是什么?

    func f() {
    defer fmt.Println("D")
    fmt.Println("F")
    }
    func main() {
    f()
    fmt.Println("M")
    }

    A. F M D

    B. D F M

    C. F D M

    D. 以上都不对

    答案:C

  29. 【单选题】下面代码输出什么?

    func main() {
    str := "hello"
    str[0] = 'x'
    fmt.Println(str)
    }

    A. hello

    B. xello

    C. compilation error

    D. 其他

    答案:C

  30. 【多选题】定义一个包内全局字符串变量,下面语法正确的是()

    A. var str string

    B. str:=""

    C. str=""

    D. var str=""

    答案:AD




第三次课#

  1. 【单选题】Go语言包管理工具是哪个?

    A. dep

    B. go mod

    C. glide

    D. gopkg

    答案:B

  2. 【单选题】在Go中,nil代表什么?

    A. 布尔值false

    B. 空字符串

    C. 零值或空指针

    D. 无限大

    答案:C

  3. 【单选题】在Go语言中,一个类型实现某个interface的条件是什么?

    A. 类型必须显式声明实现了该interface

    B. 类型必须显式嵌入该interface

    C. 类型必须实现该interface的所有方法

    D. 类型必须包含该interface的字段

    答案:C

  4. 【单选题】Go语言JSON序列化结构体

    在Go语言中,如果一个结构体的字段名首字母小写,如何确保它能被json.Marshal正确序列化为JSON?

    A. 使用标签将字段名首字母改为大写

    B. 无需改变,Go自动处理

    C. 使用json:“FieldName”标签

    D. 字段名首字母不能是小写

    答案:C

  5. 【单选题】以下代码中,x的最终值是什么?

    package main
    import "fmt"
    func main() {
    x := 10
    defer fmt.Println(x)
    x = 20
    fmt.Println("main function executed")
    }

    A. 10

    B. 20

    C. 30

    D. 编译错误

    答案:A

  6. 【单选题】观察下面的Go代码,判断运行结果是什么?

    package main
    import "fmt"
    func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    delete(m, "b")
    fmt.Println(m)
    }

    A. map[a:1 b:2 c:3]

    B. map[a:1 b:0 c:3]

    C. map[a:1 c:3]

    D. map[a:1]

    答案:C

  7. 【单选题】给定以下Go代码,运行后输出结果是什么?

    package main
    import "fmt"
    func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    slice := arr[1:4]
    slice[0] = 10
    fmt.Println(arr)
    }

    A. [1 2 3 4 5]

    B. [1 10 3 4 5]

    C. [10 2 3 4 5]

    D. 编译错误

    答案:B

  8. 【单选题】下列关于 Go 语言的切片声明,哪个是错误的?

    A. var slice1 []int

    B. slice2 := []int{}

    C. slice3 := make([]int, 0)

    D. slice4 := new([]int)

    答案:D

  9. 【单选题】以下Go代码片段的输出是什么?

    package main
    import "fmt"
    func main() {
    x := []int{1, 2, 3}
    for _, v := range x {
    v += 5
    }
    fmt.Println(x)
    }

    A. [1, 2, 3]

    B. [6, 7, 8]

    C. [1, 7, 3]

    D. 编译错误

    答案:A

  10. 【单选题】下列代码输出的结果是什么?

    package main
    import "fmt"
    func main() {
    var a = 5
    var b = 10
    fmt.Printf("%b", a+b)
    }

    A. 1111

    B. 其他

    C. 15

    D. 编译错误

    答案:A

  11. 【单选题】下面这段代码正确的输出是什么

    func main() {
    if a := 1; false {
    } else if b := 2; false {
    } else {
    println(a, b)
    }
    }

    A. 1 2

    B. 0 0

    C. compilation error

    D. 1 0

    答案:A

  12. 【多选题】对 add() 函数调用正确的是

    func add(args ...int) int {
    sum := 0
    for _, arg := range args {
    sum += arg
    }
    return sum
    }

    A. add(1, 2)

    B. add(1, 3, 7)

    C. add([]int{1, 2})

    D. add([]int{1, 3, 7}…)

    答案:ABD

  13. 【单选题】下面的代码输出什么?

    func main() {
    str := "hello"
    str[0] = 'x'
    fmt.Println(str)
    }

    A. hello

    B. xello

    C. compilation error

    D. 其他

    答案:C

  14. 【单选题】下面代码输出什么?

    type person struct {
    name string
    }
    func main() {
    var m map[person]int
    p := person{"mike"}
    fmt.Println(m[p])
    }

    A. 0

    B. 1

    C. 其他

    D. Compilation error

    答案:A

  15. 【多选题】以下创建一个空映射的方式正确的是

    A. m := map[string]int{}

    B. m := make(map[string]int)

    C. m := new(map[string]int)

    D. 以上都正确

    答案:AB

  16. 【多选题】flag 是 bool 型变量,下面 if 表达式符合编码规范的是?

    A. if flag == 1

    B. if flag

    C. if flag == false

    D. if !flag

    答案:BCD

  17. 【单选题】下面这段代码输出什么?

    var x = []int{2: 2, 3, 0: 1}
    func main() {
    fmt.Println(x)
    }

    A. [1 0 2 3]

    B. [2 3 1]

    C. [2 3 1 0]

    D. [0 2 3 1]

    答案:A

  18. 【多选题】关于GetPodAction定义,下面赋值正确的是

    type Fragment interface {
    Exec(transInfo *TransInfo) error
    }
    type GetPodAction struct {
    }
    func (g GetPodAction) Exec(transInfo *TransInfo) error {
    ...
    return nil
    }

    A. var fragment Fragment = new(GetPodAction)

    B. var fragment Fragment = GetPodAction

    C. var fragment Fragment = &GetPodAction{}

    D. var fragment Fragment = GetPodAction{}

    答案:ACD

  19. 【多选题】关于变量的自增和自减操作,下面语句正确的是?

    A. i := 1; i++

    B. i := 1; j = i++

    C. i := 1; ++i

    D. i := 1; i—

    答案:AD

  20. 【多选题】通过指针变量 p 访问其成员变量 name,有哪几种方式?

    A. p.name

    B. (&p).name

    *C. (p).name

    D. p->name

    答案:AC

  21. 【单选题】以下代码片段的输出结果是什么?

    for i := 0; i < 5; i++ {
    if i == 3 {
    continue
    }
    fmt.Println(i)
    }

    A. 0 1 2 4

    B. 0 1 2 3 4

    C. 0 1 2 3

    D. 3 4

    答案:A

  22. 【单选题】以下关于结构体方法的说法,错误的是

    A. 值接收者方法不能修改结构体的字段值

    B. 指针接收者方法可以修改结构体的字段值

    C. 值接收者方法在传递参数时效率更高

    D. 指针接收者方法在结构体较大时更节省内存

    答案:C

  23. 【单选题】对于以下结构体和方法定义,调用 ChangeName 方法后,原始的 Person 结构体实例的 Name 字段会改变吗?

    type Person struct {
    Name string
    Age int
    }
    func (p Person) ChangeName(newName string) {
    p.Name = newName
    }

    A. 会

    B. 不会

    C. 不确定

    D. 以上都不对

    答案:B

  24. 【单选题】以下哪种情况应该使用 new 来分配内存?

    A. 创建一个切片

    B. 创建一个映射

    C. 创建一个结构体指针

    D. 扩展一个切片的容量

    答案:C

  25. 【单选题】以下代码片段的输出结果是什么?

    slice1 := []int{1, 2, 3}
    slice2 := slice1
    slice1[0] = 10
    fmt.Println(slice2[0])

    A. 1

    B. 2

    C. 3

    D. 10

    答案:D

  26. 【单选题】下面代码的输出是什么?

    package main
    import (
    "fmt"
    )
    func main() {
    var m map[string]int
    m["a"] = 1
    fmt.Println(m["a"])
    }

    A. 0

    B. 1

    C. 指针错误

    D. panic

    答案:D

  27. 【单选题】下面代码的输出是什么?

    package main
    import (
    "fmt"
    )
    func main() {
    var x *int
    y := 10
    x = &y
    fmt.Println(*x)
    }

    A. 0

    B. 10

    C. 10地址

    D. 错误,编译不通过

    答案:B

  28. 【单选题】在Go语言中,下面哪个函数签名用于接收任意数量的参数?

    A. func add(x, y int)

    B. func add(x …int)

    C. func add(x int, y int)

    D. func add(x []int)

    答案:B

  29. 【单选题】Golang中,下列哪个函数可以用于单元测试?

    A. A. func TestAbc()

    B. B. func MainTest()

    C. C. func UnitTest()

    D. D. func CheckTest()

    答案:A

  30. 【单选题】以下哪种定义方法的代码在编译时会报错?

    A. func (p Person) Speak() {}

    B. func (Person p) Speak() {}

    C. func (p *Person) Speak() {}

    D. func (Person) Speak() {}

    答案:B




第四次课#

  1. 【单选题】要创建一个初始长度为 0,容量为 10 的整数切片,应该使用

    A. new([]int)

    B. make([]int, 0, 10)

    C. new([10]int)

    D. make([10]int)

    答案:B

  2. 【单选题】在Go语言中,如何正确地创建一个包含3个整数的切片,并初始化为[1, 2, 3]?

    A. slice := []int{1, 2, 3}

    B. slice := make([]int, 3) then slice = [1, 2, 3]

    C. slice := make([]int, 3) then copy(slice, [1, 2, 3])

    D. slice := new([3]int) then slice = [1, 2, 3]

    答案:A

  3. 【单选题】 在 Go 语言中,判断 Map 中是否存在某个值,通常使用的方法是?

    A. 遍历 Map

    B. 使用特定的函数

    C. 无法判断

    D. 以上都不对

    答案:A

  4. 【单选题】在Go语言中,如果你有一个结构体实例myStruct,你如何访问其字段field1的值?

    A. myStruct[field1]

    B. myStruct->field1

    C. myStruct.field1

    D. *myStruct.field1

    答案:C

  5. 【单选题】以下结构体方法定义中,使用指针接收者的原因通常是

    A. 方法内部需要修改结构体的字段值

    B. 为了提高性能

    C. 为了遵循代码规范

    D. 以上都是

    答案:D

  6. 【单选题】HTTP协议中的状态码200代表什么意思?

    A. 请求已成功处理

    B. 服务器无法理解请求

    C. 请求被拒绝

    D. 服务器内部错误

    答案:A

  7. 【单选题】在HTTP协议中, ‘Content-Type’ 头部通常用于表示什么?

    A. 请求者所希望返回的内容类型

    B. 服务器实际返回的内容的媒体类型

    C. 客户端可以处理的最大文件大小

    D. 通信双方的身份信息

    答案:B

  8. 【单选题】HTTP请求中的GET和POST有什么主要区别?

    A. GET请求通常用于请求数据,POST请求只用于提交数据。

    B. GET请求的数据会附加在URL之后,POST请求的数据放在请求体内。

    C. GET请求可以获取新的资源,POST请求无法获取资源。

    D. GET请求不安全,POST请求比GET请求安全。

    答案:B

  9. 【单选题】HTTP/2协议相较于HTTP/1.1有什么主要改进?

    A. 增强了安全性,强制使用HTTPS

    B. 支持多路复用,允许多个请求在一个连接中并行传输

    C. 仅允许GET和POST请求方法

    D. 消除了所有HTTP头信息

    答案:B

  10. 【单选题】在Gin框架中如何获取路由参数?

    A. c.Param(“param_name”)

    B. c.GetQuery(“param_name”)

    C. c.Params(“param_name”)

    D. c.Query(“param_name”)

    答案:A

  11. 【单选题】在Gin中如何设置响应格式为JSON?

    A. c.JSON(200, gin.H{“message”: “ok”})

    B. c.SetJSON(200, gin.H{“message”: “ok”})

    C. c.Response(200, “application/json”, gin.H{“message”: “ok”})

    D. c.SendJSON(200, gin.H{“message”: “ok”})

    答案:A

  12. 【单选题】Gin中如何全局注册中间件?

    A. router.Use(middleware)

    B. router.RegisterMiddleware(middleware)

    C. router.AttachMiddleware(middleware)

    D. router.Middleware(middleware)

    答案:A

  13. 【单选题】在Gin框架中,中间件的用途是什么?

    A. 在处理请求和发送响应之间执行额外的逻辑。

    B. 生成项目的文档。

    C. 处理数据库连接。

    D. 定义项目配置。

    答案:A

  14. 【单选题】在Gin框架中,若需要在中间件之间共享数据,应使用哪种方式?

    A. 利用c.Set存储数据,并在另一个中间件中通过c.Get获取。

    B. 直接将数据作为参数传递至下一个中间件。

    C. 使用全局变量来存储和共享数据。

    D. 创建一个新的结构体来在中间件之间传递数据。

    答案:A

  15. 【单选题】在Gin中如何返回JSON数据作为响应?

    A. 使用ctx.String()

    B. 使用ctx.JSON()

    C. 使用ctx.ResponseJSON()

    D. 使用ctx.HTML()

    答案:B

  16. 【单选题】如何在Gin框架中创建一个基本的GET路由?

    A. 使用get()方法

    B. 使用Gin()方法

    C. 使用Router.GET()方法

    D. 使用router.NewGET()方法

    答案:C

  17. 【单选题】在Go HTTP模块中,如何创建一个监听端口为8080的基本HTTP服务器?

    A. http.ListenAndServe(‘:8080’, nil)

    B. http.CreateServer(‘:8080’)

    C. http.NewServer(‘:8080’)

    D. http.Handle(‘:8080’, nil)

    答案:A

  18. 【多选题】关于整型切片的初始化,下面正确的是?

    A. s := make([]int)

    B. s := make([]int, 0)

    C. s := make([]int, 5, 10)

    D. s := []int{1, 2, 3, 4, 5}

    答案:BCD

  19. 【多选题】以下创建一个空映射的方式正确的是

    A. m := map[string]int{}

    B. m := make(map[string]int)

    C. m := new(map[string]int)

    D. 以上都正确

    答案:AB

  20. 【多选题】以下哪个声明正确地使用了Go语言的map类型?

    A. map[string]int = {“one”: 1, “two”: 2}

    B. var myMap map[string]int = make(map[string]int)

    C. myMap := map[int]string{1: “one”, 2: “two”}

    D. newMap := map[“string”]int

    答案:BC

  21. 【单选题】关于Goroutine的说明,哪个是错误的?

    A. Goroutine是Go语言的轻量级线程

    B. Goroutine的初始栈大小约为2KB

    C. Goroutine由操作系统直接管理

    D. 使用go关键字可以启动新的Goroutine

    答案:C

  22. 【单选题】在Go的WaitGroup中,下列关于WaitGroup用法的说法哪个是正确的?

    A. WaitGroup主要用于等待一组协程的结束

    B. Done方法会将WaitGroup的计数器增加1

    C. 你可以在多个协程中安全调用Wait方法

    D. WaitGroup的计数器可以为负数

    答案:A

  23. 【单选题】以下关于协程代码的执行结果是什么

    package main
    func main() {
    ch := make(chan int)
    ch <- 1
    println("Sent 1 to the channel")
    }

    A. 打印出“Sent 1 to the channel”

    B. 程序将无法编译

    C. 通道将阻塞,因为没有go协程从通道接收数据

    D. 数据被成功发送到通道中

    答案:C

  24. 【单选题】在Go语言中使用WaitGroup来控制goroutine,下面代码的输出结果是什么?

    func main() {
    var wg sync.WaitGroup
    for i := 0; i < 5; i++ {
    wg.Add(1)
    go func() {
    defer wg.Done()
    fmt.Print(i)
    }()
    }
    wg.Wait()
    }

    A. 编译错误

    B. 可能输出重复或未预期的数字

    C. 死锁

    D. 正常输出 0 到 4

    答案:B

  25. 【多选题】关于Go语言中panic和recover的使用,以下正确的是?

    A. panic可以在任何地方引发,但recover只有在defer调用的函数中有效

    B. recover用于终止panic的异常传递过程

    C. panic无法被捕获,会直接导致程序崩溃

    D. 使用panic和recover可以替代传统的错误处理方式

    答案:AB

  26. 【单选题】如何创建一个带缓冲的channel?

    A. make(chan int, 0)

    B. make(chan int)

    C. make(chan int, 10)

    D. make(chan int, -1)

    答案:C

  27. 【单选题】下面哪个不是Go语言的特点?

    A. 静态类型

    B. 垃圾回收

    C. 并发执行

    D. 解释执行

    答案:D

  28. 【多选题】关于字符串连接,下面语法正确的是?

    A. str := ‘abc’ + ‘123’

    B. str := “abc” + “123”

    C. str := ‘123’ + “abc”

    D. fmt.Sprintf(“abc%d”, 123)

    答案:BD

  29. 【单选题】关于无缓冲和有冲突的channel,下面说法正确的是?

    A. 无缓冲的channel是默认的缓冲为1的channel;

    B. 无缓冲的channel和有缓冲的channel都是同步的;

    C. 无缓冲的channel和有缓冲的channel都是非同步的;

    D. 无缓冲的channel是同步的,而有缓冲的channel是非同步的;

    答案:D

  30. 【单选题】Go中如何正确实现一个接口?

    A. 只需要声明接口中的所有方法

    B. 只需要部分实现接口中的方法

    C. 需要声明并实现接口中的所有方法

    D. 接口不能被实现,只能被继承

    答案:C




第五次课#

  1. 【单选题】在正则中,下列和 \w 等价的是?

    A. [A-Za-z0-9]

    B. [A-Za-z0-9|]

    C. [A-Za-z0-9*]

    D. [A-Za-z0-9_]

    答案:D

  2. 【单选题】window 下的哪个 API 可以进行浏览器的前进/后退操作?

    A. navigator

    B. screen

    C. history

    D. alert

    答案:C

  3. 【单选题】浏览器不仅加载完成了 HTML,还加载完成了所有外部资源,是指哪个事件?

    A. DOMContentLoaded

    B. load

    C. beforeunload

    D. unload

    答案:B

  4. 【单选题】下列不属于文本标签的是?

    A. span

    B. em

    C. strong

    D. input

    答案:D

  5. 【单选题】下列属于 HTML 空标签的是?

    A. p

    B. div

    C. img

    D. h1

    答案:C

  6. 【单选题】如何取消默认事件效果?

    A. cancelBubble=true

    B. stopPropagation()

    C. preventDefault()

    D. return

    答案:C

  7. 【单选题】下面输出结果是多少?

    let arr = [1];
    function fn(arr) {
    arr.push(3);
    }
    fn(arr);
    console.log(arr);

    A. [1]

    B. [3]

    C. [1, 3]

    D. 报错

    答案:C

  8. 【单选题】下面输出结果是多少?

    let num = 9
    function fn(num) {
    num = num + 1
    }
    fn(num)
    console.log(num)

    A. 9

    B. 报错

    C. 10

    D. undefined

    答案:A

  9. 【单选题】浏览器 AJAX 的核心对象是?

    A. JSON

    B. xhr

    C. XMLHttpRequest

    D. XMLhttprequest

    答案:C

  10. 【单选题】下面哪种数据类型不是 JavaScript 中的基本数据类型?

    A. boolean

    B. object

    C. number

    D. string

    答案:B

  11. 【单选题】下面哪个方法可以将多个Promise实例包装成一个新的Promise实例,当所有 Promise 都resolve时,返回的 Promise 也resolve?

    A. Promise.race

    B. Promise.all

    C. Promise.any

    D. Promise.reject

    答案:B

  12. 【单选题】在 HTTP 请求头中,用于指定请求的内容类型的字段是

    A. Content-Type

    B. User-Agent

    C. Accept-Encoding

    D. Cache-Control

    答案:A

  13. 【单选题】哪个响应头字段用于指示客户端将响应缓存多长时间

    A. Expires

    B. Cache-Control

    C. Last-Modified

    D. ETag

    答案:A

  14. 【单选题】在客户端发送的 HTTP 请求中,下列哪个头字段用于在请求中传递 Cookie 信息

    A. Set-Cookie

    B. Cookie

    C. X-Forwarded-For

    D. Authorization

    答案:B

  15. 【单选题】HTTP 状态码 404 表示什么

    A. 请求成功

    B. 未找到

    C. 服务器错误

    D. 重定向

    答案:B

  16. 【单选题】在 HTTP 协议中,用于在请求中传递参数的两种常见方式是

    A. Query 参数和请求体

    B. 请求体和路径参数

    C. Cookies 和请求头

    D. 请求头和路径参数

    答案:A

  17. 【单选题】Node.js 中的模块系统基于哪个规范?

    A. AMD

    B. CommonJS

    C. ECMAScript Modules (ESM)

    D. UMD

    答案:B

  18. 【单选题】在 Node.js 中,如何创建一个简单的 HTTP 服务器

    A. 使用 http.createServer()

    B. 使用 http.request()

    C. 使用 http.get()

    D. 使用 http.send()

    答案:A

  19. 【单选题】Koa 框架中的中间件是以什么样的方式按顺序执行的

    A. 先进先出(FIFO)

    B. 后进先出(LIFO)

    C. 并行执行

    D. 无特定顺序

    答案:B

  20. 【单选题】Node.js中fs模块的作用是什么?

    A. 文件读取

    B. 文件写入

    C. 文件删除

    D. 以上都是

    答案:D

  21. 【单选题】以下关于 localStorage 和 sessionStorage 的说明,描述是正确的?

    A. sessionStorage 中的数据可以在不同域名之间共享,而 localStorage 只能在同一域名下使用

    B. sessionStorage 关闭当前页面不会消失,需要关闭浏览器窗口

    C. localStorage 长期存在,除非手动删除

    D. localStorage 不存在跨域问题,sessionStorage 存在跨域问题

    答案:C

  22. 【单选题】localStorage 获取复杂数据类型如何转换为对象格式?

    A. JSON.stringify(JSON字符串)

    B. JSON.parse(JSON字符串)

    C. ‘复杂数据类型’

    D. 数组.join(”)

    答案:B

  23. 【单选题】在 DOM 中,以下哪种方法可以用于创建一个新的 HTML 元素?

    A. document.createElement()

    B. document.newElement()

    C. document.appendChild()

    D. document.createNode()

    答案:A

  24. 【单选题】输入 URL 后发生了什么,顺序是哪个?

    A. URL 解析 => DNS 查询 => TCP 连接 => HTTP 请求 => 响应请求 => 页面渲染

    B. DNS 查询 => URL 解析 => TCP 连接 => HTTP 请求 => 响应请求 => 页面渲染

    C. TCP 连接 => URL 解析 => DNS 查询 => HTTP 请求 => 响应请求 => 页面渲染

    D. 响应请求 => URL 解析 => DNS 查询 => TCP 连接 => HTTP 请求 => 页面渲染

    答案:A

  25. 【单选题】获取 ul 中的第一个 li 元素,下面写法正确的是?

    A. document.querySelectorAll(‘li’)

    B. document.querySelector(‘ul’).children[0]

    C. document.querySelector(‘ul’).childNodes[0]

    D. document.getAttribute(‘ul’).getAttribute(‘li’)[0]

    答案:B

  26. 【单选题】当使用箭头函数时,this的值在哪个阶段被确定?

    A. 定义箭头函数时

    B. 调用箭头函数时

    C. 执行上下文被创建时

    D. 执行上下文被销毁时

    答案:A

  27. 【单选题】下面关于函数的返回值,描述错误的是

    A. 任何函数必须要有return返回值

    B. 如果函数没有返回值,那么这个函数的调用结果是undefined

    C. 通过return可以给函数指定返回值

    D. return可以直接使用,表示函数的结束

    答案:A

  28. 【单选题】在JavaScript中,以下哪个不是合法的箭头函数写法?

    A. const sum = (a, b) => a + b;

    B. const sayHello = () => console.log(‘Hello’);

    C. const person = () => { name: ‘John’, age: 30 };

    D. const multiply = (a, b) => { return a * b; };

    答案:C

  29. 【单选题】浏览器原生支持的模块系统是?

    A. CommonJS

    B. ESM

    C. AMD

    D. UMD

    答案:B

  30. 【单选题】在前后端分离的框架中,如何解决开发时前端的跨域请求问题?

    A. 修改前端代码中的请求URL使其与后端服务器在同一域

    B. 使用JSONP方式进行跨域请求

    C. 配置前端开发服务器的代理转发

    D. 修改后端服务器设置,允许所有来源的跨域请求

    答案:C

  31. 【单选题】以下哪个 HTTP 响应头用于允许指定域名跨域访问资源?

    A. Content-Type

    B. Access-Control-Allow-Origin

    C. Access-Control-Request-Method

    D. Origin

    答案:B

  32. 【单选题】跨域三要素有哪些?

    A. 请求头、响应头、请求方法

    B. 协议、域名、端口号

    C. Cookie、Session、Token

    D. HTML、CSS、JavaScript

    答案:B

  33. 【单选题】在 JavaScript 中,用于阻止事件冒泡的操作的方法是?

    A. 事件对象. stopDeafault()

    B. 事件对象.stopPropagation()

    C. 事件对象.preventPropagation()

    D. 事件对象.preventDefault()

    答案:B

  34. 【多选题】下面关于事件委托的说法正确的是?

    A. 事件委托的原理是事件冒泡

    B. 事件委托的好处之一是性能高

    C. 用了事件委托,对后续新增的内部元素同样具有事件绑定的效果

    D. 事件委托不可以绑定到 document 上

    答案:ABC




第六次课#

  1. 【单选题】TypeScript中的泛型是什么意思?

    A. 泛型是指在编写代码时不指定具体类型,而是在使用时再指定具体类型

    B. 泛型是指一种通用的类型,可以用于任何类型的数据

    C. 泛型是指一种类型,可以用于声明函数的参数和返回值类型

    D. 泛型是指一种类型,可以用于声明对象的属性和方法的类型

    答案:A

  2. 【单选题】在ESM中,如果你想要在导入时重命名模块中的命名导出,你应该怎么做?

    A. 使用import { originalName as newName } from ‘module’;

    B. 使用import newName from ‘module’;

    C. 使用import { newName } from ‘module’;

    D. 使用import { originalName: newName } from ‘module’;

    答案:A

  3. 【单选题】Webpack中使用babel的作用是什么?

    A. 将ES6以上的代码转换为ES5以下的代码

    B. 压缩代码,减小打包后的文件大小

    C. 将CSS、图片等文件打包成一个文件

    D. 自动化打包,减少手动操作的时间和错误

    答案:A

  4. 【单选题】webpack的loader和plugin有什么区别?

    A. loader用于加载不同类型的文件,而plugin用于扩展webpack的功能

    B. loader用于打包JavaScript文件,而plugin用于打包CSS文件

    C. loader用于处理CSS文件,而plugin用于处理JavaScript文件

    D. 以上都不对

    答案:A

  5. 【单选题】如果需要在React组件中保持对DOM元素的引用,应该使用哪个钩子?

    A. useState

    B. useEffect

    C. useRef

    D. useReducer

    答案:C

  6. 【单选题】在React中,useState钩子的返回值包含什么?

    A. 一个包含状态和更新状态的函数

    B. 一个包含副作用和清理副作用的函数

    C. 一个包含DOM引用和更新DOM的方法

    D. 一个包含生命周期方法的对象

    答案:A

  7. 【单选题】在React中,useEffect钩子的主要用途是什么?

    A. 声明性地处理组件的副作用

    B. 声明性地处理组件的样式

    C. 声明性地处理组件的事件

    D. 声明性地处理组件的渲染

    答案:A

  8. 【单选题】在React中,实现兄弟组件之间的通信,相对来说下面哪个比较合适?

    A. 使用props

    B. 使用state

    C. 使用context

    D. 使用Redux

    答案:C

  9. 【单选题】子传父在React中通常通过什么实现?

    A. 回调函数

    B. 事件

    C. 状态提升

    D. 上升至共同的父组件

    答案:A

  10. 【单选题】如何在React中实现父传子?

    A. 使用props

    B. 使用state

    C. 使用context

    D. 使用ref

    答案:A

  11. 【单选题】React中如何优化组件性能?

    React应用的性能对用户体验影响非常重要。请问下面哪种方法可以优化React组件的性能?

    A. 使用shouldComponentUpdate生命周期方法

    B. 使用React.memo()高阶组件

    C. 使用key属性

    D. 以上都是

    答案:D

  12. 【单选题】React中的props和state有何区别?

    A. props是组件的只读属性,而state是组件的可变状态

    B. props存储的是组件的内部数据,而state存储的是组件的外部数据

    C. props可以直接修改,而state必须通过setState方法来修改

    D. props和state没有任何区别

    答案:A

  13. 【单选题】以下哪个不是React Hook中的常用钩子?

    A. useEffect

    B. useReducer

    C. useContext

    D. usePromise

    答案:D

  14. 【单选题】在React中,状态的不可变性意味着什么?

    A. 状态不能被直接修改

    B. 状态不能被重新赋值

    C. 状态不能被传递

    D. 状态不能被渲染

    答案:A

  15. 【单选题】React Router中如何实现按需加载?

    A. 使用React.lazy和React.Suspense实现

    B. 使用webpack的Code Splitting实现

    C. 使用React Router自带的按需加载功能实现

    D. 使用ES6的import()函数实现

    答案:A

  16. 【单选题】在React中,如何清除useEffect钩子中设置的副作用?

    A. 返回一个函数

    B. 使用useRef

    C. 使用useState

    D. 使用useMemo

    答案:A

  17. 【单选题】React中useContext的作用是什么?

    A. 实现跨组件的状态共享

    B. 实现组件之间的通信

    C. 实现组件的状态管理

    D. 实现组件的生命周期管理

    答案:A

  18. 【单选题】React中useMemo的作用是什么?

    下列哪个选项是正确的?

    A. 用于优化函数组件的性能

    B. 用于处理异步数据的更新

    C. 用于处理React组件的生命周期

    D. 用于创建React应用的入口文件

    答案:A

  19. 【单选题】在React中,useEffect的依赖项数组中为空数组时,它的作用是什么?

    A. 仅在组件挂载时执行一次

    B. 每次组件更新都会执行

    C. 不会执行

    D. 会报错

    答案:A

  20. 【单选题】在React-Redux中,什么是reducer?

    以下哪个描述最准确地解释了React-Redux中的reducer?

    A. reducer是一个纯函数,它接收一个先前的状态和一个action,返回一个新的状态。

    B. reducer是一个对象,它定义了应用程序的状态和行为。

    C. reducer是一个数组,它包含了应用程序的所有状态。

    D. reducer是一个类,它封装了应用程序的所有逻辑。

    答案:A

  21. 【单选题】React中useCallback的作用是什么?

    A. 优化函数组件的性能

    B. 优化类组件的性能

    C. 用于处理异步操作

    D. 用于处理同步操作

    答案:A

  22. 【单选题】什么是强缓存?

    在http缓存中,什么是强缓存?

    A. 浏览器在请求资源时,优先从缓存中获取资源,如果缓存中没有该资源,才会向服务器请求

    B. 浏览器在请求资源时,会先向服务器验证资源是否有更新,如果没有更新,则直接从缓存中获取资源

    C. 浏览器在请求资源时,总是向服务器请求最新的资源,忽略缓存中的资源

    D. 以上都不是

    答案:A

  23. 【单选题】什么是协商缓存?

    在http缓存中,什么是协商缓存?

    A. 浏览器在请求资源时,优先从缓存中获取资源,如果缓存中没有该资源,才会向服务器请求

    B. 浏览器在请求资源时,会先向服务器验证资源是否有更新,如果没有更新,则直接从缓存中获取资源

    C. 浏览器在请求资源时,总是向服务器请求最新的资源,忽略缓存中的资源

    D. 以上都不是

    答案:B

  24. 【单选题】点击按钮后,以下React代码,console 的输出何按钮中的展示分别是什么?

    function Counter() {
    const [count, setCount] = useState(0);
    const handleClick = () => {
    setCount(count + 1);
    setCount(count + 1);
    setCount(count + 1);
    console.log(count)
    };
    return <button onClick={handleClick}>{count}</button>;
    }

    A. 3, 3

    B. 0, 1

    C. 0, 3

    D. 3, 1

    答案:B

  25. 【单选题】在 React 中,以下关于单项数据流的描述,哪个是正确的?

    A. 数据可以在组件间随意双向流动

    B. 数据只能从父组件流向子组件,子组件不能直接修改父组件的数据

    C. 数据从子组件流向父组件,父组件接收数据后再分发给其他子组件

    D. 数据在同级组件间可以自由流动

    答案:B

  26. 【单选题】React Router 的核心原理是基于以下哪种机制来实现路由匹配和渲染的?

    A. 事件监听

    B. 虚拟 DOM 比对

    C. URL 变化监听和组件映射

    D. 状态管理

    答案:C

  27. 【单选题】在React中,如何使用React.memo来优化组件?

    A. 通过比较props来避免不必要的渲染

    B. 通过比较state来避免不必要的渲染

    C. 通过比较context来避免不必要的渲染

    D. 通过比较refs来避免不必要的渲染

    答案:A

  28. 【单选题】React中useState的特点是什么?

    A. 可以在函数组件中使用

    B. 只能在类组件中使用

    C. 不支持异步操作

    D. 只能用于处理字符串类型的状态

    答案:A

  29. 【单选题】React中的key有什么作用?

    A. 用于指定元素的唯一标识

    B. 用于指定元素的class名称

    C. 用于指定元素的样式

    D. 用于指定元素的属性

    答案:A

  30. 【单选题】React.createElement用于做什么?

    A. 创建类组件实例

    B. 创建函数组件实例

    C. 创建DOM元素

    D. 创建React元素

    答案:D

  31. 【多选题】关于下面代码说法正确是?

    useEffect(() => {
    const onKeyDown = (e: KeyboardEvent) => {
    const userAgent = navigator.userAgent;
    const isMac = /Macintosh|MacIntel|MacPPC|Mac68K/.test(userAgent);
    if ((isMac && e.metaKey && e.key.toLowerCase() === 'k') || (!isMac && e.ctrlKey && e.key.toLowerCase() === 'k')) {
    e.preventDefault();
    inputRef.current?.focus();
    }
    };
    window.addEventListener('keydown', onKeyDown);
    return () => window.removeEventListener('keydown', onKeyDown);
    }, []);

    A. 在 Mac 设备上按下 Command+K 键,或在非 Mac 设备上按下 Ctrl+K 键时,让 inputRef 对应的输入框获取焦点

    B. 该 useEffect 仅在组件挂载时执行一次,因为其依赖数组为空

    C. 清理函数(return 的函数)会在组件卸载时执行,用于移除添加的 keydown 事件监听,避免内存泄漏

    D. 清理函数的主要作用是阻止键盘事件的默认行为

    答案:ABC

  32. 【多选题】项目中遇到大量数据渲染导致页面卡顿,以下哪些优化方案有效?

    答案:ABCD

  33. 【多选题】localStorage在什么情况下应该改用IndexedDB?

    A. 存储数据超过5MB

    B. 需要存储二进制数据(文件、图片)

    C. 需要复杂查询和索引

    D. 需要异步读写,避免阻塞主线程

    答案:ABCD

  34. 【单选题】页面初始化时并发请求3个接口(用户信息、菜单数据、系统配置),要求:所有接口都成功才渲染页面;任何一个失败都要提示错误;有超时时间控制。

    答案:D

  35. 【多选题】实现请求取消功能时,以下哪种场景需要取消请求?

    // 场景A:用户快速切换tab
    function switchTab(tabId) {
    fetchTabData(tabId);
    }
    // 场景B:搜索框输入防抖
    const search = debounce((keyword) => {
    fetchSearchResults(keyword);
    }, 300);
    // 场景C:列表滚动加载
    function loadMore() {
    if (isLoading) return;
    isLoading = true;
    fetchNextPage();
    }
    // 场景D:定时轮询
    setInterval(() => {
    fetchLatestData();
    }, 5000);

    A. 场景A需要取消上一个tab的请求

    B. 场景B需要取消上一次搜索请求

    C. 场景C需要取消重复的加载请求

    D. 场景D需要取消上一次未完成的请求

    答案:ABD

  36. 【多选题】Vite项目打包优化时,以下哪些配置是有效的?

    答案:ABCD

  37. 【多选题】以下性能优化的最佳实践是什么?

    // 场景:大列表渲染
    const List = ({ items }) => {
    return (
    <div>
    {items.map((item, index) => (
    <div key={index} onClick={() => handleClick(item)}>
    {item.name}
    </div>
    ))}
    </div>
    );
    };

    A. 使用item.id作为key而非index

    B. 使用虚拟滚动

    C. 使用useMemo包裹items

    D. onClick使用useCallback

    答案:ABD

  38. 【单选题】下面代码,最终执行几次console.log?

    function debounce(fn, delay) {
    let timer;
    return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, args), delay);
    };
    }
    const log = debounce(() => console.log('called'), 1000);
    log();
    log();
    log();
    setTimeout(() => log(), 500);

    A. 1次

    B. 2次

    C. 3次

    D. 4次

    答案:A




第七次课#

  1. 【单选题】以下哪个命令用于在Docker中停止一个正在运行的容器?

    A. docker stop

    B. docker pause

    C. docker end

    D. docker halt

    答案:A

  2. 【单选题】哪个命令是用于在Docker中构建镜像的?

    A. docker compose

    B. docker build

    C. docker make

    D. docker assemble

    答案:B

  3. 【单选题】关于Docker容器和镜像的关系正确的是?

    A. 容器是镜像的一个实例

    B. 镜像可以包含多个容器

    C. 容器和镜像是两个没有联系的独立组件

    D. 容器比镜像更早出现于Docker技术中

    答案:A

  4. 【单选题】在Docker中,通过哪条命令可以查看所有当前运行的容器?

    A. docker ps

    B. docker view

    C. docker list

    D. docker show

    答案:A

  5. 【单选题】Docker 中创建并启动一个容器的正确命令是什么?

    A. docker build -t myimage .

    B. docker create —name mycontainer myimage

    C. docker run —name mycontainer myimage

    D. docker start mycontainer

    答案:C

  6. 【单选题】在Gin框架中如何获取路由参数?

    A. c.Param(“param_name”)

    B. c.GetQuery(“param_name”)

    C. c.Params(“param_name”)

    D. c.Query(“param_name”)

    答案:A

  7. 【单选题】下列代码的输出结果是什么?

    package main
    import (
    "fmt"
    "sync"
    )
    func main() {
    var wg sync.WaitGroup
    for i := 0; i < 3; i++ {
    wg.Add(1)
    go func(i int) {
    defer wg.Done()
    fmt.Println(i)
    }(i)
    }
    wg.Wait()
    }

    A. 打印 0 1 2,顺序不定

    B. 打印三次 2

    C. 编译错误

    D. 打印顺序一定是 0 1 2

    答案:A

  8. 【多选题】Docker与虚拟机的优劣势对比中,下列哪些是正确的?

    A. Docker容器启动比虚拟机更迅速

    B. 虚拟机提供了更高的隔离性和安全性

    C. Docker比虚拟机需要更多的硬件资源

    D. Docker比虚拟机具有更快的性能提升潜力

    答案:ABD

  9. 【多选题】为了加快Docker镜像的构建速度,以下哪些操作是推荐的?

    A. 使用多阶段构建来优化镜像

    B. 在构建过程中,频繁变换基础镜像

    C. 最大限度地利用已有层的缓存

    D. 将不变的依赖放在Dockerfile的前面

    答案:ACD

  10. 【多选题】在优化MySQL数据库时,如果遇到慢查询,应该考虑采取哪些措施?

    A. 分析执行计划

    B. 调整数据库系统的硬件配置

    C. 优化程序的业务逻辑

    D. 使用存储过程简化复杂查询

    答案:ABCD

  11. 【多选题】在进行MySQL性能优化时,可以采取哪些措施来提高查询性能?

    A. 使用索引来加速查询

    B. 禁用所有外键以减少约束检查

    C. 选择合适的存储引擎

    D. 定期进行表碎片整理

    答案:ACD

  12. 【多选题】在Mysql中,针对慢查询优化有哪些有效方式?

    A. 可以通过为查询字段建立合适的索引以减少全表扫描

    *B. 查询时尽量避免使用SELECT ,只查需要的字段有助于提升性能

    C. 增加表的数据量可以显著提高查询效率

    D. 可以通过分析慢查询日志定位并优化低效的SQL语句

    答案:ABD

  13. 【多选题】在使用Docker时,如何实现数据的持久化存储?

    A. 通过配置tmpfs挂载

    B. 使用Docker Volume

    C. 创建Bind Mounts

    D. 在容器内部使用外部存储设备

    答案:BC

  14. 【多选题】优化MySQL查询语句的方法

    A. 使用正确的索引

    *B. 避免SELECT ,只获取必需的列

    C. 使用GORM可以提升查询性能

    D. 使用EXPLAIN查看查询计划,然后针对性优化

    答案:ABD

  15. 【多选题】关于MySQL数据库索引优化的考虑因素有哪些?

    A. 考虑为那些经常作为查询条件的列添加索引

    B. 为经常要排序、分组和联合操作的字段建立索引

    C. 为经常更新的字段添加索引

    D. 避免为表中的每个列都建立索引

    答案:ABD

  16. 【单选题】下列哪个WHERE子句中的条件最有可能导致create_time字段上的索引失效?

    A. WHERE YEAR(create_time) = 2023

    B. WHERE create_time >= ‘2023-01-01’ AND create_time < ‘2023-02-01’

    C. WHERE create_time BETWEEN ‘2023-01-01’ AND ‘2023-12-31’

    D. WHERE create_time = ‘2023-06-01’

    答案:A

  17. 【单选题】在大数据表进行LIMIT深分页时,下列哪种SQL写法具有优化作用?

    A. SELECT * FROM table WHERE id > (SELECT id FROM table ORDER BY id LIMIT 100000, 1) LIMIT 10

    B. SELECT * FROM table LIMIT 100000, 10

    C. SELECT * FROM table WHERE name LIKE ‘%abc%’ LIMIT 10

    D. SELECT * FROM table ORDER BY RAND() LIMIT 10

    答案:A

  18. 【单选题】在优化MySQL的深分页查询(如 LIMIT 100000, 10)时,推荐使用哪种技术以显著减少扫描的行数?

    A. 基于索引的子查询配合主键筛选

    B. 添加更多字段到SELECT查询列表

    C. 在ORDER BY后对LIMIT增加OFFSET参数

    D. 增加连接数以提升并发执行

    答案:A

  19. 【单选题】如果有如下联合索引KEY(idx_col1_col2) (col1, col2),执行SELECT col1 FROM table WHERE col1=5时,下列哪项说法正确?

    A. 该查询可以使用覆盖索引,并且只扫描索引

    B. 该查询不能使用索引

    C. 该查询必须回表查询主表数据

    D. 该查询会进行全表扫描

    答案:A

  20. 【单选题】以下关于MySQL覆盖索引的说法,哪项是正确的?

    A. 覆盖索引可以减少IO,因为查询只需访问索引

    B. 覆盖索引只能用于InnoDB引擎

    C. 覆盖索引不能用于联合索引

    D. 覆盖索引使用时必须回表查询原始数据

    答案:A

  21. 【单选题】在MySQL中,什么情况下可以使用覆盖索引来优化查询?

    A. 查询的字段全部被所用的索引覆盖,无需回表查询主表数据

    B. 查询字段必须是聚合函数的字段

    C. 只有当表中没有主键时才能使用覆盖索引

    D. 只有当表有唯一索引时才能使用覆盖索引

    答案:A

  22. 【单选题】在Go服务的Dockerfile中,如何安排COPY指令和依赖安装指令顺序以最大程度利用缓存?

    A. 先COPY go.mod和go.sum,再执行依赖安装,然后再COPY源码

    B. 全部文件一次性COPY到镜像后,统一安装依赖

    C. 先安装依赖,再COPY go.mod和go.sum

    D. 先COPY源码,再COPY go.mod和go.sum,然后安装依赖

    答案:A

  23. 【单选题】在下列哪种场景下最推荐在 Dockerfile 中使用多阶段构建?

    A. 需要从源代码构建应用,并且只需最终运行文件进镜像

    B. 仅需将静态资源服务器部署到镜像

    C. 部署单一配置文件到镜像,且无需编译

    D. 基础镜像极小,且无需进一步处理

    答案:A

  24. 【单选题】在编写 Dockerfile 时,使用多阶段构建最主要的好处是什么?

    A. 可以显著减小最终镜像的体积,避免无关构建文件被包含

    B. 可以自动部署更新到生产环境

    C. 能够让 Dockerfile 支持热重载代码

    D. 可以让 Docker 镜像自动支持跨平台运行

    答案:A

  25. 【单选题】内容分发网络(CDN)如何帮助提高网站的加载速度?

    A. 通过将网站流量全部重定向到一个特定的服务器节点

    B. 通过在地理上分布的网站服务器上缓存内容来降低延迟

    C. 通过增加网站的图像和视频质量

    D. 通过限制用户访问内容的次数

    答案:B

  26. 【单选题】在Gin中如何设置响应格式为JSON?

    A. c.JSON(200, gin.H{“message”: “ok”})

    B. c.SetJSON(200, gin.H{“message”: “ok”})

    C. c.Response(200, “application/json”, gin.H{“message”: “ok”})

    D. c.SendJSON(200, gin.H{“message”: “ok”})

    答案:A

  27. 【单选题】哪种HTTP状态码代表“未修改”?

    A. 200 OK

    B. 304 Not Modified

    C. 404 Not Found

    D. 500 Internal Server Error

    答案:B

  28. 【单选题】在解析Protobuf的数据时,为什么需要使用varint编码的整数?

    A. 因为varint编码更节省空间,可以表示任意大小的整数。

    B. 因为varint编码使整数的编码更简单。

    C. 因为varint编码使数据解析更快。

    D. 因为varint编码适合网络传输的不定长整数编码。

    答案:A

  29. 【多选题】当需要在不同的应用程序之间传输数据时,使用 Protobuf 有哪些优势?

    A. 数据压缩率高,节省存储空间

    B. 直接可读,无需反序列化

    C. 支持多种编程语言

    D. 序列化过程速度快,对性能影响小

    答案:ACD

  30. 【多选题】在使用 Protobuf 进行序列化和反序列化时,以下哪些说法是正确的?

    A. Protobuf 是一种轻量级的数据交换格式

    B. Protobuf 只能用于 C++ 语言

    C. Protobuf 版本支持向后兼容性和向前兼容性

    D. Protobuf 的序列化格式比 JSON 小

    答案:ACD




全栈开发综合测试题库汇总
https://blog.2022918.best/posts/kingsoft/
作者
shirok0
发布于
2026-03-18
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时