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

news/2024/11/9 0:21:49/文章来源:https://www.cnblogs.com/incamellia/p/18536115

作业信息

作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07
作业目标:数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数
作业正文:https://www.cnblogs.com/incamellia/p/18536115

教材学习内容总结

《计算机科学概论(第七版)》第8章

  1. 数组与链表:
    数组是一种紧凑的连续存储结构,允许通过索引随机访问元素,但其大小固定,无法动态调整。
    链表是一种通过指针连接的节点结构,适合动态调整数据量,但不支持随机访问。
    数组和链表各有优缺点,适用于不同的场景。例如,数组适合需要频繁随机访问的场景,而链表适合需要频繁插入和删除操作的场景。
  2. 基于数组和链表实现的数据结构:
    数组可以用来实现栈、队列、哈希表等数据结构,这些结构利用数组的随机访问特性来提高效率。
    链表则常用于实现链表本身、栈、队列等,特别是双向链表可以模拟数组的功能,以支持高效的插入和删除操作。
  3. 无序表与有序表:
    无序表通常使用链表实现,因为链表便于插入和删除操作,而不需要维护元素的顺序。
    有序表则通常使用链表或数组实现,其中链表可以方便地保持元素的顺序,而数组则可以通过排序来实现有序性。
  4. 树:
    树是一种非线性的数据结构,由节点组成,每个节点包含数据和指向子节点的指针。树包括二叉树、平衡树等多种类型。
    树在计算机科学中应用广泛,例如用于文件系统、数据库索引等场景。
  5. 图:
    图是一种表示节点及其相互关系的数据结构,节点之间通过边相连。图可以表示复杂的关系网络,如社交网络、交通网络等。
    图的存储方式主要有邻接矩阵和邻接表两种,适用于不同的应用场景。
  6. 子程序与参数:
    子程序是可重用的代码块,可以接受输入参数并返回结果。参数传递机制包括值传递和引用传递两种方式。
    子程序的设计和实现是编程中的重要概念,有助于提高代码的复用性和可维护性。

《C语言程序设计》第6章

  1. 嵌套循环
  • 定义:嵌套循环是指在一个循环内部包含另一个循环。这在处理多维数组或需要多重条件检查时非常有用。
  • 在C语言中,可以使用for、while或do-while循环进行嵌套。
  1. 条件控制的循环
  • for循环
    for循环是一种基本的循环结构,用于在给定条件为真时重复执行代码块。
    语法:for (初始化表达式;条件表达式;更新表达式) { 代码块 }
    其中,初始化表达式用于设置循环控制变量,条件表达式用于检查循环是否应该继续,更新表达式用于更新循环控制变量。
  • while循环
    while循环在条件为真时重复执行代码块。
    语法:while (条件表达式) { 代码块 }
    与for循环相比,while循环更灵活,因为它允许在循环开始之前不初始化循环控制变量。
  • do-while循环
    do-while循环至少执行一次代码块,然后检查条件是否为真,如果是,则继续循环。
    语法:do { 代码块 } while (条件表达式);
    这种循环结构确保代码块至少执行一次,即使条件在第一次检查时为假。
  1. 流程的转移控制
  • break语句:break语句用于立即终止最内层的for、while或do-while循环。
    用途:当满足某个特定条件时,提前退出循环。
  • continue语句:continue语句用于跳过当前迭代的剩余代码,并继续下一次迭代。
    用途:当不满足某个条件时,跳过当前循环的剩余部分,直接进入下一次循环的开始。
  • goto语句:goto语句用于跳转到程序中的另一个标签位置。
    用途:虽然不推荐使用,但在某些情况下,goto可以用于跳出多层循环。

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

问题:三种条件控制的循环各自的优点和区别。
答:
1. for循环

  • 优点:
    结构清晰:for循环将初始化、条件判断和更新操作集中在一起,使得循环的起始条件、结束条件和变量更新方式一目了然。
    适用于已知循环次数:当确切知道循环次数时,for循环更合适。
  • 区别:
    for循环可以在括号内声明和初始化循环变量,这个变量的作用域通常仅限于循环内。
    2. while循环
  • 优点:
    条件控制灵活:while循环在每次迭代前先检查条件,如果条件为 true,则执行循环体,适用于循环次数不易预知的情况。
    简洁性:适用于条件控制较为简单的情况,代码简洁。
  • 区别:
    while循环只强调条件判断部分,条件写在开头;而for循环将初始化、条件判断和更新操作集中在一起。
  1. do...while循环
  • 优点:
    至少执行一次:与while循环不同,do...while循环至少会执行一次循环体,然后再检查条件表达式的值。
    适用于至少需要执行一次操作:适用于至少需要执行一次操作,然后根据条件判断是否继续执行的场景。
  • 区别:
  • do...while循环先执行循环体,然后判断条件是否成立。若成立,则继续执行循环体;若不成立,则结束循环。
  1. 总结
    for循环适合已知循环次数的情况,结构清晰,易于管理循环变量的生命周期。
    while循环适合循环次数不确定,仅由某个条件控制是否继续循环的情况,条件判断逻辑更为灵活。
    do...while循环确保循环体至少被执行一次,适用于需要至少执行一次操作的场景,然后根据条件判断是否继续执行。

基于AI的学习

image

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

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

相关文章

ChCore-lab2

lab 2: Memory Manage(working) 新的环境好像不支持arm架构了,总是会在make build触发错误 exec chbuild not found. 我们于是只能使用utm平台+qemu模拟amd64架构的ubuntu系统来进行运行。 首先我们还是先进行make build来获得我们想要的环境。 1 Buddy System练习题1: 完成 k…

lab2

lab 2: Memory Manage(working) 新的环境好像不支持arm架构了,总是会在make build触发错误 exec chbuild not found. 我们于是只能使用utm平台+qemu模拟amd64架构的ubuntu系统来进行运行。 首先我们还是先进行make build来获得我们想要的环境。 1 Buddy System练习题1: 完成 k…

开源 - Ideal库 - 常用时间转换扩展方法(二)

分享时间转换的扩展方法,包括TimeOnly、DateOnly与DateTime间的转换,并介绍代码结构设计与组织、单元测试、文档的重要性,以partial类、功能分类优化代码结构,后续将上传至Nuget。书接上回,我们继续来分享一些关于时间转换的常用扩展方法。01、时间转日期时间 TimeOnly 该…

杂题部分

杂题部分3131. 找出与数组相加的整数 I思路 快排+直接找差值。 void quickSort(int *arr,int low,int high) {if(high<=low) return;int i=low;int j=high;int pivot=arr[low];while(1){// 1. 自左到右搜索,直到比pivot大后停止。while(arr[i]<=pivot){i++;if(i==high) …

20222312 2024-2025-2 《网络与系统攻防技术》实验四报告

一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者 (1).通过kali中的file命令查看文件格式和可运行平台,即exe文件,Win32平台 通过PEID查壳文件发现使用UPX壳二、使用IDA Pro静态或…

点阵LED电路分析

以点阵的左上角LED为例,即 A1 LED为例,进行电路分析 9号脚接着LED的阳极,所以9号脚需是高电平,13号脚连着LED的阴极,所以13号脚需是低电平 9号脚连接着Q10的集电极,欲使9号脚为高电平,则需要Q10导通 Q10的发射极连接着+5V电压,欲使Q10导通,则基极需为低电平,即LEDC0为…

苹果手机和电脑数据互传

利用共享的文件夹 这个方法简单来说就是iPhone通过远程连接到Windows服务器,利用共享的文件夹来进行照片中转。 注意:iPhone和Windows必须要连接到同一个局域网内! ● Windows设置 第一步,获取Windows电脑的IP地址。 具体操作是先打开“Windows设置-网络和Internet-网络和共…

由一个业务需求引发的对 ASP.NET 全局变量的调研及结果

在单机模式下,使用哪种技术来存储身份状态信息比较安全可靠呢?前言 前段时间使用 ASP.NET MVC + Form Auth 做了一个单机小项目,当时对于采用什么方式来存储登录状态有些纠结,通常的做法是使用 Cookie 或者 Session,但是我想有没有更好的方式来存储登录状态呢?于是花了点…

苹果手机数据传输

利用共享的文件夹 这个方法简单来说就是iPhone通过远程连接到Windows服务器,利用共享的文件夹来进行照片中转。 注意:iPhone和Windows必须要连接到同一个局域网内! ● Windows设置 第一步,获取Windows电脑的IP地址。 具体操作是先打开“Windows设置-网络和Internet-网络和共…

c语言中返回整数值的长度

001、方法1 while循环[root@PC1 test]# ls test.c [root@PC1 test]# cat test.c ## 测试c程序 #include <stdio.h>int get_length(int a) {int length = 0;while(a > 0){length++;a /= 10;}return length; }int main(void) {int a;printf("a = "…

Blender 常用建模操作

常用简单介绍 挤出 快捷键:E 挤出是2个动作,生成加移动,所以右键撤销只能撤销移动内插 快捷键:I 内插仅是一个动作倒角 快捷键:Ctrl+B 滚动滚轮可以增加倒角的段数环切 快捷键:Ctrl+R 滚动滚轮可以增加倒角的段数挤出详细介绍 沿轴线挤出或者自动挤出挤出流形可以向内挤出…

Stack模块的设置

TEAM: Topological Evolution-aware Framework for Traffic Forecasting–Extended Version Motivation 为了捕捉复杂的时空动态,许多基于深度学习的方法最近被提出,并由于其学习非线性动力学[35,59]的能力,在挑战数据集上显示出了有希望的结果。这些方法通常建立在图神经网…