2023-2024-1 学号20231318《计算机基础与程序设计》第8周学习总结
作业信息
这个作业属于哪个课程 | 2023-2024-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2023-2024-1计算机基础与程序设计第八周作业 |
这个作业的目标 | 自学教材《计算机科学概论》第9章以及《C语言程序设计》第7章并完成云班课测试。 |
作业正文 | 2023-2024-1 学号20231318《计算机基础与程序设计》第八周学习总结 |
教材学习内容总结
1.《计算机科学概论》第九章:
主要介绍了
- 面向对象方法,分解过程为头脑风暴、过滤、场景、责任算法;
- 翻译过程(编译器、解释器);
- 程序设计语言范型,有两种主要的范型分别为命令式范型(面向过程、面向对象)、声明式范型(函数式模型、逻辑编程);
- 高级程序设计语言的功能性(布尔表达式、数据归类、输入\输出结构、控制结构);
- 面向对象语言的功能性(封装、类、继承、多态);
- 过程设计与面向对象设计的区别。
2.《C语言程序设计》第七章:
主要介绍了
- 分而治之与信息隐藏;
- 函数的定义与调用(函数的定义、调用、原型、返回值);
- 函数封装和防御性程序设计;
- 函数的递归调用和递归函数;
- 变量的作用域和生存期(局部变量、全局变量;自动变量、静态变量、外部变量、寄存器变量);模块化程序设计(模块分解的基本原则、自顶向下和逐步求精、多文件编程);
- 代码风格(代码行、对齐与缩进、空行及代码行内的空格、长行拆分、程序注释)。
教材学习中的问题和解决过程
- 函数为什么不能返回多个值?怎么达到类似效果?
通过询问AI和课上学习,我知道了
(1)在大多数编程语言中,函数通常只能返回一个值。这是因为函数的设计初衷是为了执行特定的任务并返回结果,这个结果可以是任何数据类型(整数、浮点数、对象、结构体等),但通常只能返回一个。
返回多个值会引入复杂性,并且可能会使代码难以理解和维护。因此,为了简化语言的设计和提高代码的清晰度,大多数编程语言限制了函数只能返回单个值。
(2)有一些方法可以实现类似返回多个值的效果:
-
(未学)使用数据结构:定义一个结构体或类,在其中封装多个值,然后将这个结构体或类的实例作为函数的返回值。这样,虽然从技术上来说只返回了一个对象,但这个对象可以包含多个属性或值。
-
使用数组或集合:有些语言支持返回数组或集合类型,这些数组或集合可以包含多个元素,从而间接实现返回多个值的效果。
-
使用指针参数:通过传递指向变量的指针作为函数参数,函数可以修改这些变量的值,间接实现返回多个值的效果。
-
数组为什么不需要指针?
将数组作为参数传递给函数时,实际上传递的是数组的首地址,因此在函数内部可以通过这个地址来访问整个数组。这使得在函数内对数组的操作会影响到原始数组。
这种数组的行为是 C 语言中的一个特例。当声明一个数组时,数组名实际上就是数组的地址。因此,在函数参数中,传递数组时,实际上是传递了数组的地址。
基于AI的学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 10篇 | 300小时 | |
第一周 | 200/200 | 1/1 | 28/28 | 学会了markdown语法 |
第二周 | 100/300 | 1/2 | 10/38 | 学会了使用chatgpt |
第三周 | 150/450 | 1/3 | 15/53 | 学习运用c语言编写简单程序 |
第四周 | 150/600 | 1/4 | 20/73 | 学习运用C语言输出数学计算程序,熟悉门电路知识 |
第五周 | 120/720 | 1/5 | 13/86 | 学习运用基本的机器语言、汇编语言和伪代码 |
第六周 | 180/900 | 1/6 | 20/106 | 学习综合运用分支结构与循环结构 |
第七周 | 200/1100 | 1/7 | 14/120 | 学习运用跳转结构与调用函数 |
第八周 | 300/1400 | 1/8 | 13/133 | 学习运用一维和二维数组以及基本的指针用法 |
预计学习时间:12小时 | ||||
实际学习时间:13小时 |