首页 > 编程语言 >2023-2024-1 20231309 《计算机基础与程序设计》第十一周学习总结

2023-2024-1 20231309 《计算机基础与程序设计》第十一周学习总结

时间:2023-12-10 21:46:05浏览次数:33  
标签:学习 20231309 函数 来自 AI C语言 2024 2023 字符串

2023-2024-1 20231309 《计算机基础与程序设计》第十一周学习总结

作业信息

这个作业属于哪个课程 2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2023-2024-1计算机基础与程序设计第十一周作业
这个作业的目标
作业正文 2023-2024-1 20231309 《计算机基础与程序设计》第十一周学习总结

教材学习内容总结

下图分别为《C语言程序设计》第10章梳理和《计算机科学概论》第15、16章梳理


教材学习中遇到的问题

-问题1:看书之后仍然对cookie没有清晰的认识,也不清楚为什么有时会在浏览网页时收到cookie提示请求
-解决:在问GPT后我了解了,cookie就是网站在用户计算机留下/访问相关数据的技术,同时,大多国家都有法律规定,网站使用cookie必须经过用户许可。
-问题2:在学习函数指针之后仍不会使用函数指针,也不知道函数指针有什么用。
-解决:在向GPT寻求实例后(代码如下)我知道了,函数指针的用法即(*f)(datatype),可以用于函数回调,即将该函数作为另一函数的参数。

#include <stdio.h>

// 回调函数,执行特定操作
void callback(int num) {
    printf("回调函数被调用,传递的参数是:%d\n", num);
}

// 带有回调函数的函数
void performCallback(void (*cb)(int), int num) {
    cb(num);
}

int main() {
    int number = 42;

    printf("执行回调函数前的操作\n");
    // 调用带有回调函数的函数
    performCallback(callback, number);
    printf("执行回调函数后的操作\n");

    return 0;
}

基于AI的学习

(以下为导出的对话记录)

来自你的消息:

今天我学习了C语言程序设计关于字符串的使用,请你以苏格拉底的方式向我提问,一次一个问题

来自AI的消息:

你好!我很高兴听到你学习了C语言程序设计中关于字符串的使用。现在,让我以苏格拉底的方式来向你提问。首先,你能否告诉我,在C语言中,你是如何声明和初始化一个字符串的呢?

来自你的消息:

声明和初始化字符串通常使用数组,如 char str[]="Hello";

来自AI的消息:

非常好!你正确地指出了在C语言中,可以使用数组来声明和初始化字符串。你提到了一个例子:char str[]="Hello";。 那么,接下来的问题是,你知道为什么我们在声明和初始化字符串时需要使用字符数组吗?

来自你的消息:

因为C语言下没有直接对应的字符串数据类型,不得不采用字符数组

来自AI的消息:

非常准确!在C语言中,没有直接对应的字符串数据类型,因此我们通常使用字符数组来表示和操作字符串。字符数组允许我们在内存中连续存储一系列字符,从而构成字符串。接下来的问题是,你知道在C语言中,如何使用字符数组来表示和处理字符串的长度吗?

来自你的消息:

通常使用头文件<string.h>下的strlen(str)来获得字符串长度

来自AI的消息:

很好!你提到了在C语言中使用 <string.h> 头文件中的 strlen(str) 函数来获取字符串的长度。strlen 函数返回给定字符串的字符数(不包括空字符\0)。继续深入讨论,你知道如何在C语言中比较两个字符串的内容是否相等吗?

来自你的消息:

通常使用头文件<string.h>下的strcmp(str1,str2)来比较字符串,如果两个字符串内容相等则返回)

来自AI的消息:

没错!在C语言中,可以使用 <string.h> 头文件中的 strcmp(str1, str2) 函数来比较两个字符串的内容。如果两个字符串相等,strcmp 函数会返回0;如果不相等,它会返回一个非零值。这是一种常见的比较字符串内容的方法。如果你有其他关于C语言字符串处理的问题,我很乐意继续帮助你。

来自你的消息:

请你继续以苏格拉底的方式向我提问,一次一个问题

来自AI的消息:

当然,我将继续以苏格拉底式的方式,逐步提问。首先,你能否告诉我如何在C语言中将一个字符串复制到另一个字符串中?

来自你的消息:

通常使用头文件<string.h>下的strcpy(str1,str2)来把str2的内容复制给str1

来自AI的消息:

非常好!你描述得很准确。在C语言中,可以使用 <string.h> 头文件中的 strcpy(str1, str2) 函数来将一个字符串复制到另一个字符串中。这个函数会将 str2 的内容复制到 str1 中,包括字符串结束符\0。接下来,我想问一下你对C语言中动态内存分配的了解如何呢?

来自你的消息:

malloc、calloc?

来自AI的消息:

非常棒,你提到了C语言中的动态内存分配函数 malloccalloc。那么,你能够解释一下这两个函数的区别以及它们的作用吗?

来自你的消息:

我不太记得了,你能和我说说吗

来自AI的消息:

当然!让我为你解释一下。

在C语言中,malloccalloc 都用于动态分配内存空间。它们的主要区别在于:

  1. 参数不同:

    • malloc 函数有一个参数,即所需的内存大小(以字节为单位)。例如,malloc(sizeof(int)) 将分配一个整型变量的内存空间。
    • calloc 函数有两个参数,第一个参数是所需的元素数量,第二个参数是每个元素的大小。例如,calloc(5, sizeof(int)) 将分配一个包含5个整型元素的数组的内存空间。
  2. 内存内容:

    • malloc 函数返回的内存空间不会被初始化,其中的内容是随机的。
    • calloc 函数返回的内存空间会被初始化为零,也就是每个字节都被设置为0。

使用这两个函数时,需要注意以下几点:

  • 如果要分配的内存空间不太大,并且不需要初始化为0,可以使用 malloc 函数。
  • 如果要分配的内存空间较大,并且需要初始化为0,可以使用 calloc 函数。

需要记住的是,在使用完动态分配的内存后,要确保使用 free 函数来释放已分配的内存,以避免内存泄漏。

希望这个解释能够帮助你更好地理解 malloccalloc 函数的用法。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 2/2 12/12
第二周 10/10 1/3 7/19
第三周 60/70 4/7 12/31
第四周 120/190 3/10 12/43
第五周 260/450 2/12 16/59
第六周 250/700 4/16 12/71
第七周 400/1100 1/17 14/85 学习程序编写规范
第八周 400/1500 2/19 10/95 学习模块化编程
第九周 500/2000 1/20 7/102 学习指针的使用
第十周 500/2500 1/21 11/103 学习字符串函数
第十一周 500/3000 1/22 12/115 学习结构体的使用
  • 计划学习时间:10小时

  • 实际学习时间:12小时

  • 改进情况:本周计划水平与上周基本一致

参考资料

标签:学习,20231309,函数,来自,AI,C语言,2024,2023,字符串
From: https://www.cnblogs.com/zzz12138/p/17893272.html

相关文章

  • 2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第十一周学习总结
    2023-2024-120231321王曦轶《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第十一周作业)这个作业的目标<计算机......
  • 2023.12.10——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.c#明日计划:学习......
  • 2023-2024-1 20231312 《计算机基础与程序设计》第11周学习总结
    作业信息这个作业属于哪个课程<班级的链接>2023-2024-1-计算机基础与程序设计|-这个作业要求在哪里<作业要求链接>2023-2024-1计算机基础与程序设计第6周作业|这个作业的目标《计算机基础概论》第15、16章《C语言程序设计》第10章|作业正文作业链接教......
  • 2023年12月9日、10日每日随笔
    今天,主要进行了Jfinal框架的了解与编写,通过下午的简单了解,基本了解了Jfinal的运行逻辑,后在进行自己的编写,出现了报错,在解决报错的过程中,对于jfinal框架的的含义理解更加深刻,主要是作为一个后端框架,前端可以进行自己的发挥,于是结合了vue前端知识和jfianl后端搭建进行项目的完成......
  • 2023-2024-1 20232403 《网络》第5周学习总结
    思维导图与ChatGPT对话自测学习心得内容安全相较于前几章理解起来较为容易,网络内容安全是指保护网络中的信息和数据免受未经授权的访问、使用、修改或破坏的一系列措施。学习网络内容安全的目的是为了提高个人和组织在网络环境中的安全性。学习网络内容安全让我了解到了网络......
  • 学期 2023-2024-1 20232326《网络空间安全导论》第五周学习总结
    教材学习内容总结教材学习中的问题和解决过程问题1:每种基于帧的音频特征的定义与实际意义是什么?问题1解决方案:基于帧的音频特征是一种将音频信号分割成小段(或称为帧)并计算每个帧的特征的方法。通过对每个帧进行特征提取,可以更好地捕捉音频信号的时域和频域信息,从而在音频处......
  • 2023-2024-1 学号20231427 《计算机基础与程序设计》第十一周学习总结
    #学期(如2023-2024-1)学号(如:20231300)《计算机基础与程序设计》第X周学习总结##作业信息|这个作业属于哪个课程|<班级的链接>(如https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/)||-- |-- ||这个作业要求在哪里|<作业要求的链接>(如https://www.cnblogs.com/rocedu/p/95......
  • 2023-2024-1 20231323《计算机基础与程序设计》第十一周学习总结
    2023-2024-120231323《计算机基础与程序设计》第十一周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第十一周作业作业目标自学教材《计算机科学概论》第15,16章,《C语言程序设计》第10章并完成云班课测试......
  • 2023 CCPC Henan Provincial Collegiate Programming Contest
    Preface徐神在训练前宣称要复习计通网,结果最后还是相当于全程参与了我们的训练这场我纯纯战犯表现,Easy题E狂挂7发最后发现原来是多测没清空干净,直接红温占用中期1h机时但好在祁神稳切了一手压轴计算几何,同时最后2h把卡着的题都过完了,最后又靠着题数捧杯(唉还在打弱省省赛找自信)......
  • 2023-2024-1 学号20231318《计算机基础与程序设计》第十一周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十一周作业这个作业的目标自学教材《计算机科学概论》第15,16章与《C语言程序设计》第10章并完成云班课测试。作业正文2023-2024-1学号2023......