golang基础习题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangxinxinsj/article/details/89673104

一、选择题
1、不定项选择题
下面赋值正确的是
A、var x=nil
B、var x interface{} = nil
C、var x string = nil
D、var x error = nil

2、不定项选择题
定义一个包内全局字符串变量,以下语法正确的是
A、var wxx string
B、wxx := “”
C、wxx = “”
D、var wxx = “”

3、不定项选择题
通过一个指针变量 wxx 访问它的成员变量 name,以下语法正确的是
A、wxx.name
B、(*wxx).name
C、(&wxx).name
D、wxx->name

4、不定项选择题
关于接口与类的说法,以下正确的是
A、一个类只需要实现了接口的所有函数,就可以说这个类实现了该接口
B、实现类的时候,只需要关心应该提供哪些方法,不用纠结接口需要拆解得多细才比较合理
C、类实现接口时,需要导入接口所在的包
D、接口由使用的一方按自身需求来定义,使用的一方无需关心是否有其他的模块定义过类似的接口

5、不定项选择题
对于以下函数定义:
func add(args …int) int{
sum := 0

for _,arg := range args{
	sum += arg
}

return sum

}
下面对add 函数调用正确使用的是
A、add([]int{1,2})
B、add(1,2)
C、add([]int{1,3,7}…)
D、add(1,3,7)

6、单选题
关于Golang的类型转换,以下说法正确的是
A、type Myint int
var i int = 1
var j Myint = Myint(i)
B、type Myint int
var i int = 1
var j Myint = i
C、type Myint int
var i int = 1
var j Myint = (Myint)i
D、type Myint int
var i int = 1
var j Myint = i.(Myint)

7、单选题
以下程序的运行结果正确的是
func main(){
if(true){
defer fmt.Printf(“1”)
}else{
defer fmt.Printf(“2”)
}

fmt.Printf(“3”)

}
A、32
B、31
C、13
D、321

8、不定项选择题
以下关于整形切片的初始化,正确的是
A、s := []int{1,2,3,4,5}
B、s := make([]int)
C、s := make([]int,0)
D、s := make([]int,5,10)

9、不定项选择题
对于以下局部变量整型切片x的赋值,定义正确的是
A、x := []int{
1,2,3,
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,}

10、不定项选择题
关于函数声明,以下语法错误的是
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 int,b int)(value int,int,error)
D、func f(a,b int)(value int,error)

二、填空题
1、以下程序的运行结果是
func main(){
x := []string{“a”,”b”,”c”}
for v := range x{
fmt.Print(v)
}
}

2、以下程序的运行结果是
func main(){
x := 1
{
x := 2
fmt.Println(x)
}
fmt.Println(x)
}

3、以下程序的运行结果是
for i := 0 ;i<5;i++{
defer fmt.Println(“%d”,i)
}

三、问答
1、是否可以编译通过?如果通过,输出什么?
package main
import(“fmt”)

const(
x = iota
y
z = “zz”
k
p = iota
)

func main(){
fmt.Println(x,y,z,k,p)
}

2、以下程序执行结果是
package main
import “fmt”
func main(){
arr := []int{1,2,3,4,5}
slice := arr[1:2]
slice = append(slice,6,7,8)
fmt.Println(slice)
fmt.Println(arr)
}

3、以下代码会输出什么?
func calc(index string, a, b, int) int{
ret := a+b
fmt.Println(index,a,b,ret)
return ret
}

func main(){
a := 1
b := 2
defer calc(“1”,a,calc(“10”,a,b))
a = 0
defer calc(“2”,a,calc(“20”,a,b))
b = 1
}

4、编译执行下面代码会出现什么?
package main
import(
“fmt”
)

func main(){
fmt.Println(doubleScore(0))
fmt.Println(doubleScore(20.0))
fmt.Println(doubleScore(50.0))
}

func doubleScore(source float32)(score float32){
defer func(){
if score < 1 || score >= 100 {
score = source
}
}()
score = score * 2
return
}

猜你喜欢

转载自blog.csdn.net/wangxinxinsj/article/details/89673104