2023-2024-1 20231320 《计算机基础与程序设计》第九周学习总结
2023-2024-1 20231320 《计算机基础与程序设计》第九周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(2023-2024-1 计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(2022-2023-1计算机基础与程序设计第九周作业) |
这个作业的目标 | <自学《计算机基础与程序设计》第10,11章并完成云班课作业 、自学《C语言程序设计》第8章并完成云课班作业> |
作业正文 | 作业正文 |
教材学习内容总结
《计算机基础与程序设计》
第十章主要主要介绍了操作系统,,包括其中内存、进程、CPU管理。其中内存管理有单块内存管理、分区内存管理、页式内存管理,进程管理则包含进程状态,进程控制块,CPU调度等。
第十一章主要讲了文件系统和目录。所有文件都可以被归为文本文件和二进制文件。在文本文件中,数据字节是字符集中的字符;二进制文件则要求基于文件中的数据给位串一个特定的解释。文件类型可以通过文件扩展名来说明。在文件的使用中有顺序文件访问和直接文件访问,文件目录相互包含可以形成目录树。在文件的调用也涉及到我们之前学习过的文件路径和磁盘调度
《C语言程序设计》
数组是一组具有相同类型变量的集合,它是一种顺序储存、随机访问的顺序表结构。一维数组在内存中占有的字节数为:数组长度sizeof,二维数组占用的字节数为一维长度二维长度*sizeof。由于数组查找的原因,数组第二维的长度申明永远不能省略。若要把一个数组传递给一个函数,只要使用不带方括号的数组名作为函数实参调用即可,由于数组名代表数组第一个元素的地址,用数组名实际上是将数组的首地址传给被调函数。所以数组的个数需要另定义一个整形来表示。数组中的查找包括折半查找法和顺序查找法。
教材学习中的问题和解决过程
问题1:在自己编码时无法在定义后增加数组值
解决:最初定义数组为一个常量而不是一个变量,只需要保证数组的初始值足够大即可
问题2:对二维函数的运用不熟悉
解决:经过询问ChatGPT,我了解到可以通过for循环来输入数据,同时可以利用二维数组来储存表格
基于AI的学习
q
我最近在学习C语言中二维数组,请你用苏格拉底的方法向我提问,一次一个问题,每次给出你对我回答的评价再问下一问题
AI
当你在处理二维数组时,你是如何声明一个二维数组的?请详细描述。
q
定义一个数组名和两个【】,并在【】内输入数组的大小
AI
很好。那么接下来的问题是,对于一个已经声明的二维数组,你是如何访问或修改特定位置的元素的?
q
利用对数组名的调用和下标来定位数组的位置,在对该元素进行修改
AI
很好地回答了前一个问题。接下来,我想问一下,C语言中的二维数组在内存中是如何存储的?你能解释一下数组元素在内存中的排列方式吗?
q
首先利用数组名来定义其实数组的位置,并在之后留出对应字节的内存,在查找是一维数组下标对应之后的字节,二维下标对应偏移数,通过这种方式来存储元素
AI
很好。继续探讨二维数组的话题,你知道C语言中多维数组的初始化是怎样的吗?如果有一个二维数组,你是如何为它的每个元素赋初值的?
q
我不知道多维数组如何初始化。我将用for循环来为每个元素赋值
AI
理解了。那么关于初始化,对于一个二维数组,你可以使用嵌套的循环结构,为每个元素赋予初始值。接下来的问题是,你能展示一段代码,演示如何使用嵌套的循环来初始化一个二维数组吗?
q
你觉得我掌握这个知识点了吗?
AI
你对数组的基本声明、访问、修改等方面有了一定的了解。你提到了使用数组名和下标来访问和修改数组元素的方法,并且了解了使用嵌套循环来初始化二维数组。
如果你对这些概念感到熟悉并且能够在实际的编程中应用它们,那么你已经掌握了这个知识点的基本要点。如果你还有其他关于数组或其他C语言特性的问题,我将很乐意帮助你更深入地理解。
上周错题改错
无
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/20 | 1/2 | 20/20 | 通过计算机概论的略读,对计算机有了一个更准确的初步了解 |
第二周 | 5/10 | 2/4 | 5/25 | 对计算机和编程有了基础的专业了解 |
第三周 | 5/10 | 1/4 | 7 /32 | 对C语言有了初步的了解,编程开始入门 |
第四周 | 50/50 | 2/4 | 7/38 | 学会使用编程工具,逻辑门,分支等重要编程基础 |
第五周 | 40/120 | 2/4 | 6/20 | 学会一些编程语言,对codeblocks的使用有了新的学习 |
第六周 | 400/520 | 1/5 | 8/28 | 学会了关于分支等的一些基础编程语言,同时也对计算机的自学有的更深的体会,能够自己解决部分不懂的问题 |
第七周 | 350/870 | 2/7 | 7/35 | 学会了关于自定义函数的使用,以及代码的编写 |
第八周 | 350/1220 | 1/8 | 8/41 | 学习了数组的概念,同时也了解到一些自己的不足如对Python不了解,无法快速完成云班课任务,本周还学习了多维数组的概念 |
第九周 | 350/1570 | 1/9 | 9/50 | 学习了二维数组和指针的概念,还通过实验让自己对之前的知识有了一个融会贯通 |