2024-2025-1学号20241309《计算机基础与程序设计》第九周学习总结

news/2025/2/26 22:14:40/文章来源:https://www.cnblogs.com/mlq061015/p/18562604

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 2024-2025-1计算机基础与程序设计第九周作业
这个作业的目标

|作业正文|2024-2025-1学号20241309《计算机基础与程序设计》第九周学习总结

教材学习内容总结

《计算机科学概论》第十章:

(一)操作系统的定义与角色

操作系统是管理计算机硬件和软件资源、控制程序执行、提供人机界面等的系统软件。它充当用户与计算机硬件之间的中介,使得多个程序能高效、有序地共享硬件资源。

(二)操作系统的责任

资源管理:包括对处理器(CPU)、内存、输入输出设备、文件等资源的管理。确保各程序能合理获取所需资源,避免冲突。
进程管理:创建、调度、终止进程,协调进程间的通信和同步。
提供用户界面:以命令行、图形界面等形式让用户方便地与计算机交互,执行程序、管理文件等。

(三)内存与进程管理

内存管理:负责分配和回收内存空间给进程。采用如分区存储管理、分页存储管理、分段存储管理等技术。通过虚拟内存技术,可让进程使用比实际物理内存更大的内存空间,将部分暂时不用的数据存放到磁盘等辅助存储器中。
进程管理:进程是正在执行的程序实例,包含程序代码、数据、程序计数器等信息。操作系统跟踪进程状态(如就绪、运行、阻塞等),通过进程调度算法(如先来先服务、短作业优先、时间片轮转等)决定哪个进程获得 CPU 执行权。进程间可通过共享内存、消息传递等方式进行通信和同步,以协调完成任务。

(四)分时系统

分时系统允许多个用户通过终端同时与计算机交互。操作系统将 CPU 时间划分成很短的时间片,轮流分配给各个用户的进程。由于时间片切换速度很快,每个用户感觉自己独占计算机,提高了计算机资源的利用率和用户的工作效率。

(五)CPU 调度

CPU 调度的目标是选择合适的进程在 CPU 上执行,以提高系统性能。常见的调度算法有:
先来先服务(FCFS):按照进程到达的先后顺序分配 CPU 时间。简单但可能导致短作业等待时间过长。
短作业优先(SJF):优先选择执行时间短的进程,能有效减少平均周转时间,但对长作业不利且需要预先知道作业执行时间。
时间片轮转(RR):将 CPU 时间划分成等长的时间片,每个进程轮流在时间片内执行,适用于分时系统,能保证各进程公平地获得 CPU 时间。
优先级调度:根据进程的优先级分配 CPU 时间,优先级高的进程先执行,但可能出现低优先级进程饥饿的情况。

《计算机科学概论》第十一章:

(一)文件

文件是存储在辅助存储器(如磁盘)上的具有名称的一组相关信息的集合。可以是程序代码、数据、文档等。文件有文件名、文件类型、文件大小、创建时间、修改时间等属性。

(二)文件系统

文件系统是操作系统用于组织、存储、检索文件的机制。它管理文件在磁盘等存储设备上的存储位置,提供文件的创建、删除、读写、查找等操作接口。常见的文件系统有 FAT、NTFS(用于 Windows)、ext4(用于 Linux)等。文件系统通过目录结构来组织文件,方便用户和系统对文件进行管理和访问。

(三)文件保护

为了防止文件被非法访问、修改或删除,文件系统采用多种文件保护机制。如设置文件访问权限(读、写、执行权限),通过用户账号和密码对用户进行身份验证,只有具有相应权限的用户才能对文件进行特定操作。还可以采用加密技术对文件内容进行加密,确保文件的保密性。

(四)磁盘调度

磁盘调度的目的是减少磁盘 I/O 操作的平均等待时间,提高磁盘 I/O 性能。常见的磁盘调度算法有:
先来先服务(FCFS):按照磁盘 I/O 请求到达的先后顺序处理,简单但可能导致磁头频繁大幅度移动,效率较低。
最短寻道时间优先(SSTF):优先处理距离当前磁头位置寻道距离最短的磁盘 I/O 请求,能有效减少磁头移动距离,但可能导致某些请求长时间等待。
扫描算法(SCAN):磁头从磁盘一端开始,向另一端移动,沿途处理请求,到达另一端后再反向移动,可避免某些请求饥饿的情况。
循环扫描算法(CSCAN):与扫描算法类似,但磁头只单向移动,到达一端后直接回到起始端继续处理请求,进一步优化了磁盘 I/O 性能。

《C语言程序设计》第八章:

一、数组的概念

数组是一组具有相同数据类型的数据元素的有序集合。它在内存中占用连续的存储单元,通过数组名和下标来访问其中的元素。数组可以用来存储和处理大量相关的数据,使得数据的管理和操作更加方便和高效。

二、一维数组

定义与声明:
定义格式:数据类型 数组名 [常量表达式]; 例如:int a [5]; 这里定义了一个名为 a 的整型数组,它可以存储 5 个整型元素。
常量表达式用于指定数组的大小,其值必须是常量或常量表达式,且大于零。
初始化:
可以在定义数组时进行初始化,将初值依次放在花括号内。例如:int b [3] = {1, 2, 3}; 这就给数组 b 的三个元素分别赋了初值 1、2、3。
如果初始化时提供的初值个数少于数组元素个数,剩余元素会被自动初始化为相应数据类型的默认值(如整型为 0)。
若初始化时提供的初值个数多于数组元素个数,编译器会报错。
访问元素:
通过数组名和下标来访问数组中的单个元素,下标从 0 开始。例如:a [0] 表示数组 a 的第一个元素,a [2] 表示数组 a 的第三个元素。
可以在程序中对数组元素进行赋值、读取等操作,就像操作普通变量一样。

三、二维数组

定义与声明:
定义格式:数据类型 数组名 [常量表达式 1][常量表达式 2]; 例如:int c [2][3]; 这里定义了一个名为 c 的二维整型数组,它有 2 行 3 列,共可存储 6 个整型元素。
常量表达式 1 指定行数,常量表达式 2 指定列数,两者的值都必须是常量或常量表达式且大于零。
初始化:
可以按行初始化,即将每行的初值用花括号括起来,再整体用花括号括起来。例如:int d [2][3] = { {1, 2, 3}, {4, 5, 6} }; 这就分别给二维数组 d 的两行元素赋了初值。
也可以按顺序初始化,即将所有元素的初值依次放在一个大花括号内,编译器会按照列优先的顺序依次给各元素赋值。例如:int e [2][3] = {1, 2, 3, 4, 5, 6}; 这种方式下,元素的赋值顺序是先第一列从上到下,再第二列从上到下,以此类推。
同样,如果初始化提供的初值个数少于数组元素个数,剩余元素会被自动初始化为相应数据类型的默认值;若多于数组元素个数,编译器会报错。
访问元素:
通过数组名和两个下标来访问二维数组中的单个元素,第一个下标表示行,第二个下标表示列,下标都从 0 开始。例如:c [0][1] 表示二维数组 c 的第一行第二列的元素。

四、数组作为函数参数

传递方式:
数组名作为函数参数时,实际上传递的是数组的首地址,也就是数组中第一个元素的地址。这意味着在函数内部对数组元素的操作会直接影响到原始数组。
函数声明与定义:
在函数声明和定义中,对于数组参数,只需要指定数组的数据类型和数组名,不需要指定数组的大小。例如:void printArray (int arr []); 这里声明了一个函数 printArray,它接受一个整型数组作为参数,但不明确数组的大小。
但在函数内部访问数组元素时,需要确保不会超出数组实际的大小范围,否则可能会导致程序错误。

五、多维数组的应用

除了常见的一维和二维数组,C 语言还支持多维数组(如三维数组等),其定义、初始化和访问元素的方式与二维数组类似,只是需要更多的下标来指定元素的位置。多维数组在处理一些复杂的数据结构,如矩阵、图像数据等方面有广泛的应用。
数组在 C 语言程序设计中是非常重要的基础内容,掌握好数组的相关知识对于编写高效、复杂的 C 语言程序至关重要。

教材学习中的问题和解决过程

问题1:不明白为什么函数中调用数组时只需交代数组名
问题1解决过程:在学习了第九章指针后,对地址的概念了解更深,迷宫告白传递的时数组的首地址,可以通过偏移访问数组中的数据。
问题2:对二维数组的调用以及排序等函数功能十分生疏
问题2解决过程:通过完成第三次实验的代码编写以及不断的上机训练逐渐增加了熟练度。

基于AI的学习

其他(感悟、思考等,可选)

完成实验四 函数与数组编程练习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/839919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker网络互通实验

需求:创建两个自定义容器,分别使用自定义网络,使其互通1. 创建容器 docker run -d --name web1 -p 80:80 httpd 2. 创建网络 docker network create --driver bridge --subnet 192.168.1.0/24 net1 docker network create --driver bridge --subnet 171.16.1.0/24 net2 …

Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行

第一步:下载Tesseract OCR引擎安装包 访问Tesseract的GitHub发布页面(https://github.com/tesseract-ocr/tesseract)或第三方下载站点(https://digi.bib.uni-mannheim.de/tesseract/),下载适合你操作系统的版本(最新版本)。 推荐使用第三方下载:第二步:详细阐述一下第…

海思 uboot 编译

用默认配置烧录:本文来自博客园,作者:封兴旺,转载请注明原文链接:https://www.cnblogs.com/fxw1/p/18564721

java-BLOG-2

1.前言: 第四次题目集: 这次题目集的第一和第二个题目比较简单,很容易可以做出来,只是用到了一个新的知识点——继承,继承(Inheritance)是面向对象编程的核心特性之一。它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码复用和功能扩展。继承是通过e…

用Java实现AI人脸比对

AI人脸比对技术百度智能云注册 https://login.bce.baidu.com/?account=&redirect=https%3A%2F%2Fconsole.bce.baidu.com%2Fiam%2F#/iam/baseinfo 选择人工智能-->人脸识别认证选择-->立即使用选择免费尝鲜(领取之后五分钟就可以在我的应用里查看了,里面勾选所有的…

NR中各种ID

NCGI(NR CELL Global Identifier):全球标识一个 NR 小区的号码PLMN(Public Land Mobile Network):国家码 MCC(Mobile Country Code)+网络码 MNC(Mobile NetWork Code),此号码唯一标识了某一个国家的某一个运营商NCI(NR CELL ID):标识 NR 中的一个 CELL GNBID:唯一标识一个基…

OOPTA4-6习题集总结

(1)前言 这三次作业算是一个渐进和转折的过程,题目渐渐减少,主要还是要写迭代题,对我来说5-6难度还是蛮大的。4是让我学会了不少更新功能的思路和调试的方法。5-6则让我明白了代码结构的重要性。题目内容主要涉及类的设计等等,以及主要的答题判题程序还有电路系统的编写与…

第53篇 调用第三方接口时需要注意的点

前言 在我们的业务开发中,调用第三方接口已经成为常态,比如对接一些ERP系统、WMS系统、一些数据服务系统等,它极大地扩展了我们应用的功能和服务范围。然而,实际对接过程中,我们往往会在这一环节遇到各种意想不到的问题,本文将深入探讨几种常见的第三方接口调用难题及其应…

如何在360评估中控制得分分布?

得分分布控制作用于评估打分时,评价人对一组被评价人的打分高低进行限制,避免老好人都打高分或恶意都给打低分的情况。 得分分布控制包括总分分布控制和各个指标的得分分布控制。注意 得分分布控制仅针对一个评价人同时评价多个被评价人时才会产生效果。 设置了得分分布控制时…

路由选择算法概述及经典算法分析

本文重点介绍Dijkstra算法及Distance-Vector(DV)算法原理。一、路由选择算法概述路由选择算法的目标:找到“从源节点到目的节点的最低开销路径” 路由选择算法的第一种分类centralized routing algorithm集中式路由选择算法集中式路由选择算法需要计算者具有“网络拓扑的全局连…

Java 题目集 4 - 6 总结

一、前言 在 Java 编程学习的漫长道路上,题目集 4 - 6 犹如一座座充满挑战与机遇的山峰,促使我们不断攀登,拓展知识边界,提升编程技能与思维深度。这一系列题目集犹如一场全方位的能力试炼,全面检验了我们在多个关键领域的知识掌握程度与实践应用能力。 从知识点的覆盖范围…