《go语言圣经》练习题
为了督促并记录自己关于GO语言的学习,从现在开始会记录下我学习GO语言的历程。 下面呢是习题2.1和2.2的练习题...阅读全文
为了督促并记录自己关于GO语言的学习,从现在开始会记录下我学习GO语言的历程。 下面呢是习题2.1和2.2的练习题...阅读全文
1、代码 2、运行 1、代码 package main import "fmt" func MyPrintf(args ...interface{}){ for _, arg := range args { switch arg.(type) { case int : fmt.Println("\"", arg, "\"", "is an int value.") case string : fmt.Println("\"", arg, "\"", "is a string value.") case int64 : fmt.Println("\"", arg, "\"", "is an int64 value.") default : fmt.Println("\"", arg, "\""...阅读全文
第1章 课程介绍本章中将介绍一下本课程的基本内容,包括:我们要做什么、要求什么基础、将学会哪些工具、收获哪些独家干货,以及课程具体安排。第2章 如何执行shell命令执行"定时任务"其实就是执行"shell命令"。在本章中,将首先带大家区分"程序"与"命令",接着了解bash命令解释器的2种工作模式,并图示分析shell执行任务的底层原理与涉及的系统调用。最后,我们使会用Go语言的Command标准库,实现任务的执行,输出捕获,杀死任务等重要功能。 ...第3章 如何解析cron表达式cron表达式是配置定时任务执行周期的核心工具。在本章中,将首先分析cron表达式的构成以及解析逻辑,并利用开源项目cronexpr解析cron表达式并计算任务的下次调度时间。之后,我们将利用其实现任务并发调度...阅读全文
**1.题目:求1+2!+3!+...+20!的和** **2.程序分析:此程序只是把累加变成了累乘。 ** **3.程序源代码:** ```go package main import "fmt" func main() { var a, b = 1, 0 for i := 1; i < 21; i++ { a = a * i b = b + a fmt.Printf("第%d个值是:%d\n", i, b) } fmt.Println("1+2!+3!+...+20!的和是:", b) } ``...阅读全文
今年本命年感觉挺不顺的。到今天失业半年了。 工作的时候总觉得不上班真好,失业的时候才觉得还是有工作好,最起码放假能放开地消费,放开地玩耍。 我觉得也可能是和之前的996有一定的关系吧,给我整怕了。 所以人呐,像弹簧,忍久了,迟早要爆发。不然就灭亡吧。 失业系统地学习了半年的python,后来随着逐渐的深入,才发现被培训老师给忽悠 了,还好我是淘宝上几块钱买的课程,经济成本没有损失多少,可是时间成本我心疼啊。 python虽说也有web开发方向,但是数量和java,php比,少的可怜,深入了解后,python主要应用方向是用来做数据分析挖掘,和人工智能AI,这些都是高精尖的工种,至少硕士研究生,数学算法好,是必须的,小白,呵呵。 所以说这半年时间除了锻炼了自己的逻辑开发思维和了解了编程是怎样一...阅读全文
# golang acm 练习场 ## 序 ACM-Association for Computing Machinery , 即国际计算机学会。因主办国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)而闻名世界,我们虽然不参加比赛,也参加不了(只能在校生才能参加)。但作为一名积极上进的程序员,学点算法知识还是很有必要的。特此自己收集了一些题目来练练大脑和学习golang语言,但是发现做了题目以后,并不知道自己做的质量如何,所以才有此项目[golang acm](https://github.com/sheepbao/golang-acm)。 如果你是学golang语言...阅读全文
go语言 尚硅谷菁英师资整合业界资源,历时一年,打磨出专注于区块链技术的GO语言视频教程。教程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。——尚硅谷官网 尚硅谷韩顺平Go语言核心编程 001_Golang可以做什么 002_如何学习Golang更高效(1) 003_如何学习Golang更高效(2) 004_程序的基本概念 005_Go语言发展简史 006_Go语言的特性和快速体验 007_Golang开发工具介绍 008_windows下VSCode的安装和使用(1) 009_windows下VSCode的安装和使用(2) 010_Linux下VSCode的安装和使用 011_Mac下VS...阅读全文
【课程名称】Go 语言编程 【课程时间】2014年7月30日(周三) 20:50 - 22:00 【课程安排】20:50—21:00 通过邮件地址登录网络课堂 21:00—22:00 主题演讲(徐立)与QA PS:课程咨询请加入QQ群:CSDN技术交流 群号是303806405 课程名称:Go 语言编程 课程大纲: - 为什么我们需要一门新语言 - Go 语言的前世今生 - Hello world - Go 特性介绍 - Go 基本数据类型 - 控制语句 - 函数 - 闭包 - 错误处理 - 结构体 - 面向对象 - 接口 - Goroutines - Channels - Select - Timeouts - Non-Blocking Channel - Mutexes - 文件操作 -...阅读全文
**1.题目:输入三个整数x,y,z,请把这三个数由小到大输出。** **2.程序分析:我们想办法把最小的数放到x上,** **先将x与y进行比较,如果x>y则将x与y的值进行交换,** **然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。** **3.程序源代码:** ```go package main import ( "fmt" ) func main() { var x, y, z, temp float64 fmt.Println("请输入要比较的三个数:") fmt.Scan(&x, &y, &z) if x < y { temp = x x = y y = temp } if x < z { temp = z z = x x = temp } if ...阅读全文
package main
import "fmt"
func main(){
numArr := [...]int{4,2,9,45,8,36,5,1,82}
numCount := len(numArr)
for i:=0;i
**题目:企业发放的奖金根据利润提成。** **利润(I)低于或等于10万元时,奖金可提10%;** **利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;** **20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;** **60万到100万之间时,高于60万元的部分,可提成1.5%;** **高于100万元时,超过100万元的部分按1%提成从键盘输入当月利润,求应发放奖金总数?** **1.程序分析:请利用数轴来分界,定位。** **2.程序源代码:** ```go package main import "fmt" func main() { var bonus,bonus1 f...阅读全文
**1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?** **2.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 ** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 5; i++ { for j := 1; j < 5; j++ { for k := 1; k < 5; k++ { if (i != k) && (i != j) && (j != k) { fmt.Println("这个数是:", i, j, k) } } } } } ``...阅读全文
**1.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。** **2.程序分析:采取逆向思维的方法,从后往前推断。** **3.程序源代码:** ```go package main import "fmt" func main() { var x, y int y = 1 for day := 9; day > 0; day-- { x = (y + 1) * 2 y = x } fmt.Printf("第一天共摘了%d个桃子", x) } ``...阅读全文
package main import "fmt" func main() { arr := []int{9,1,10,8,4,7,2,0,6,5,3} result := QuickSort(arr) fmt.Println(result) } func ComparisonNum(arr []int) []int { if len(arr) == 0 { return []int{} } left := []int{} right := []int{} nums := arr[len(arr) / 2] fo...阅读全文
1、代码 2、运行 1、代码 1 package main 2 3 import "fmt" 4 5 type Integer int 6 //给in类型添加 Less 方法,int原来的方法被Integer继承 7 func (a Integer) Less (b Integer) bool { 8 return a < b 9 } 10 11 //给in类型添加 Add 方法,int原来的方法被Integer继承 12 func (a *Integer) Add (b Integer) { 13 *a += b 14 } 15 16 func main() { 17 var a Integer = 1 18 if a.Less(2) { 19 fmt.Println(a, "less 2...阅读全文
package main import ( "fmt" "tour/tree" ) // Walk walks the tree t sending all values // from the tree to the channel ch. func Walk(t *tree.Tree, ch chan int) { if t.Left != nil { Walk(t.Left, ch) } ch<-t.Value if t.Right != nil { Walk(t.Right, ch) } } // Same determines whether the trees // t1 and t2 contain the same values. func Same(t1, t2 *tree...阅读全文
1. Error package main import "fmt" type Error struct { errCode uint8 } func (e *Error) Error() string { switch e.errCode { case 1: return "file not found" case 2: return "time out" default: return "unknown error" } } func main() { err := new(Error) err.errCode = 2 msg := err.Error() fmt.Println(msg) ...阅读全文
**1.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?** **2.程序源代码:** ```go package main import "fmt" func main() { sn := 100 hn := sn / 2 for i := 2; i <= 10; i++ { sn += 2 * hn hn /= 2 } fmt.Printf("共经过%d米\n", sn) fmt.Printf("第10次反弹%d米\n", hn) } ``...阅读全文
package main import ( "fmt" ) //题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 func main() { for i :=1; i<=85; i++{ if 168 % i==0{ j := 168 / i if (i>j) && ((i + j) % 2==0) && ((i - j) % 2 == 0){ //m := (i + j) / 2 n := (i - j) / 2 x := n * n - 100 fmt.Printf("符合条件的整数有:%s\n",x) } } } ...阅读全文
**1.题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!** **2.程序分析:字符共有256个。不同字符,图形不一样** **3.程序源代码:** ```go package main import "fmt" func main() { var a rune = 176 var b rune = 219 fmt.Printf("%c%c%c%c%c\n", b, a, a, a, b) fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a) fmt.Printf("%c%c%c%c%c\n", a, a, b, a, a) fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a) fmt.Printf("%...阅读全文
**1.题目:输入某年某月某日,判断这一天是这一年的第几天?** **2.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,** **特殊情况,闰年且输入月份大于3时需考虑多加一天。** **3..程序源代码:** ```go package main import "fmt" func main() { var year, mouth, day, sum, feb int fmt.Println("请输入年月日:") fmt.Scan(&year, &mouth, &day) if (year%4 == 0 && year%100 != 0) || (year%400 == 0) { feb = 29 } else { feb = 28 } switch m...阅读全文
来自golang tour 练习 https://tour.go-zh.org/methods/16 package main import "golang.org/x/tour/pic" import "image" import "image/color" type Image struct{} func (im Image) ColorModel() color.Model { return color.RGBAModel } func (im Image) Bounds() image.Rectangle { return image.Rect(0, 0, 200, 200) } func (im Image) At(x, y int) color.Color { return co...阅读全文
**1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,** **小兔子长到第三个月后每个月又生一对兔子,** **假如兔子都不死,问每个月的兔子总数为多少?** **2.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....** **3.程序源代码:** ```go package main import "fmt" func main() { f1 := 1 f2 := 1 for i := 1; i <= 20; i++ { fmt.Printf("%12d %12d", f1, f2) if i%2 == 0 { fmt.Println() } f1 = f1 + f2 f2 = f1 + f2 } } ``...阅读全文
**1.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。** **2.程序分析:请抓住分子与分母的变化规律。 ** **3.程序源代码:** ```go package main import "fmt" func main() { var a, b, c = 2.0, 1.0, 0.0 for n := 1; n < 21; n++ { c = c + a/b t := a a = a + b b = t } fmt.Println(int(c)) } ``...阅读全文
**1.用*号输出字母C的图案。** **2.程序分析:可先用'*'号在纸上写出字母C,再分行输出。** **3.程序源代码:** ```go package main import "fmt" func main() { fmt.Printf(" *****\n") fmt.Printf("*** **\n") fmt.Printf("** **\n") fmt.Printf("** \n") fmt.Printf("** \n") fmt.Printf("** **\n") fmt.Printf("*** **\n") fmt.Printf(" ****\n") } ``...阅读全文
**1.输出9*9口诀。** **2.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 10; i++ { for j := 1; j < 10; j++ { result := i * j fmt.Printf("%d*%d=%-3d ", i, j, result) } fmt.Println() } } ``...阅读全文
1、代码 1 package main 2 3 import "fmt" 4 /* 5 #include
package main import ( "fmt" ) var( input_Data int result int year_data int month_data int day_data int sum int ) //题目:输入某年某月某日,判断这一天是这一年的第几天? func get_Input(input_Type string) (int,error) { switch input_Type { case "year": fmt.Println("输入年份: ") fmt.Scanln(&input_Data) if input_Data <1 { fmt.Println("年份输入错误,请重新输入!") break } result = input_Data case ...阅读全文
**1.题目:要求输出国际象棋棋盘。** **2.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 0; i < 8; i++ { for j := 0; j < 8; j++ { if (i+j)%2 == 0 { fmt.Printf("%c%c", 219, 219) } else { fmt.Printf(" ") } } fmt.Println() } } ``...阅读全文
**1.打印楼梯 ** **2.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ** **3.程序源代码: ** ```go package main import "fmt" func main() { for i := 1; i < 11; i++ { for j := 1; j <= i; j++ { fmt.Printf("%c%c", 219, 219) } fmt.Println() } } ``...阅读全文
**1.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。** **例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。** **2.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 10; i++ { for j := 0; j < 10; j++ { for k := 0; k < 10; k++ { sum := i*100 + j*10 + k if sum == i*i*i+j*j*j+k*k*k { fmt.Println(sum) ...阅读全文
实现一个 Reader 类型,它产生一个 ASCII 字符 'A' 的无限流。 题目理解:无限流的意思就是 返回值中 error不会存在 EOF的情况,并且会填充一个A因为A只有一个字节,所以int返回的是1 package main import "golang.org/x/tour/reader" type MyReader struct{} // TODO: 给 MyReader 添加一个 Read([]byte) (int, error) 方法 func (m MyReader) Read(b []byte) (int, error) { b[0] = "A" return 1 nil } func main() { reader.Validate(MyReader{}) ...阅读全文
**1.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 ** **2.程序分析:关键是计算出每一项的值。 ** **3.程序源代码: ** ```go package main import "fmt" func main() { var m, n, Sn, Tn = 1, 1, 0, 0 fmt.Print("请输入一个数字:") fmt.Scan(&m) fmt.Print("请输入位数:") fmt.Scan(&n) for i := 1; i <= n; i++ { Tn = Tn * 10 Tn = Tn + m Sn = Sn + Tn } fmt.Println...阅读全文
**1.判断101-200之间有多少个素数,并输出所有素数。** **2.程序分析:判断素数的方法:用一个数分别去除2,如果能被整除,则表明此数不是素数,反之是素数。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 101; i <= 200; i++ { for j := 2; j <= i; j++ { if i != j && i%j == 0 { break } if i == j && i%j == 0 { fmt.Println(i) } } } } ``...阅读全文
**1.利用条件运算符的嵌套来完成此题:** **学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。** **2.程序分析:(a>b)?a:b这是条件运算符的基本例子。** **3.程序源代码:** **不支持这个运算符** ```go package main import "fmt" func main() { var score int var grade string fmt.Print("请输入你的成绩:") fmt.Scan(&score) if score < 0 || score > 100 { fmt.Println("您输入的有误!") } else { if score >= 90 { grade = "A" } else if sco...阅读全文
原题如下: write const declarations for KB,MB,up through YB as compactly as you can. 这里的k,m等都是10的次方,比如KB是1000,不是1024 书上有例子是1024的
const(
_=1<<(10*iota)
KiB//1024
MiB//1048576
...
)//太多了就不打了
每个后面乘上1000的我想到了,但是感觉不是很简洁,求帮...阅读全文
package main import ( "fmt" ) type item struct { key int } type tree struct { lchild, rchild *tree item item count int } func compare(x, y item) int { var ret int switch { case x.key > y.key: ret = 1 case x.key == y.key: ret = 0 case x.key < y.key: ret = -1 } return ret } func create(T *tree, x item) *tree { if T == nil { T = new(tree) T.item = x T...阅读全文
1、代码 2、运行 1、代码 1 package main 2 3 import "fmt" 4 5 type Base struct { 6 Name string 7 } 8 9 func (base * Base) Foo() { 10 fmt.Println("Base Foo : ", base.Name) 11 } 12 13 func (base * Base) Bar() { 14 fmt.Println("Base Bar : ", base.Name) 15 } 16 17 type Foo struct { 18 Base 19 a int 20 } 21 22 func (foo * Foo) Bar() { 23 foo.Base.Bar() 24 fmt.Prin...阅读全文
1、代码 2、运行 1、代码 1 package main 2 3 import "fmt" 4 5 type Rect struct { 6 x, y float64 7 width, height float64 8 } 9 10 func (r * Rect) Area() float64 { 11 return r.width * r.height 12 } 13 14 func Init() { 15 rect1 := new(Rect) 16 rect2 := &Rect{} 17 rect3 := &Rect{0, 0, 100, 200} 18 rect4 := &Rect{width : 100, height : 200} 19 20 ShowRect(rect1) 21...阅读全文
1、代码 2、运行 1、代码 1 package main 2 import "fmt" 3 4 func switch_1(i int){ 5 switch i { 6 case 0 : 7 fmt.Println("0 --: i = ", i); 8 case 1: 9 fmt.Println("1 --: i = ", i); 10 case 2: 11 fmt.Println("2 --: i = ", i); 12 fallthrough 13 case 3: 14 fmt.Println("3 --: i = ", i); 15 case 4, 5, 6: 16 fmt.Println("4, 5, 6 --: i = ", i); 17 default : 18 fmt.Pr...阅读全文
初学`go`一直找不到合适的练习,最近在一本书中发现了一些练习题,整理,分享给大家 [代码地址][1] [1]: https://github.com/rundaisc/goLearningTes...阅读全文
```go package main import "fmt" type IPAddr [4]byte func (v IPAddr) String() string{ return fmt.Sprintf("%v.%v.%v.%v", v[0],v[1],v[2],v[3]) } func main(){ addrs := map[string]IPAddr{ "loopback": {127,0,0,1}, "googleDNS": {8,8,8,8}, } for n, a := range addrs{ fmt.Printf("%v:%v\n", n, a) } } ``` 请问其中的func (v IPAddr...阅读全文
package main import "fmt" //斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。 //使用递归方式实现输出前20个斐波那契数 func fib(n int) int { if n==1{ return 1 }else if n==2{ return 1 } return fib(n-1)+fib(n-2) } func main(){ fibs := []int{} for i:=1;i<=20;i++{ fibs=append(fibs,fib(i)) } fmt.Println(fibs) ...阅读全文
1、代码 2、运行 1、代码 文件:map.go 1 package main 2 import "fmt" 3 4 type PersionInfo struct{ 5 ID string 6 Name string 7 Address string 8 } 9 10 func main(){ 11 var persionDB map[string] PersionInfo 12 persionDB = make(map[string] PersionInfo) 13 14 persionDB["12345"] = PersionInfo{"12345", "Tom", "Room 203, ..."} 15 persionDB["1"] = PersionInfo{"1", "Jack"...阅读全文
1、代码 2、运行 1、代码 1 package main 2 import "fmt" 3 4 func main(){ 5 for k:= 0; k < 5; k++{ 6 JLoop: 7 for j := 0; j < 5; j++{ 8 for i := 0; i < 10; i++{ 9 if i > 5 { 10 break JLoop 11 } 12 fmt.Printf("%d ", i) 13 } 14 } 15 fmt.Println() 16 } 17 fmt.Println("Hello world !") 18 } 2、运行 $ go run for.go 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 ...阅读全文
毕业后想成为一名软件开发工程师,应该如何学习,我整理了一下,觉得可以如下几个过程,逐步深入。希望对大家有帮助。 1、基础这是每个开发者的起点。开发者刚刚学会了某种语言, 比如C语言,学习了基本的数据结构和算法,并通过一些练习对知识点进行巩固。这些练习主要以课后练习为主,是一些简单的基础概念的练习,比如打印输出、接收用户的输入、数组的遍历、排序,或者链表等。接下来是做一些简单的项目,这些项目没有复杂的算法和高深的领域知识,比如数据的统计分析、产品的售后管理系统等。这些项目虽然简单,却是一个真实完整的项目。不仅练习了开发者对语言的应用能力,也体会了软件开发的全生命周期,即软件工程,从项目的需求分析,到设计开发,到软件发布和项目验收,最后到软件的维护。通过简单的项目,掌握了对语言的驾驭能力,并熟悉...阅读全文
1、代码 2、运行 1、代码 1 package main 2 import ( 3 "fmt" 4 "strconv" 5 ) 6 7 func getValue(n int) (float32, string) { 8 var x float32 = float32(n) 9 var str string = strconv.Itoa(n) 10 return x, str 11 } 12 13 func main(){ 14 var n int = 10; 15 16 x, str := getValue(n) 17 18 fmt.Printf("x = %f\nstr = %s\n", x, str) 19 } 2、运行 $ go run multireturns.go x = 10...阅读全文
偶尔同学群里有发学生作业的,正好有空,就随手练习了一下,题目如下: golang实现代码如下,代码写的很烂,好在终归是可以算出来的。 type v struct { a, b int } func Operate() []*v { vs := make([]*v, 0) for a := 10; a < 100; a++ { for b := 10; b < 100; b++ { r := a * b x := a * (b % 10) if (x > 100 && x < 1000 && (x%100)/10 == 8) && (a*(b/10) < 100) && (r/1000 == 1 && (r%1000)/100 == 8) { vs = append(vs, &v{a, b})...阅读全文