
c语言
文章平均质量分 85
c语言
sakura0908
未来的一个小小码农
展开
-
C语言入门到熟悉的个人心得笔记(10w字)
1972年,贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UNIX操作系统时设计了C语言,C语言是在B语言的基础上进行设计。C语言设计的初衷是将其作为程序员使用的一种编程工具,是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供供一种能以简易的方式编译、处理低级存储器、产 生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。原创 2023-05-22 22:31:07 · 1299 阅读 · 0 评论 -
C Primer Plus第十七章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!由于使用的是命令行参数常用于linux系统或者vscode,但此代码是运行于vs2022的,测试截图就不弄了。原创 2023-06-01 20:22:13 · 667 阅读 · 0 评论 -
C Primer Plus第十六章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!由于使用的是命令行参数常用于linux系统或者vscode,但此代码是运行于vs2022的,测试截图就不弄了。原创 2023-06-01 17:06:21 · 744 阅读 · 0 评论 -
C Primer Plus第十五章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!由于使用的是命令行参数常用于linux系统或者vscode,但此代码是运行于vs2022的,测试截图就不弄了。原创 2023-06-01 00:45:30 · 674 阅读 · 2 评论 -
C Primer Plus第十三章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!由于使用的是命令行参数常用于linux系统或者vscode,但此代码是运行于vs2022的,测试截图就不弄了。原创 2023-05-30 17:40:48 · 714 阅读 · 0 评论 -
C Primer Plus第十四章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!由于使用的是命令行参数常用于linux系统或者vscode,但此代码是运行于vs2022的,测试截图就不弄了。原创 2023-05-31 21:45:44 · 839 阅读 · 0 评论 -
C Primer Plus第十二章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-29 17:30:19 · 1138 阅读 · 0 评论 -
C Primer Plus第十一章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-29 14:23:37 · 1026 阅读 · 2 评论 -
C Primer Plus第十章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-28 18:25:26 · 1112 阅读 · 0 评论 -
C Primer Plus第九章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-27 23:55:28 · 1215 阅读 · 0 评论 -
C Primer Plus第八章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-26 23:41:35 · 617 阅读 · 0 评论 -
C Primer Plus第七章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-26 15:25:15 · 1237 阅读 · 0 评论 -
C Primer Plus第六章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!原创 2023-05-26 10:41:15 · 1942 阅读 · 0 评论 -
C Primer Plus第五章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值才停止循环。原创 2023-05-25 16:31:11 · 1112 阅读 · 0 评论 -
C Primer Plus第四章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!d.在比姓名宽度宽3的字段中打印名和姓。原创 2023-05-24 23:10:06 · 964 阅读 · 0 评论 -
C Primer Plus第三章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!编写一个 程序,提示用户输入水的夸脱数,并显示水分子的数量。2.编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印 输入的字符。原创 2023-05-24 17:30:36 · 837 阅读 · 0 评论 -
C Primer Plus第二章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出!除了 main()函数以外,该程序还要调用两个自定义函数:一个名为 jolly(),用于打印前 3 条消息,调用一次打印一条;2.编写一个程序,打印你的姓名和地址。原创 2023-05-23 22:22:48 · 446 阅读 · 0 评论 -
【数据结构-C语言】快速排序,希尔排序
快排是一种递归思想的排序算法,先比较其他的排序算法,它需要更多内存空间,但快排的语句频度是最低的,理论上时间效率是最高的。快速排序的基本思路是:在待排序序列中随便选取一个数据,作为所谓“支点”,然后所有其他的数据与之比较,以从小到大排序为例,那么比支点小的统统放在其左边,比支点大的统统放在其右边,全部比完之后,支点将位与两个序列的中间,这叫做一次划分(partition)。原创 2023-03-04 15:11:58 · 316 阅读 · 0 评论 -
【数据结构-C语言】冒泡排序,插入排序,选择排序
排序是处理数据的一种最常见的操作。所谓排序就是将数据按某字段规律排列,所谓字段就是数据节点的其中一个属性。比如一个班级的学生,其字段就有学号、姓名、班级、分数等等,我们既可以针对学号排序,也可以针对分数排序。稳定性:在一组无序数据中,若两个待排序字段一致的数据,在排序前后相对位置不变,则成排序算法是稳定的,否则是不稳定的。内排序与外排序:如果待排序数据量不大,可以一次性全部装进内存进行处理,则称为内排序,若数据量达到无法一次性全部装进内存,而需要将数据暂存外存,分批次读入内存进行处理,则称为外排序。原创 2023-03-04 14:54:52 · 531 阅读 · 0 评论 -
【数据结构-C语言】顺序队列,链式队列
队列是最常见的概念,日常生活经常需要排队,仔细管擦和队列会发现,队列是一种逻辑结构,是一种特殊的线性表。特殊在只能在固定的两端操作线性表。只要满足上述条件,那么这种特殊的线性表就会呈现一种“先进先出”的逻辑,这种逻辑就被称为队列。由于约定了只能在线性表固定的两端进行操作,于是给队列这种特殊的线性表的插入删除,起个特殊的名称:队头:可以删除节点的一端队尾:可以插入节点的一端入队:将节点插入到队尾之后,函数名通常为enQueue()出队:将队头节点从队列中剔除,函数名通常为outQueue()原创 2023-03-03 19:47:12 · 809 阅读 · 0 评论 -
【数据结构-C语言】顺序栈,链栈
由于约定了只能在线性表固定的一段进行操作,于是给栈这种特殊的线性表的“插入”、“删除”,起了下面这些特定的名称:栈顶:可以进行插入删除的一端栈底:栈顶的对端入栈:将节点插入栈顶之上,也称为压栈,函数名通常为push()出栈:将节点从栈顶剔除,也称为弹栈,函数名通常为pop()取栈顶:取得栈顶元素,但不出栈,函数名通常为top()基于这种固定一端的操作的简单约定,栈获得了”后进先出“的基本特性,最后一个放入的元素,最先被拿出来原创 2023-03-03 16:10:25 · 251 阅读 · 0 评论 -
【数据结构-C语言】双向循环链表
对链表而言,双向均可遍历是最方便的,另外首尾相连循环遍历也可打打增加链表操作的便捷性。因此,双向循环链表,是在实际运用中最常见的链表形态。原创 2023-03-02 23:54:44 · 1955 阅读 · 0 评论 -
【数据结构-C语言】单向链表,循环单向链表
顺序表:顺序存储的线性表链式表:链式存储的线性表,简称链表由于顺序表的缺点(数据连续存储),顺序存储的数据因为挤在一起而导致需要成片移动,那很容易想到的解决方案是将数据离散地存储在不同内存块中,然后再用指针将他们串起来,这种朴素的思路所形成的链式线性表,就是所谓的链表。顺序表和链表存在的基本样态如下图所示原创 2023-03-02 22:02:22 · 2868 阅读 · 0 评论 -
C语言入门篇——语句篇
表达式(expression)由运算符和运算对象(运算符操作的对象)组成。简单的表达式是一个单独的运算对象,以此为基础可以建立复杂的表达式。运算对象可以是常量、变量或二者的组合。C语言表达式的一个最重要的特性的,每个表达式都有一个值。要获得这个值,必须根据运算符优先级规定的顺序来执行操作。语句:语句是C程序的基本构建块。一条语句相当于一条完整的计算机指令。在C中。大部分语句都以分号结尾。原创 2023-04-21 23:34:29 · 9642 阅读 · 0 评论 -
C语言实现学生管理系统
学习完C语言之后,我们可以通过简单写一个学生管理系统来检验自己学的怎么样。很多计算机系大学生都会学到C语言,对于C语言课程的设计作业可能会感到困难,该篇博客的核心点就是带领读者单独完成学生管理系统,此篇博客附有整个学生管理系统的源码。原创 2023-05-19 23:19:50 · 7836 阅读 · 116 评论 -
C语言读取DHCP数据包(pcap文件)内容
/pacp文件头结构体//识别文件和字节顺序:小端/大端模式//主版本号//次版本号//当地的标准时间//时间戳精度//最大的存储长度//链路类型//时间戳//时间戳高位,精确到seconds//时间戳地位,精确到microseconds//pcap数据包头结构体//捕获时间//数据帧/区的长度//离线数据长度//数据链路层数据//源MAC地址//目的MAC地址//帧类型}DL_Header;//IP数据报头//版本+报头长度u_int8 TOS;原创 2023-05-18 10:52:20 · 2157 阅读 · 4 评论 -
pcap文件格式
在通过使用wireshark工具抓取主机不同网段的数据包时,把抓到的数据包保存起来会发现生成的文件是.pcap文件,此篇博客主要介绍pcap文件的格式,并利用C语言的结构体知识来初窥探数据包数据。原创 2023-05-18 00:19:57 · 1731 阅读 · 0 评论 -
DHCP数据包分析
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。原创 2023-05-18 10:26:39 · 1541 阅读 · 0 评论 -
C语言实现三子棋小游戏
三子棋》是一款古老的民间传统游戏,又被称为黑白棋、圈圈叉叉棋、井字棋、一条龙、九宫棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子连成一条线的一方则视为胜利者。原创 2023-05-16 17:40:05 · 443 阅读 · 0 评论 -
C语言实现随机点名器
制作一个命令行运行的点名程序,该程序运行时用指定txt文件作为“班级”花名册,运行后再界面上显示。的过程,速度由快到慢,逐渐定格到某一个名字上,保存到文件中,程序结束。原创 2023-05-15 14:43:18 · 8594 阅读 · 1 评论 -
关于c语言的tcp通讯详细讲解
简单来讲,TCP 类似于打电话,说话前需要花一定的时间接通电话,等到对方接听了之后双方才能开始通信,通信的过程中每个数据的传送,接收方都会给发送方回执确认,断开的时候也会互相通知以便于释放各自相关的资源。TCP的通信流程跟打电话是几乎一样的,因此可以将通信的过程细分为主动发起连接者(客户端)和被动接受连接者(服务端)两方来分别讨论。2、填充服务器的结构体,绑定主机的IP地址和端口号(bind)//2、绑定主机的IP地址和端口号(bind)(可以省略)4、聊天 -- 发送数据(send/write)原创 2023-03-17 13:37:15 · 6842 阅读 · 0 评论 -
关于c语言的udp通讯详细讲解
UDP全称 User Datagram Protocol,即:用户数据报协议。是面向无连接的协议。通常,UDP 通信还会被冠以不可靠的头衔。这里的不可靠指的是:无法可靠地得知对方是否收到数据。原创 2023-03-17 13:42:55 · 8336 阅读 · 5 评论 -
c语言实现udp广播和组播
2、填充服务端的结构体,绑定广播地址和端口号(struct sockaddr_in serveraddr,serveraddr.sin_addr.s_addr = htonl(INADDR_ANY)))(需要设置端口复用) 3、创建结构体存放客户端IP和端口,接收数据。C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须 是“110” 13 C类地址范围 192.0.0.1 - 223.255.255.254 //192.168.14.2。发送给该地址的数据包被所有主机接收。原创 2023-03-18 23:00:07 · 7042 阅读 · 3 评论 -
【C】模拟实现atoi,atof函数
atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回,str字符串可包含正负号、小数点或E(e)来表示指数部分。1、该函数首先会丢弃尽可能多的空白字符,直到找到第一个非空白字符,然后,从这个字符开始,取一个可选的初识加号或者减号,后跟尽可能多的十进制数字,并将他们返回一个int类型的数值。3、若该字符串中第一个非空字符序列表示有效的整数,或是一个空指针,或只包含空白字符,则不执行任何转换,并且返回零。原创 2023-05-11 12:41:27 · 976 阅读 · 0 评论 -
【C】模拟实现memcpy,memmove内存函数
1.复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。3.用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。原创 2023-05-11 12:33:05 · 566 阅读 · 0 评论 -
【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数
【代码】【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数。原创 2023-05-11 11:55:23 · 499 阅读 · 0 评论 -
C语言入门篇——字符串,内存函数
C 库函数 strncpy把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充,相当于升级版的strcpy函数函数头文件:函数原型:参数:dest:指向用于存储复制内容的目标数组。src:要复制的字符串。n:要从源中复制的字符数。返回值:该函数返回最终复制的字符串。int main()printf("最终的目标字符串: %s\n", dest);return(0);原创 2023-05-11 00:52:51 · 846 阅读 · 0 评论 -
C语言的存储类别,链接和内存管理
C语言提供动态内存开辟的函数malloc函数原型:函数作用:申请堆内存参数:size:内存块的大小,以字节为单位返回值:该函数返回一个指针,指向已分配大小的内存。如果请求失败,则返回NULL这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。原创 2023-05-09 00:16:41 · 557 阅读 · 0 评论 -
C语言入门篇——编译篇
语法:#define name stuffname:替换的名字stuff:被替换之后的内容根据上面的语法我们就可以写出下面的例子:stuff是可以分开几行写,只是需添加反斜杠(续航符)这里有一个很特殊的问题了,之前语句篇中说语句都是用分号结尾,那这里的最后要不要添加分号呢?在一些场景中会容易导致问题(语法错误),建议不要加上分号。name:替换的名字parament-list:由逗号隔开的符号表(参数列表)stuff:被替换之后的内容。原创 2023-05-21 23:15:54 · 2824 阅读 · 0 评论 -
C语言入门篇——文件操作篇
文件(file)通常是在磁盘或固态硬盘上的一段已命名的存储区。对我 们而言,stdio.h就是一个文件的名称,该文件中包含一些有用的信息。然 而,对操作系统而言,文件更复杂一些。例如,大型文件会被分开储存,或 者包含一些额外的数据,方便操作系统确定文件的种类。然而,这都是操作 系统所关心的,程序员关心的是C程序如何处理文件。C把文件看作是一系列连续的字节,每个字节都能被单独读取。C提供两种文件模式:文本模式和二进制模式。原创 2023-05-02 00:11:56 · 1108 阅读 · 0 评论