- 博客(69)
- 收藏
- 关注
原创 进程间通信
一、为什么要进行进程间通信?主要因为进程间是独立的(每个进程都有自己的虚拟地址空间,操作的都是自己的虚拟地址空间,而不是直接访问物理地址),因此进程间是不能访问同一块区域,不能互相通信的,需要系统提供进程访问方式。二、如何实现进程间的通信?这个原理类似于声音传播一样,通过相同的介质,可以互相之间传递声音。因此,只要进程间有共同的访问介质,根据不同的场景选择不同的通信方式,则可以实现进程间的互...
2020-05-03 23:13:11 200
原创 C++基础知识整理
1.三种命名方式(1)std::名称,意思为可访问当前函数(2)using namespace std(3)using namespace std::名称2.缺省参数分为全缺省和半缺省两种全缺省:void Fun1(int a=10,int b=20,int c=30),如果外部不进行赋值操作,则使用10,20,30这些数据,如果赋值,则将对应的数据修改为对应的值。半缺...
2020-04-09 18:27:25 356
原创 关于文件和库文件的知识点梳理
1.文件流指针与文件描述符的关系文件描述符是一个数组的下标,是一个非负整数;文件流指针是一个FILE* fp结构体,其中的一个结构体参数为_fileno,这个就是文件描述符。文件流指针需要通过文件描述符才可对文件进行操作。2.一个进程如何从用户态切换到内核态(1) 系统调用接口(2) 异常,如10/0(3) 中断3.软链接与硬链接的创建ln test.tex test.har...
2020-04-02 14:17:24 427
原创 二叉树的构建及其前中后层序的实现以及完全二叉树的判断
typedef char BTDataType;typedef struct BinaryTreeNode{ BTDataType _data; struct BinaryTreeNode* _left; struct BinaryTreeNode* _right;}BTNode;// 通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树BTNode* Bina...
2020-03-23 17:18:25 177
原创 进程替换
1.如何判断一个进程返回值是否为正常退出进程等待可以保证进程不会变为僵尸进程,通过wait(int* status)和waitpid(pid_t pid, int* status,int options)这两个接口,可以接受子进程的返回值,返回值存在status的低16位的高8位中,因此最终的返回值应该为status>>8 & 0xff,这样可以只把返回值取出。而status...
2020-03-22 23:22:15 107
原创 进程
1.进程的概念进程就是pcb,是操作系统对一个运行中的程序的描述,通过这个描述,实现对程序的调度。操作系统如何实现多个程序的调度运行:将运行中的程序描述起来,然后将这些描述组织起来进行管理,通过实现pcb的调度管理,实现对运行中程序的切换调度运行。2.Linux下进程的状态主要分为运行态(R),可中断休眠态(S),不可中断休眠态(D),停止态(T)和僵死态(Z)僵尸进程产生:是子进程先与...
2020-03-16 18:02:22 101
原创 栈与队列的相关知识点
1、栈1.1 栈的概念栈是一种特殊的线性表,其只能在固定的一端进行入栈或者出栈操作,服从先入后出的原则。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。1.2 栈的实现一般栈的实现采用数组或者链表来实现,数组的实现则相对较简单一些1.3 栈的实现代码:typedef char STDataType;typedef struct Stack{ STDataType* _...
2020-02-14 20:12:01 225
原创 Linux下的基本指令
1、ls指令功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件的详细信息。2、pwd命令功能:显示用户当前所在目录3、cd命令功能:改变工作目录4、touch指令功能:touch命令参数可更改文档或目录的日期,包括存储时间和更改时间,或者新建一个不存在的文件5、mkdir指令功能:mkdir -p dirname在当前目录下创建一个名为"dirnam...
2019-12-15 21:51:05 228
原创 顺序表和链表
1、线性表线性表是n个具有相同特性的数据元素的有限序列,常见的线性表有:顺序表,链表,栈、队列和字符串…线性表在逻辑上是线性结构,但在物理上并不一定是连续的。2、顺序表1、概念:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储;多分为静态顺序表和动态顺序表2、静态存储常用:#define N 100typedef int SLDataType;typ...
2019-12-15 20:18:04 153
原创 字符数组内容倒序的模拟实现
1、有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。student a am ii ma a tnedutsi am a student2、程序3、结果...
2019-11-22 12:08:26 220
原创 编程实现查找一组成对数字中的单个数据
1.编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)2、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int find1(int *arr, int sz){ int ret=0;//0和任何数异或位为任何数...
2019-11-22 10:26:01 319
原创 不使用(a+b)/2这种方式,求两个数的平均值
1、不使用(a+b)/2这种方式,求两个数的平均值2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//2 and 4//2:0010 4:0100 平均数3:0011//0010^0100=0110>>1=0011 0010&0100=...
2019-11-21 18:18:10 106
原创 value的二进制位模式从左到右翻转
1、编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值是value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:...
2019-11-21 18:00:55 194 1
原创 汽水瓶个数计算
1、编程实现:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main(){ int num = 20; int total = num; int empty = num; whi...
2019-11-21 17:24:49 261
原创 编程实现:找出一组数据中两个只出现一次的数字
1.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个只出现一次的数字,编程实现。2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void findTwoNumber(int *arr, int sz){ int ret = 0; int ...
2019-11-21 17:15:50 246
原创 .判断一个字符串是否为另外一个字符串旋转之后的字符串
1、判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>...
2019-11-21 16:09:38 102
原创 写一个函数,可以左旋字符串中的k个字符
1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB2、程序:3、结果:
2019-11-21 15:44:58 94
原创 模拟实现strncpy 、strncat、 strncmp
1.模拟实现strncpychar *my_strncpy(char *dest, const *src,size_t num){ char *ret = dest; int i = 0; assert(dest&&src); if (i < num) { while (*dest++ = *src++) { i++; } return r...
2019-11-21 13:54:41 81
原创 模拟实现字符串函数
1.实现strcpychar *my_strcpy(char *dest, const *src){ char *ret = dest; assert(dest&&src); while (*dest++=*src++) { ; } return ret;}2.实现strcatchar *my_strcat(char *dest, const *src)...
2019-11-21 13:42:06 92
原创 数组指针,函数指针,函数指针数组
1.理解数组指针https://mp.csdn.net/mdeditor/102876363#2.理解函数指针和定义https://mp.csdn.net/mdeditor/103010318#这个链接可以帮助你更好的理解数组指针和函数指针。数组指针首先为一个指针,该指针指向一个数组。常见类型:int (*p) [10];解释:p先和结合,说明p是一个指针变量,然后指着指向的是一个大...
2019-11-21 10:56:34 201
原创 理解一级指针、二级指针、指针和数组和指针数组
1、一级指针一级指针可用来传参,做函数参数,在函数内做形参做重新指向,不影响实参的指向,形参和实参是两个指向同一空间的不同的指针。因为形参和实参指向的为同一空间,若在形参中改变其指向空间的值,实参对应的空间中的内容也会发生改变。例如如下代码:p指针首先指向数组首地址,在函数print中,形参指向的地址在逐渐变化,并读取对应位置的值,而实参中p的指向依旧为数组首地址。#include <...
2019-11-19 17:21:59 312
原创 杨氏矩阵
1、//杨氏矩阵有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 92、程序:在这里插入代码片3、结果:...
2019-11-11 16:57:36 81
原创 数组指针和函数指针的难点解析
**1、int (*parr3 [10] ) [5]这个首先为一个数组,(parr3 [10] )可看作(a),则整体为数组指针数组2、数组元素打印的程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>void print(int *p, int sz){ for (int i = 0; i < sz; i++)...
2019-11-11 15:20:54 368
原创 调整数组使奇数全部都位于偶数前面
1.调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。2、思路:输入一个数组,可以逐个判断数组中的数字是否为偶数或是奇数,若为奇数,则放在数组的前面,偶数则放在数组后面。3、程序:#define _CRT_SECURE_NO_WARNINGS#include <st...
2019-11-08 19:52:01 207 2
原创 数组的常见试题解析
[ ]的优先级最大,属于一级优先级1、一维数组#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main(){ //一维数组 //sizeof判断数组大小时,仅看类型 int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof...
2019-11-03 22:10:13 273
原创 数组参数和指针参数
1、指针1、指针的大小一直为4和8,4和8是由(32位系统或者64位系统)系统决定的,不是由它的类型决定的。2、数组名arr,表示首元素的地址,但是二维数组的首元素是二维数组的第一行,所以传递的arr,其实相当于第一行的地址,是一维数组的地址,可以数组指针来接收。3、c语言传参时,不存在传数组,传的是地址,这样效率高。2、一维数组传参#include <stdio.h>vo...
2019-11-02 22:21:59 539
原创 数组指针的常见问题
1、数组指针和指针数组指针数组首先是一个数组,数组里面存储的值为指针;int* arr[10]; 整形指针的数组char *arr2[4]; 一级字符指针的数组char **arr3[5]; 二级字符指针数组数组指针首先是一个指针,该指针指向一个数组。int p1[10]; 是指针数组int(p...
2019-11-02 21:19:04 410
原创 打印杨辉三角
1、在屏幕上打印杨辉三角。11 11 2 11 3 3 12、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Print_triangle(int num);int main(){ printf("输入杨辉三角的行数:"); int num = 0;...
2019-10-28 20:54:33 167
原创 谋杀案的判定
1、日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。2、思路字符可以加1就为下一个字符!先假设A为真凶,用A判断四个人说的话正确的个数是否等于3,如果不是,则真凶继续以B,C,D来判断。3、...
2019-10-28 20:07:31 234
原创 根据5位运动员的描述,预测比赛结果
1、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。2、思路:A,B,C,D,E每个人的名次都有可能为1~5名次,故写5个for循环,让每个运动员的名次遍历一遍。因为每个选手都说对了一半,故...
2019-10-28 18:50:45 610
原创 三子棋程序
1、完成三子棋程序2、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>void Init();void PrintfChessBoard();void PlayerMove();void ComputerMove();...
2019-10-28 10:11:21 109
原创 扫雷游戏
1、写出扫雷程序2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>#define MAX_ROW 9#define MAX_COL 9#define MAX_mine_count 10char mine_map[MA...
2019-10-27 23:55:34 100
原创 数据在内存中的存储
1、数据存放在内存中都是以其补码的形式存放的。正数的原码和补码相同,负数的补码为原码除过符号为,其余位取反,并加1得到的2、数据在内存中存储时,有两种模式:分别为大端机和小端机小端机模式为数据低位存低位地址,数据高位存高位地址;大端机模式为数据高位存低位地址,数据低位存在高位地址中,这种大端机模式可以直接看出当前数据的二进制表示。如十进制20,其二进制位(00000000 0000000...
2019-10-26 21:09:49 1704 3
原创 倒置字符串
1、倒置字符串思路:先整体倒置输出字符串,然后判断’ ‘,遇到空格时并且再将字符串倒置输出,直至遇见’\0’时,程序结束,再输出字符串!2、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>void reverse(c...
2019-10-25 21:17:23 721
原创 求两个正整数的最小公倍数
1、求两个正整数的最小公倍数2、程序:第一种方法:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int temp = 0;int main(){ printf("Please input two numbers:"); int A, B; int i ,q; sc...
2019-10-25 20:27:33 3984
原创 .编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
1、.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:72、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Judge_differ_bit(unsigned int num1, un...
2019-10-17 22:42:58 207
原创 输出一个整数的每一位
1、输出一个整数的每一位2、程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int printf_num(int num);int main(){ printf("input a number:"); int num; scanf("%d", &num);...
2019-10-17 22:06:25 161
原创 获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
1、获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。2、思路:见程序3、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int choose_fun(unsigned int num);int main(){ printf("input a num...
2019-10-17 21:49:37 240
原创 写一个函数返回参数二进制中 1 的个数
1、写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 12、思路:由于十进制转化为2进制时,是除2取余,故只需判断除2的余数是否为1即可。3、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int count_one_bits(unsig...
2019-10-17 21:02:30 239
原创 编写一个函数 reverse_string(char * string)(递归实现)
1、编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。2、思路:先正向输出,直到找到’\0’所在的地址,进行反向输出3、程序:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib...
2019-10-13 21:32:05 537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人