全部学科
Python全栈
python
NodeJS全栈
nodejs

GO变量与常量专题测试

20 题 30 分钟 难度:★

考察知识点

1. 基本数据类型

  • 数值类型:int系列(int/int8/int16/int32/int64)、uint系列、float32/float64
  • 布尔类型:bool(true/false)
  • 字符串类型:string(UTF-8编码)
  • 复数类型:complex64、complex128
  • 特殊类型:byte(uint8别名)、rune(int32别名)
  • 基本类型vs复合类型:区分int与array/slice/map

2. 变量声明方式

  • var关键字:var name typevar name = value
  • 短变量声明:name := value(函数内使用)
  • 批量声明:var (...)块声明多个变量
  • 声明位置限制::=只能在函数内、var可在任何位置

3. 变量初始化与零值

  • 零值机制:声明后自动初始化
  • 各类型零值:int=0、float=0.0、bool=false、string=""、指针=nil
  • 类型推断:有初始值时自动推断类型
  • 推断规则:整数→int、浮点→float64、字符→rune

4. 变量作用域与可见性

  • 作用域层级:包级、函数级、块级
  • 可见性规则:大写开头导出、小写开头私有
  • 变量遮蔽:内层变量遮蔽外层同名变量
  • :=作用域:if/for中的初始化变量作用域限制

5. 类型转换

  • 显式转换:必须使用类型名(变量)语法
  • Go特点:无隐式类型转换
  • 精度丢失:float转int会丢失小数部分
  • strconv包:Atoi/Itoa用于字符串与数值转换

6. strconv包常用函数

  • Atoi:字符串转int
  • Itoa:int转字符串
  • ParseFloat:字符串转float
  • FormatFloat:float转字符串
  • ParseBool/FormatBool:bool转换
  • ParseInt/FormatInt:基数转换

7. 常量定义与iota

  • const关键字:定义常量
  • 常量特点:编译时确定、不可修改
  • 无类型常量:可赋给多种类型
  • iota枚举:从0开始的自增计数器
  • iota表达式:1 << iota等计算

8. 变量命名规范

  • 驼峰命名:userName、UserId
  • 首字母大小写:决定导出/私有
  • 简短变量:循环中使用i、j等简短名
  • 常量命名:全大写或驼峰
💡 参考答案在文末
判断题
1

Go中的iota是常量计数器,每新增一行常量声明,iota自动增加1。

A

B

2

Go语言中的string类型是基本数据类型,且字符串是不可变的。

A

B

3

Go中int类型的零值是0,bool类型的零值是false,string类型的零值是空字符串""。

A

B

4

Go语言不支持隐式类型转换,不同类型的变量不能直接赋值或运算。

A

B

5

Go的短变量声明(:=)可以在函数外部使用。

A

B

单选题
6

Go语言中,变量声明后如果不显式初始化,会被赋予什么值?

A

undefined

B

null

C

零值(类型的默认值)

D

随机值

7

Go语言中声明变量的关键字是?

A

let

B

var

C

define

D

declare

8

Go语言中,变量的作用域分为几个层级?

A

两个:全局和局部

B

三个:包级、函数级、块级

C

四个:包级、文件级、函数级、块级

D

只有一个全局作用域

9

Go中if语句的初始化语句中声明的变量,其作用域范围是?

A

整个函数

B

整个if块(包括else部分)

C

仅if的{}内

D

仅条件表达式内

E

if块及后续代码

10

Go中初始化变量时,如果提供了初始值,是否必须显式指定类型?

A

必须显式指定类型

B

不需要,Go会自动推断类型

C

只有数值类型需要指定

D

只有字符串类型需要指定

11

Go语言中,以下哪个是基本数据类型?

A

array

B

slice

C

int

D

map

12

Go语言中定义常量使用哪个关键字?

A

var

B

let

C

const

D

final

13

Go中进行类型转换的语法是?

A

类型名(变量)

B

(变量)类型名

C

cast(变量, 类型)

D

convert(变量, 类型)

多选题
14

Go中以下哪些是数值基本类型?

A

int

B

float64

C

complex128

D

[]int

E

rune

15

Go中多变量初始化的正确方式包括?

A

var x, y int = 1, 2

B

x, y := 1, 2

C

var (x = 1; y = 2)

D

var x, y = 1, "hello"

E

var x int, y string = 1, "hello"

填空题
16

Go变量可见性遵循 ____________ 规则,包级变量名 ____________ 开头可被外部包访问,____________ 开头仅在当前包内可见。函数内变量 局部 有效,块级变量仅在 {} 块内有效。

17

Go字符串与数值转换使用 ____________ 包, ____________ 函数将字符串转为int, ____________ 函数将int转为字符串。 ParseFloat 转字符串为浮点数, FormatFloat 转浮点数为字符串。

18

Go变量声明后自动初始化为 ____________,数值类型的零值是 ____________,布尔类型是 ____________,字符串是 "",指针和切片是 nil。显式初始化可以覆盖 零值。

19

Go声明变量有三种方式:使用 ____________ 关键字声明、使用 ____________ 短变量声明、使用 ____________ 块声明。短变量声明只能在 函数内部 使用,会自动 推断 变量类型。

20

Go中int8的范围是 ____________,uint8的范围是 ____________。float32和float64遵循 ____________ 标准。bool类型只有 true 和 false 两个值。

参考答案
1.正确 2.正确 3.正确 4.正确 5.错误 6.C 7.B 8.B 9.B 10.B 11.C 12.C 13.A 14.A;B;C;E 15.A;B;D 16.作用域;大写;小写 17.strconv;Atoi;Itoa 18.零值;0;false 19.var;:=;var() 20.-128到127;0到255;IEEE754
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 GO初级技能认证测试
下一套试卷 → GO复合数据类型专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码