函数课堂练习题和作业 | 学习笔记

简介: 简介:快速学习函数课堂练习题和作业

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :函数课堂练习题和作业】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9614


函数课堂练习题和作业

 

基本内容:

一、函数可以没有返回值案例,编写一个函数,从终端输入一个整数打印出对应的金子塔

二、编写一个函数,从终端输入一个整数(1一9),打印出对应的乘法表

三、编写函数,对给定的一个二维数组(3×3)转置

说明

在前面几节课讲 for 循环的时候,讲过两个案例。一个是用 for 循环打印金字塔,另一个是用 for 循环打印99乘法表。没有用函数,用的是面向过程的方式,现在要求用函数的方式实现。打印金字塔案例在第5章多重循环控制里讲到过,当时讲这个案例的时候没有用函数封装,而用的是原始的面向过程的方式,做开发的时候需要将这些功能封装到函数内部,需要打印金字塔或者乘法表的时候直接进行调用该函数。


一、函数可以没有返回值案例,编写一个函数,从终端输入一个整数打印出对应的金子塔

1、分析思路

将原来写的打印金字塔的案例,使用函数的方式进行封装,在需要打印时,直接调用即可。

2、操作方法

先把代码主体结构写出,引入包 fmt ,把代码主函数写出来,将打印金字塔的代码封装到函数中 func printPyramid(totalLevel int) 先定义层数,没有返回值。接收了一个 totalLevel ,调用 printPyramid 函数,就可以打印金字塔。先传一个9,打出的是空心金字塔。

image.png

如果不想打空心金字塔,把 if 和 else 注释掉,就变为实心金字塔了。要求是从终端输入一个整数打印出对应的金子塔,先定义一个变量 var n int,输入 fmt.Println ("请输入打印金字塔的层数"),必须要传入地址,地址传入之后才能够打印出外面的“n”。

3、代码如下:

package main

import (

"fmt"

)

//将打印金字塔的代码封装到函数中

func printPyramid(totalLevel int){

// i表示层数

for i :=1; i <= totalLevel; i++ {

//在打印*前先打印空格

for k := 1; k <= totalLevel - i; k++ {

fmt.Print(”")

}

//j表示每层打印多少*

for j :=1; j = 2*i - 1;j++ {

fmt.Print("*")

}

fmt.Println()

}

}

func main() {

//调用printPyramid函数,就可以打印金字塔

//从终端输入一个整数打印出对应的金子塔

var n int

fmt.Println ("请输入打印金字塔的层数")

fmt.scanln ( &n ) 

printPyramid (9 )

}

输出结果如下图所示:

image.png


二、编写一个函数,从终端输入一个整数(1-9),打印出对应的乘法表

1、分析思路:

就是将原来写的调用九九乘法表的案例,使用函数的方式封装,在需要打印时直接调用即可

2、操作方法

新建一个文件夹 printmulti,新建一个文件 main.go ,引入包 fmt ,把代码主函数写出来。编写一个函数调用九九乘法表,接收一个整数 int ,不需要返回值,代码中 num 代表层数,形参改为 num。从终端输入一个整数表示要打印的乘法表对应的数,定义一个变量 num,fmt.Println(“请输入九九乘法表的对应数"),拿到 num 这个值,再继续调用,直接传值过去。

3、代码如下:

package main

import (

"fmt"

)

//编写一个函数调用九九乘法表

func printMulti(num int) {

//打印出九九乘法表

//i表示层数

for i :=1; i <= num; i++ {

for j :=1; j =i; j++ {

fmt.Printf("%v* %v = %v  \t",j, i, j* i)

}

fmt.Println()

}

}

func main() {

//从终端输入一个整数表示要打印的乘法表对应的数

var num int

fmt.Println(“请输入九九乘法表的对应数")

fmt.scanln(&num)

printMulti(num)

}

image.png

通过这个案例可以看到把功能封装到函数里调用更加的方便,在做程序开发的时候,如果能够把功能封装到函数中,尽量把它封装到函数中,这样有利于后面的调用,代码也看起来简洁。


三、编写函数,对给定的一个二维数组(3×3)进行转置,这个题讲数组的时候再完成。

image.png

转置就是将“123456789”经过转置变成“147258369”,把行和列进行一个对换。比如说2转置过后就放到4的位置,4和2交换位置。3和7交换就是行和列交换。中间159这条线是对称的,没有变化。因为这个题还没解讲数组,需要预习数组方面的内容才可以完成,这个题是一个课后练习课后作业。

相关文章
|
5月前
|
C++
c++primer Plus 6 的课后题(第三章3.6)
c++primer Plus 6 的课后题(第三章3.6)
|
6月前
|
存储 安全 编译器
《C#程序设计》期末大作业复习答案
《C#程序设计》期末大作业复习答案
|
Cloud Native 安全 架构师
课后总结|学习笔记
快速学习课后总结
课后总结|学习笔记
|
Cloud Native 架构师 Devops
课后总结 | 学习笔记
快速学习课后总结
课后总结 | 学习笔记
|
网络协议 测试技术 Go
方法课堂练习题(2)|学习笔记
快速学习方法课堂练习题(2)
方法课堂练习题(2)|学习笔记
【C#】【平时作业】习题-3-数组
【C#】【平时作业】习题-3-数组
78 0
【C#】【平时作业】习题-3-数组
|
C# Windows
【C#】【平时作业】习题-4-流程控制
【C#】【平时作业】习题-4-流程控制
126 0
【C#】【平时作业】习题-4-流程控制
【C#】【平时作业】习题-12-事件
【C#】【平时作业】习题-12-事件
90 0
|
存储 编译器 C#
【C#】【平时作业】习题-13-数据类型
【C#】【平时作业】习题-13-数据类型
99 0
|
网络协议 测试技术 Go
方法课堂练习题(1)|学习笔记
快速学习方法课堂练习题(1)