全部学科
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语言中,以下哪个是基本数据类型?

A

array

B

slice

C

int

D

map

2
判断题

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

A

B

3
填空题

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

4
单选题

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

A

let

B

var

C

define

D

declare

5
判断题

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

A

B

6
填空题

Go声明变量有三种方式:使用 ______ 关键字声明、使用 ______ 短变量声明、使用 ______ 块声明。短变量声明只能在 ________ 使用,会自动 ______ 变量类型。

7
单选题

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

A

undefined

B

null

C

零值(类型的默认值)

D

随机值

8
判断题

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

A

B

9
填空题

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

10
单选题

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

A

必须显式指定类型

B

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

C

只有数值类型需要指定

D

只有字符串类型需要指定

11
多选题

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"

12
单选题

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

A

var

B

let

C

const

D

final

13
单选题

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

A

类型名(变量)

B

(变量)类型名

C

cast(变量, 类型)

D

convert(变量, 类型)

14
判断题

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

A

B

15
填空题

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

16
多选题

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

A

int

B

float64

C

complex128

D

[]int

E

rune

17
填空题

Go字符串与数值转换使用 _______ 包, ______ 函数将字符串转为int, ______ 函数将int转为字符串。 __________ 转字符串为浮点数, ___________ 转浮点数为字符串。

18
多选题

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

A

整个函数

B

整个if块(包括else部分)

C

仅if的{}内

D

仅条件表达式内

E

if块及后续代码

19
判断题

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

A

B

20
单选题

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

A

两个:全局和局部

B

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

C

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

D

只有一个全局作用域

← 上一个试卷 GO初级技能认证测试
下一个试卷 → GO复合数据类型专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库