首页 > 编程语言 >2024-2025 20241413 《计算机基础与程序设计》第四周学习总结

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

时间:2024-10-18 22:10:06浏览次数:5  
标签:运算符 20241413 代码 C语言 2024 2025 算法 数据结构 调试

作业信息

这个作业属于哪个课程 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 | |

标签:运算符,20241413,代码,C语言,2024,2025,算法,数据结构,调试
From: https://www.cnblogs.com/yuanzhengqi/p/18475145

相关文章

  • 20241018每日一题洛谷P2386
    普及每日一题信息学竞赛1206:放苹果把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。第一行是测试数据的数目t(0<=t<=20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。对输入的每组数据M和N,用一行输出相......
  • GhostDoc Enterprise.v2024.1.24160 for Visual Studio 2022插件漏洞分析和离线解锁方
      先安装,然后直接使用dnspy调试VisualStudio2022,以GhostdocPro的注册对话框作为突破口进行调试。经过一些调试可以比较轻松的发现关键点在SubMain.GhostDoc.Services.clr4.dll中,你可以通过everything在vs的插件目录中找到这个dll所在位置,其它版本的VisualStudio的方法是类似......
  • 20222406 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    202224062024-2025-1《网络与系统攻防技术》实验二实验报告1.实验内容1.1实验目标使用netcat获取主机操作Shell,cron启动某项任务(任务自定)使用socat获取主机操作Shell,任务计划启动使用MSFmeterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主......
  • 2024-10-17 模拟赛总结
    \(100+50+10+0=160\),码力不够T2没调出来,死磕T2没打出T4暴力。A-语言/language题意:设A为形容词,N为名词,V为动词,用a~z的字母来表示每一个词语,没一个词语可能既是形容词又是名词,其他同理,一个名词性词语\(NP::=N|A+NP_1|NP_1+NP_2\),一个句子\(S=NP_1+V+NP_2\)。给......
  • 发癫(2024.10.14-2024.10.18)
    虽然已临近CSP复赛,但我还在不务正业更改缺省源最近几天莫名其妙的的想改一下我的缺省源。之前和现在的缺省源比较:之前:#include<stdio.h>#include<string.h>//#include<bits/stdc++.h>//#include<iostream>//usingnamespacestd;//usingstd::cin;#defineitnint#d......
  • The 2024 ICPC Asia East Continent Online Contest (II)打题+写题笔记
    前言方队让我们来打于是来打。赛时2h过了AFGIJL,感谢qsq贡献的G。评价:A:唐,F:唐,G:没看,I:小清新构造,J:国王游戏,L:不做评价。补题补了C,EEEscape链接题意给你\(n\)个波特和一个人与一张无向联通图,波特有一个共同的活动距离\(d\)。不能在原地不动。问人在保证不遇到波特的情况下......
  • 论文分享|[ACL 2024] 鲁棒的歌声转录服务于合成
    题目:RobustSingingVoiceTranscriptionServesSynthesisRobustSingingVoiceTranscriptionServesSynthesis作者:RuiqiLi, YuZhang, YongqiWang, ZhiqingHong, RongjieHuang, ZhouZhao论文:RobustSingingVoiceTranscriptionServesSynthesisDemo:RobustS......
  • C - Word Ladder (Toyota Programming Contest 2024#9 (AtCoder Beginner Contest 370)
    题目链接:C-WordLadder题目:样例:分析:不要被题目所吓到,一切长题目都是纸老虎。题目大意就是给你两个字符串s和t,一次只能更换一个字母,求s变到t更换的次数,并输出每次更换一个字母后的最小字典序字符串。题意好理解,可以直接暴力,大力出奇迹。但是有没有更好的方法呢?既然问了......
  • 2024.10.18考试总结
    本文于github博客同步更新。A:考虑如果现在在点\(i\),能否走到编号更小的点。如果可以,那么必然存在一个\(j\geqi>a_{j}\)使得你可以走到点\(a_{j}\)。那么我们对于每个\(i\),将区间\(\left(a_{i},i\right]\)加一,从\(x\)开始能走到的编号最小的点也就是\(x\)左侧最......
  • 攻坚金融关键业务系统,OceanBase亮相2024金融科技大会
    10月15-16日,第六届中新数字金融应用博览会与2024金融科技大会(简称“金博会”)在苏州工业园区联合举办。此次大会融合了国家级重要金融科技资源——“中国金融科技大会”,围绕“赋能金融高质量发展,金融科技创新前行”的主题,安排了一系列专业论坛,汇聚金融科技界专家,共同为金融科技......