
C语言
文章平均质量分 80
c语言成长之路,冲冲冲!
无限循环者
世上唯一不能复制的是时间,唯一不能重演的是人生。该怎么走,过什么样的生活,全凭自己的选择和努力。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构】单链表-c语言
/ 定义链表结点结构int data;}LNode;原创 2025-03-13 17:11:59 · 745 阅读 · 0 评论 -
c语言-教零基础/新手入门
一提到语言这个词语,自然会想到的是像英语,汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。而今天计算机普遍了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机交流。就像人类交流依赖自然语言一样,人类与计算机的沟通也需要语言,而编程语言正是这一沟通的桥梁。C语言作为编程语言中的一种,具有独特的语法规则,既赋予了开发者与计算机“对话”的能力,又确保了计算机能够“无条件地”执行指令。这种交流方式包括消息传递和命令执行,和人类沟通的基本要素类似。原创 2024-11-10 13:09:52 · 903 阅读 · 0 评论 -
c语言中值调用(call by value)方式和引用调用(call by reference)
在C语言中参数传递主要有两种方式:通过值调用(call by value)和通过引用调用(call by reference)。说明:当使用值调用时,函数接收到的是参数值的一个拷贝。任何在函数内部对参数的修改都不会影响到原始变量。说明:通过引用调用时,函数接收到的是参数的地址(指针)。函数内部的修改会影响原始变量。优点:可以直接修改原始数据,适合处理大型数据结构或需要修改的情况。优点:安全,因为原始数据不受影响,适合小型数据类型。原创 2024-10-27 19:59:17 · 724 阅读 · 0 评论 -
2024年湖北专升本C语言模拟试卷(1)
给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在 −100至 100 之间),且根与根之差的绝对值 ≥1。古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?提示:记方程 f(x)=0,若存在 2个数 x1和 x2,且 x1原创 2024-04-25 21:27:33 · 3737 阅读 · 0 评论 -
2024年湖北专升本C语言模拟试卷
进行逆序处理时要求使用指针方法(例如原数列为2,4,6,8,10,12,14,16,18,20,若要求从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)。1、在歌星大奖赛中, 有 10 个评委为参赛的选手打分, 分数为 1~100 分。4、在 C 语言中,以下哪个关键字用于在条件语句中执行一段代码块,只要条件为真就会一直执行?8、在 C 语言中,以下哪个选项正确地声明了一个指向整型数组的指针?9、在 C 语言中,以下哪个选项是有效的动态内存分配语句?原创 2024-04-20 16:37:25 · 3379 阅读 · 1 评论 -
2025年湖北专升本C语言常见编程题及答案
合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。10、请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+...+ln(m))(0.5),s作为函数值返回。1、请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。)中大于t的最小的一个数,结果由函数返回。原创 2024-04-13 14:04:37 · 3890 阅读 · 0 评论 -
c语言中大小写字母的转化
每个字符在计算机中都有一个对应的ASCII值,而大写字母和小写字母之间有一个固定的差值。在ASCII表中,大写字母的范围是65('A')到90('Z'),而小写字母的范围是97('a')到122('z')。使用标准库函数tolower()和toupper()可以使代码更加简洁易读,而直接操作ASCII值的方式则避免了对标准库的依赖,可能在某些特定环境下更有优势。在C语言中,大小写字母的转换是一个常见的操作。C语言的标准库提供了一些函数来转换字符的大小写,主要是tolower()和toupper()函数。原创 2024-03-03 21:23:42 · 523 阅读 · 0 评论 -
C语言做一个恶作剧关机程序
程序首先显示警告信息,并询问用户是否确认关机。如果用户输入"y"或"Y",则程序会记录用户的选择到日志文件(D:/a1.txt),然后执行关机操作,并在倒计时60秒后关闭计算机。如果用户输入"n"或"N",则程序会取消关机操作。如果用户输入其他字符,则程序会提示输入错误并重新询问用户是否确认关机。C语言实现一个简单的"流氓软件",一个可以强制关机恶作剧关机程序,输入指定指令可以解除。然后当你输入“n”才可以解锁关机。原创 2023-11-26 15:57:59 · 12608 阅读 · 6 评论 -
C语言实现万年历
【代码】C语言实现万年历。原创 2023-11-26 15:13:12 · 1449 阅读 · 0 评论 -
C 标准库 - <stdlib.h>和<string.h>详解
size_t 类型的变量在很多与内存操作相关的函数中被广泛使用,例如 strlen、memcpy、memset 等函数。在 <string.h> 头文件中,定义了一个重要的变量类型 size_t。C 标准库中的 <string.h> 头文件提供了许多用于操作字符串的函数和字符数组的函数。C 标准库中的 <stdlib.h> 是 C 标准库的头文件之一,包含了一些常用的函数和类型,主要用于内存管理、字符串转换、随机数生成等方面。在 <string.h> 头文件中,定义了一个重要的宏 NULL。原创 2023-11-25 21:35:33 · 1774 阅读 · 0 评论 -
C 标准库 - <stddef.h>和<stdio.h>详解
C 标准库 - <stddef.h>简介<stdio.h> 是 C 语言中的一个标准库,它提供了一些常用的函数和类型定义,用于处理与大小相关的操作。库变量这些类型在 C 语言中经常被用于标准库函数中,以提供对大小、指针操作和宽字符的支持。库宏<stddef.h> 头文件中定义了一些常用的宏。值得注意的是,offsetof 宏只能用于标准数据类型中的结构体和联合体,不能用于位域。使用时应该遵循 C 语言的规范,同时需要注意不同编译器可能对其实现方式存在差异。实例。原创 2023-11-23 23:26:32 · 1875 阅读 · 0 评论 -
C 标准库 - <signal.h>和<stdarg.h>详解
由于它是原子的,可以保证对于多个并发的信号处理程序,对该类型变量的读取和写入不会出现竞态条件(Race Condition)导致的错误。这意味着,即使在处理异步信号的情况下,对 sig_atomic_t 类型的变量进行读取和写入操作都是原子的。总而言之,sig_atomic_t 类型是用于在信号处理程序中进行原子操作的变量类型,可以提供一定程度的线程安全性。需要注意的是,sig_atomic_t 只保证对单个变量的原子性操作,而不是对于多个变量之间的原子操作。原创 2023-11-22 12:02:58 · 933 阅读 · 0 评论 -
C 标准库 - <math.h>和<setjmp.h>详解
请注意,虽然 <setjmp.h> 中没有定义变量,但您可以在程序中创建自己的 jmp_buf 变量,并将其传递给 setjmp 和 longjmp 函数来实现非局部跳转的功能。需要注意的是,setjmp 和 longjmp 是比较底层的机制,使用时需要特别小心,因为它们会使程序的控制流程变得复杂,也容易引入难以调试的错误。<setjmp.h> 是 C 标准库中的一个头文件,提供了一种非局部跳转的机制,允许程序在一个函数中设置一个跳转点,并在另一个函数中跳转到该点。原创 2023-11-22 11:06:51 · 1221 阅读 · 0 评论 -
C 标准库 - <limits.h>和<locale.h>详解
limits.h>简介C 标准库中的 <limits.h> 头文件提供了整数类型的范围和特性的相关信息,它定义了一些宏常量,用于表示各种整数类型的最大值和最小值。这个头文件还定义了一些整数类型的特性,如二进制位的数目和整数的取值范围。库宏下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。需要注意的是,这些宏常量的值都是给出了最小的限制,具体实现中可能会有更高的限制。原创 2023-11-22 10:50:26 · 663 阅读 · 0 评论 -
C 标准库 - <time.h>和<float.h>详解
time.h>简介C 标准库中的 <time.h> 头文件提供了处理时间和日期的函数和类型定义。它包含了一些结构体和函数,可以用于获取系统当前的日期、时间,以及进行日期和时间的计算等操作。在 <time.h> 头文件中,常用的类型包括 struct tm 结构体,它用来表示一个日历时间,包括年、月、日、时、分、秒等成员;time_t 类型用来表示时间值,通常是一个整数,代表从某一固定时间点(通常是 1970 年 1 月 1 日)经过的秒数。原创 2023-11-21 20:58:18 · 1433 阅读 · 2 评论 -
C 标准库 - <errno.h>和<float.h>详解
下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。请注意,所有的 FLT 是指类型 float 的浮点数,DBL 是指类型 double 的浮点数,LDBL 是指类型 long double 的浮点数。然后,它定义了一个 float 类型的变量 f,一个 double 类型的变量 d 和一个 long double 类型的变量 ld,并将它们分别初始化为它们所能表示的最大值。errno是一个整数变量,它的值通常是一个非零的错误代码,用于指示发生了什么类型的错误。原创 2023-10-28 23:22:55 · 1268 阅读 · 0 评论 -
C语言之错误处理
1、返回错误码: 在函数执行过程中,如果发生错误,可以通过返回一个特定的错误码来表示错误的类型。这个示例展示了如何利用errno、perror()和strerror()函数来获取和输出与错误相关的信息,有助于更好地理解和处理错误情况,,使得调试和错误修复变得更加方便和有效。最后,我们使用strerror()函数将errnum的值转换为相应的错误消息字符串,并通过fprintf()函数输出到标准错误流stderr。在上述示例中,如果除数为0,则会触发一个断言错误,并终止程序的执行。原创 2023-10-28 22:55:58 · 1139 阅读 · 0 评论 -
C语言数据结构之链表
以C语言数组插入一个元素为例,当我们需要在一个数组{1,2,3,4,5,6,7}的第1个元素后(即第2个元素)的位置插入一个’A’时,我们需要做的有,将第1个元素后的整体元素后移,形成新的数组{1,2,2,3,4,5,6,7},再将第2个元素位置的元素替换为我们所需要的元素’A’,最终形成我们的预期,一个简单的插入操作要进行那么多的步骤,显然不是很核算。头节点的作用是方便对链表的操作和管理。循环链表是一种特殊的链表数据结构,它与普通链表的区别在于,循环链表的尾节点指向头节点,形成一个循环的结构。原创 2023-10-27 17:59:06 · 400 阅读 · 0 评论 -
C语言数据结构之数据结构入门
由这个图可以清晰的发现对于每一段的内存中的数据,都有一个地址与之相对应,也真是因为有地址的存在,我们计算机中才可以轻易的去访问到其中数据,拿一个数组来说,数组在C语言中是顺序存储的,因此,如上图的数据直接用代码找到其数据以及地址的话可以这样写。需要注意的是,时间复杂度和空间复杂度是相对的概念,它们描述了算法执行时间和空间使用随输入规模变化的趋势,并不是精确的执行时间和空间占用量。总之,抽象数据类型是对数据的抽象和封装,定义了数据的取值范围和操作集合,通过隐藏实现细节,提供了高度的模块化和可维护性。原创 2023-10-27 13:52:43 · 470 阅读 · 0 评论 -
C语言之预处理
预处理命令可以改变程序设计环境,提高编程效率,它们并不是C语言本身的组成部分,不能直接对它们进行编译,必须在对程序进行编译之前,先对程序中这些特殊的命令进行“预处理”。通过使用#ifdef、#ifndef、#if、#elif、#else和#endif等条件编译指令,可以根据宏的定义与否、表达式的真假等情况来选择性地编译代码,提高代码的可移植性和灵活性。除了上面介绍的之外,C语言还有#error、#line、#pragma等其他常用的预处理命令,在很多C语言的程序中也是经常可见的,下面简单介绍一下它们。原创 2023-10-26 22:48:16 · 389 阅读 · 0 评论 -
C语言之文件操作
实现文件读写实现文件读写一直以来,我们学习C语言都是数据的处理,这些数据都是在内存中的。一旦程序结束程序结束退出,数据也将灰飞烟灭。的实现将帮助我们把数据存储到文件中,既硬盘上的文件,如我们所熟知的txt格式,或其他各种后缀的文件,避免程序结束后数据丢失,实现存储数据的功能,甚至充当“”的功能。下面详细说明每步的作用及详细办法。1、打开文件:要读取或写入文件,首先需要打开它。可以使用fopen函数来打开文件。2、读取文件:在打开文件后,可以使用fscanf、fgets等函数来从文件中读取内容。原创 2023-10-26 20:52:42 · 574 阅读 · 0 评论 -
C语言之结构体和共用体详解
然后,我们定义了一个名为 printPeople 的函数,它接受一个结构体数组类型的参数 people 和一个整型变量 n,并在函数内部打印结构体数组的内容。然后,我们定义了一个名为 printPerson 的函数,它接受一个结构体指针类型的参数 ptr,并在函数内部打印结构体指针所指向的结构体对象的内容。然后,我们定义了一个名为 printPerson 的函数,它接受一个结构体类型的参数 p,并在函数内部打印结构体的成员变量。需要注意共用体的大小、成员变量的访问和修改,以及潜在的类型转换和内存对齐问题。原创 2023-10-26 15:01:55 · 945 阅读 · 1 评论 -
C语言之指针详解
前面我们已经讨论过字符数组与字符串,字符指针和字符数组都可以用来存储字符串,但它们有着本质的区别:字符指针str是个变量,可以改变str使它指向不同的字符串,但不能改变str所指向的字符串常量的值。这种方式被称为传递指针给函数(Passing Pointers to Functions),它可以让函数直接修改指针所指向的数据,从而避免了在函数内部进行数据的复制和传递,提高了程序的效率。需要注意的是,在使用字符串指针时,应该注意指针的有效性和字符串的长度,避免出现指针越界或内存泄漏等问题。原创 2023-10-25 23:21:45 · 683 阅读 · 0 评论 -
C语言之数组详解
3、字符串的访问和操作:可以使用数组名和索引来访问字符串中的字符。2、字符串的定义:字符串是由字符组成的字符数组,以空字符('\0')作为结尾的特殊字符标记字符串的结束。其中,char表示数组中元素的类型为字符,数组名是标识符用于引用该数组,数组长度表示数组可以容纳的字符数量。其中,数据类型表示数组中元素的类型,数组名是标识符用于引用该数组,行数表示数组的行数,列数表示数组的列数。其中,数据类型表示数组中元素的类型,数组名是标识符用于引用该数组,而数组长度表示数组可以容纳的元素数量。原创 2023-10-25 17:22:10 · 317 阅读 · 0 评论 -
C语言之函数详解
函数返回值不能是数组,也不能是函数,除此之外任何合法的数据类型都可以是函数的类型,如:int,long,float,char等。函数体内部的代码计算a和b的和,并将结果存储在局部变量sum中。形参表是用逗号分隔的一组变量说明,包括形参的类型和形参的标识符,其作用是指出每一个形参的类型和形参的名称,当调用函数时,接收来自主调函数的数据,确定各参数的值。其中,return_value是函数的返回值,function_name是函数的名称,argument1, argument2, ...是函数的参数列表。原创 2023-10-25 12:13:04 · 316 阅读 · 0 评论 -
C语言之判断与循环语句知识点总结
C语言之判断与循环语句知识点总结原创 2023-10-24 19:55:00 · 979 阅读 · 0 评论 -
c语言--unsigned修饰符
与有符号整数类型(如int)不同,unsigned int没有保存数字的正负号位,因此可以表示更大的正整数范围。此外,对于使用unsigned修饰的整数类型,不能直接存储负数值,否则可能会导致未定义的行为。例如,unsigned int表示无符号整数,范围从0到UINT_MAX,其中UINT_MAX是标准头文件中定义的该类型所能表示的最大值。总之,unsigned修饰符在C语言中用来表示无符号整数,拓展了整数类型的取值范围,但需要谨慎处理与有符号整数之间的转换和运算操作。原创 2023-07-14 21:13:09 · 9409 阅读 · 0 评论 -
c语言编程入门--练习题
【代码】c语言编程入门--练习题。原创 2023-06-23 15:52:37 · 134 阅读 · 0 评论 -
C语言中的基本输入输出
fgets 函数的返回值是一个指向字符串 str 的指针,如果读取成功,它会指向 str 的起始地址。可以用gets直接往字符数组里接收字符串,我们通过观察函数原型,可以看到在gets中传入一个字符指针,也就是存放这个字符串的字符数组地址即可接收,需要主要的是,要保证能存的下。需要注意的是gets不会检查输入的字符串长度,即可能超出字符串数组的长度造成内存溢出,这其实也是gets函数不安全的原因,其已经在不少OJ中不允许使用。使用更加安全的函数:替换不安全的函数为更加安全的函数是最简单的方法之一。原创 2023-06-22 22:09:31 · 6450 阅读 · 0 评论 -
C 标准库 - <ctype.h>的使用
今天要学C 标准库 - <ctype.h>的使用原创 2023-06-17 11:00:07 · 309 阅读 · 0 评论 -
C语言--结构体内存对齐问题
C语言结构体对齐规则原创 2023-06-14 11:56:21 · 222 阅读 · 0 评论 -
c语言的基本数据类型的知识点总结
c语言的基本数据类型的知识点总结原创 2023-06-12 17:54:35 · 200 阅读 · 0 评论