i007.cc

i007.cc

优先队列-降维打击

golang题目

声明:以下选择题可能为多选

选择题1:下列哪个语法不对

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

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

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

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

选择题2:下列哪个类型不能转化为正确的Json数据
A. 指针
B. channel
C. complex
D. 函数

选择题3:下列哪个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}…)

选择题4:init函数,哪个正确
A.程序编译时,先执行导入包的init函数,再执行本包内的init函数
B. 一个包中,可以包含多个init函数
C. main包中,不能有init函数
D. init函数可以被其他函数调用

选择题5:请问输出结果顺序

“`go
func main() {
i := 0
if true {
defer fmt.Println(i)
i++
} else {
defer fmt.Println(i + 1)
}
i++
fmt.Println(i)
}
“`

———————

声明:以下编程题均为可执行的二进制文件

编程题1:去除slice中重复字符串元素(testing包最好测试一下耗时)

[]string{“a”, “a”, “b”, “b”, “v”, “d”, “v”, “d”, “c”,”d”}

编程题2:使用数组指针,重写以下函数(注意是把参数:(s []string) 改成数组指针)

“`go
func reverse(s []string) []string {
var n []string
for i := len(s) – 1; i >= 0; i– {
n = append(n, string(s[i]))
}
return n
}
“`

编程题3:使用1个goroutine, select, channal实现一个协程传参(int类型)到另外一个协程每一秒加1执行10秒后通知另外一个协程输出结果

编程题4:请使用下列map(m1, m2内容一样),分别写一个for循环修改他们的年龄为2(注意m1,m2都要修改)

“`go
type Student struct {
Name string
Age string
}

var m1 = map[string]Student{
“张三”: Student{
Name: “张三”,
Age: 1,
},
“李四”: Student{
Name: “李四”,
Age: 1,
},
}

var m2 = map[string]*Student{
“张三”:: &Student{
Name: “张三”,
Age: 1,
},
“李四”: &Student{
Name: “李四”,
Age: 1,
},
}
“`

编程题5:类A 类B 实现下列接口 ,并将两个类传入下面map中,for循环SetType类A为1, 类B为2,再for输出GetType

“`go
//接口
type IAnything interface {
GetType() int //获取类型
SetType(typ int) //设置类型
}
var AnythingMap = map[int]IAnything{}
“`

———————

发表回复