31. 【初级】关于switch语句,下面说法正确的有()
A. 条件表达式必须为常量或者整数
B. 单个case中,可以出现多个结果选项
C. 需要用break来明确退出一个case
D. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case

参考答案:BD

32. 【中级】 golang中没有隐藏的this指针,这句话的含义是()
A. 方法施加的对象显式传递,没有被隐藏起来
B. golang沿袭了传统面向对象编程中的诸多概念,比如继承、虚函数和构造函数
C. golang的面向对象表达更直观,对于面向过程只是换了一种语法形式来表达
D. 方法施加的对象不需要非得是指针,也不用非得叫this

参考答案:ACD

33. 【中级】 golang中的引用类型包括()
A. 数组切片
B. map
C. channel
D. interface

参考答案:ABCD

34. 【中级】 golang中的指针运算包括()
A. 可以对指针进行自增或自减运算
B. 可以通过“&”取指针的地址
C. 可以通过“*”取指针指向的数据
D. 可以对指针进行下标运算

参考答案:BC

35. 【初级】关于main函数(可执行程序的执行起点),下面说法正确的是()
A. main函数不能带参数
B. main函数不能定义返回值
C. main函数所在的包必须为main包
D. main函数中可以使用flag包来获取和解析命令行参数

参考答案:ABCD

36. 【中级】下面赋值正确的是()
A. var x = nil
B. var x interface{} = nil
C. var x string = nil
D. var x error = nil

参考答案:BD

37. 【中级】关于整型切片的初始化,下面正确的是()
A. s := make([]int)
B. s := make([]int, 0)
C. s := make([]int, 5, 10)
D. s := []int{1, 2, 3, 4, 5}

参考答案:BCD

38. 【中级】从切片中删除一个元素,下面的算法实现正确的是()
A.

39. func (s *Slice)Remove(value interface{})error {

40. for i, v := range *s {



41. if isEqual(value, v) {

42. if i== len(*s) - 1 {

43. *s = (*s)[:i]

44. }else {

45. *s = append((*s)[:i],(*s)[i + 2:]...)

46. }

47. return nil

48. }

49. }

50. return ERR_ELEM_NT_EXIST

}

B.

func (s*Slice)Remove(value interface{}) error {

for i, v:= range *s {

if isEqual(value, v) {

*s =append((*s)[:i],(*s)[i + 1:])

return nil

}

}

returnERR_ELEM_NT_EXIST

}

C.

func (s*Slice)Remove(value interface{}) error {

for i, v:= range *s {

if isEqual(value, v) {

delete(*s, v)

return nil

}

}

returnERR_ELEM_NT_EXIST

}

D.

func (s*Slice)Remove(value interface{}) error {

for i, v:= range *s {

if isEqual(value, v) {

*s =append((*s)[:i],(*s)[i + 1:]...)

return nil

}

}

returnERR_ELEM_NT_EXIST

}

参考答案:D

51. 【初级】对于局部变量整型切片x的赋值,下面定义正确的是()
A.

52. x := []int{

53. 1, 2, 3,

54. 4, 5, 6,

}

B.

x :=[]int{

1, 2, 3,

4, 5, 6

}

C.

x :=[]int{

1, 2, 3,

4, 5, 6}

D.

x :=[]int{1, 2, 3, 4, 5, 6,}

参考答案:ACD

55. 【初级】关于变量的自增和自减操作,下面语句正确的是()
A.

56. i := 1

i++

B.

i := 1

j = i++

C.

i := 1

++i

D.

i := 1

i--

参考答案:AD

57. 【中级】关于函数声明,下面语法错误的是()
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)

参考答案:C

58. 【中级】如果Add函数的调用代码为:

59. func main() {

60. var a Integer = 1