1、练习1

生成一个随机数,让一个用户去猜这个数是多少?

代码示例如下:

执行结果如下:

补充:

Scanf那里一定要加上 ,因为加上的话就已经表示以回车换行符为止,这样就已经保证了能够获取到用户输入的真正的数字,你如果不加 ,他就不行了,就会识别2次一个是你输入的数字,一个是回车。

2、练习2

题目:求数组所有元素之和

方法1:(基础版)

执行结果如下:

方法2:(高阶)

 执行结果如下:

3、练习3

题目:找出数组中和为给定值的两个元素的下标,比如数组:[1,3,5,8,7],找出两个元素之和等于8的下标分别是(0, 4)和(1,2)

执行结果如下:

4、练习4

题目:下列程序输出什么?

 答:输出结果如下:

解释:

sa切片在初始化时长度就是5了,因为类型为string,所以为默认值,也就是sa前五个元素是5个空字符串。

5、练习5

题目:使用golang标准包 “sort”对数组进行排序

代码示例如下:

 执行结果如下:

补充:

sort包中的Ints方法为什么只能传入切片呢?

因为:1、数组长度是固定的,如果传入的数组大于sort这里规定的数组长度,那就传不进去了,所以必须用切片;2、数组是值类型,传进去相当于拷贝一份,排序相当于对拷贝的副本进行排序,外面还是不会排序,所以一定要传一个切片进去;

6、练习6

题目:

实现一个密码生成工具,支持以下功能:

a) 用户可以通过-l指定生成密码的长度

b) 用户可以通过-t指定生成密码的字符集,比如-t num生成全数字的密码

-t char 生成包含全英文字符的密码, -t mix包含生成数字和英文的密码,

-t advance 生成包含数字、英文以及特殊字符的密码

提示:可以用标准包 “flag”解析命令行参数

思路:

1.先解析命令行参数;

2.定义变量接收用户选择;

3.生成随机密码for循环

代码示例如下:

 执行结果如下:

7、补充练习

打印出英文字母a-z;

思路:因为字母在底层存储都是assci码,所以我们借助这点来进行打印。大写的直接换成大写即可

代码示例如下:

 执行结果如下: