自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 网络编程;TCP多进程并发服务器;TCP多线程并发服务器;TCP网络聊天室和UDP网络聊天室;后面两个还没写出来;0911

本文介绍了两种TCP服务器并发实现方式:多进程和多线程版本。在多进程版本中,父进程通过信号处理函数非阻塞回收子进程资源,子进程负责与客户端通信;多线程版本则通过线程分离实现自动资源回收。两种方式均实现了基本的客户端连接、消息收发和响应功能,包含端口重用、地址绑定等网络编程基础操作。作者表示后续将补充基于UDP的网络聊天室实现。代码展示了完整的服务器实现流程,包括套接字创建、端口重用设置、地址绑定、监听连接以及多进程/线程处理机制。

2025-09-11 20:59:44 216

原创 网络编程;TCP控制机械臂;UDP文件传输;0910;ps今天没写出来

摘要:本文展示了一个TCP机械臂控制程序的代码框架,主要实现了客户端与服务器的连接和简单控制功能。程序通过套接字建立TCP连接,设置了地址重用属性,并绑定了客户端IP和端口。核心功能包括:发送机械臂初始位置数据(红色臂和蓝色臂),以及计划通过wasd键盘输入控制机械臂移动(目前仅完成w键处理框架)。程序还包含关闭套接字的操作,但UDP文件传输功能尚未实现。代码展示了基本的网络编程和机械臂控制思路。

2025-09-10 21:05:34 233

原创 网络编程;套接字;TCP通讯;UDP通讯;0909

本文展示了TCP和UDP两种网络通信协议的服务器端和客户端代码实现。TCP部分包含完整的连接建立、数据收发流程,其中服务器端通过socket()、bind()、listen()、accept()建立连接,客户端通过connect()发起连接。UDP部分则采用无连接的通信方式,使用sendto()和recvfrom()进行数据收发。两种协议都实现了基本的消息收发功能,服务器端会对接收到的消息添加表情符号后返回。代码结构清晰,包含错误处理、地址转换等关键细节,可作为网络编程的基础示例。

2025-09-09 21:03:12 229

原创 网络编程;TCP/IP协议,和 网络编程相关概念;字节序转换;0908

本文包含两个C语言代码示例:1. 字节序转换代码演示了htonl()和htons()函数的使用,将主机字节序(0x12344678和0x1234)转换为网络字节序并输出结果;2. IP地址转换代码展示了如何用inet_addr()函数将点分十进制IP("192.168.108.56")转换为网络字节序的无符号整型。两个示例都涉及网络编程中的字节序转换问题,并包含相应的头文件和输出语句。

2025-09-08 20:58:15 149

原创 IO进程线程;多线程;线程互斥同步;互斥锁;无名信号量;条件变量;0905

本文展示了三个多线程编程案例:1) 使用无名信号量实现ABC顺序打印,通过三个线程和信号量控制实现循环输出;2) 生产者-消费者模型,使用互斥锁和条件变量实现一个生产者广播通知多个消费者;3) 多线程文件拷贝尝试,计划通过互斥锁分割文件为前后两部分并行拷贝,但存在参数传递问题未完全实现。这些案例演示了多线程同步的基本机制,包括信号量、互斥锁和条件变量的使用。

2025-09-05 21:07:33 147

原创 IO进程线程;共享内存;信号量集(信号灯集);0904

摘要:本文实现了一个基于信号灯集的多进程同步方案,通过三个进程循环输出"A"、"B"、"C"。系统包含mysem.h头文件定义信号灯操作接口,mysem.c实现信号灯集创建、P/V操作和删除功能。主程序ABC.c创建包含3个信号灯的信号量集,父进程和两个子进程分别通过P操作获取信号灯资源输出对应字符后,用V操作释放下一进程的信号灯,形成循环同步。该方案展示了信号灯集在进程间同步控制中的典型应用。

2025-09-04 21:04:21 222

原创 IO进程线程;进程,发送信号;进程,消息队列通信;0903

本文包含两个程序示例:1) 子进程回收程序,通过信号处理函数捕获SIGCHLD信号,使用非阻塞方式循环回收子进程资源;2) 消息队列通信程序(msgrcv.c和msgsnd.c),演示父子进程间通过消息队列进行双向通信,父/子进程分别负责发送和接收不同类型(1/2)的消息。两个程序都使用了多进程模型,通过ftok创建共享key值,msgget建立消息队列,msgsnd/msgrcv实现消息收发,并处理了标准输入输出。

2025-09-03 21:16:58 232

原创 IO进程线程;多进程;创建进程,进程的状态切换,回收进程空间;父子进程各拷贝一半的文件;父进程创建两个子进程,父进程回收子进程空间,两个子进程各拷贝文件的一半;0902

本文展示了两种使用父子进程协同拷贝文件的方法:1)单父子进程方案中,父进程拷贝文件前半部分,子进程sleep(1)后拷贝后半部分;2)双子进程方案中,父进程创建两个子进程分别拷贝前后半部分,并使用waitpid()回收子进程。两种方案都通过lseek()计算文件大小和位置,父进程使用O_TRUNC模式打开目标文件,子进程使用O_APPEND模式追加写入,确保文件完整拷贝。代码演示了进程创建、文件操作和进程同步等系统编程技术。

2025-09-02 21:07:02 96

原创 IO进程线程;标准io;文件IO;0901

该文章介绍了使用文件IO和标准IO实现文件拷贝的三种方法。第一种使用标准IO的fread/fwrite函数,通过模块化读取实现文件复制;第二种在此基础上增加了数字过滤功能,仅拷贝源文件中的数字字符;第三种使用文件IO的系统调用read/write实现文件拷贝。文章还对比了文件IO和标准IO的区别:文件IO操作文件描述符、无缓冲区、只能处理二进制;标准IO操作文件指针、有缓冲区、支持多种格式。二者的联系在于都需要操作文件光标,且功能上可以互相实现。

2025-09-01 21:14:26 294

原创 io进程线程;标准IO;0831

代码。

2025-08-31 22:01:35 125

原创 数据结构:链式队列尝试;0826

这篇文章展示了一个链式队列的实现代码,但存在多处语法和逻辑错误。主要问题包括:1)节点创建函数creat_node被误写为creat_queue;2)入队函数中的条件判断错误(H->front=NULL应为H->front==NULL);3)指针操作错误(H->next=N应为H->rear=N);4)未实现的count_que和free_que函数。代码结构完整但需要修正这些错误才能正常使用。

2025-08-26 21:04:23 266

原创 数据结构:单向链表的逆置;双向循环链表;栈,输出栈,销毁栈;顺序表和链表的区别和优缺点;0825

本文介绍了单向链表逆置和双向循环链表的实现。单向链表逆置通过头插法实现,需处理空指针和链表为空的情况。双向循环链表实现了创建、插入、删除等操作,包含头插、尾删、按位置操作等功能。栈的实现包括压栈、弹栈、判空判满等操作。顺序表和单链表的区别在于:顺序表内存连续,查找高效但长度受限;单链表内存不连续,长度灵活但查找效率低。代码展示了数据结构的基本操作实现方法。

2025-08-25 22:45:53 182

原创 数据结构;单向链表;单向循环链表;0823

该代码实现了一个单向循环链表的数据结构,包含以下核心功能: 基本操作: 创建链表/节点 头插/头删 尾插/尾删 判断链表是否为空 链表输出显示 高级功能: 按位置插入/删除节点 按位置查找/修改值 按值查找/修改 链表逆置 清空链表(释放所有节点内存) 实现特点: 使用头节点管理链表 包含完善的错误检查(空指针、非法位置等) 通过循环实现链表连接 提供完整的测试用例(main.c) 代码结构分为头文件(link.h)、实现文件(link.c)和测试文件(main.c),实现了链表的基本操作和多种实用功能,适

2025-08-25 00:19:14 313

原创 数据结构;Makefile;顺序表;0821

这篇文章主要包含两个部分内容: Makefile改进方案:针对多文件编译时.h文件修改不触发重新编译的问题,提供了改进后的Makefile代码,通过添加头文件依赖关系(DEPS变量)和修改.o文件的依赖规则,确保.h文件修改时能触发重新编译。 顺序表实现代码:展示了顺序表的基本操作实现,包括: 创建顺序表函数(两种版本:返回指针和通过指针地址传参) 头插元素函数 判断表满/空函数 输出函数 头删函数 所有函数都包含空指针检查,关键操作前会检查表是否已满或为空。代码示例了如何通过移动元素实现头插和头删操作,并

2025-08-21 20:55:48 334

原创 C语言;结构体;typedef,类型重定义;带位域;共用体;枚举;分文件编译。0819

思维导图分析,温故知新

2025-08-19 20:51:14 196

原创 C语言,函数指针,动态内存分配,递归函数,;递归:输出二进制,斐波那契数列,赶鸭子问题;0818

摘要:三个递归算法实例:1)赶鸭子问题:通过7个村庄后剩2只,递归计算初始数量为(duck(v-1)+1)*2;2)十进制转二进制:递归处理余数并拼接结果;3)斐波那契数列:递归公式fb(n)=fb(n-1)+fb(n-2)。每个案例包含完整C代码实现,展示递归在数学问题中的应用。

2025-08-18 20:54:31 164

原创 C语言;指针数据类型;atoi函数;二级指针;函数;猴子吃桃问题循环实现;函数求二维数组的最大值运用指针实现;字符串函数族自行实现;0815

该代码集包含多个C语言程序实现:1.自定义atoi函数实现字符串转整数;2.指针实现冒泡排序和数组最大值查找;3.自定义字符串处理函数(strlen/strcpy/strcat/strcmp);4.指针求二维数组最大值;5.循环实现猴子吃桃问题(计算第一天桃子总数)。所有程序都使用指针操作,展示了C语言中指针和数组的灵活运用。

2025-08-16 10:17:51 205

原创 C;内存用户空间;二维数组 和 指针;指针数组;主函数的外部参数;以及二级指针的函数的内容;0814

本文介绍了C语言中的三个知识点:1. 通过命令行参数实现简单计算器功能,支持加减乘除和取模运算;2. 二级指针的使用方法,包括指针偏移和间接访问变量;3. 函数封装与调用,以密码验证功能为例演示了函数定义、参数传递和返回值处理。代码示例展示了如何实现这些功能,包括处理命令行参数中的特殊字符、多级指针的内存地址变化以及字符串比较的逻辑实现。

2025-08-14 20:21:14 120

原创 C;指针;指针和一维数组;指针和一维字符数组;特殊的指针;指针实现冒泡排序、选择排序;strcpy\strcmp指针实现;输入带空格的字符串,删除空格,指针实现。0813

本文展示了五种C语言指针操作的代码实现:1) 使用指针和冒泡排序对数组进行升序排列;2) 使用指针和选择排序对数组进行升序排列;3) 用指针实现strcpy字符串拷贝功能;4) 用指针实现strcmp字符串比较功能;5) 使用指针删除字符串中的空格。每种实现都通过指针操作数组元素或字符串,并包含完整的测试代码。这些示例演示了指针在数组操作和字符串处理中的灵活应用,包括排序算法实现、字符串拷贝、比较和修改等常见操作。

2025-08-13 20:29:13 153

原创 C语言,字符串数组函数,strcmp...;二维数组;二维字符数组;思考:一维数组的去重。0812

我的思考是:一、新建一个 10个元素的数组a 有多个重复的元素二、定义变量len,是 a的长度三、外层循环,i 从第0项 到 第len-1项元素,与后面的数组元素进行比较四、内层循环,从i+1项 遍历到len-1项,实现比较,如果a[i]==a[j],那就把j后面的每个元素往前移动一个「具体怎么移动,内部循环,从第j项到第len-2项,a[w]=a[w+1]」,len减去1,实现数组去重一个元素,j减去1,保险去除所有重复元素。

2025-08-12 20:56:14 103

原创 线程:同步互斥;线程锁;0807

牛客。

2025-08-07 20:09:08 116

原创 进程、线程;线程函数;分支线程文件拷贝;分支线程实现逆置输出;0806

本文展示了两个多线程编程实例:1) 文件分块拷贝程序,使用两个线程分别拷贝文件的前后部分,通过文件偏移定位和缓冲区实现高效拷贝;2) 字符串交替正反序输出程序,两个线程通过互斥锁和条件变量同步,交替打印原始字符串和反转字符串。两个程序均采用pthread线程库实现,包含完整的错误处理机制,演示了多线程编程中的任务分割、共享资源访问控制等核心概念。代码结构清晰,包含必要的注释,可直接编译运行。

2025-08-06 20:53:09 146

原创 进程;getpid|getppid;exit|_exit;wait|waitpid;进程扇;进程链;0805

摘要:本文展示了两种进程创建模式的C语言实现:1)进程扇模式使用fork()创建三个并行子进程,父进程通过wait()等待所有子进程完成;2)进程链模式按世代深度依次创建子进程(父→子→孙→曾孙),每代进程等待其直接子进程退出。两种模式均包含进程PID输出、模拟工作(sleep)和状态返回机制,演示了UNIX系统中进程的创建、执行顺序控制和进程间关系。代码包含错误处理和状态追踪,清晰地展现了父子进程的执行流程和生命周期管理。

2025-08-05 20:38:24 227

原创 进程;父子进程,父进程拷贝文件的前一部分,子进程拷贝文件的后一部分;0804

摘要:该程序通过fork()创建父子进程实现文件分割拷贝。父进程负责拷贝源文件前半部分到copy1,子进程负责拷贝后半部分到copy2。程序首先获取源文件大小并计算分割点,父进程从文件头开始拷贝,子进程使用lseek()定位到中间位置进行拷贝。使用4096字节的缓冲区提高读写效率,父子进程同步通过wait()实现。运行结果显示拷贝的字节数和目标文件路径,完成文件的分割复制。

2025-08-04 20:53:59 224

原创 IO函数;文件IO函数实现文件的拷贝;标准IO函数实现图片的拷贝;计算文件大小;0801

【代码】IO函数;文件IO函数实现文件的拷贝;标准IO函数实现图片的拷贝;计算文件大小;0801。

2025-08-01 21:42:10 166

原创 IO 进程 线程;IO函数;标准IO函数;输入文件名,下载;输入文件名,计算文件字节大小;0731

这篇文章包含两个C语言程序示例:第一个程序实现文件复制功能,用户输入源文件名后,程序将文件内容逐行复制到名为"downloaded_file"的目标文件中;第二个程序计算文件大小,用户输入文件名后,程序通过fseek和ftell函数获取并显示文件字节数。两个程序都包含基本的错误处理,当文件打开失败时会输出错误信息。程序演示了C语言中文件操作的基本方法,包括文件打开/关闭、读写操作以及文件指针定位等常见操作。

2025-07-31 21:01:25 198

原创 数据结构;栈、队列、哈希表、树和二叉树;

理论题。

2025-07-28 21:27:10 120

原创 数据结构;单向链表 查找倒数第n个,单向链表的排序;顺序表和链表的区别;双向链表 尾删 按位置插入 按位置删除 按位置修改 按位置查找;0724

/创建头节点//flag=1 头节点初始化//flag=0 普通节点初始化//return 返回值 返回新节点//内存申请成功if(flag==1)//头节点 初始化lens->len=0;else if(flag==0)//普通节点 初始化datas->data=0;//返回新节点return s;//双向链表头插//判断头节点是否存在//头插入//创建一个新节点//节点创建成功//如果只有head//对新节点数据 赋值 插入的元素//插入新节点。

2025-07-24 21:00:19 216

原创 数据结构,链表;链表按位置删改查;链表按元素删改查。0723

该代码实现了一个带头节点的单链表数据结构,包含完整的增删改查功能。主要功能包括:头插尾插、按位置插入删除修改、按元素查找修改删除,以及链表逆置等操作。程序通过头节点记录链表长度,用户可交互式输入数据进行测试。代码结构分为头文件声明、主函数测试和功能函数实现三部分,采用枚举类型定义返回状态,通过动态内存管理实现节点操作。测试案例展示了链表从创建、插入、修改到删除的全过程,最后通过循环释放内存避免泄漏。程序体现了链表基本操作的完整实现和良好的错误处理机制。

2025-07-23 20:57:56 150

原创 数据结构;数据;数据结构;时间复杂度;顺序表;实现顺序表按元素 删改查;顺序表排序;顺序表去重;0722

本文实现了顺序表的基本操作,包括创建、插入、删除、查找、修改等功能。通过头文件sqlist_head.h定义数据结构及函数接口,在sqlist_test.c中实现具体操作,主程序sqlist_main.c进行功能测试。代码实现了顺序表尾部操作、按索引操作、按元素操作等核心功能,并尝试实现去重和冒泡排序(尚不完善)。测试案例展示了各个功能的调用过程及运行结果,最后通过free释放内存。该实现为线性表的基础应用,可作为数据结构学习的实践参考,后续可继续优化去重和排序算法。

2025-07-22 20:56:43 191

原创 数据结构 C语言 宏,宏函数;分文件编译;typedef;makefile;C语言习题练习 0721

2025-07-21 21:03:39 167

原创 C语言 学校人员信息统计 ,补完0717版,0719

摘要:本文展示了两个C语言结构体应用案例。第一个案例管理学校人员信息,使用结构体指针动态分配内存,区分学生(存储分数)和教师(存储职务)信息,实现输入、统计和输出功能。第二个案例实现商品管理系统,动态创建商品信息结构体数组,支持按单价排序、计算最高价商品和总消费金额。两个案例均包含完整的内存管理(分配与释放),并通过控制台交互演示了功能实现,包括排序前后的数据对比。代码采用了结构体、联合体、指针等C语言特性,展示了动态内存管理和数据结构处理的实际应用。

2025-07-19 17:19:40 262

原创 C语言,结构体,结构体指针,共用体;学校人员统计 0717

摘要:题目要求实现一个管理学校人员信息的程序,使用结构体指针动态分配内存。需要定义结构体存储学生(包含姓名、性别、职业、分数)和教师(包含姓名、性别、职业、职务)信息。程序分为五个功能模块:1) 动态分配内存;2) 输入人员信息;3) 统计师生人数;4) 输出所有信息;5) 释放内存。示例代码演示了结构体指针的基本用法,包括声明、初始化、修改成员和动态内存分配。虽然当前代码只实现了部分功能,但为进一步开发提供了基础框架。

2025-07-17 21:04:46 283

原创 C语言,函数指针,动态内存分配,递归函数,结构体;递归:输出二进制,斐波那契数列,赶鸭子问题,0716

摘要:本文展示了三个递归算法实现:1) 十进制转二进制,通过递归取余计算;2) 斐波那契数列生成,递归求解前两项之和;3) 赶鸭子问题,逆向递归推算初始数量。每个算法包含完整C代码,均通过递归实现数学计算,其中二进制转换使用静态变量存储位权,斐波那契采用经典递归公式,鸭子问题则通过村庄倒推求解。三部分代码结构类似,包含主函数输入输出和递归函数实现,演示了递归在数值计算中的应用。

2025-07-16 21:00:37 207

原创 C语言,指针,函数,0715

代码: --具体就是 当作一维数组处理。

2025-07-15 20:59:45 195

原创 C语言,指针,指针与一维数组,指针与一维字符数组,指针和字符常量,指针和二维数组;数组指针;指针数组;主函数的外部参数 0714

思维导图。

2025-07-14 20:52:09 109

原创 C语言,指针,指针的定义及其用法,用指针实现冒泡排序,用指针求数组中元素的最大值,0711

本文展示了两个使用指针操作的C语言程序。第一个程序通过指针实现冒泡排序算法,接受用户输入的10个整数,使用指针进行排序并输出结果。第二个程序同样使用指针操作数组,找出10个输入数中的最大值及其下标位置。两个程序都展示了指针在数组操作中的高效应用,包括数组元素的访问、比较和交换等操作。程序结构清晰,包含输入、处理和输出三个基本模块,体现了指针在数组处理中的便捷性。

2025-07-11 20:40:39 194

原创 C语言,一维字符串数组,二维数组,字符串函数族的函数,求二维数组中的最大值自行实现strcpy、strlen、strcat、strcmp,输入带空格的字符串得到有几个单词,输入数据输出二进制,0710

本文展示了多个C语言编程案例:1) 二维数组最大值查找,通过双重循环遍历数组比较元素;2) 十进制转二进制输出;3) 字符串处理函数的自行实现,包括strcpy、strlen、strcat、strcmp;4) 统计空格分隔的单词数量;5) 字符串逆置操作。每个案例均包含完整代码实现,涉及数组遍历、字符串操作等基础编程技巧,代码简洁直接,适合初学者学习基本语法和算法逻辑。注意部分代码存在语法错误(如字符串单词统计部分),需要修正才能正常运行。

2025-07-10 21:18:42 178

原创 C语言、数组、排序算法、字符串数组输入输出;0709

终端输入一串字符,以'#'结束,统计大写字母、小写字母和数字字符的个数。升序排序10个学生的成绩。

2025-07-09 20:44:16 83

原创 C语言,循环结构,辅助控制关键字,循环结构控制printf,putchar输出 0708

输出1000以内的完美数,如上。3-100的质数,如上。

2025-07-08 21:11:10 193

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除