天天看点

go语言习题 01

//1.编写代码分别定义一个整型、浮点型、布尔型、字符串型变量,使用fmt.Printf()搭配%T分别打印出上述变量的值和类型。
package main

import "fmt"

func main() {
	var a int = 1
	var b float64 = 3.14
	var c = true
	d := "chenjunde"

	fmt.Printf("a= %d\n", a)
	fmt.Printf("b= %f\n", b)
	fmt.Printf("c= %t\n", c)
	fmt.Printf("d= %s\n", d)
	fmt.Printf("a: %T\n", a)
	fmt.Printf("b:  %T\n", b)
	fmt.Printf("c:  %T\n", c)
	fmt.Printf("d:  %T\n", d)
}
知识点:
1.fmt包 
2.变量的基本概念
           
// 2.编写代码统计出字符串"hello沙河小王子"中汉字的数量。
package main

import "fmt"

//思路:
// 1. 遍历字符串 判断如果字符 ASCII > z 说明字符是汉字
// 2. 遍历字符串
// 				 func Is(rangeTab *RangeTable, r rune) bool
// 				 方法判断字符是否是汉字 返回值是一个布尔类型
// 				 unicode.Han:指针类型

//思路1:按照ASCII进行判断 
func main() {
	str := "hello 沙河小王子"
	number := 0
	for _, value := range str {
		if value > 'z' {
			//这个是汉字
			number++
		}
	}
	fmt.Println("number:", number)
}

思路2:按照unicode包的方法 对字符进行判断 

func main() {
	number := 0
	str := "hello 沙河小王子"
	for _, value := range str {
		if unicode.Is(unicode.Han, value) {
			number++
		}
	}
	fmt.Println("number:", number)
}

知识点:
1.字符串的遍历字符的方式 
2.for range 循环 
3.unicode包
	Is(rangeTab *RangeTable, r rune) bool 函数 
	unicode.Han 内置的指针变量
           
//求数组[1, 3, 5, 7, 8]所有元素的和

package main

import "fmt"

func main() {
	count := 0
	a := [...]int{1, 3, 5, 7, 8}
	for _, v := range a {
		count += v
	}
	fmt.Println(count)
}
知识点:
1.数组的定义 
2.遍历数组 
           
// 找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。

package main

import "fmt"

func main() {
	a := [...]int{1, 3, 5, 7, 8}
	for x := 0; x < len(a); x++ {
		for y := x + 1; y < len(a)-x; y++ {			//设置两个变量  x = 1 时 y = 2 3 4 5 进行遍历 …… 
			if a[x]+a[y] == 8 {
				fmt.Println(x, y)
			}
		}
	}
}

知识点:
1.数组的定义 
2.数组的遍历
           
// 编写代码打印9*9乘法表
// 1*1
// 2*1 2*2
// 3*1 3*2 3*3
package main

import "fmt"

func main() {
	for x := 1; x <= 9; x++ {
		for y := 1; y <= x; y++ {
			fmt.Printf("%d * %d = %d  ", y, x, x*y)
		}
		fmt.Println()
	}
}
知识点:
for循环语句的使用
           
// 请使用内置的sort包对数组var a = [...]int{3, 7, 8, 9, 1}进行排序
// func Ints(a []int)
package main

import (
	"fmt"
	"sort"
)

func main() {
	var a = [...]int{3, 7, 8, 9, 1}
	var b = a[:]
	sort.Ints(b)
	fmt.Println(b)
}
知识点:
sort包的Ints()方法
func Ints(a []int) :进行递增排序 参数是整形的切片 
           
// 写一个程序,统计一个字符串中每个单词出现的次数。比如:”how do you do”中how=1 do=2 you=1。
package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "how do you do"
	word := make(map[string]int)
	substr := strings.Split(str, " ")
	for _, value := range substr {
		word[value]++
	}
	for key, value := range word {
		fmt.Printf("%s: %d\n", key, value)
	}
}

//知识点:
1.strings包下的Split()方法 将字符串按照指定的字符进行分割 
返回值是一个切片 
2.map的定义 和使用方法