1.输出打印:go的第一个程序
题目要求:
输出打印"Hello World!"
运行结果示例:
考点:
1.必须在源文件中非注释的第一行指明这个文件属于哪个包,package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
2.导入实现格式化输入输出的 fmt 包。
3.func main() 是程序开始执行的函数。main() 函数是每一个可执行程序所必须包含的。
4.fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n
运行代码示例:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}
2.变量:小明信息
题目要求:
已知小明的信息(姓名:小明,年龄:23,性别:男),定义三个变量,分别表示姓名(string类型),年龄(int类型),性别(男true,女false,bool类型),然后按照姓名,年龄,性别的顺序,逐行输出对应的信息。
运行结果示例:
考点:
1.Go中,一行代表一个语句的结束,不需要我们额外使用分号作为一行代码的结尾。
2.变量的声明:var 变量名 变量类型 = 值,如:var d int = 100
var 变量名 = 值,程序会自动判断其类型
变量名 := 值,注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。
运行代码示例:
package main
import (
"fmt"
)
func main() {
var name string ="小明" // 变量的声明方式一
age := 23 // 变量的声明方式二
var gender = true // 变量的声明方式三
fmt.Println(name)
fmt.Println(age)
fmt.Println(gender)
}
3.变量:个人信息
题目要求:
每个人都有姓名,年龄,性别,用三个变量,类型分别是string,int,bool,来表示人的这三个基本信息。然后按照,姓名,年龄,性别的顺序进行输出打印。
运行结果示例:
考点:
只声明一个变量,并不为其指定初始值。指定变量类型如果没有初始化,则变量默认为零值(零值为变量没有做初始化时系统默认设置的值,不一定是0。例如数值类型默认为0,布尔类型默认为false,字符串类型默认为“”)。
运行代码示例:
package main
import "fmt"
func main() {
var name string
var age int
var gender bool
fmt.Println(name)
fmt.Println(age)
fmt.Println(gender)
}
4.常量:国家名称
题目要求:
定义三个常量来分别表示中国,英国,美国这三个国家的名称,并按照中国,英国,美国的顺序逐行打印。
运行结果示例:
考点:
在go语言中,常量使用关键字const标识,语法如下:
const identifier [type] = value const c_name1, c_name2 = value1, value2
运行代码示例:
package main
import "fmt"
func main() {
const ch = "中国"
const uk string = "英国"
const us = "美国"
fmt.Println(ch)
fmt.Println(uk)
fmt.Println(us)
}
5.指针:值和指针
题目要求:
给定两个变量a,b,判断两个变量的地址,值(a,b的地址取得)是否相等,将结果依次存入切片,并返回。
运行结果示例:
考点:
1.go语言中的函数定义语法:
func 函数名(参数列表) 返回值类型 { // 函数体 }
在go语言中,所有的变量类型都是写在变量名之后的。且函数的{必须与函数名在同一行,不能跨行。
2.&(取地址)和*(根据地址取值)
运行代码示例:
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param a int整型 变量a
* @param b int整型 变量b
* @return bool布尔型一维数组
*/
func equal( a int , b int ) []bool {
// write code here
return []bool{&a == &b,*&a == *&b}
}
6.字符串:拼接字符串
题目要求:
给定一个字符串数组,将其拼接成一个字符串。
运行结果示例:
考点:
数组的遍历:
for index, value := range array2 { fmt.Println("inde = ", index, ",value = ", value) }
使用range遍历数组,这里我们用不到index,因此可以用_代替(所有定义出的变量都应被使用,否则无法通过编译)
运行代码示例:
func join( s []string ) string {
var res string
// write code here
for _,value := range s{
res += value
}
return res
}
7.字符串:字符数量
题目要求:
给定一个字符串,统计其中的字符个数(一个中文算一个)。
运行结果示例:
考点:
1.
rune
类型是 Go 语言的一种特殊数字类型。在builtin/builtin.go
文件中,它的定义:type rune = int32
;官方对它的解释是:rune
是类型int32
的别名,在所有方面都等价于它,用来区分字符值跟整数值。使用单引号定义 ,返回采用 UTF-8 编码的 Unicode 码点。Go 语言通过rune
处理中文,支持国际化多语言。在 Go 语言中,字符可以被分成两种类型处理:对占 1 个字节的英文类字符,可以使用byte
(或者unit8
);对占 1 ~ 4 个字节的其他字符,可以使用rune
(或者int32
),如中文、特殊符号等。2.将字符串转化为rune数组,再返回数组长度。
运行代码示例:
func count( s string ) int {
// write code here
run := []rune(s)
return len(run)
}
8.字符串:回文数
题目要求:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
运行结果示例:
考点:
1.类型转换需要用到 "strconv"包。例如将int型变量转换为字符串:
num := 123 str := strconv.Itoa(num)
2.算法思路:将int型数据转换成字符串,遍历字符串比较其前面元素以及其对应位置的元素是否相同,遍历结束(只需要遍历一半即可)如果均相同,返回true。
3.for循环语句语法格式:
for i := 0; i <= 10; i++ { sum += i }
4.if判断语句语法格式:
if 判断条件 { }
5.Go 语言的内建函数 len(),可以用来获取切片、字符串、通道(channel)等的长度。
运行代码示例:
func isPalindrome( x int ) bool {
// write code here
s := strconv.Itoa(x)
for i:= 1; i< len(s) /2; i++ {
if s[1] != s[len(s) - i - 1] {
return false
}
}
return true
}