# 学期2024-2025-1 学号20241405《计算机基础与程序设计》第10周学习总结

news/2024/12/1 8:32:34/文章来源:https://www.cnblogs.com/sztheihei/p/18579405

作业信息

|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|
|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10|
|这个作业的目标|1、信息系统 2、数据库与SQL 3、人工智能与专家系统 4、人工神经网络 5、模拟与离散事件 6、排队系统 7、天气与地震模型 8、图形图像|
|作业正文|https://i.cnblogs.com/posts/edit;postId=18579405|

教材学习内容总结

《计算机科学概论》第十二章内容总结:

信息系统

  • 定义与作用:信息系统是帮助用户组织、管理和分析数据的软件工具,可应用于电子商务、医疗、教育等众多领域.
  • 电子制表软件:以单元格来组织数据和公式,行列标号可用于引用单元格,公式能引用其他单元格的值并使用内置函数计算结果,需注意避免循环引用。如Microsoft Excel等电子制表软件具有多功能性、可扩展性,可用于模拟假设分析.

数据库管理系统

  • 基本概念:数据库是结构化数据的集合,数据库管理系统(DBMS)是管理这些数据的软件,其包含物理数据库、数据库引擎和数据库模式等组成部分.
  • 关系模型:关系模型是数据库管理中最常用的模型,以二维表形式组织数据,表由记录(对象)和字段(属性)构成,通过主键和外键维护数据完整性和关系.
  • 结构化查询语言(SQL):SQL是用于操作关系数据库的标准编程语言,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和数据查询语言(DQL)。例如,SELECT语句用于查询,INSERT、UPDATE、DELETE用于数据操纵,GRANT、REVOKE用于数据控制.
  • 实体-关系(ER)建模:ER图是描述数据库对象之间关系的工具,有助于数据库的设计和规划.

电子商务

探讨了电子商务的相关内容,包括其通过互联网进行购买和销售活动的特点,以及随着其流行,安全性变得越来越重要等.

大数据

介绍了大数据的概念和重要性,大数据指规模巨大、复杂度高,无法用传统数据库和电子表格处理的数据集,其面临存储、管理和分析大规模数据等挑战.

信息系统的道德问题

章节最后提到了信息系统可能涉及的道德问题,尤其是在政治和网络领域,提醒人们在使用和发展信息系统时要关注其可能带来的道德影响.
《C语言程序设计》第九章内容总结:

一、指针的概念

  • 指针是C语言中的一个重要特性,它存储的是变量的地址。可以理解为指针是指向内存中某个数据对象(如变量、数组元素等)的“指示器”。
  • 通过取地址运算符(&)可以获取一个变量的地址,然后将这个地址赋给相应类型的指针变量。

二、指针变量的定义与使用

  • 定义:指针变量的定义形式为“类型名 *指针变量名;”,例如“int *p;”就定义了一个指向整型数据的指针变量p。这里的类型名指定了指针所指向的数据的类型。
  • 赋值:可以通过取地址操作将变量地址赋给指针,如“int a; int *p = &a;”,此时p就指向了变量a。也可以将一个已有的指针值赋给另一个指针变量,但要确保类型匹配。
  • 解引用:通过解引用运算符()可以访问指针所指向的数据。例如,对于上述定义的p和a,“p = 10;”就相当于给变量a赋值为10。

三、指针与数组

  • 数组名本身就代表数组的首地址,所以数组名可以看作是一个指向数组首元素的指针。例如“int arr[5]; int *p = arr;”,这里p就指向了数组arr的首元素。
  • 可以通过指针来遍历数组元素,利用指针的算术运算(如指针加1、减1等)来指向下一个或上一个数组元素。例如“for(int *p = arr; p < arr + 5; p++) { printf("%d ", *p); }”就可以输出数组arr的所有元素。

四、指针与函数

  • 函数可以接受指针作为参数,这在很多情况下非常有用,比如当需要在函数中修改传入的变量的值时,通过传指针可以实现。例如:
void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;
}

这里的swap函数通过接受指向整型变量的指针,实现了两个整型变量值的交换。

  • 函数也可以返回指针,但要注意返回的指针所指向的内存区域应该是有效的,不能返回指向局部变量的指针(除非该局部变量所在的内存区域在函数返回后依然有效)。

五、指针的运算

  • 指针的算术运算:指针可以进行加、减整数的运算,其结果与指针所指向的数据类型有关。例如,对于指向整型数据的指针,加1实际上是在内存地址上加了 sizeof(int) 个字节。
  • 指针的关系运算:可以比较两个指针的大小关系,通常用于判断指针是否指向同一个数组中的不同元素,或者判断指针是否超出了某个数组的范围等。

六、多级指针

  • 多级指针就是指向指针的指针。例如“int **pp;”就是一个二级指针,它可以指向一个一级指针。二级指针通常在处理动态分配的多维数组等情况时会用到。

七、指针与字符串

  • 在C语言中,字符串实际上是以字符数组的形式存在的,并且以'\0'作为字符串的结束标志。
  • 可以用指针来指向字符串,通过指针的移动来遍历字符串中的字符。例如:
char str[] = "hello";
char *p = str;
while(*p!= '\0') {printf("%c", *p);p++;
}

就可以输出字符串“hello”。

总的来说,第九章围绕指针展开,阐述了指针的定义、使用、与数组、函数等方面的关联以及相关运算等内容,指针是C语言中较为复杂但又非常重要的一个知识点,掌握好它对于深入理解C语言程序设计和编写高效程序至关重要。

教材学习中的问题和解决过程(先问 AI)

在C语言中,指针和数组作为函数参数传递时有什么区别和注意事项?

  1. 传递方式的区别
    • 指针作为函数参数
      • 当指针作为函数参数传递时,传递的是变量的地址。例如:
        void func(int *p) {*p = 10;
        }
        int main() {int a = 5;int *ptr = &a;func(ptr);printf("%d", a); // 输出为10,因为函数通过指针修改了a的值return 0;
        }
        
      • 函数内部可以通过解引用指针来访问和修改指针所指向的变量的值。
    • 数组作为函数参数
      • 数组作为函数参数传递时,实际上传递的是数组的首地址。在C语言中,数组名本身就代表数组的首地址。例如:
        void func(int arr[], int n) {for (int i = 0; i < n; i++) {arr[i] = i;}
        }
        int main() {int a[5];func(a, 5);for (int i = 0; i < 5; i++) {printf("%d ", a[i]);}return 0;
        }
        
      • 函数内部可以像操作普通数组一样操作传递进来的数组,但要注意数组的长度需要另外传递(在上面的例子中是通过参数n传递数组长度),因为数组作为参数时,不会传递数组的大小信息。
  2. 注意事项
    • 指针作为函数参数
      • 要确保传递给函数的指针是有效的,即指针已经初始化并且指向合法的内存区域。如果传递一个未初始化的指针或者野指针(指向不确定的内存区域的指针),可能会导致程序崩溃或者出现不可预测的行为。
      • 当在函数内部通过指针修改其所指向的变量的值时,要清楚这种修改会影响到函数外部的变量。例如,如果不想修改函数外部变量的值,应该在函数内部只读取指针所指向的变量的值,而避免解引用指针进行赋值操作。
    • 数组作为函数参数
      • 由于数组作为参数时不传递大小信息,所以一定要确保函数内部对数组的操作不会超出数组的实际范围。否则可能会导致缓冲区溢出等错误,这种错误可能会修改其他内存区域的数据,甚至导致程序崩溃。
      • 如果函数内部需要动态分配内存来存储数组元素,要注意内存泄漏的问题。例如,在函数内部使用malloc等函数分配内存,在函数结束后需要正确地释放这些内存(可以通过将指针返回给调用函数,由调用函数来释放,或者在函数内部进行释放,具体取决于程序设计的要求)。

基于AI的学习



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

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

相关文章

2024年11月总结及随笔之献血和球赛安检

随笔及总结1. 回头看 日更坚持了700天。读《数据工程之道:设计和构建健壮的数据系统》更新完成 读《数据质量管理:数据可靠性与数据质量问题解决之道》开更并持续更新2023年至2024年11月底累计码字1738120字,累计日均码字2483字。 2024年11月码字95323字,同比上升38.38%,环…

电脑和网络联网故障检测排查流程-2024-12-01

电脑和网络联网故障检测排查流程-2024-12-01 https://www.autoahk.com/archives/51704https://www.cnblogs.com/delphixx/p/18579399电脑和网络联网故障检测排查流程序号 故障现象 电脑和网络联网故障排查修复操作 备注1 电脑重新启动后无法全自动清理病毒木马垃圾文件并全自动…

使用canvas生成一张分享图

// 创建canvas元素 const canvas = document.createElement(canvas); canvas.width = 600; // 设置宽度 canvas.height = 400; // 设置高度 document.body.appendChild(canvas); // 将canvas添加到页面const ctx = canvas.getContext(2d);// 绘制背景 ctx.fillStyle = #f0f0f0;…

安卓的公式编辑器MathMagic

物体运动轨迹方程(考虑空气阻力)

UniDepth:通用单目度量深度估计

UniDepth:通用单目度量深度估计精确的单目度量深度估计(MMDE)对于解决3D感知和建模中的下游任务至关重要。然而,最近MMDE方法的显著准确性与其训练领域不符。即使存在适度的域间隙,这些方法也无法推广到看不见的域,这阻碍了它们的实际应用。提出了一种新的模型UniDepth,…

写一句话:NOIP之后,没有完结的故事与青春

睡觉睡觉,一切都好。睡觉最好。可能是两句话? 周五和助教一起吃饭,她说:不要老是说自己退役了。以后还有各种比赛,上了大学还有 acm。路还很长。 这两天和宁老师一起行动,宁老师真的是很可爱的很好的老师(如果 N 老师您看到了,那我想说的是老师特别幽默有趣,谢谢老师^…

写一句话:没有完结的故事与青春

睡觉睡觉,一切都好。睡觉最好。可能是两句话? 周五和助教一起吃饭,她说:不要老是说自己退役了。以后还有各种比赛,上了大学还有 acm。路还很长。 这两天和宁老师一起行动,宁老师真的是很可爱的很好的老师(如果 N 老师您看到了,那我想说的是老师特别幽默,谢谢老师^^)。…

攻防世界-不仅仅是RSA

一、题目 给出以下几个文件py文件代码如下二、解题思路 1、听C1,C2的音频, 由长短声很快确定是摩斯密码,上网一搜,果然有在线摩斯密码音频解密网站,上去解密即可这里初步判断可能是密文 2、进一步分析代码分析代码发现这就是一个简单的RSA加密算法,并且有两个不同公钥的RSA…

Web自动化001-Web自动化前端基础及Selenium原理和环境搭建

Web自动化001-Web自动化前端基础及Selenium原理和环境搭建 Web自动化前端基础及Selenium原理和环境搭建1.什么是web自动化测试?web自动化测试是指利用自动化的测试工具或者框架,通过编写脚本和模拟用户在web页面上的任意操作web自动化测试是一种比较高效,准确、可重复测试的…

道路缺陷智能检测系统

道路缺陷智能检测系统的核心是基于YOLOX算法结合OpenCV, 道路缺陷智能检测系统能够通过无人机或车载相机捕获的道路图像,准确识别出路面的各类病害。无论是细微的龟裂还是明显的坑洞,系统都能迅速发现并标记出来。通过深度学习技术,系统能够学习并识别病害的特征,随着数据…

皮带输送机空载识别检测系统

皮带输送机空载识别检测系统核心在于通过现场监控摄像机,皮带输送机空载识别检测系统实时监测皮带输送机上是否有物料。系统的工作原理是首先利用YOLOvX算法对摄像机捕获的图像进行处理,识别出图像中的物料。然后,通过设定的阈值来判断物料是否存在。当监控画面中没有物料存…

泥石流识别摄像机

泥石流识别摄像机通过高清摄像头捕捉山体图像,泥石流识别摄像机利用YOLOX算法对能够对山体的微小变化进行精确捕捉,并通过深度学习不断优化其识别能力,识别出山体的异常变化,如泥石流滑坡、落石等迹象。一旦检测到这些异常,系统会立即启动报警机制,将预警信息发送给相关部…