《计算机基础与程序设计》第13周学习总结
学期(如2024-2025-16) 学号(如:20241404) 《计算机基础与程序设计》第13周学习总结
作业信息
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP |
---|---|
这个作业要求在哪里 | https://msg.cnblogs.com/item/4308888 |
作业正文 | https://www.cnblogs.com/wangsiwen666/p/18621435 |
教材学习内容总结
《C语言程序设计》第十二章通常涉及的是C语言中的高级主题,不同版本的教材可能会有所不同,但一般会包括以下几个方面的内容:
-
文件操作:
- 文件的打开与关闭:
fopen
,fclose
函数的使用。 - 文件的读写:
fgetc
,fputc
,fgets
,fputs
,fprintf
,fscanf
等函数。 - 文件的定位:
rewind
,fseek
,ftell
函数。 - 文件的错误检测:
feof
,ferror
函数。
- 文件的打开与关闭:
-
动态内存分配:
- 内存分配:
malloc
,calloc
函数。 - 内存释放:
free
函数。 - 内存重新分配:
realloc
函数。 - 动态内存分配的注意事项和常见错误。
- 内存分配:
-
结构体和联合:
- 结构体的定义和使用。
- 结构体数组和指针。
- 结构体与函数。
- 联合(Union)的定义和使用。
- 枚举类型(Enumeration)。
-
位操作:
- 位运算符:
&
(位与)、|
(位或)、^
(位异或)、~
(位取反)。 - 位域(Bit Fields)。
- 位操作的应用场景。
- 位运算符:
-
预处理器指令:
#define
宏定义。#include
指令。#ifdef
,#ifndef
,#if
,#endif
条件编译。#undef
取消宏定义。#pragma
指令。
-
C语言标准库函数:
- 字符串处理函数:
strcpy
,strcat
,strlen
,strcmp
,strncmp
等。 - 数学函数:
sin
,cos
,sqrt
,pow
等。 - 时间和日期函数:
time
,localtime
,strftime
等。
- 字符串处理函数:
-
错误处理和调试:
- 错误处理机制:
assert
宏。 - 调试技巧和工具的使用。
- 错误处理机制:
-
C语言中的高级特性:
- 变长数组(VLA)。
- 匿名函数(在C99中引入)。
-
C语言与操作系统的交互:
- 系统调用和库函数。
- 进程控制和信号处理。
这个总结是基于常见的C语言教材内容,具体章节内容可能会根据教材的不同有所差异。如果你有具体的教材或者想要了解某个特定主题的详细信息,可以提供更多的信息或者上传文件,我可以帮助你更详细地总结。
教材学习中的问题和解决过程(先问 AI)
(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )
- 问题1:如何使用malloc分配内存?
- 问题1解决方案:malloc函数用于动态分配内存。它的原型是void *malloc(size_t size);,你需要传递需要分配的字节数。例如,分配一个整数的内存可以写作:
int *ptr =(int *)malloc(sizeof(int)); - 问题2:如何检查malloc是否成功分配了内存?
- 问题2解决方案:在使用malloc后,应该检查返回的指针是否为NULL,因为如果内存分配失败,malloc会返回NULL。
int *ptr = (int *)malloc(sizeof(int));
if (ptr == NULL) {
处理内存分配失败的情况
}
基于AI的学习
代码调试中的问题和解决过程
- 问题1:不会将数据块写入文件
- 问题1解决方案:FILE *fp
fp=fopen(“demo.txt””w”);
Fscanf(fp,“%d”,stu[i].xh...) - 问题2:定义的函数中含有结构体时:
- 问题2解决方案:Void 函数名(struct student stu[],...)
其他(感悟、思考等,可选)
我在编写程序之前对结构体及文件,尤其是文件,掌握非常不牢固,但在做实验的过程中,我不断地翻书,学习例题,从理解例题、抄例题到自己独立写例题,我掌握了文件的相关知识。并且我发现了很多小问题,如函数中的结构体如何写,我之前一直认为是void 函数名(struct student...),在自己编写后才发现问题:应该是void 函数名(sturct student stu[])。最后为了提高程序的效率和可读性,我学会了如何优化代码。也在编程过程中的挑战学会了耐心和坚持。