自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法的时间复杂度和空间复杂度

1.算法的效率虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。算法的效率主要由以下两个复杂度来评估:时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。设计算法时,一般是要先考虑系统环境,然后权衡时间复杂度和空间复杂度,选取一个平衡点。

2023-08-14 15:59:15 291

原创 链表中哨兵(头结点)的作用

(sentinel)是一个哑对象,可以简化边界条件。是一个附加的链表节点,该节点作为第一个节点,但是它其实并不存储任何东西,只是为了操作的方便而引入的。因此,如果一个链表有哨兵节点的话,那么线性表的第一个元素应该是链表的第二个节点(个位置的时候,需要考虑该位置上原来的节点并没有前驱节点;而如果有哨兵节点的话, 线性表的每个位置的节点都有前驱节点,因此可以统一处理。(注意:哨兵节点根本不出现在线性表中,所以虽然它没有前驱,但是前面的那句话并不矛盾)。哨兵节点广泛应用于树和链表中,如伪头、伪尾、标记。

2023-08-12 19:23:11 426

原创 栈和队列经典面试题

定义两个数组下标,front指向队列的头,back指向队尾的下一个位置,原因:back最开始只能指向数组的第一个位置,也就是下标为0的位置,插入一个元素之后,back向后移一个位置,如果back指向的就是队尾的最后一个元素,那最开始队列为空的时候back指向哪里呢?所以就矛盾了(用链表实现也是同理)int* a;int front;int back;int k;

2023-08-11 12:15:13 431 5

原创 C语言假期作业 DAY 16

i < 10;)这一行写错了B: f是float型数据直接做相等判断有风险C: f[++i]应该是f[i++]D: 没有缺陷。

2023-08-09 12:34:14 177

原创 C语言假期作业 DAY 15

一、选择题1、有如下代码,则 *(p[0]+1) 所代表的数组元素是( )int a[3][2] = {1, 2, 3, 4, 5, 6}, *p[3];p[0] = a[1];A: a[0][1]B: a[1][0]C: a[1][1]D: a[1][2]答案解析正确答案: Cp 是一个指针数组, p[0] = a[1]; 此处 a[1] 是二维数组的第二行的数组名,数组名表示首元素的地址, a[1] 是 a[1][0] 的地址,所以p[0] 中存储的是第 2 行第

2023-08-07 17:49:10 342

原创 C语言假期作业 DAY 14

D: p[3][1]

2023-08-05 19:29:57 221

原创 C语言假期作业 DAY 13

一、选择题1、如果 x=2014 ,下面函数的返回值是( )int fun(unsigned int x){int n = 0;while(x + 1){n++;x = x | (x + 1);} return n;}A: 20B: 21C: 23D 25答案解析正确答案:C这个作用是对整型中0的个数进行统计,x=x|(x+1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1,直道变 成全1的时候x+1就溢出为全0,循环结束。2014的二

2023-08-04 19:57:36 439

原创 C语言假期作业 DAY 12

A: YESB: NOC: YESNOD: 语句错误。

2023-08-03 17:13:39 339

原创 C语言假期作业 DAY 11

一、选择题1、声明以下变量,则表达式: ch/i + (f*d – i) 的结果类型为()A: charB: intC: floatD: double答案解析正确答案:D基本数据类型的等级从低到高如下:char int long float double运算的时候是从低转到高的,表达式的类型会自动提升或者转换为参与表达式求值的最上级类型2、关于代码的说法正确的是( )A: x is greaterB: y is greaterC: 依赖实现D:

2023-08-02 21:36:49 251

原创 删除链表中等于给定值 val 的所有节点

只需要让等于val值的那个结点的前一个结点的指针域改成val值结点的指针域就可以了,就可以实现逻辑上的删除,如上图中的第二个结点的指针域改成了第三个结点的指针域,因当我们遍历的时候,它会从第二个结点直接跳到第四个结点,而倒数第二个节点的指针域为null,当遍历到这时就直接停止了,就不会在遍历最后一个结点了。给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。输入:head = [1,2,6,3,4,5,6], val = 6。

2023-08-01 15:47:14 118

原创 C语言假期作业 DAY 10

A: 死循环B: 64C: 32D: 16。

2023-08-01 15:27:27 269

原创 C语言假期作业 DAY 09

A: 上述程序有错误B: 6C: 8D: 12。

2023-08-01 11:35:56 132

原创 C语言假期作业 DAY 08

选择题1、如下程序的运行结果是( )char c[5]={'a', 'b', '\0', 'c', '\0'};printf("%s", c);A:'a' 'b'B:ab\0c\0C:ab cD:ab答案解析正确答案: D字符串的结束标志是 '\0' ,而 '\0' 的 ASCII 值是 0 ,而 c[2] 被初始化为 0 ,就相当于是 '\0' ,故字符串打印的内容只有 "ab"2、若有定义: int a[2][3]; ,以下选项中对 a 数组元素正

2023-07-28 18:59:57 253 1

原创 C语言假期作业 DAY 07

A: 在 C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体B: 函数的实参和形参可以是相同的名字C: 在 main() 中定义的变量都可以在其它被调函数中直接使用D: 在 C 程序中,函数调用不能出现在表达式语句中。

2023-07-28 14:11:00 261

原创 C语言假期作业 DAY 06

A: 只能在循环体内和 switch 语句体内使用 break 语句B: 当 break 出现在循环体中的 switch 语句体内时,其作用是跳出该 switch 语句体,并中止循环体的执行C: continue 语句的作用是:在执行完本次循环体中剩余语句后,中止循环D: 在 while 语句和 do - while 语句中无法使用 continue 语句。

2023-07-28 11:00:46 171

原创 C语言假期作业 DAY 05

A: 测字符数组ch的长度B: 将数字字符串ch转换成十进制数C: 将字符数组ch中的小写字母转换成大写D: 将字符数组ch中的大写字母转换成小写。

2023-07-27 20:59:45 704

原创 C语言假期作业 DAY 04

A: n=0;='\n')n++;B: n=0;='\n')n++;C: for(n=0;getchar()!='\n';n++);D: n=0;ch!='\n';n++);A: 3B: 2C: 1D: 0A: 对数组 a 进行插入排序(升序)B: 对数组 a 进行插入排序(升序)C: 对数组 a 进行选择排序(升序)D: 对数组 a 进行选择排序(降序)

2023-07-26 15:50:55 432 1

原创 C语言假期作业 DAY 03

2、请问下列表达式哪些会被编译器禁止【多选】( )A: *c = 32;B: *d = 43C: e=&a3、以下程序的输出结果为( )int i;i < 8;i

2023-07-26 15:29:20 213

原创 C语言假期作业 DAY 02

A: 12B: 13C: 16D: 以上都不对A: 4B: 8C: 9D: 6。

2023-07-26 12:26:33 301 4

原创 C语言假期作业 DAY 01

3、 test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】()A: aB: bC: cD: d。

2023-07-26 11:48:24 1204 9

原创 程序环境和预处理

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSIC,其值为1,否则未定义编译时会自动地将标识符替换为常量值例:int main()int a=1;int b=2;int max=0;

2023-07-18 10:59:24 71 2

原创 C语言文件操作

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。通过该文件信息区中的信息就能够访问该文件。即:一个文件要有一个唯一的文件标识,以便用户识别和引用。每当打开一个文件的时候,系统会根据文件的情况自动创建一个。

2023-07-16 22:24:57 230 2

原创 通讯录实现

为了让使用者更加方便我们用枚举将switch语句中的选项改变成文字EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT,FINIT。

2023-07-16 12:17:56 180 1

原创 动态内存管理

malloc和freeC语言提供了一个动态内存开辟的函数:void*mallocsize_tsize这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数size为0malloc的行为是标准是未定义的,取决于编译器。

2023-07-15 21:06:21 114 3

原创 自定义类型

我们之前学过很多种类型,有int、char、float、double等等,这些都是属于既定类型,那么自定义类型顾名思义就是可以由你自己来定义的类型,比如我们接下来要讲的结构体、联合体、枚举都属于自定义类型。结构体的自引用,简单来说,就是在结构体的内部,包含一个和该结构体类型相同的成员。在结构体内部再创建一个结构体,并且两者要类型一致浅谈单链表为什么要提到链表呢?因为最能直观体现出结构体自引用的就是单链表,我们不要被这个抽象的表达给唬住,单链表的原理十分简单。

2023-07-12 18:45:08 148 1

原创 内存函数相关讲解与模拟实现

由 source指向地址为起始地址的连续n个字节的数据复制到以destination指向地址为起始地址的空间内。格式如下。

2023-07-11 23:59:55 384 4

原创 指针的进阶(一)

指针数组数组指针下面进行一些解释intp)[10//解释:p先和结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于号的,所以必须加上()来保证p先和结合。

2023-07-09 11:38:20 877 4

原创 数据在内存中的存储形式

我们之前讲过一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址。位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大?小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位。好了,关于浮点数的表示规则,就说到这里。

2023-06-01 16:58:10 284

原创 分支语句和循环语句

循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较。由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?continue是不进行该次循环的下面步骤,重新开始下一次的循环。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个。//k=0直接是0,为假,直接不符合条件,跳出循环。的实际效果是把语句列表划分为不同的分支部分。,就停止后期的所有的循环,直接终止循环。是用于终止本次循环的,也就是本次循环中。

2023-05-29 16:42:28 39

原创 日常刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!

2023-05-22 22:21:30 49 1

原创 日常刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。将一个字符串str的内容颠倒过来,并输出。用C语言在屏幕上输出以下图案:求出0~100000之间的所有“水仙花数”并输出。

2023-05-16 21:45:45 30

原创 扫雷【C语言】

如果该位置没雷,那么该位置会显示其周围一圈(与其最相邻的共8个位置)内一共含有的雷的个数,就这样一直排雷一直排雷直到所有非雷位置都被排查完,那么恭喜你挑战成功。这样就可以对原来的(1,5)这样的坐标使用一样的一整圈排查的函数,每个元素用一样的操作进行判断,会精简一些,只要打印的时候注意不显示出这些扩大了的范围就好。要对将要写的东西有足够的了解,关于它的基本组成成分和操作。若是对这些边缘坐标特殊化判断,那么会有 在行的边缘和列的边缘的坐标,又会出现不同的特殊判断情况,明显更麻烦。被炸简单,直接跳出循环就好。

2023-05-13 00:06:04 53 2

原创 日常刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!将数组A中的内容和数组B中的内容进行交换。(数组一样大)要求:自己设计以上函数的参数,返回值。实现一个对整形数组的冒泡排序。

2023-05-11 15:16:59 51 1

原创 三子棋【C语言】

三子棋是一款经典小游戏,用C语言实现它也是一个很奇妙的过程,下面就开始详细讲解具体步骤.

2023-05-09 22:47:55 117 2

原创 日常刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!

2023-05-03 20:43:39 139

原创 基础刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!

2023-04-30 13:20:44 254

原创 基础刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!非递归实现求n的阶乘(不考虑溢出的问题)递归方式实现打印一个整数的每一位。

2023-04-28 13:18:52 53

原创 日常刷题篇(入门)

逆序之后数组的内容变成:fedcba。:将参数字符串中的字符反向排列,不是逆序打印。这是今天我给大家带来的题!我会持续在我的博客中更新我每天刷题的内容!编写一个函数实现n的k次方,使用递归实现。递归实现求n的阶乘(不考虑溢出的问题)不能使用C函数库中的字符串操作函数。我从简单到难,一起走上漫漫刷题路!非递归实现求第n个斐波那契数。递归实现求第n个斐波那契数。大家一键三连,多多关注!非递归实现strlen。递归实现strlen。

2023-04-27 15:13:09 37

原创 日常刷题篇(入门)

我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!大家一键三连,多多关注!这是今天我给大家带来的题!以后难度逐渐加深!

2023-04-25 22:24:00 53

原创 基础刷题篇(入门)

接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符'r'时代表进行行变换,当t为字符'c'时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示方阵中的所有人的身高(保证输入身高都不相同)。从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第二个矩阵中的元素。

2023-04-23 18:23:37 39 1

空空如也

空空如也

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

TA关注的人

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