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

news/2024/10/18 22:19:31/文章来源:https://www.cnblogs.com/yuanzhengqi/p/18475145

作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html
作业目标 门电路 组合电路,逻辑电路 冯诺依曼结构 CPU,内存,IO管理 嵌入式系统,并行结构 物理安全
---- ----
作业正文 https://www.cnblogs.com/yuanzhengqi/p/18475145

学习内容总结

  • 《计算机科学概论》第七版第四章和第五章

第四章:算法

算法的概念:

定义:算法是解决特定问题的明确、有限的步骤序列。

特性:输入、输出、有穷性、确定性、可行性。

算法的复杂度:

时间复杂度:描述算法执行时间的增长速率。

空间复杂度:描述算法执行过程中所需存储空间的量。

算法设计技术:

枚举:尝试所有可能的解,直到找到正确的一个。

分治:将问题分解成更小的子问题,递归解决子问题。

动态规划:将问题分解成重叠的子问题,存储子问题的解以避免重复计算。

贪心算法:在每一步选择局部最优解,以期望得到全局最优解。

算法的分析:

通过数学方法分析算法的性能,包括最好、最坏和平均情况。

算法的应用案例:

讨论了算法在不同领域的应用,如排序、搜索等。

第五章:数据结构

数据结构的概念:

数据结构是数据元素的组织方式,以及定义数据元素之间的关系。

基本数据结构:

数组:固定大小的元素集合,支持快速访问。

链表:元素通过指针连接的线性结构,支持动态大小。

栈:后进先出(LIFO)的数据结构。

队列:先进先出(FIFO)的数据结构。

树:层次结构的数据组织方式,用于表示具有层次关系的数据。

抽象数据类型(ADT):

集合:无序且不重复的元素集合。

线性表:有序的元素序列。

树形结构:元素之间存在父子关系的数据结构。

图:元素之间可以有任意数量的连接。

数据结构的选择:

根据问题的需求选择合适的数据结构,以优化性能。

数据结构的实现:

使用不同的编程语言实现基本数据结构,并讨论其性能特点。

  • 《C语言程序设计》第三章
    数据类型和变量

基本数据类型:整型(int)、浮点型(float)、双精度型(double)、字符型(char)等。

变量的声明和初始化。

变量的命名规则。

常量

常量的定义和使用。

常量和变量的区别。

运算符和表达式

算术运算符(+、-、*、/、%)。

赋值运算符(=)。

自增和自减运算符(++、--)。

比较运算符(==、!=、>、<、>=、<=)。

逻辑运算符(&&、||、!)。

位运算符(&、|、^、~、<<、>>)。

运算符的优先级和结合性。

控制语句

条件语句(if、else if、else)。

循环语句(for、while、do-while)。

跳转语句(break、continue、return)。

输入输出

标准输入输出函数(scanf、printf)。

格式化输出(%d、%f、%s等格式说明符)。

函数

函数的定义和调用。

参数传递(值传递和地址传递)。

返回值。

函数原型声明。

数组

一维数组和二维数组的声明和使用。

数组的初始化。

数组的内存分配。

指针

指针的概念和声明。

指针与数组的关系。

指针的运算。

预处理指令

宏定义(#define)。

文件包含(#include)。

条件编译(#ifdef、#ifndef、#endif)。

错误处理和调试

常见的编程错误(语法错误、逻辑错误等)。

使用调试工具进行错误查找和修复。

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

  1. 在C语言中怎么输入/?
    AI:在 C 语言中,要输入 / 字符可以通过多种方式实现。以下为你详细介绍:

在标准输入输出中:
当你使用 scanf 函数从用户处获取输入时,可以像处理其他字符一样处理 / 。例如:
 
char c;
scanf("%c", &c);
if (c == '/') {
// 这里进行当输入为'/'时的相关操作
}
 
在字符串中:
在字符串中, / 可以直接出现在字符串中,例如:
 
char str[] = "This is a / symbol.";
 
在文件操作中:
如果涉及到文件路径, / 在不同的操作系统中可能有不同的含义。在 Windows 系统中,通常使用 \ 作为路径分隔符,但在一些情况下也支持 / 。而在 Unix/Linux 系统中, / 是标准的路径分隔符。

在正则表达式中:
在正则表达式中, / 有特殊的用途,用于界定正则表达式的模式。但如果要匹配 / 本身,需要进行转义,例如 \/ 。

在数学运算中:
在除法运算中, / 被用作除法运算符,例如 5 / 2 表示 5 除以 2 的运算。

总之,在 C 语言中, / 的输入和使用方式取决于具体的上下文和应用场景。
2.C语言中域宽调整?
以下是关于 C 语言中调整域宽的方法:1
使用 setw 函数:
首先,使用 setw 必须包含头文件   ,即  #include  。
setw 设置域宽时,默认右对齐,只对直接跟在后面的输出数据起作用。
若域宽设置大于输出数据,则用空格填充。
例如:

include

include

using namespace std;
int main() {
int a,b;
cin>>a>>b;
cout<<setw(8)<<a<<endl;
cout<<setw(3)<<"+"<<setw(5)<<b<<endl;
cout<<"---------"<<endl;
cout<<setw(8)<<a+b<<endl;
return 0;
}
 
控制前导 0:
有关前导 0 的解决方法,用下面这个格式来输出数据: printf("%d-%02d-%02d", year, month, day); 
其中“0”是  printf()  中的一种标记,其含义为:对于数值格式,用前导 0 代替空格填充字段宽度。对于整数格式,如果出现  -  标记或指定精度,则忽略该标记。
而其中的“2”为该数据输出时的最小字段宽度,如果为 2,则输出 2 位数字(即假若原本输出结果为 3,则会输出 03),4 则输出 4 位数字(假若原本输出数据为 15,则会输出 0015)。简单来讲,前导 0 的作用就是当原数据不能达到限定的位数时,系统自动在前面补 0 补齐限定的位数。
希望以上内容对你有所帮助,如果你还有其他问题,请随时向我提问。

基于AI的学习
User: 我在学习C语言程序设计的基础内容,请以苏格拉底的方式一次向我提问一个问题
Kimi: 当然可以,让我们开始吧。

你是否认为编程语言,比如C语言,是一种工具,用来帮助我们与计算机进行交流?
User: 是的
Kimi: 那么,既然C语言是一种工具,你认为它在设计时最注重的是什么?是它的复杂性,还是它的简洁性和效率?
User: 注重语言的简洁性和效率
Kimi: 很好,简洁性和效率是C语言设计的重要特点。那么,你认为为什么简洁性和效率对于编程语言来说如此重要呢?
User: 因为它直接决定编程语言能否成功运行
Kimi: 确实,简洁性和效率对于程序的成功运行至关重要。那么,你认为在编写C语言程序时,我们应该如何确保代码的简洁性和效率呢?是通过使用复杂的数据结构,还是通过简化逻辑和减少不必要的操作?
User: 使用更确切的函数
Kimi: 使用确切的函数确实是提高代码简洁性和效率的一种方式。那么,让我们进一步探讨这个问题。你认为函数在C语言中扮演着怎样的角色?它们是如何帮助我们实现代码的模块化和重用的?
User: 起着格式化,简单化的作用
Kimi: 确实,函数在C语言中起着格式化和简单化代码的作用。那么,让我们进一步探讨。你认为函数的这些特性如何帮助我们编写出更易于理解和维护的代码?以及,它们如何帮助我们在编写程序时避免重复的代码?
User: 可以在写完后通过debug进行调试
Kimi: 调试是编程过程中不可或缺的一部分,它帮助我们发现和修正代码中的错误。那么,让我们继续探讨。你认为在编写C语言程序时,为什么调试是必要的?它如何帮助我们提高代码的质量和可靠性?
User: 你的答案呢
Kimi: 调试是必要的,因为它允许我们验证程序的行为是否符合预期。在C语言中,即使代码在语法上是正确的,它也可能因为逻辑错误、边界条件处理不当、内存管理错误等原因而不按预期工作。调试帮助我们:

  1. 识别错误:发现代码中的错误,无论是语法错误、运行时错误还是逻辑错误。
  2. 理解程序流程:通过逐步执行代码,我们可以观察程序的执行流程,了解变量的值如何变化,以及程序的控制流如何进行。
  3. 优化性能:调试可以帮助我们识别程序中的性能瓶颈,例如不必要的计算、内存泄漏或者低效的算法实现。
  4. 提高代码质量:通过调试,我们可以确保代码的健壮性,处理各种边界情况和异常输入。
  5. 维护和扩展:良好的调试习惯可以在未来对代码进行维护或扩展时,更容易理解和修改现有代码。

调试不仅仅是找到并修复错误,它还是提高编程技能、深化对程序行为理解的重要工具。通过调试,我们可以学习如何编写更清晰、更高效、更健壮的代码。

学习进度表
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|| 目标 | 5000行 | 30篇 | 400小时 | | | 第一周 | 200/200 | 2/2 | 20/20 | | | 第三周 | 300/500 | 2/4 | 18/38 | | | 第四周 | 500/1000 | 3/7 | 22/60 | |

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

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

相关文章

C3P0 链子分析学习

C3P0 链子分析学习 概述 C3P0是一个开源的数据库连接池,它实现了数据源与JNDI绑定,支持JDBC3规范和实现了JDBC2的标准扩展说明的Connection和Statement池的DataSources对象。即将用于连接数据库的连接整合在一起形成一个随取随用的数据库连接池,使用它的开源项目有Hibernate…

20241018每日一题洛谷P2386

普及 每日一题 信息学竞赛 1206:放苹果 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 第一行是测试数据的数目t(0<=t<=20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N…

图片与向量的关系

如何从向量角度描述表示图片黑白图片黑白图片(灰度图)通过 2 维向量(矩阵)来表达。2个维度的长度分别代表了图片的高度和宽度(以像素为单位),向量元素记录着每一个像素的灰度(数值越大,颜色越浅) 例如下面右图矩阵标注了左图像素点的灰度分布:彩色图片彩色图片通过 …

数据采集与融合技术第二次作业

学号姓名 102202132 郑冰智这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology/homework/13285这个作业的目标 爬取天气网、股票相关信息、中国大学2021主榜所有院校信息,并存储在数据库中实验二仓库地址 https://gitee.com/zheng…

【LGR-203-Div.4】洛谷入门赛 #28

【LGR-203-Div.4】洛谷入门赛 #28\(A\) luogu B4042 [语言月赛 202410] 顺序结构 \(AC\)顺序结构。点击查看代码 int main() { ll a;cin>>a;cout<<3*(5+a)<<" "<<3*a+5<<endl;return 0; }\(B\) luogu B4043 [语言月赛 202410] 刻度尺…

uni-app小程序(快手、抖音)getCurrentPages使用坑位记录2

前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,现公司项目就是主推uni-app,我主要负责抖音和快手端小程序。 坑位 公司历史原因项目有APP端小程序端,但并不使用uni-app的一端发布所有平台,…

二叉查找树和笛卡尔树

二叉查找树~和笛卡尔树目录二叉查找树定义作用操作查找插入删除缺点笛卡尔树定义操作构造 二叉查找树 定义 ​ 二叉查找树(Binary Search Tree,BST),又名二叉搜索树或二叉排序树。 ​ 它是一类特殊规定的二叉树,它应当满足以下条件:每个节点有唯一确定的权值 非叶子节点的…

浅谈 tarjan

就是记录两个数组:dfn[]和low[] 其中dfn[]表示访问的顺序,low[u]用来存储 \(u\) 不经过其父亲能到达的最小时间戳。。。 搬一下 wiki 的图。。。我们发现 \(low[v]\ge dfn[u]\) 可以表示不能回到祖先,则 \(u\) 点位割点。。。 直接上代码P3388------> #include <bits/…

正点原子新起点V2开发板FPGA关于SDRAM代码解读

正点原子新起点V2开发板FPGA关于SDRAM代码解读 1. SDRAM 概述 SDRAM(Synchronous Dynamic Random Access Memory)是一种同步动态随机存储器,广泛用于FPGA项目中。通过SDRAM控制模块,可以实现数据读写、刷新等操作。本文对SDRAM的控制模块进行详细解读,分析代码中的命令控制…

面试题速刷 - 实战会碰到的一些问题

页面如何进行首屏优化?路由懒加载服务端渲染SSR只获取HTML就可以,里面包含data。 APP预取(啥东西)APP结合H5、结合JS bridge 分页图片懒加载 lazyloadHybrid总结:后端一次性返回10w条数据,你会如何渲染? 本身后端设计方案的设计就不合理!非要的话......自定义中间层:虚…

氏发

这个作业属于哪个课程 2024高级语言程序设计 (福州大学 - 计算机与大数据学院)这个作业要求在哪里 高级语言程序设计课程第三次个人作业学号 102400117姓名 廖逸轩

二、STM32F103C8T6-定时器

STM32F103C8T6 定时器概述 STM32F103C8T6 作为一款广泛使用的微控制器,内置多个定时器,能够支持多种计时和控制功能,如精确延时、脉冲宽度调制(PWM)、捕获比较(Capture/Compare)、输入捕获 和 输出比较 等。这些功能在电机控制、信号测量、周期性事件触发等应用中非常常…