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

news/2024/12/14 19:15:22/文章来源:https://www.cnblogs.com/wchxx/p/18607077

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12
这个作业的目标 结构体和数据结构基础 文件操作
作业正文 https://www.cnblogs.com/wchxx/p/18607077

教材学习内容总结

结构体(Structures)

  1. 结构体定义

    • 定义结构体使用 struct 关键字,后跟结构体名称和一对花括号,其中包含一系列声明,称为结构体的成员。
    • 示例:
      struct Student {char name[50];int age;float gpa;
      };
      
  2. 结构体变量的声明

    • 声明结构体变量可以直接使用结构体类型。
    • 示例:
      struct Student student1;
      
  3. 结构体数组

    • 声明结构体数组与普通数组类似,但需要指定结构体类型。
    • 示例:
      struct Student students[100];
      
  4. 结构体与函数

    • 将结构体作为参数传递给函数,需要在函数定义中指定结构体类型。
    • 示例:
      void printStudent(struct Student s) {printf("Name: %s, Age: %d, GPA: %.2f\n", s.name, s.age, s.gpa);
      }
      
  5. 指针与结构体

    • 使用指向结构体的指针可以访问和修改结构体成员。
    • 示例:
      struct Student *ptr = &student1;
      ptr->age = 20; // 使用箭头操作符访问成员
      
  6. 动态内存分配

    • 使用 malloc 分配结构体内存,并使用 free 释放。
    • 示例:
      struct Student *dynamicStudent = malloc(sizeof(struct Student));
      if (dynamicStudent != NULL) {dynamicStudent->age = 22;
      }
      free(dynamicStudent);
      
  7. 嵌套结构体

    • 一个结构体可以作为另一个结构体的成员。
    • 示例:
      struct Address {char street[100];int pinCode;
      };struct Student {char name[50];struct Address homeAddress;
      };
      
  8. 结构体与链表

    • 使用结构体创建链表节点,包含数据和指向下一个节点的指针。
    • 示例:
      struct Node {int data;struct Node *next;
      };
      

文件(Files)

  1. 文件操作基础

    • 使用 fopen 打开文件,fclose 关闭文件。
    • 示例:
      FILE *file = fopen("example.txt", "w");
      if (file == NULL) {perror("Error opening file");return;
      }
      fclose(file);
      
  2. 文件指针

    • FILE* 是指向文件的指针,用于文件操作。
  3. 文件打开模式

    • 模式包括 "r"(只读)、"w"(只写,文件会被截断)、"a"(追加)等。
    • 示例:
      FILE *file = fopen("example.txt", "r+");
      
  4. 字符和字符串的读写

    • fgetc 读取一个字符,fputc 写入一个字符。
    • fgets 读取一行,fputs 写入字符串。
    • 示例:
      char ch = fgetc(file);
      fputs("Hello, World!", file);
      char buffer[100];
      fgets(buffer, sizeof(buffer), file);
      
  5. 数据块的读写

    • freadfwrite 用于读写数据块。
    • 示例:
      int data[100];
      fwrite(data, sizeof(int), 100, file);
      fread(data, sizeof(int), 100, file);
      
  6. 文件位置指针

    • rewind 重置文件指针到文件开头,ftell 获取当前位置,fseek 移动文件指针。
    • 示例:
      rewind(file);
      long position = ftell(file);
      fseek(file, position, SEEK_SET);
      
  7. 文件的错误检测

    • ferror 检查文件操作是否出错,clearerr 清除错误标志。
    • 示例:
      if (ferror(file)) {printf("Error occurred\n");clearerr(file);
      }
      
  8. 二进制文件操作

    • 使用 "rb"、"wb"、"ab"、"rb+" 等模式以二进制方式打开文件。
    • 示例:
      FILE *file = fopen("example.bin", "wb");
      
  9. 临时文件

    • 使用 tmpfile 创建临时文件,该文件在关闭时自动删除。
    • 示例:
      FILE *temp = tmpfile();
      fwrite(data, sizeof(int), 100, temp);
      fclose(temp);
      

基于AI的学习





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

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

相关文章

数据采集综合设计

这个项目属于哪个课程2024数据采集与融合技术实践 组名 从你的全世界爬过团队logo:项目简介 项目名称:博物识植项目logo:项目介绍:在探索自然奥秘的旅途中,我们常与动植物相伴而行,却无法准确识别它们,更难以深入了解他们的特征。为了更好地理解和欣赏自然界的多样性,…

Java中创建线程的几种方式

盘点一下Java中创建线程的几种方式 一、继承Thread类,重写run()方法public class MyThread extends Thread {@Overridepublic void run() {System.out.println("my thread start " + Thread.currentThread().getName());}public static void main(String[] args) {S…

消防通道堵塞识别摄像机

消防通道堵塞识别摄像机是一种安装在建筑物消防通道中的监控设备,主要用于监测消防通道是否被车辆、杂物或其他障碍物所堵塞,以确保在火灾等紧急情况下消防通道畅通无阻。这种摄像机通常安装在消防通道的入口或周围,具备高清摄像功能,能够全天候监测通道状况。一旦摄像机检…

发布你的第一个python包

发布你的第一个python包到pypi网站这里介绍如何将你写的python工具包,打包成whl,并发布到pypi.org网站,使用pip进行安装使用。大致步骤如下:注册测试testpypi.org网站,生成上传的token 注册正式pypi.org网站,生成上传的token 编写代码 规划项目代码目录布局 编写打包文件…

火灾监测识别摄像机

火灾监测识别摄像机是一种基于视觉识别技术的智能设备,旨在实时监测并识别火灾,及时报警并提供相关数据支持,以提高火灾应急响应和减少火灾灾害损失。火灾监测识别摄像机是一种基于视觉识别技术的智能设备,旨在实时监测并识别火灾,及时报警并提供相关数据支持,以提高火灾…

佩戴口罩监测识别摄像机

佩戴口罩监测识别摄像机是一种基于计算机视觉技术的智能监测设备,它能够快速准确地识别出人们是否佩戴口罩,并对佩戴口罩的人员进行识别和记录。这种摄像机在当前抗击病毒的背景下具有重要意义,在公共场所、医疗机构、交通枢纽等地方都有着广泛的应用价值。佩戴口罩监测识别…

随机中文字符生成-python包工具

随机生成中文文字,你指定数量这里介绍一个python工具包,随机生成中文文字,方便中文模型训练及随机中文字符串填充场景。操作如下: pip install chineserand代码示例: from chineserand import raw chinese_words = raw(10) print(chinese_words)项目开源地址: https://gi…

P6786 「SWTR-6」GCDs LCMs

有意思的推式子题一开始看到这个式子是不知所措的,推理出来的结论倒是挺有意思的,还是第一次遇到这样推理的。 一开始是打算直接枚举的,时间复杂度太高了,这个式子有什么意义呢? x+y+gcd(x,y) = lcm(x,y) x 等于 y时,显然不成立 当y>x时,这时候就需要猜了。x+y…

Muduo网络库解析---架构设计

前言 muduo库是陈硕个人开发基于reactor模式的tcp网络编程库。本人之前有学习过boost.asio网络库,故学习一下Muduo网络库,并分析它们之间的优缺点。 本系列将重点放在以下几件事情:梳理Muduo的核心架构设计以及各个模块的职责 理解Muduo的事件驱动机制 理解Muduo的多线程模型…

2024-2025-1学号20241309《计算机基础与程序设计》第十二周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十二周作业这个作业的目标作业正文 2024-2025-1学号20241309《计算机基础与程序设计》第十二周学习总结教材学习内容总结 《C语言程序设计》第十一章: 一…

四阶魔方教程

四阶魔方玩法还原教程 四阶魔方的还原其实很简单,大家不要看我画了这么多图,写了这么多字就以为好像很难,其实我是为了让大家尽可能的不费脑力就能学会才讲得尽量具体一点。 我们用的是降阶法,基本的还原过程如下:1.中心块复原2.棱的合并3.按三阶魔方还原4.特殊情况校正四…

P6599 「EZEC-2」异或

写数学时发现的好题 给出n和l,构造一个数组,数组长度为l,满足数组中的数字在 1-n 之间贪心的想,直接放n会发生什么。不难发现,最终的答案其实是两两异或之和 放一个n,答案就是1(l-1)n; 放一个n,答案就是2(l-2)n; 其实就是x(l-x)n; 还可以更大吗? n写成二进制就…