自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐凤年llll的博客

学习代码学生一枚

  • 博客(63)
  • 收藏
  • 关注

原创 C++笔试强训选择题 4

若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为()。这道题第一眼看着就是个斐波那契数列,也是对于递归理解的考验,我们只需要依次进行推导那就可以得出最终结果了。列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“2.请声明一个指针,其所指向的内存地址不能改变,但内存中的值可以被改变。”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……程序运行后的输出结果是()

2024-01-29 10:30:49 423

原创 C++笔试强训选择题7

B 如果类中有单个参数的构造函数,该构造函数具有类型转换的作用,b1 + ¥ 的3 编译器在编译代码节点,回调用单参构造函数将3转换为BigNumber的对象。B 一般情况下构造函数的权限都是public,因为在类外创建对象时,编译器要调用构造函数,但也有特殊情况。已知 b1, b2 是 BigNumber 的两个对象,则下列表达式中错误的是()D 友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的。C 类的成员函数是属于类的,调用的时候是通过指针this调用的。

2024-01-29 10:15:40 566

原创 C++笔试强训选择题6

5.数组定义为”int a[4][5];”, 引用”*(a+1)+2″表示()(从第0行开始)请问在64位编译器下用sizeof(struct A)计算出的大小是多少()1.十进制变量i的值为100,那么八进制的变量i的值为()我们的程序如果想运行起来会经历 预处理 编译 汇编 链接。3.下面程序的输出结果是__________。4. 当n=5时,下列函数的返回值是()B a数组第1行第2列元素的地址。D a数组第1行第2列元素的值。2.执行下面语句后的输出为。C 有语法错,不能正确执行。

2024-01-28 10:33:11 265

原创 C++笔试强训选择题 5

A pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针;D pa是一个指向某个数组中第5个元素的指针,该元素是int类型的变量。B pa是一个指向数组的指针,所指向的数组是5个int类型的元素;先和【】结合,这是一个数组,前面是int*说明是指针数组 选A。这道题我们先看fun,fun返回的结果是拿到x和y中的最小值。A C++程序中的main()函数必须放在程序的开始部分。C 在C++程序中,要调用的函数必须在main()函数中。C pa[5]表示某个数的第5个元素的值;

2024-01-27 10:28:59 990

原创 链表的中间结点,简单的快慢指针问题

while( fast && fast->next)//结束条件。

2024-01-25 20:32:36 221

原创 C++笔试强训选择题 3

数组中存放的是一个“**”类型,即一个没有明确所指变量类型的二级指针类型,故a是一个指针数组。数组中一共有3x4=12个指针,在32位系统下,每个指针占4字节,故数组a总共占48个字节。,x%2 = 1,进入case1;把hello打印出来default后没有break语句跳出循环,所以还是要执行case2,再打印出third,最后打印出来的是hellothird。for循环的初始化部分(D项为ch=getchar())只执行一次,getchar()无法再获取后续的字符,故无法统计输入字符的个数。

2024-01-25 09:09:40 944

原创 数组相关编程题

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1.查找的过程,本质是排除的过程。2.是的,一次排除一行或者一列。

2024-01-24 21:21:33 355

原创 C++笔试强训 选择题2

由常见的字符ASCII码值易知,大写Z与任意一个大写字母的差值都小于等于26且大于等于0,这个差值就代表了一个大写字母映射在数组中的下标,下标0代表大写Z,下标1代表大写Y,下标2代表大写X......第一根空横线的选项中,对出现的下标位置的值自增1,以实现计数,且下标应非负,故选D。” - b+2实际指向b当前向后偏移8个字节(2个int的大小)后的位置a[2],解引用后将a[2]的值改为2 ,但b所指的空间没发生改变;A,a先于[ ]结合,是数组,数组里存放int类型的指针 ,a是指针数组。

2024-01-24 14:59:09 1210

原创 C++笔试强训选择题1

9.若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()A.*p+=1;B.(*p)++;C.++(*p)D.*p++

2024-01-24 14:01:59 782

原创 数组oj 移除元素

【代码】数组oj 移除元素。

2024-01-22 09:33:36 336

原创 Linux网络基础

目录1.OSI七层模型2.TCP/IP五层(或四层)模型3.网络传输基本流程IP地址和MAC地址网络传输基本流程4.网络套接字编程端口号TCP协议UDP协议 网络字节序 socket编程接口sockaddr结构 为什么要划分成为层状结构呢? a.场景复杂 b.功能解耦,便于人们进行各种维护 下一层为它的上一层进行服务 物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型. Mac地址就是工作在局域网的ip地址(局域网中表示主机的唯一性:MAC地址),在win和linux

2024-01-19 11:35:45 1015

原创 C++多态

接口继承纯虚函数在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。

2023-12-20 20:09:21 1714 1

原创 C++继承

1.继承是面向对象语言进行代码复用的一种手段,以前我们所接触的代码复用都是函数复用,譬如模拟实现vector的时候,尾插尾删都是复用了insert和erase接口。而继承提供的是一种类设计层次的代码复用,在原有类中增加扩展并实现新的功能,这样所产生的类叫做派生类或子类,原有类被称为基类或父类。2.

2023-12-16 13:57:46 915 2

原创 C++模板进阶

1.在使用类模板显示实例化的地方,只有.h文件展开,而没有.cpp文件,因为在链接之前,各源文件之间是互不联系的,所以即使你显示实例化了类模板,但在类模板真正定义的地方却没有实例化,所以在链接的时候.cpp里面没有实例化出来的类模板,自然链接就会出问题,因为你用了一个并没有真正实例化出来的类,编译器就会报链接错误。2.解决的方式也很简单,有两种方法,将声明和定义放到一个文件 “xxx.hpp” 里面或者xxx.h文件里面,但一般喜欢用.hpp文件,这代表这个文件专门用来放类模板的声明和定义。

2023-12-14 18:22:49 1002 1

原创 数据结构之排序

一起去,更远的远方 当gap==1时就是直接插入排序,可以赋值对比一下 希尔排序的时间复杂度我们直接记住一个结论 o(n^1.3)前一个和后一个数循坏比较大的数字放最后面,然后再循环比剩下的数字hoare排序思想: 我们默认序列左起第一个数为key,我们定义两个下标left和right分别从序列的左边和右边去找值,left找比key大的值,right找比key小的值,找到之后,交换left和right的值,等到left和right相遇的时候,此时的值一定是比key小的值,我们再把k

2023-12-12 17:20:34 1584 1

原创 C++ queue 和priority_queue

优先级队列的适配会更复杂一些些。它的适配容器用的是vector。优先级队列就不是什么先进先出了,它虽然叫队列,但它不是真队列。其实它的底层是堆,可以在任意时刻插入数据,默认是大堆,当然也可以通过仿函数去调整。优先级队列有一个反人类的设计:传less仿函数,底层是大堆。传greater仿函数,底层是小堆。它的一些接口。

2023-12-09 14:19:02 1022 1

原创 二叉树oj题总结

https://leetcode.cn/problems/same-tree/分成子问题和结束条件 ,这里用前序的思想解题(先判断根,再左右子树),不然会很浪费时间。假如左右相等,最后根不同,白白比较了 。下面是代码题解https://leetcode.cn/problems/univalued-binary-tree/description/这个题利用交换律,画出递归图更容易理解 下面是递归图https://leetcode.cn/problems/symmetric-tree/description

2023-12-08 13:37:10 469 1

原创 二叉树的遍历和一些接口

7.二叉树查找值为x的节点。6.二叉树第k层节点个数。

2023-12-08 13:27:58 465

原创 Linux线程安全,死锁,生产消费模型,线程池

然后你第二天准备去学习了,卷的不行,直接凌晨三点就跑过来,拿着钥匙进入自习室上自习了,然后卷了3小时之后,你想出来上个厕所,一打开门发现外面站的一堆人,都在叽叽喳喳的讨论谁先来的,怎么来的这么早?等你回来的时候,你又打开门,又来里面上了3小时自习,你感觉自己饿的不行了,在不吃饭就饿死在里面了,所以你打开门,准备出去吃饭了,然后突然你自己感觉负罪感直接拉满,我凌晨3点好不容易抢到自习室,现在离开是不太亏了,所以你又打开自习室回去上自习去了,别人当然竞争不过你呀!即为3种关系,两个角色,1个交易场所。

2023-12-02 23:22:20 899 1

原创 数据结构树,二叉树,堆

目录​编辑1.树概念及结构2. 树的表示3.二叉树概念及结构 特殊的二叉树 二叉树的性质​编辑二叉树选择题二叉树的存储结构4.堆的概念及结构 父亲孩子下标关系​编辑 堆的实现接口堆结构体设计+堆的初始化+堆的销毁堆的插入(附:向上调整算法)堆的删除取堆顶数据+堆的大小+堆的判空万物皆有裂痕,那是光照进来的地方 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 只有一个孩子和没有孩子也可以称为

2023-12-02 23:19:42 925

原创 C++stack

是一种,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器, 默认情况下使用deque。

2023-11-27 19:52:28 962 1

原创 Linux多线程基本概念

进程是资源分配的最小单位,有独立的地址空间和系统资源。线程是cpu调度,程序执行的最小单位,一个线程只属于一个进程,而一个进程可以有多个线程,多个线程共享同一个进程的资源。在多核系统下允许几个线程各自独立的在处理器上运行,操作系统提供线程就是为了方便有效地实现这种并发性。一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化同时运行QQ、微信、浏览器 ,用浏览器同时进行浏览网页、播放视频)并发。

2023-11-27 09:39:41 1141 1

原创 string OJ题

string str;//提取的时候不会被空格影响,只会被\0影响if(pos!=string::npos) //pos返回失败是npos//左闭右开求的就是实际长度,因为有空格要把空格删掉else { //没有空格的情况,直接返回size。

2023-11-24 18:54:41 400

原创 list的总结

在C++标准库中,list是一个双向链表容器,用于存储一系列元素。与vector和deque等容器不同,list使用链表的数据结构来组织元素,因此在某些操作上具有独特的优势和性能特点。以下是关于 list 的详细介绍1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。

2023-11-24 18:53:16 1922

原创 链表oj题

【代码】链表oj题。

2023-11-21 09:42:53 83 2

原创 vector的总结

在C++中,std::vector是标准模板库(STL)中的一种动态数组容器,它可以存储任意类型的元素,并且能够自动调整大小。std::vector提供了许多方便的成员函数,使得对数组的操作更加简单和高效。相当于数据结构中的顺序表下面是一个使用std::vector的简单示例:三种遍历方法//数组下标i++)//范围for//迭代器while (it!

2023-11-20 19:55:46 424 3

原创 Linux 信号

本质是一种通知机制,用户or操作系统通过发送一定的停号,通知进程,某些事件已经发生,你可以在后续进行处理1.1.结合进程,分析信号a.进程要分析信号,必须要识别信号即,进程要接收并且要具备其如何处理的动作。b.进程如何识别信号呢?通过程序员设置的方式让进程去识别。c.信号的产生是随机的,所以进程的处理方式可能不是立即处理,而是将信号存储起来,在合适的场合处理。d.进程会降临是信号进行存储,方便之后的处理。e.一般而言,信号的产生相对于进程来说是异步的2.信号的产生通过键盘的组合键产生。

2023-11-20 15:18:57 117

原创 STL的介绍

迭代器用于遍历容器中的元素。它提供了一种统一的接口,使得开发者可以不依赖于具体的容器实现,而只关注元素的访问和操作。迭代器分为输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器等不同的类型,支持不同程度的元素遍历。例如,STL 提供了栈适配器(stack adapter)和队列适配器(queue adapter),用于将容器的接口转换为栈和队列的接口。队列(queue):先进先出(FIFO)的数据结构,支持入队和出队操作。栈(stack):后进先出(LIFO)的数据结构,支持压入和弹出操作。

2023-11-19 09:28:45 89

原创 string类的总结

目录1.为什么要学习string类2.string的标准库3.string类的常用接口说明1.string类对象的常见构造2.string类对象的容量操作3.string类对象的3种遍历方法3.1 [ ] + 下标3.2 基于范围的for循环3.3 迭代器4 string类对象的元素访问4.1 operator[]:4.2 at4.3 front4.4 back5.string类对象的修改器(Modifiers)5.1 operator+=5.2 push_back5.3 pop_back5.

2023-11-18 15:02:16 397

原创 Linux进程通信

若管道所有写段关闭,则从管道中读取完所有数据后,继续read会返回0,不再阻塞;若所有读端关闭,则继续write写入会触发异常导致进程退出当要写入的数据量不大于PIPE_BUF时,linux将保证写入的原子性。当要写入的数据量大于PIPE_BUF时,linux将不再保证写入的原子性。

2023-11-07 16:58:19 68

原创 Linux基础IO

目录1.文件的认识2.C语言的文件操作3.系统接口IO1.open2.write3.read4.close4.文件描述符fd 5.重定向dup2 系统调用6.软硬链接硬链接软链接1.文件 = 文件内容 + 文件属性2.文件在磁盘中放着,我们访问文件本质上是进程在访问文件,要想向硬件写入只有操作系统有权力,普通用户如果想写入,就必须让OS提供接口,文件类的系统调用接口3.OS层面的文件接口,这样的接口只有一套,而且具有跨平台性4.C、C++、Java等语言都有文件操作接口,它们上层提供的库函数不一样,但是底层

2023-11-04 13:40:34 73

原创 Linux进程控制

还有一种情况是非阻塞等待,父进程会对子进程的状态进行检测,如果子进程没有就绪立即返回不会等待,过一会再检测还是一样,每一次都是一次非阻塞等待,进行多次轮询,期间父进程可以执行其它操作。参数有3个,第一个是要获取的对应进程pid,你传谁那就等待获取谁,第二个是status,获取退出信息(重点谈论),第三个是option,现在我们默认设为0,表示阻塞等待。通常,父子代码共享,父子再不写入时,数据也是共享的,当任意一方试图写入,便以写时拷贝的方式各自一份副本。新进程为子进程,而原进程为父进程。

2023-10-27 16:59:27 37

原创 C++ 模板

1.泛型编程如果在C++中,能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件 (即生成具体类型的代码),那将会节省许多头发。巧的是前人早已将树栽好,我们只需在此乘凉。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。关于泛型的理解可以总结下面的一句话,它是把数据类型作为一种进来。模板是泛型编程的基础,可分为两大类。

2023-10-21 19:56:13 35

原创 动态内存管理

【代码】动态内存管理。

2023-10-21 15:04:36 42

原创 类和对象(下)

声明为。

2023-10-20 09:58:53 32

原创 类的对象(中)

注意:如果通过无参构造函数创建对象时,对象后面不用跟括号,否则就成了函数声明 5. 如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦6.C++把类型分成内置类型(基本类型)和自定义类型。内置类型就是语言提供的数据类 在C++中,默认构造函数对内置类型(如int,char等)类型不做处理,对自定义类型调用自定义类型的构造函数。这也是我们看到随机值的原因。注意:C++11 中针对内置类型成员不初始化的缺陷,又打了补丁,即:内置类型成员变量在类中声明时可以给默认值。

2023-10-19 10:20:05 37

原创 类和对象(上)

意思就是,C++的结构下,可以将信息(如:人的年龄、性别等变量)和动作(函数)放到一个类下,这是C语言做不到的。举个例子。(c语言实现)

2023-10-15 14:41:23 35

原创 Linux进程概念

如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。控制器 : CPU是可以响应外部事件,协调外部就绪事件,比如,拷贝数据到内存。进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。D:睡眠状态,磁盘睡眠,深度睡眠,不可被中断,不可以被被动唤醒。内核(进程管理,内存管理,文件管理,驱动管理)输入设备:键盘,摄像头,话筒,磁盘,网卡...

2023-10-14 15:35:26 47

原创 Linux工具的使用

4.Linux写一个小程序-进度条vi/vim的区别简单点来说,它们都是多模式编辑器(写代码的编辑器)vim一共有三个模式,,他们的关系如下图所示。

2023-09-25 17:59:44 45

原创 Linux权限

命令su [用户名功能:切换用户。例如,要从root用户切换到普通用户user,则使用su user。要从普通用户user切换到root用户则使用可以省略),此时系统会提示输入root。设置文件的访问权限chmod [参数权限 文件名②三位8进制数字功能:修改文件的拥有者格式chown [参数用户名 文件名功能:修改文件或目录的所属组格式chgrp [参数用户组名 文件名常用选项-R递归修改文件或目录的所属组。

2023-09-20 21:25:18 35

空空如也

空空如也

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

TA关注的人

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