go 笔试题精选练习题——迹忆客-ag捕鱼王app官网

题库 > go >

go 笔试题精选

1.
(多选题)如果 add 函数的调用代码如下所示客,则add 函数定义正确的是 ```go func main() { var a integer = 1 var b integer = 2 var i interface{} = &a sum := i.(*integer).add(b) fmt.println(sum) } ```
  • ```go type integer int func (a integer) add(b integer) integer { return a b } ```
  • ```go type integer int func (a integer) add(b *integer) integer { return a *b } ```
  • ```go type integer int func (a *integer) add(b integer) integer { return *a b } ```
  • ```go type integer int func (a *integer) add(b *integer) integer { return *a *b } ```
2.
(多选题)关于 slice 或 map 操作,下面正确的是()
  • ```go var s []int s = append(s,1) ```
  • ```go var m map[string]int m["one"] = 1 ```
  • ```go var s []int s = make([]int, 0) s = append(s,1) ```
  • ```go var m map[string]int m = make(map[string]int) m["one"] = 1 ```
3.
(单选题)关于类型转化,下面语法正确的是()
  • ```go type myint int var i int = 1 var jmyint = i ```
  • ```go type myintint var i int= 1 var jmyint = (myint)i ```
  • ```go type myintint var i int= 1 var jmyint = myint(i) ```
  • ```go type myintint var i int= 1 var jmyint = i.(myint) ```
4.
(单选题)如果 add 函数的调用代码如下所示,则add函数定义正确的是 ```go func main() { var a integer = 1 var b integer = 2 var i interface{} = a sum := i.(integer).add(b) fmt.println(sum) } ```
  • ```go type integer int func (a integer) add(b integer) integer { return a b } ```
  • ```go type integer int func (a integer) add(b *integer) integer { return a *b } ```
  • ```go type integer int func (a *integer) add(b integer) integer { return *a b } ```
  • ```go type integer int func (a *integer) add(b *integer) integer { return *a *b } ```
5.
(多选题)关于const常量定义,下面正确的使用方式是()
  • ```go const pi float64 = 3.14159265358979323846 const zero = 0.0 ```
  • ```go const ( size int64 = 1024 eof = -1 ) ```
  • ```go const ( err_elem_exist error = errors.new("element already exists") err_elem_nt_exist error = errors.new("element not exists") ) ```
  • ```go const u, v float32 = 0, 3 const a, b, c = 3, 4, "foo" ```
6.
(单选题)从切片中删除一个元素,下面的算法实现正确的是()
  • ```go func (s *slice)remove(value interface{}) error { for i, v := range *s { if isequal(value, v) { if i== len(*s) - 1 { *s = (*s)[:i] }else { *s = append((*s)[:i],(*s)[i 2:]...) } return nil } } return err_elem_nt_exist } ```
  • ```go 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 } } return err_elem_nt_exist } ```
  • ```go func (s *slice)remove(value interface{}) error { for i, v := range *s { if isequal(value, v) { delete(*s, v) return nil } } return err_elem_nt_exist } ```
  • ```go 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 } } return err_elem_nt_exist } ```
7.
(多选题)关于变量的自增和自减操作,下面语句正确的是()
  • ```go i := 1 i ```
  • ```go i := 1 j = i ```
  • ```go i := 1 i ```
  • ```go i := 1 i-- ```
8.
(单选题)下面代码运行时输出的结果是什么? ```go package main import ( "fmt" "time" ) func main() { ch1 := make(chan int) go fmt.println(<-ch1) ch1 <- 5 time.sleep(1 * time.second) } ```
  • 5
  • 编译不通过
  • 运行时死锁
9.
(单选题)下面代码运行时输出的结果是什么? ```go package main import ( "fmt" "time" ) func main() { ch1 := make(chan int) go func(){ fmt.println(<-ch1) }() ch1 <- 5 time.sleep(1 * time.second) } ```
  • 5
  • 编译不通过
  • 运行时死锁
10.
(单选题)高并发情况下,map常见问题分析 代码如下,正确的是() ```go package main func main() { map := make(map[int]int) for i := 0; i < 100000; i { go writemap(map, i, i) go readmap(map, i) } } func readmap(map map[int]int, key int) int { return map[key] } func writemap(map map[int]int, key int, value int) { map[key] = value } ```
  • 程序正常执行
  • 程序根本编译不过
  • fatal error: concurrent map read and map write
11.
(单选题)关于异常的触发,下面说法正确的是()
  • 空指针解析
  • 下标越界
  • 除数为0
  • 调用panic函数
扫码一下
查看教程更方便
网站地图