GO練習(xí)題 - 草稿

1腺占、獲取當(dāng)前系統(tǒng)標(biāo)準(zhǔn)時(shí)間并顯示,將其轉(zhuǎn)化為中文時(shí)間格式并顯示校套,結(jié)果如下

當(dāng)前標(biāo)準(zhǔn)時(shí)間:3455435455? 中文顯示為:2021年1月7日 15:30:30

package main

import "fmt"

import "time"

func main(){

? ? ? ? now:=time.Now()

? ? ? ? fmt.Println(now)

? ? ? ? fmt.Println("標(biāo)準(zhǔn)時(shí)間:",now.Unix())

? ? ? ? fmt.Println(now.Format("2006-01-02 15:04"))

? ? ? ? year:=now.Year()

? ? ? ? month:=now.Month()

? ? ? ? day:=now.Day()

? ? ? ? hour:=now.Hour()

? ? ? ? minute:=now.Minute()

? ? ? ? second:=now.Second()

? ? ? ? fmt.Printf("%d年%d月%d日 %d:%d:%d\n",year,month,day,hour,minute,second)

}

2. 數(shù)字32768和字符串“65535”實(shí)現(xiàn)數(shù)字和字符串之間的互相轉(zhuǎn)化并輸出,同時(shí)使用%T輸出數(shù)據(jù)類(lèi)型。

package main

import "fmt"

import "strconv"

func main(){

? ? ? ? var i int=32765

? ? ? ? var j string="65535"

? ? ? ? k:=strconv.Itoa(i)

? ? ? ? fmt.Printf("%T:%s\n",k,k)

? ? ? ? x,_:=strconv.Atoi(j)

? ? ? ? fmt.Printf("%T:%d\n",x,x)

}

3.輸入一個(gè)字符串將其進(jìn)行MD5后輸出字符串绽乔。

package main

import "fmt"

import "crypto/md5"

func main() {

? ? ? ? var input string

? ? ? ? print("請(qǐng)輸入一個(gè)字符串:")

? ? ? ? fmt.Scanf("%s", &input)

? ? ? ? fmt.Printf("輸入字符串為:%s\n",input)

? ? ? ? data := []byte(input)

? ? ? ? md5 := md5.Sum(data)

? ? ? ? fmt.Printf("md5后的值為:%x\n", md5)

}

4.建立一個(gè)100-999的隨機(jī)數(shù)切片并排序輸出,每行5個(gè)碳褒。

package main

import "fmt"

import "math/rand"

import "time"

import "sort"

func main() {

? ? ? ? rand.Seed(time.Now().UnixNano()) //以納秒當(dāng)前時(shí)間設(shè)置種子

? ? ? ? var data []int

? ? ? ? for i := 0; i < 100; i++ {

? ? ? ? ? ? ? ? data=append(data,rand.Intn(1000)) //1000以?xún)?nèi)隨機(jī)整數(shù)

? ? ? ? ? ? ? ? if (i+1)%5 == 0 {

? ? ? ? ? ? ? ? ? ? ? ? fmt.Printf("%d\t\n", data[i])

? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? ? ? fmt.Printf("%d\t", data[i])

? ? ? ? ? ? ? ? }

? ? ? ? }

? ? ? ? println("")

? ? ? ? sort.Ints(data)

? ? ? ? for i := 0; i < 100; i++ {

? ? ? ? ? ? ? ? if (i+1)%5 == 0 {

? ? ? ? ? ? ? ? ? ? ? ? fmt.Printf("%d\t\n", data[i])

? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? ? ? fmt.Printf("%d\t", data[i])

? ? ? ? ? ? ? ? }

? ? ? ? }? ? ? ? ? ? ? ? ? ?

5.建立一個(gè)8位長(zhǎng)的隨機(jī)字符串?dāng)?shù)組str[50]并json輸出折砸。

6.輸入一個(gè)球體半徑看疗,輸出表面積和體積。要求用結(jié)構(gòu)體和兩個(gè)方法分別計(jì)算表面積和體積睦授。

7.定義字符串切片两芳,append 3個(gè)字符串后打印輸出并輸出長(zhǎng)度和最大容量。
package main

import "fmt"

func main() {

? ? ? ? var str []string

? ? ? ? str=append(str,"sunjian")

? ? ? ? str=append(str,"Renting")

? ? ? ? str=append(str,"Renxxiao")

? ? ? ? fmt.Printf("%s\tLenth:%d\tCap:%d\n",str[0],len(str),cap(str))

? ? ? ? fmt.Printf("%s\tLenth:%d\tCap:%d\n",str[1],len(str),cap(str))

? ? ? ? fmt.Printf("%s\tLenth:%d\tCap:%d\n",str[2],len(str),cap(str))

}

8.利用不定參函數(shù)計(jì)算所有參數(shù)之和去枷。

package main

func add(x ...int) int {

? ? ? ? total := 0

? ? ? ? for _, i := range x {

? ? ? ? ? ? ? ? total = total + i

? ? ? ? }

? ? ? ? return total

}

func main() {

? ? ? ? println(add(10, 20, 30, 40, 50, 60, 70, 80, 90, 100))

}

9.輸出10000個(gè)hello world!查看執(zhí)行時(shí)間
package main
import (

? ? ? ? "time"

? ? ? ? "fmt"

)

func main(){

? ? ? ? begin:=time.Now()

? ? ? ? for i:=0;i<10000;i++{

? ? ? ? println("Hello World !")

? ? ? ? }

? ? ? ? sp:=time.Since(begin)

? ? ? ? fmt.Printf("程序執(zhí)行時(shí)間:%v",sp)

}

10

解決這個(gè)叫做 Fizz-Buzz 的問(wèn)題: 編寫(xiě)一個(gè)程序怖辆,打印從 1 到 100 的數(shù)字。當(dāng)是3個(gè)倍數(shù)數(shù)就打印 “Fizz” 代替數(shù)字删顶,當(dāng)是5的倍數(shù)就打印 “Buzz” 竖螃。當(dāng)數(shù)字同時(shí)是3和5的倍數(shù) 時(shí),打印 “FizzBuzz” 逗余。

11.建立一個(gè) Go 程序打印下面的內(nèi)容(到 100 個(gè)字符):

? ? ? A

? ? ? AA

? ? ? AAA

? ? ? AAAA

? ? ? AAAAA

? ? ? AAAAAA

? ? ? AAAAAAA

12.建立一個(gè)程序統(tǒng)計(jì)字符串里的字符數(shù)量: asSASA ddd dsjkdsjs dk 同時(shí)輸出這個(gè)字符串的字節(jié)數(shù)特咆。 提示: 看看 unicode/utf8 包。

擴(kuò)展/修改上一個(gè)問(wèn)題的程序录粱,替換位置 4 開(kāi)始的三個(gè)字符為 “abc”腻格。

13.編寫(xiě)一個(gè) Go 程序可以逆轉(zhuǎn)字符串,例如 “foobar” 被打印成 “raboof”关摇。

編寫(xiě)計(jì)算一個(gè)類(lèi)型是 float64 的 slice 的平均值的代碼荒叶。
package main

import "fmt"

func main(){

? ? ? ? f:=[]float64{4.5,5,3,6,8,10.3}

var total float64=0

for i:=0;i<len(f);i++{

? ? ? ? total=f[i]+total

}

fmt.Printf("avg=%f\n",total/float64(len(f)))

}

14.編寫(xiě)函數(shù),返回其(兩個(gè))參數(shù)正確的(自然)數(shù)字順序:

15.編寫(xiě)函數(shù)接受整數(shù)類(lèi)型變參输虱,并且每行打印一個(gè)數(shù)字些楣。
package main

import "fmt"

func res( a ...int){

? ? ? ? for _,b:=range a{

? ? ? ? fmt.Printf("%d\t",b)

? ? ? ? }

}

func main(){

? ? ? ? res(5,7,8,30,29,4-4,5067)

16.斐波那契數(shù)列以:1,1,2,3,5,8,13,... 開(kāi)始∠芏茫或者用數(shù)學(xué)形式表達(dá):x 1 = 1;x 2 = 1;x n = x n?1 + x n?2 ?n > 2愁茁。 編寫(xiě)一個(gè)接受 int 值的函數(shù),并給出這個(gè)值得到的斐波那契數(shù)列亭病。

17.編寫(xiě)一個(gè)函數(shù)鹅很,找到 int slice ( []int ) 中的最大值和最小值。

18.編寫(xiě)一個(gè)針對(duì) int 類(lèi)型的 slice 冒泡排序的函數(shù)

19.編寫(xiě)一個(gè)函數(shù)返回另一個(gè)函數(shù)罪帖,返回的函數(shù)的作用是對(duì)一個(gè)整數(shù) +2促煮。函數(shù)的名 稱(chēng)叫做 plusTwo 。然后可以像下面這樣使用: p := plusTwo() fmt.Printf("%v\n", p(2)) 應(yīng)該打印 4整袁。

20.編寫(xiě)一個(gè)程序菠齿,模仿 Unix 的 cat 程序。對(duì)于不知道這個(gè)程序的人來(lái)說(shuō)坐昙,下面的 調(diào)用顯示了文件 的內(nèi)容:

使其支持 n 開(kāi)關(guān)绳匀,用于輸出每行的行號(hào)

21.實(shí)現(xiàn)斐波拉契 使用channel。

22. 定義一個(gè)包括8個(gè)字符串的切片,輸出下標(biāo)3-5的字符串疾棵,輸出前5個(gè)字符串戈钢,輸出6以后字符串。

23.題目: 有1是尔、2殉了、3、4個(gè)數(shù)字嗜历,可以組成多少個(gè)互不相同并且無(wú)重復(fù)數(shù)字的三位數(shù)宣渗?都是多少?

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("這個(gè)數(shù)是: ", i, j, k)

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

24.輸入一個(gè)不定長(zhǎng)的成績(jī)單梨州,使用不定參數(shù)函數(shù)返回三個(gè)值分別為課程門(mén)數(shù)痕囱,平均分,總分暴匠。

25.編程實(shí)現(xiàn):使用itoa和const鞍恢,定義一周的數(shù)值,如Monday=1 每窖,Tuesday=2帮掉,依次類(lèi)推Sunday=7。

26.編程實(shí)現(xiàn):實(shí)現(xiàn)字符串"123"和整數(shù)123之間的互轉(zhuǎn)窒典,并格式化輸出他們轉(zhuǎn)換后的類(lèi)型和值蟆炊。

27.編程實(shí)現(xiàn):使用類(lèi)型別名,讓go語(yǔ)言支持中文關(guān)鍵字瀑志,如 int可以用整數(shù)型替代涩搓。

28.編程實(shí)現(xiàn):聲明一組變量:姓名(Name),年齡(Age)劈猪,籍貫(From)昧甘,專(zhuān)業(yè)(Major),從控制臺(tái)接收內(nèi)容并賦值給這些變量,最后輸出這些變量的值战得。

29.寫(xiě)一個(gè)程序充边,獲取當(dāng)前時(shí)間,并格式化成 2017/06/15 08:05:00形式常侦。

30.寫(xiě)一個(gè)程序浇冰,統(tǒng)計(jì)一段代碼的執(zhí)行耗時(shí),單位精確到微秒聋亡。

31.計(jì)算99乘法表

32.寫(xiě)一個(gè)程序湖饱,對(duì)包含中文的字符串逆序。

33.寫(xiě)一個(gè)程序杀捻,判斷一個(gè)字符串串是否是回文。

34.求1到100之內(nèi)的所有質(zhì)數(shù),并打印到屏幕上/*致讥、

35.打印出所有的“水仙花數(shù)”仅仆,所謂“水仙花數(shù)”是指?一個(gè)三位數(shù),其各位數(shù)字?立方和等于該數(shù)本身垢袱。例例如:153是一個(gè)“水仙花數(shù)”墓拜,因?yàn)?53=1的三次方+5的三次方 +3的三次方。求100到1000之間的所有水仙花數(shù)请契,

36.輸入一行字符咳榜,分別統(tǒng)計(jì)出其中英文字母、空格爽锥、數(shù)字和其它字符的個(gè)數(shù)涌韩。

37.生成1000個(gè)隨機(jī)數(shù)組,實(shí)現(xiàn)一個(gè)插入排序氯夷,輸出執(zhí)行時(shí)間臣樱。

38.生成1000個(gè)隨機(jī)數(shù)組,實(shí)現(xiàn)一個(gè)選擇排序腮考,輸出執(zhí)行時(shí)間雇毫。

39.生成1000個(gè)隨機(jī)數(shù)組,實(shí)現(xiàn)一個(gè)冒泡排序踩蔚,輸出執(zhí)行時(shí)間棚放。

40.用sort包對(duì)數(shù)組排序

40.實(shí)現(xiàn)一個(gè)密碼生成工具,支持以下功能
用戶(hù)可以通過(guò) -l 指定生成密碼的長(zhǎng)度馅闽。提示:可以用標(biāo)準(zhǔn)包 “flag”解析命令行參數(shù) 用戶(hù)可以通過(guò) -t 指定生成密碼的字符集飘蚯,比如 -t num生成全數(shù)字的密碼。
-t char 生成包含全英?文字符的密碼捞蛋,
-t mix包含生成數(shù)字和英文的密碼孝冒,
-t advance 生成包含數(shù)字、英文及特殊字符的密碼

41.實(shí)現(xiàn)一個(gè)類(lèi)似 linux的tree 命令拟杉,輸入tree.exe能夠以樹(shù)狀的形式當(dāng)前目錄下所有文件

42.隨機(jī)生成1000個(gè)100以?xún)?nèi)整數(shù)保存到數(shù)組庄涡,并倒序打印以及求平均值、最大值搬设、最小值的下標(biāo)穴店、并查找里面是否有55.

43.實(shí)現(xiàn) WordCount。它應(yīng)當(dāng)返回一個(gè)映射拿穴,其中包含字符串 s 中每個(gè)“單詞”的個(gè)數(shù)泣洞。函數(shù) wc.Test 會(huì)對(duì)此函數(shù)執(zhí)行一系列測(cè)試用例,并輸出成功還是失敗默色。

你會(huì)發(fā)現(xiàn) strings.Fields 很有幫助球凰。

代碼段:

package main

import "strings"

import (

"golang.org/x/tour/wc"

)

func WordCount(s string) map[string]int {

m:=make(map[string]int)

danci:=strings.Fields(s)

for _,value := range danci{

m[value]++;

}

return m

}

func main() {

wc.Test(WordCount)

}

43:編寫(xiě)一個(gè)程序,用于在默認(rèn)情況下輸出其標(biāo)準(zhǔn)輸入的 SHA256 散列,但也支持一個(gè)輸出 SHA384 或 SHA512 散列的命令行標(biāo)記.

44. echo 程序呕诉,使其能夠打印 os.Args[0] 缘厢,即被執(zhí)行命令本身的名字

package main

import (

"fmt"

"os"

)

func main() {

var s, sep string

for i := 0; i < len(os.Args); i++ {

s += sep + os.Args[i]

sep = " "

}

fmt.Println(s)

}

45.修改 echo 程序,使其打印每個(gè)參數(shù)的索引和值甩挫,每個(gè)一行

package main

import (

"fmt"

"os"

)

func main() {

for k, arg := range os.Args[0:] {

fmt.Println(k, arg)

}

45.一個(gè)整數(shù)輸出二進(jìn)制結(jié)果并按位取反贴硫,輸入結(jié)果。并輸出左移右移一位后結(jié)果伊者。兩個(gè)整數(shù)進(jìn)行按位與和按位異或操作英遭。

46.循環(huán)輸出1~50的數(shù)字遇到包含4的數(shù)字跳過(guò)。

47.開(kāi)啟十個(gè)協(xié)程亦渗,實(shí)現(xiàn)0到9這十個(gè)數(shù)據(jù)自己和自己相加挖诸。(這十個(gè)幾乎是同時(shí)執(zhí)行的。)

48.建立一個(gè)包實(shí)現(xiàn)加減乘除央碟,四則運(yùn)算.在主程序中調(diào)用該包税灌。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亿虽,隨后出現(xiàn)的幾起案子菱涤,更是在濱河造成了極大的恐慌,老刑警劉巖洛勉,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粘秆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡收毫,警方通過(guò)查閱死者的電腦和手機(jī)攻走,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)此再,“玉大人昔搂,你說(shuō)我怎么就攤上這事∈淠矗” “怎么了摘符?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)策吠。 經(jīng)常有香客問(wèn)我逛裤,道長(zhǎng),這世上最難降的妖魔是什么猴抹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任带族,我火速辦了婚禮,結(jié)果婚禮上蟀给,老公的妹妹穿的比我還像新娘蝙砌。我一直安慰自己阳堕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布择克。 她就那樣靜靜地躺著嘱丢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祠饺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天汁政,我揣著相機(jī)與錄音道偷,去河邊找鬼。 笑死记劈,一個(gè)胖子當(dāng)著我的面吹牛勺鸦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播目木,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼换途,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了刽射?” 一聲冷哼從身側(cè)響起军拟,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎誓禁,沒(méi)想到半個(gè)月后懈息,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摹恰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年辫继,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俗慈。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姑宽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闺阱,到底是詐尸還是另有隱情炮车,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布馏颂,位于F島的核電站示血,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏救拉。R本人自食惡果不足惜难审,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亿絮。 院中可真熱鬧告喊,春花似錦麸拄、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至秆吵,卻和暖如春淮椰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纳寂。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工主穗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毙芜。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓忽媒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親腋粥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晦雨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 整理自golang中文網(wǎng)https://studygolang.com/ 以及公眾號(hào) golang來(lái)啦 (侵刪)...
    p_gerer閱讀 1,805評(píng)論 1 2
  • 目錄 1.go 各種代碼運(yùn)行 2.go 在線編輯代碼運(yùn)行 3.通過(guò) Gob 包序列化二進(jìn)制數(shù)據(jù) 4.使用 ...
    楊言錫閱讀 1,130評(píng)論 0 1
  • GO語(yǔ)言基礎(chǔ) 認(rèn)識(shí)并安裝GO語(yǔ)言開(kāi)發(fā)環(huán)境 Go語(yǔ)言簡(jiǎn)介 Go語(yǔ)言是谷歌2009年發(fā)布的第二款開(kāi)源編程語(yǔ)言 go語(yǔ)言...
    進(jìn)擊的大東閱讀 446評(píng)論 0 0
  • 一、基礎(chǔ) 1.變量 強(qiáng)類(lèi)型語(yǔ)言 聲明單個(gè)變量Go語(yǔ)言在聲明變量時(shí)隘冲,自動(dòng)對(duì)變量對(duì)應(yīng)的內(nèi)存進(jìn)行初始化操作闹瞧,不同于C語(yǔ)言...
    MrKan閱讀 148評(píng)論 0 0
  • //GO基本語(yǔ)法介紹 package main // 聲明main包 import( // 導(dǎo)入...
    濤燾閱讀 1,056評(píng)論 0 0