学期(2024-2025-1) 学号(20241420) 《计算机基础与程序设计》第9周学习总结
学期(2024-2025-1) 学号(20241420) 《计算机基础与程序设计》第9周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(2024-2025-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业) |
这个作业的目标 | <计算机科学概论(第七版)第10,11章 并完成云班课测试 |
《C语言程序设计》第8章并完成云班课测试> | |
作业正文 | ... 本博客链接 |
教材学习内容总结
操作系统(Operating System, OS)
-
定义与功能:
- 操作系统是计算机系统中的一个系统软件,负责管理计算机硬件与软件资源,提供用户界面,并为其他应用程序运行提供一个抽象层。
- 它主要负责进程管理、内存管理、文件系统管理、输入/输出设备管理和网络通信。
-
进程管理:
- 操作系统通过进程来执行程序,管理进程的创建、执行、同步、通信和终止。
-
内存管理:
- 操作系统负责分配和管理内存资源,包括内存分配、内存保护、地址转换和内存优化。
-
文件系统管理:
- 操作系统提供文件的创建、删除、读取和写入功能,以及文件的组织和存储。
-
输入/输出(I/O)管理:
- 操作系统管理各种输入/输出设备,如键盘、鼠标、显示器和打印机,以及数据传输。
-
用户界面:
- 提供用户与计算机交互的界面,如命令行界面(CLI)和图形用户界面(GUI)。
文件系统(File System)
-
定义:
- 文件系统是用于存储和组织计算机文件以及它们的数据的一种系统,它允许用户对文件进行访问和管理。
-
文件和目录:
- 文件是存储在非易失性存储介质上的一组数据,目录(或文件夹)是文件的集合,用于组织文件。
-
文件存储:
- 文件系统将文件存储在硬盘上,使用文件分配表(FAT)、inode(UNIX/Linux)等数据结构来记录文件的存储位置。
-
文件访问:
- 提供文件的创建、读取、写入和删除操作,以及文件权限和属性的管理。
-
文件共享和同步:
- 在多用户环境中,文件系统需要处理文件的共享和同步问题。
-
文件系统的类型:
- 不同的操作系统有不同的文件系统,如NTFS(Windows)、FAT32、ext4(Linux)、HFS+(macOS)等。
目录(Directory)
-
定义:
- 目录是文件系统中用于组织文件和子目录的一种结构,类似于现实生活中的文件夹。
-
目录结构:
- 目录可以包含文件和其他目录,形成树状结构,便于文件的分类和管理。
-
路径:
- 路径是指定文件或目录位置的字符串,可以是绝对路径或相对路径。
-
目录操作:
- 用户可以创建、删除、重命名目录,以及浏览目录内容。
-
目录权限:
- 操作系统定义了目录的访问权限,控制用户对目录内文件的访问。
-
目录的物理存储:
- 在文件系统中,目录项通常包含文件名、文件类型、权限、文件大小和指向文件数据的指针。
这些概念是计算机科学中非常基础且重要的部分,它们共同构成了计算机系统的基础设施,使得用户能够有效地与计算机交互和管理数据。
教材学习中的问题和解决过程( AI)
- 问题1:二叉树的不同遍历分别有什么用呢?
- 问题1解决:每种遍历方式都有其特定的应用场景和特点。例如,前序遍历可以用于复制树结构;中序遍历可以用于二叉搜索树的排序;后序遍历可以用于释放树占用的内存空间。
- 问题2:单链表节点的删除如何利用指针
- 问题2解决:
检查边界条件:如果链表为空(即头节点为NULL)或者要删除的节点位置不合法(比如小于0或大于链表长度),则直接返回错误或不执行任何操作;
处理删除头节点的情况:如果要删除的是头节点(即第一个节点),则需要更新头节点为下一个节点;
寻找前驱节点:使用一个指针(通常称为prev)从头节点开始遍历链表,找到要删除节点的前一个节点;
删除节点:将前驱节点的next指针指向要删除节点的next节点,从而绕过要删除的节点;
释放内存:如果链表允许动态内存分配,删除节点后需要释放该节点的内存;
更新链表长度:如果链表维护了长度信息,删除节点后需要更新长度。
基于AI的学习
代码调试中的问题和解决过程
- 问题1:题目要求未能完全理解,导致部分输出小数位数不符合要求
- 问题1解决方案:认真阅读题目,再据此修改代码
- 问题2:经常出现部分正确情况
- 问题2解决方案:理解在许多情况下部分正确是指平台批阅时输入多组检查值,其中有一些结果不对,可借此推断,调试代码
- 问题3:使用函数导致一些重复代码块十分占用空间以及撰写时间
- 问题3解决方案:利用函数知识声明并使用函数,有些需要多个返回值等的特殊函数可以使用指针;
- 问题4:程序运行时出现变量值累积的情况
- 问题4解决方案:记住在合适的位置将变量初始化为零;
- 问题5:使用goto易造成代码结构混乱、不易理解
- 问题5解决方案:使用条件判断限制的while循环替代;
- 问题6:在输出语句时多次没有考虑到美观问题,不加“\n”
- 问题6解决方案:如果还有下一步的输入,就一定记得加“\n”保持美观。
其他(感悟、思考等)
学习了数字和指针以后感觉自己能够解决的问题明显变多了,编程能力也变强了,但是在如何熟练应用上还是不够,说不定本身对此的理解就还不够。还是要多多练题,去巩固知识,摸到自己能力的边界。要让自己对于数组和指针的熟练程度达到像选择分支和循环结构那样熟练,继续向下的学习也就能更顺利通畅。同时计算机科学概论的学习也应该稳步推进,不能只顾一边而丢了另一边。两边同时努力,相信自己的水平会越来越高!
-
计划学习时间:8小时
-
实际学习时间:10小时
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步