自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 标准IO的函数接口

练习:用fputc和fgetc实现cp功能,将文件A中的内容放到文件B中。问:一个任务找中,最多打开多少个文件?一个文件能不能重复的被打开(可)注意:打开文件的个数属于有限资源,所以用完这个文件后记得及时关闭。示例代码:将一个int类型的数组写到文件中保存起来,并且读出来。练习:用fgets实现wc –l的功能,文件名从命令行输入。最多打开1021+3个文件(1024)fclose 关闭文件。fgetc 读一个字符。fputc 写单个字符。fputs 输入字符串。fopen 打开文件。

2024-10-16 18:46:32 292

原创 标准IO的特点和函数接口的分类

带有缓存机制-》应用层读写文件-》调用内核层的函数接口-》内核层和硬件层进行交互-》拿到数据返回给缓存区-》每次调用从缓存区当中拿数据。标准IO默认打开三个流:标准输入(stdin),标准输出(stdout),标准出错(stderr)。标准I/O库的所有操作都是围绕流(stream)来进行的,在标准I/O中,流用FILE *来描述。标准IO在系统调用之前作了二次封装增加了缓存机制,减少了系统调用的次数,提高了程序的效率。所有的I/O操作仅是简单的从程序移进或者移出,这种字节流,就称为流。

2024-10-15 18:48:18 173

原创 层次结构树二叉树

(3) 数据结构中,沿着某条路线,一次对树中每个节点做一次且仅做一次访问,对二叉树的节点从1开始进行连续编号,要求每个节点的编号大于其左、右孩子的编号,同一节点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )次序的遍历实现编号(网易)(1) 一棵二叉树有8个度为2的节点,5个度为1的节点,那么度为0的节点个数为 ( ) (网易)当2*i<=n时,有左孩子,其编号为2*i ,否则没有左孩子,本身是叶节点;(2) 深度为8的二叉树,其最多有( ) 个节点,第8层最多有( )个节点。

2024-10-14 18:42:28 646

原创 双向循环列表

/指向前一个节点的指针 prior 先前的。//指向下一个节点的指针 next 下一个。//指向双向链表的头指针。//指向双向链表的尾指针。//将双向链表的头指针和尾指针封装到一个节点体里。//用来保存当前双向链表的长度。//思想上有点像学的链式队列。5)双线链表删除最后一个节点。//双向链表的节点定义。1)创建一个空的双向链表。2)双向链表中间插入。

2024-10-11 16:25:56 267

原创 数据结构栈

的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底。(1)存储结构不同,顺序栈相当于数组,连续的,链式栈 链表非连续的。先进后出 FILO first in last out FILO。顺序栈的长度受限制,而链栈不会。只能在一端进行插入和删除操作。顺序栈和链式栈的区别是什么?1)逻辑结构:线性结构。2)存储结构:顺序存储。3)操作:入栈、出栈。

2024-10-09 18:53:44 326

原创 数据结构队列

在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。typedef struct//将队列头指针和尾指针封装到一个结构体里。//相当于队列的头指针。//相当于队列的尾指针。//有了链表的头指针和尾指针,那么我们就可以操作这个链表。只允许在两端进行插入和删除操作的线性表,datatype data;int front;1)创建一个空的队列。

2024-10-09 18:50:04 560

原创 单向循环链表

解决约瑟夫问题约瑟夫问题为:设编号为1,2,……n得n个人围坐一圈,约定编号为k(k大于等于1并且小于等于n)的人从1开始报数,数到m的那个人出列。它的下一位继续从1开始报数,数到m的人出列,依次类推,最后剩下一个为猴王。直接上图展示,初始化状态: 假设n=6,总共有6个人,k=1,从第一个人开始报数,m=5,每次数五个。第一次报数:从一号开始,数五个数,1-2-3-4-5,数完五个数,五号被杀死,第一次报数后,剩余人数如下。

2024-10-08 18:50:29 321

原创 数据结构单向链表

单向链表的转置转置的思想(1) 将头节点与当前链表断开,断开前保存下头节点的下一个节点,保证后面链表能找得到,定义一个q保存头节点的下一个节点,断开后前面相当于一个空的链表,后面是一个无头的单向链表(2) 遍历无头链表的所有节点,将每一个节点当做新节点插入空链表头节点的下一个节点(每次插入的头节点的下一个节点位置)

2024-10-08 18:48:26 1066

原创 数据结构链表

/指针域,存放下一个节点地址。,假设这个节点为A;A的下一个节点为B;将C插入A与B之间;存在一个头节点,数据域无效,指针域有效。长度固定问题,插入、删除麻烦的问题。1)创建一个空的(有头)单向链表。所有节点的数据域、指针域都有效。2)向post位置插入一个数据。1)逻辑结构 : 线性结构。2)存储结构 :链式存储。3)操作 : 增删改查。先遍历找到要插入节点的。3)删除指定位置的数据。先让C的指针域指向B。再让A的指针域指向C。注意:顺序不可以调换。

2024-09-30 10:49:22 508

原创 数据结构顺序表

顺序表、单向链表、单向循环链表、双向链表、双向循环链表、顺序栈、链式栈、循环队列(顺序队列)、链式队列。//位置 代表的是第几个位置,数组元素下标 位置的编号从0开始 position。//1.将post+1位置----》n-1位置所有数据整体向前移动一个位置,覆盖删除。int n//n代表的是数组中有效的元素个数(非数组的长度size 100)8。//1.将n-1位置到post位置的数据整体向后移动一位。//插入到数组中的数据。int *p //保存的数组的首地址。//1)向数组的第几个位置插入数据。

2024-09-27 18:54:18 469

原创 数据结构day1

等差数列{an}的通项公式为:an=a1+(n-1)d。前n项和公式为:Sn=n*a1+n(n-1)d/2或Sn=n(a1+an)/2。f(n) //算法的可执行语句重复执行的次数 用问题规模n的某个函数f(n)来表达。1)线性关系 ---》线性结构 -----》一对一 ----》线性表。2)层次关系 ---》树形结构 -----》一对多 ----》树。3)网状关系 ---》图状结构 ----》多对多 ---》图。数据的逻辑结构、存储结构、数据的操作(数据的运算)

2024-09-27 18:51:26 905

原创 linuxC命令5

3.函数调用strcat(strcpy(str1,str2),str3)的功能是()。h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。C)将串str2复制到串str1中后再将串str3连接到串str1之后。D)将串str2连接到串str1中后再将串str1复制到串str3中。g)一个指向函数的指针, 该函数有一个整型参数并返回一个整型数。c)一个指向指针的指针,它指向的指针是一个指向一个整型数。e)一个有10个指针的数组,该指针是指向一个整型数的。return 地址;

2024-09-26 16:48:53 405

原创 LinuxC命令4

步骤:代码写好后,先通过gcc -g进行编译代码,没有错误后,可以通过gdb a.out进行调试,输入l查看文件内容,通过b设置断点,输入r进行运行,n或s进行单步调试,q退出。自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作。gcc -c xx.c -o xx.o 目标:xx.o 依赖:xx.c。array[i] 获取下标为i的变量,i的范围:0~n-1。gcc xx.o -o xx 目标:xx 依赖:xx.o。

2024-09-26 16:46:43 747

原创 Linux命令3

变量依次从单词表中读取各个单词,每取一次单词,就执行一次循环体中的命令表,循环次数由单词表中的单词数决定,命令表中的命令可以一条,也可以是由分号或换行符分隔开的多条。遍历当前路径下的文件,如果是普通文件,将文件复制到aa目录下,并计算文件的个数。算术运算符expr主要用于简单的整数运算,加(+),减(-)乘( \*) 除 (/)取余 (%)计算表达式值a*b+c-d/b,a=2,b=3,c=15,d=18。$a -gt $b 测试a是否大于b greater than。

2024-09-24 19:59:42 848

原创 Linux命令day2

该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。1)桥接模式:编辑->虚拟网络编辑器->更改设置->选择vmnet0->桥接模式->桥接的网络适配器(根据主机的网络连接进行选择,当然选择自动也可以)->确定。

2024-09-23 20:53:36 1054

原创 LinuxCday1

Linux命令:软件安装、网络配置、进程管理、文件系统相关、用户管理、解压压缩shell脚本:变量、功能语句、结构性语句、数组MakefileC指针函数、函数指针分文件编程、条件编译嵌入式?

2024-09-20 18:39:01 1287

原创 c基础day10

1、定义结构体时,定义结构体数组int id;char name;}s[3];2、先定义结构体,在定义结构体数组int id;char name;

2024-09-18 19:26:04 854

原创 c基础day9

strlen计算字符串实际的元素个数,不包括'\0'参数:地址 返回值 intint i=0;for(;*p!='\0';p++)i++;return i;int b=0;gets(a);printf("字符串中的字符个数为%d",b);char p[]接收字符串首地址//8fun(a);形参和实参的区别:形参:形式上的参数,只有在调用时采取开辟空间实参:调用时传递的实际的值,是真实存在的值。

2024-09-14 17:10:08 1315

原创 c基础day8

数据类型 函数名(形式参数).//函数体。

2024-09-13 19:36:46 686

原创 c基础day7

int **q=&p;**q==*p==*&a==a **q *p a都表示常量里存储的内容。*q==*&p==p==&a *q p &a都表示普通常量地址。数组名表示行地址,一行里面由多列,行大于列,像访问列,需要加*降级。*p++ :先算p++,由于++在后,对p加*取内容,然后p+1。//*(a+1)+1第二行第二列 //a[0]+1第一行第二列。

2024-09-12 20:27:20 981

原创 c基础day6

1、int *p;//p 野指针//指针初始化可赋值位NULL(为空值);后边可以在对p重新赋值int b=9;p=&b;

2024-09-11 18:49:30 346

原创 c基础day5

假设第一个元素,和后边每一个进行比较,比较过成中遇到更小值,暂存下标位置,知道一轮比较结束,再把最小值和最左边的。i++) //i的值分别取0,1,2,3执行四次循环。if (a[j]>a[j+1]) //确定了最大值,或最小值,固定在最右边。完全初始化:int a[2][3]={2,3,4,5};部分初始化:int a[2][3]={2,3};

2024-09-10 19:35:48 672

原创 C基础day4

目录循环whiledo while目录循环whiledo while循环控制语句数组数组大小数组初始化清零函数字符数组字符数组输入输出while (表达式) //死循环{ //while(1)语句块;}先判断后执行格式:do //无论是否成立先执行一次{ //在进行判断是否成立语句块; //成立执行下一次循环,不成立结束循环} while (表达式);先执行后判断注释:// 单行注释: ctrl //* */ 多行注释:选择一片代码 ctrl shigt a 快捷键进行注释break:结束循环continu

2024-09-09 20:38:11 359

原创 c基础day3

d == int 位宽:%nd n表示输出个数,或宽度(要大于等于实际位宽)//switch语句中,如果没有break,会从符合条件的分支。if(表达式1) //else前边必须有if,if后边可以没有else。// 或 putchar(10);if (表达式) //运行循序:先判断括号内表达式是否成立。switch (表达式) // 表达式要能计算出实际结果。{ //当分支语句中,语句块只有一行时可以省略{ }%x == 十六进制 %#x ==完整的十六进制。

2024-09-06 19:03:07 951

原创 c基础day2

字符串常量:用双引号包裹 “hello” 五个字符+’\0‘字符串结束标志==6个字符。先判断表达式1是否成立 ,如果成立执行表达式2,如果不成立执行表达式3。逻辑或运算中·,前边表达式结果为真,后边表达式不在告状,返回真。逻辑与运算中,前边表达式结果为假,后边表达式不再执行,返回假。宏定义:格式:#define 宏名 常量值或表达式。字符常量 :用单引号包裹,char a=‘q';赋值运算符: = += -= /= %= *=关系运算符: > >= < <= ==!|| 逻辑或:有一则一,全零为零。

2024-09-05 18:58:32 679

原创 C基础1day

注意:当55和66文件夹存在时可以mkdir 55/66/77直接新建文件夹,但是只要有其中一个不是嵌套关系或者不存在的话就需要用完整的命令。//结果:2 printf("%.1f\n",a);linux中一切接文件,两大特殊文件 1、根目录/ 3、家目录:~ /home/hq。2. 编译:检查语法错误,有错报错,没错会转变成汇编语言,生成汇编文件。/:如果是整数相除,结果向下取整。r:可读 w:可写 x:可执行 -表示不可读不可写不可执行。r:4 w:2 x:1 rw-rw-r-- 权限值:664。

2024-09-04 20:16:43 1120

空空如也

空空如也

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

TA关注的人

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