自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux基础命令2

usermod -新的用户名 -d 用户家目录 -m -u 新的用户id -g 新的用户组id -c 新的注释 用户名。(4)ps -aux --sort=-pcpu | head -11 //查看进程占cpu百分比,降序排列。(5)ps -aux --sort=-pmem | head -11 //查看进程占内存百分比,降序排列。useradd -m-s /bin/bash -g 1001 -u 1001 -c “注释” user。(3) chown -R 新的用户名:新的用户组名 文档路径。

2025-02-08 11:14:59 970

原创 linux基础命令1

软链接和硬链接区别:链接文件与源文件的内容是实时同步的,软链接相当于快捷方式,如果源文件删除掉链接文件将失效,硬链接的链接文件,就是一个独立的普通文件,源文件删除后,链接文件不受影响。ls -alh /home //查看指定目录下的文件信息,包含所有的文件(包含隐藏文件),以列表形式,文件大小更人性化的方式展示。ls -alh //查看当前目录的文件信息,包含所有的文件(包含隐藏文件),以列表形式,文件大小更人性化的方式展示。mkdir cc/bb/hh -p //创建多级目录。

2025-02-07 08:30:43 1034

原创 数据结构测试题1

1、已知数据序列为(24,10,18,40,12,62,48),对该数据序列排序,写出插入排序,简单选择排序,冒泡泡排序的算法程序。2.在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行__。17.在二叉树中,若度为О的节点个数为n0,度为2的节点个数为n2,则n0 与n2的关系为( A )B.将第i个节点的前一个节点的next指针指向第i个节点的后一个节点。C.将第i个节点的后一个节点的前一个节点的next指针指向第i个节点。

2025-01-23 15:11:13 760

原创 数据结构测试题2

在这种存储结构中,n个结点的二叉树共有____2n____个指针域,其中有____n-1____个指针域是存放了地址,有____n+1____个指针是空指针。7. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( D )2、自己手动创建顺序表,假设顺序表L中的元素为有序递增的,试写一算法,将数据元素X插入到顺序表L中,以保持该顺序表的有序性。5、建立企业员工信息链表,实现员工信息的输入、删除、查询、和统计员工人数的功能。

2025-01-23 15:00:23 523

原创 C语言面试题(答案仅供参考)

【1】static表示静态【2】static修饰局部变量①普通局部变量,生命周期短,调用结束后就会被回收②生命周期长,直到程序结束才会被回收,生命周期像全局变量【3】static修饰全局变量普通全局变量,可以跨文件使用,静态全局变量只能在当前.c文件中使用【4】static修饰函数普通函数可以跨文件调用静态函数,只能在当前.c文件用调用。

2025-01-22 09:51:10 885

原创 数据结构-二叉树

7、双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点。//先序创建:根左右 初始化函数,就是把树的所有节点存进去的过程。//中序创建:左根右 初始化函数,就是把树的所以节点存进去的过程。//后序创建:左右根 初始化函数,就是把树的所以节点存进去的过程。

2025-01-21 21:26:50 1142

原创 数据结构-栈

printf("空栈\n") : printf("不是空栈\n");//3、判空 判断是不是空栈 是空栈返回1(true) 不是空栈返回0(false)//清0逻辑:不改变栈顶和栈底元素位置,只是把栈内元素设置为0。printf("弹出的栈顶元素为:%d\n", topele);printf("请输入要压栈的元素:");//清0逻辑:不改变栈顶和栈底元素位置,只是把栈内元素设置为0。//空栈的特点:top==-1 bottom == -1。printf("栈已满,无法压栈\n");

2025-01-21 21:13:52 891

原创 链表实现学生管理系统

printf("*3.追加*\n");printf("*4.删除*\n");printf("*5.修改*\n");printf("*6.查询*\n");printf("*1.初始化*\n");printf("请输入要查询学生的id:");

2025-01-17 19:19:07 861

原创 数据结构-双向带头循环链表

同时如单链表所言,单链表在进行每次尾删或者尾插时,都需要遍历到尾节点且保存尾节点的前一个节点,而对于双向链表而言,只需要访问头节点的prev即可;带头即带哨兵位,哨兵位只负责存储第一个具有有效数据的节点,本身不存放数据,该处因为为双向循环链表,代表也可访问该链表的尾节点;双链表也是链表的一种,双链表的每个数据节点中都有两个指针,分别指向前驱节点和后继结点。双向即表示,每个节点不仅能访问该节点的后一个节点,同时也可访问本节点的前一个节点;//思路:找到返回该元素所在的节点指针,找不到返回NULL。

2025-01-17 17:53:24 1098

原创 数据结构-单向不带头不循环链表

逻辑结构:线性结构(元素之间存在一对一关系)存储结构(物理结构):链式存储(存储顺序和逻辑顺序不在乎是否一致)1.链表的特点:擅长进行动态删除和增加操作,不擅长随机访问(需要遍历,因为链表不按顺序存放)2.链表分类:单双向链表单链表:元素节点有两部分组成(数据域-存储当前的元素、指针域-指向下一个节点地址)双链表:元素节点有三部分组成(数据域-存储当前元素节点,2个指针域,1个用来指向上一个元素节点地址,1个用来指向下一个元素节点地址)带头不带头:是否带有头指针。

2025-01-16 22:00:27 1310

原创 计算机存储器的分类

存储器是计算机系统中的记忆设备,用来存放程序和数据。随着技术的发展,CPU的速度变化迅速,但存储器的速度增加得较慢。CPU和缓存、主存都能直接交换信息;缓存能直接和CPU、主存交换信息;主存可以和CPU、缓存、辅存交换信息。如图,存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上。4.容量大,以KM(千兆)为单位,且价格贵。4.容量低,以(MB)兆为单位,且价格低。数据,存的是操作系统的启动程序或指令。数据,存的是CPU正在使用的数据。1.只读,可访问,不可以修改。1.CPU直接存储和访问。

2025-01-15 20:06:45 350

原创 C程序的编译过程

CPU:1.直接在PAM里读 2.ROM—PAM—再执行 3.磁盘—PAM—再执行。4.链接(二进制可执行文件)---->xx.out文件 注意:存储在磁盘里。1.预处理(宏替换、头文件展开、删除注释、条件编译)---->xx.i文件。1.运行文件 CPU把xx.out文件复制到RAM,然后执行可执行文件。2.编译阶段(语法检测)---->xx.s文件。源代码 xx.c xx.h。3.汇编---->xx.o文件。

2025-01-15 10:01:56 100

原创 数据结构-顺序表

/修改顺序表元素用户输入修改的索引,默认从0开始。//memset()一般用于数组清0,需引入memory.h/string.h。//存放顺序表元素的数组。printf("5:删除一个节点\n6:修改顺序表元素\n");printf("3:追加一个节点\n4:插入一个节点\n");存储结构:顺序存储====>顺序表链式存储====>链表。

2025-01-14 20:28:40 1293

原创 数据结构概述

数据结构是计算机存储,管理数据的方式。数据必须依据某种逻辑联系组织在一起存储在计算机内,数据结构研究的就是这种数据的存储结构(物理结构)和数据的逻辑结构。

2025-01-14 10:13:09 418

原创 单片机-串口通信

串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。(2)并行通信:对跳数据线同时进行传输,通常是 8位、16 位、32 位等数据一起传输。//SBUF接收数据 rec_data中间变量。void uart_init(u8 baud){ //u8 baud波特率初值。//将总线上的数据写入发送的SBUF。//清除接收中断的标志位,以便等待下次接收数据。//手动置0,为下次发送数据准备。//数据传输完毕,自动置1。

2025-01-13 21:24:32 881

原创 单片机-定时器中断

也就是要计数 1000 个,初值=65535-1000+1 (因为实际上计数器计数到 65536(2 的 16 次方)才溢出,所以后面要加 1) =64536=FC18H,所以初值即为。①对 TMOD 赋值,以确定 T0 和 T1 的工作方式,如果使用定时器 0 即对 T0 配 置,如果使用定时器 1 即对 T1 配置。GATE=1 时,要用软件使 TR0 或 TR1 为 1,同时外部中断引脚 INT0/1 也为高电平 时,才能启动定时/计数器工作。TMOD|=0X01;//给定时器赋初值,定时 1ms。

2025-01-08 21:56:17 1009

原创 单片机-外部中断

中断是指 CPU 在处理某一事件 A 时,发生了另一事件 B,请求 CPU 迅速去处理(中断发生);CPU 暂时停止当前的工作(中断响应), 转去处理事件 B(中断服务);待 CPU 将事件 B 处理完毕后,再回到原来事件 A 被中断的地方继续处理事件 A(中断返回)

2025-01-08 20:31:32 957

原创 单片机-直流电机实验

ULN2003, 该芯片是一个单片高电压、高电流的达林顿晶体管阵列集成电路。不仅可以用来 驱动直流电机,还可用来驱动五线四相步进电机。支持驱动大功率电器因为 ULN2003 的输出是集电极开路,ULN2003 要输出高电平,必须在输出口外接上拉电阻。必须一根线接电源,另一个才接 ULN2003//定义毫秒的延时函数void delay_ms(u16 ms){//1表示1毫秒u16 i=0;u16 j=0;for(i=ms;i>0;i--){

2025-01-06 19:05:10 422

原创 单片机-LED点阵实验

那么第一行就会点亮;如要将第一列点亮,则第 a 脚接低电平,而(1、2、3、4、5、6、7、8)接高电平,那么第一列就会点亮。要将第一个点点亮,则 1 脚接高电平 a 脚接低电平,则第一个点就亮了;1 脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平。data1

2025-01-06 10:33:50 512

原创 单片机-独立按键矩阵按键实验

通过开发板上的独立按键 K1 控制 D1 指示灯亮灭。

2025-01-03 19:06:11 942

原创 单片机-串转并-74HC595芯片

/595芯片要求从高位开始传数据 例如:1000 1000。//列值全部为低电平,默认不亮。//左移等,修改原数据,将次高位移到最高位。需求:实现LED点阵一行一行的点亮 (从下向上)//并行输出 数据寄存器 需要上升沿。//定义横向点阵控制口-向595芯片传数据。

2025-01-03 19:06:03 493

原创 单片机-静动态数码管实验

/Y6亮(第2个数码管亮)LSC=1,LSB=1,LSA=1;//Y7亮(第1个数码管亮)LSC=0,LSB=0,LSA=0;//Y0亮(第7个数码管亮)#define SMG_A_OP_PORT P0 //宏定义P0。需求:数码管显示0,即让p0端口输出数字0的段码0x3f(共阴)//显示数字0 需显示数字几索引号就是几。//数码管显示数字的数组 共阴极 显示段选数据。//数码管显示数字的数组 共阴极。//定义数码管位选的控制管脚。

2025-01-03 08:52:59 922

原创 单片机-蜂鸣器实验

/将 P2.5 管脚定义为 BEEP。u16 i=2000;

2024-12-31 18:01:03 466

原创 单片机-LED实验

define LED_PORT P2//宏定义。#define LED_PORT P2//宏定义。#define LED_PORT P2//宏定义。

2024-12-31 17:17:12 1008

原创 共用体和结构体的区别(面试题)

2.共用体:共用体的内存占用是最大成员变量所占用的空间大小,不同成员变量共享同一块内存地址。首先定义结构体类型的关键字是struct 而定义共用体类型的关键字是union。1.结构体:结构体中的每个成员都占据独立的内存空间,成员之间按照定义的顺序依次存储。1.结构体:结构体的内存占用是成员变量占用空间之和,每个成员变量都有自己的内存地址。2.共用体:共用体中的所有成员共享同一块内存空间,不同成员可以存储在同一个地址上。共用体和结构体的区别(面试题)

2024-12-25 21:53:16 91

原创 C语言-共用体(联合体)

4.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖。3.同一内存段可以用来存放几种不同类型的成员,但每一瞬时只有一种起作用。1.共用体union是一个能在同一个存储空间存储不同类型数据的类型。5.共用体变量的地址和它的各成员的地址都是同一地址。2.共用体所占的内存长度等于其最长成员的长度。//2、共用体所有成员的首地址是一样的。

2024-12-25 21:51:45 311

原创 C语言-结构体数组练习题

输入一个班级的学生信息(包含id 、name 、gender、score), 并把学习成绩超过全班平均成绩的学生找出来,输出这部分学生的姓名和成绩。printf("超过平均成绩的学生姓名:%s 成绩:%d\n", stu1[i].name, stu1[i].score);struct xuanpiao per[3] = { {"张三",0},{"李四",0},{"王五",0} };printf("请输入学生的ID、姓名、性别、分数:");printf("请选择您要投票的人(张三、李四、王五)\n");

2024-12-25 21:02:35 508

原创 C语言-结构体内存大小

对齐数=默认对齐数 VS 成员对齐数(成员大小)中的较小值。//分析 默认对齐数 成员对齐数 对齐数(前两个最小值) 最大对齐数。对齐数 = 编译器默认的一个对齐数 与 该成员大小的 较小值。3. 结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。默认对齐数 成员对齐数(成员大小)2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。//结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。

2024-12-24 21:47:02 402

原创 C语言-结构体嵌套

/方式1int data;//方式2int data;}LNode;int data;//左孩子结点指针//右孩子结点指针。

2024-12-24 16:04:10 527

原创 C语言-08复合类型-结构体

/定义方法1:int age;//长度要比实际多//定义方法2:(最推荐)int age;//要比实际多}Person1;//定义方法3: PERSON2对结构体类型struct Person2重命名int age;//要比实际多PERSON2;//定义方法4:// 方法一 直接赋值初始化struct Person p1 = { "佳佳",18,"女","高新区","12345678910" }

2024-12-24 11:23:02 566

原创 void指针和空指针的区别(面试题)

(4)这种类型的指针不能直接进行取内容或递增递减的操作,必须先强制转换成别的类型的指针才可以执行,否则报错。(1)void指针与其他类型指针所占的内存都是一样的,为8字节或4字节。(3)在编译的时候不会确定其指向的类型,是在程序中进行指向的。(2)void*只包含地址,其他类型指针包含地址和数据类型。(2)void指针就是指向任何类型的指针。(2)空指针指一个指针不指向任何地址。(3)NULL是一个值为0的宏常量。(1)格式:void*3、void指针与其他类型指针的区别。

2024-12-24 09:20:17 269

原创 07-03-指针与函数

eg: 编写一个函数get_res,它接受两个整型参数和一个函数指针ptr作为回调函数。get_res函数将调用回调函数对给定的两个整数进行操作,并返回结果。这段内存区域也有首地址,把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。//函数内 ~~a=20 ~~b=10。//函数外 a=10 b=20。

2024-12-24 09:17:08 835

原创 07-02-字符数组和字符指针变量

1.字符串字符数组:只能修改单个元素,不能整体修改;因为数组名是常量字符指针:只能整体修改指针变量的值,不能单独修改某个元素;因为字符串中字符的不可变性。

2024-12-24 09:05:33 288

原创 07-01-指针与数组

/ptr是一个指向包含10个整数的数组的指针// 声明一个3x4的二维数组//ptr是一个指向包含4个整数的数组的指针,这个数组本身是一个二维数组的行//数组方法 访问第一行第二列的元素//2//指针方法 访问第一行第二列的元素//2//数组方法 访问第二行第一列的元素//5//指针方法 访问第二行第一列的元素//5//数组方法 访问第三行第三列的元素//11//指针方法 访问第二行第一列的元素ptr++;ptr++;

2024-12-23 22:04:47 997

原创 07-指针

1.直接访问:直接使用变量名进行的访问int a = 10;a = 20;2.间接访问:通过指针来实现//p是指针变量 存放的是地址 ,该地址指向内存的数据是整型p, &a);//地址*p//值10 10*p = 100;数据类型 * 指针变量名=初始地址值注意:不初始化不能直接访问指针变量//读作int指针(指向int类型数据的指针)//ptr = a;//不能直接赋数据char* str;//字符是常量,系统自动分配空间。

2024-12-20 20:02:25 632

原创 06-二维数组

数据类型 数组名称[常量表达式1][常量表达式2]…[常量表达式n];二维数组的定义方式1:二维数组的定义方式2://1.二维数组的定义//3行2列//赋值//第1行第1个元素//第1行第2个元素//第2行第2个元素i < 3;j++) {

2024-12-19 21:24:14 1070

原创 程序员面试题

1.定义变量:创建一个变量并为其分配内存空间,变量只能定义一次2.声明变量:默认在其他地方已经定义过,在这里只需使用extern 数据类型 变量名;即可使用,变量可以声明多次。

2024-12-19 09:22:00 307

原创 06-数组

数组(Array):是多个相同类型数据,按照一定顺序排列的集合,并使用一个名字命名,并通过编号方式对这些数据进行统一管理。(1)数组名 int arr[5];(2)数组下标(索引号),从0起步(3)元素(元素值要和定义时的数据类型一致)(4)数组的长度(长度=数组中最大的索引号+1 注意越界)//1.定义一个数 最多存5个元素int arr[5];//2.存数据——按索引号来存,存的时候不一定要按顺序存arr[0]= 10;//3.输出 取数组。

2024-12-18 19:20:21 574

原创 05-函数

函数:封装了一块可被重复使用的代码块,定义一次,可多次使用函数内部的变量一般是局部变量,函数执行完 自动释放空间●函数是一种可重用的代码块,用于执行特定任务或完成特定功能●函数作用:对具备相同逻辑的代码进行封装,提高代码的编写效率,实现对代码的重用void 函数名 (void){函数体;} //函数定义一int 函数名(int num) {函数体;} //函数定义二。

2024-12-18 10:24:06 549

原创 04-循环结构-练习题

3.做一个小游戏,报7游戏的安全数(轮流报数,报到能被7整除或者尾数是7都要表演节目),报出1-100之间的安全数。printf("玩家出的是:%d,电脑出的是:%d\n", player, AI);printf("player胜%d次", playerCon);printf("平局%d次", pingju);printf("AI胜%d次", AICon);printf("1到100之间所有不能被3整除的数\n");printf("100以内与7有关的数有:");printf("电脑胜出\n");

2024-12-16 21:55:25 269

空空如也

空空如也

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

TA关注的人

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