老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

GO语言面试题(五)!老男孩GO语言怎么样?

老男孩IT教育

技术博客

2021年5月27日 17:29

Go语言由 Google公司开发,并于2009年开源,相比Java/python/c等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python, 被誉为“21世纪的C语言”。本篇文章为大家介绍几道GO语言面试题。

  Go语言由 Google公司开发,并于2009年开源,相比Java/python/c等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python, 被誉为“21世纪的C语言”。本篇文章为大家介绍几道GO语言面试题。

  填空题

  1、声明一个整型变量i__________

  参考答案:

var i int

  2、声明一个含有10个元素的整型数组a__________

  参考答案:

var a [10]int

  3、声明一个整型数组切片s__________

  参考答案:

var s []int

  4、声明一个整型指针变量p__________

  参考答案:

var p *int

  5、声明一个key为字符串型value为整型的map变量m__________

  参考答案:

var m map[string]int

  6、声明一个入参和返回值均为整型的函数变量f__________

  参考答案:

var f func(a int) int

  7、声明一个只用于读取int数据的单向channel变量ch__________

  参考答案:

var ch <-chan int

  8、假设源文件的命名为slice.go,则测试文件的命名为__

  参考答案:

slice_test.go

  9、go test要求测试函数的前缀必须命名为__

  参考答案:

  Test

  10、下面的程序的运行结果是__

func main() {  
       i := 1
       j := 2
       i, j = j, i
       fmt.Printf("%d%d\n", i, j)
}

  参考答案:

  21

  11、下面的程序的运行结果是__

func incr(p *int) int {
        *p++  
        return *p 
}
func main() {  
        v := 1 
        incr(&v)
        fmt.Println(v)
}

  参考答案:

  2

  12、启动一个goroutine的关键字是__

  参考答案:

  go

  13、下面的程序的运行结果是__

for i := 0; i < 5; i++ {
        defer fmt.Printf("%d ", i)
}

  参考答案:

  4 3 2 1 0

  14、下面的程序的运行结果是__

func main() {
        x := 1
        {
            x := 2
            fmt.Print(x)
        }
        fmt.Println(x)
}

  参考答案:

  21

  15、下面的程序的运行结果是__

func main() {
        strs := []string{"one", "two", "three"}

        for _, s := range strs {
            go func() {
                time.Sleep(1 * time.Second)
                fmt.Printf("%s ", s)
            }()
        }
        time.Sleep(3 * time.Second)
}

  参考答案:

  three three three

  16、下面的程序的运行结果是__

func main() {  
        x := []string{"a", "b", "c"}
        for v := range x {
            fmt.Print(v)
        }
}

  参考答案:

  012

  17、下面的程序的运行结果是__

func main() {  
        x := []string{"a", "b", "c"}
        for _, v := range x {
            fmt.Print(v)
        }
}

  参考答案:

  abc

  18、下面的程序的运行结果是__

type Slice []int
func NewSlice() Slice {
         return make(Slice, 0)
}
func (s* Slice) Add(elem int) *Slice {
         *s = append(*s, elem)
         fmt.Print(elem)
         return s
}
func main() {  
         s := NewSlice()
         defer s.Add(1).Add(2)
         s.Add(3)
}

  参考答案:

  132

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。