Golang语言练习

习题:https://github.com/rundaisc/goLearningTest/tree/master/day1

day1

  • 创建一个基于 for 的简单的循环。使其循环 10 次,并且使用 fmt 包打印出计数 器的值

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        fmt.Println("i =", i)
    }
}
  • 用 goto 改写 1 的循环。关键字 for 不可使用

package main

import "fmt"

func main() {
    i := 0
BEGIN:
    fmt.Println("i =", i)
    i++
    if i < 10 {
        goto BEGIN
    }
}
  • 再次改写这个循环,使其遍历一个 array,并将这个 array 打印到屏幕上
package main

import "fmt"

func main() {
    var arr [10]int
    for i := 0; i < 10; i++ {
        arr[i] = i
    }
    for _, num := range arr {
        fmt.Println("i =", num)
    }
}
  • 解决这个叫做 Fizz-Buzz 的问题:编写一个程序,打印从 1 到 100 的数字。当是3个倍数数就打印 “Fizz” 代替数字,当是5的倍数就打印 “Buzz” 。当数字同时是3和5的倍数 时,打印 “FizzBuzz” 。
package main

import "fmt"

func main() {
    i := 0
    for i < 100 {
        i++
        if i%15 == 0 {
            fmt.Println("FizzBuzz")
        } else if i%3 == 0 {
            fmt.Println("Fizz")
        } else if i%5 == 0 {
            fmt.Println("Buzz")
        } else {
            fmt.Println(i)
        }
    }
}
  • 建立一个 Go 程序打印下面的内容(到 100 个字符):
A
AA
AAA
AAAA
AAAAA
AAAAAA
AAAAAAA
package main

import "fmt"

func main() {
    for i := 0; i < 100; i++ {
        for j := 0; j < i; j++ {
            fmt.Print("A")
        }
        fmt.Print("\n")
    }
}
  • 建立一个程序统计字符串里的字符数量: asSASA ddd dsjkdsjs dk 同时输出这个字符串的字节数 > 提示: 看看 unicode/utf8 包
package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    str := "asSASA ddd dsjkdsjs dk汉子"
    fmt.Println("字节数(长度)", len(str), "字符数", len([]rune(str)), "字符数", utf8.RuneCount([]byte(str)))
}
  • 扩展/修改上一个问题的程序,替换位置 4 开始的三个字符为 “abc”
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "asSASA ddd dsjkdsjs dk"
    str2 := strings.Replace(str, str[3:6], "abc", 1)
    fmt.Println(str, str2)
}
  • 编写一个 Go 程序可以逆转字符串,例如 “foobar” 被打印成 “raboof”
package main

import (
    "fmt"
)

func main() {
    str := "Forbar中文"
    r := []rune(str)
    // for i := len([]rune(str)) - 1; i > -1; i-- {
    //  fmt.Print(string(str[i]))
    // }
    for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
        r[i], r[j] = r[j], r[i]
    }

    fmt.Println(string(r))

}
  • 编写计算一个类型是 float64 的 slice 的平均值的代码。
package main

import (
    "fmt"
)

func main() {
    arr := []float64{0.1, 0.8, 1.2, 9.8, 8.7, 12.1, 9.8}
    fmt.Println(arr)
    var s float64
    s = 0.0
    for _, num := range arr {
        s += num
    }
    fmt.Println("总合", s, "平均值", s/float64(len(arr)))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

临渊-测试开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值