自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程控制

进程创建:fork、vfork底层都是调用clonefork():1.复制:分配新的内存块和内核数据结构给子进程 ,将父进程部分数据结构内容拷贝至子进程 ,添加子进程到系统进程列表当中,fork返回,开始调度器调度2.返回值:子进程返回0, 父进程返回的是子进程的pid,出错返回-1vfork:共用虚拟地址,子进程先运行,直到子进程退出后或者子进程程序替换运行另一端程序后才会调...

2019-11-01 17:04:14 109 1

原创 Linux进程概念

冯诺依曼体系结构:输入设备,输出设备,存储器,运算器,控制器进程的相关概念:竞争性(系统进程数目众多但CPU资源只有少量,所以进程之间具有竞争性)独立性(多进程运行,各自独享资源互不干扰)并行(多个CPU在多个CPU下分别同时进行)并发(多个进程一个CPU用进程切换方式运行)环境变量:用于设置系统运行环境的变量(使程序运行更加高效,因为环境变量具有全局特性)...

2019-03-18 22:53:20 294

原创 Linux入门笔记

平时写的一些总结,以后复习用操作系统:操作系统就是搞管理的软件,对下管理软硬件资源,对上提供良好的执行环境库函数和系统调用接口的关系:上下级调用关系,库函数是系统调用的一层封装自动补全Tap键,当文件中没有同名的文件时写前几个字母摁tap可以自动补全后面的单词ctrl +c 结束当前程序或者操作的运行shutdown -h now 立即关机reboot ...

2019-03-18 22:29:15 766

原创 汉诺塔问题

题目来自百度百科:汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。汉诺塔问题每个圆盘的具体移动方式不清楚,因此很难手动移动模拟这个算法,递归得深了...

2019-01-25 15:10:03 287

原创 函数指针,转移表和回调函数的理解

函数指针函数指针顾名思义就是将函数看做一个指针,用一个指针来保存函数的地址函数指针的用法:函数指针的正确写法是  void (*p1)() 而 void *p2() 是无法存放函数指针的,因为这是返回值为指针的函数,p1先与*结合,说明p1是一个指针,指针指向一个函数,指向的函数无参数,返回值类型为void。具体用法如下例#define _CRT_SECURE_NO_WARNIN...

2018-11-17 13:43:18 273

原创 关于指针和数组的知识点总结

  一级指针:难点1,指针是怎样保存一个地址例如: char str1[]="hello world"(这里虽然定义的是数组,但其实在初始化时隐式退化成指针,保存的是首字符的地址'h')char *str2="hello world"(这里表示str2指向一个常量字符串),如果这时还有一个char str3[]="hello world",和char* str4="hello worl...

2018-11-16 13:24:26 318

原创 编程练习#4

1.一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。  #include<stdio.h>int seach(int* p, int num){ int i = 0; for (i = 0; i < num - 1; i++){ //用第一位与后面的数全部进行异或运算 //活用两个相同的数异或运算为0的特性 ...

2018-11-08 20:42:27 91

原创 编程练习#3

1.实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB #include<stdio.h>void flip(char* str, int k, int num){ for (int i = 0; i < k; i++){ char first = *str; for (int j = 0; j ...

2018-11-08 20:40:41 118

原创 编程练习#2

杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N); 这里我用的是递归的方法来寻找一个数,在编写程序之前,我们先分析一下杨氏矩阵的特性,那就是从左到右从上到下是递增的,也就是说,对于这个矩阵而言,右下角的数是该行该列里面值最大的,所以,我们先从对角线入手,找出比所要查找的数大的那个值的坐标比如...

2018-11-04 17:21:55 91

原创 编程练习#1

输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 两种方法实现奇偶调序#include<stdio.h>void swap_num(int* arr, int len)//方法1//采用先遍历一次,将所有奇数输出,然后再把所有偶数输出的方法实现{ int i = 0; for (;...

2018-11-04 14:19:26 124

原创 求一个数二进制位模式从左到右翻转后的值

编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结...

2018-11-03 21:28:27 187

原创 异或运算的妙用

1.可用于两数的交换#include<stdio.h>int main(void){ int a = 8; int b = 5; a = a^b; b = a^b; a = a^b; printf("a=%d b=%d", a, b); return 0;}2.可用于找出一组数据中单独出现的数(其他数都是成偶数出现)#include<stdio...

2018-11-03 21:00:21 409

原创 将反序英文短句改为正序

有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)。  解题的思路就是,首先将整体字符数组翻转一遍,这时,虽然语序是正确的,但是单词还是反序的,所以我们设置一个left指针和一个right指针分别确定左值和右值,再次调用翻转函数reverse_s...

2018-11-03 20:48:08 235

原创 对求平均数的一些改进

题目:求两个数的平均值。对于这种求平均数的问题,相比大家在初学C语言的时候就已经做过这种类型的题了,但是,对于一般的(a+b)/2的方法是有其缺陷的,那就是当a和b极大时,容易发生溢出的状况对于这种问题,我们有一种比较丑陋的解决方案,那就是先比较a和b的大小,然后用大的减小的除以2,再加给小的。话不多说上代码#include<stdio.h>int main(voi...

2018-11-01 19:53:09 218

原创 简单二进制位移编程题

1. 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int value) { // 返回 1的位数 } 难点和改良方法已写在注释上#include<stdio.h>#include<windows.h>int count_one_bits...

2018-10-28 10:49:15 432

原创 简单的逻辑编程题

<一>题目:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。做法和一些难点已在程序中标注出来#include<stdio.h>int main(v...

2018-10-26 21:43:27 1122

原创 三子棋小游戏

史上最详细的手把手三子棋小游戏全教程来啦!!!!不过在着手制作之前,我们首先要把逻辑理清楚, 三子棋首先得有个棋盘对吧,在C语言里面,我们就用一个二维数组来表示棋盘1.首先对棋盘进行初始化void init(void){ //初始化棋盘 int i, j; for (i = 0; i <= 2; ++i) for (j = 0; j <= 2; ++j){ g...

2018-10-25 17:42:10 104

原创 C语言操作符总结

运算符种类:1.算术运算符:+(加),-(减),*(乘),/(除),++(自加),--(自减),%(求模,可理解为求余数)2.关系运算符:>(大于),<(小于)==(等于),<=(小于等于),>=(大于等于),!=(不等于)3.逻辑运算符:&&(逻辑与),||(逻辑或),!(逻辑非)4.赋值运算符:=5.指针运算符:*(解引用,可理解为取...

2018-10-25 17:04:54 178

原创 基础递归详解

递归的思想通俗的理解就是,函数调用它本身,当满足某个条件后再将调用过程中的函数逐个输出。递归函数相较于一半函数,其优点就是短小简洁,递归函数通常情况下可以较为简单的实现某种功能,但递归函数也有其缺点,就是递归函数通常计算量较大(一般是因为递归函数容易出现计算重复的问题),因此使用递归函数要视情况而定。下面就用一个简单的函数来说明什么是递归。实现:将参数字符串中的字符反向排列。对...

2018-10-16 13:38:43 434

原创 基本的查找算法,二分查找

    相对于顺序查找,二分查找在面对庞大的数据时要更为便捷,对于一组很大的数据,顺序查找需要一个一个的进行比较,然后找到目标,而二分查找的优势则在于其每次能排除一半数据,从而提高搜索效率。    但二分查找也有局限性,就是二分查找只能对顺序排列的数据进行查找,而顺序查找则不需要进行排序。    二分查找的原理很简单,例如一维数组ch[10]={1,2,3,4,5,6,7,8,9,10},...

2018-10-03 16:44:36 111

原创 新人小白的入坑第一步

一转眼,大一就这样过去了,时光飞逝,悄然改变着什么,又好像没有改变,我又仿佛想起刚开始学习C语言的自己,困难总是那么多,连一个简单的分号都能错上好几次,而当我遇到困难时往往就会在CSDN上查阅前辈们的代码,和一些经验总结,就这样,我知道了CSDN。我一直憧憬着一件事,那就是有一天,我的代码也能广为传播,就像那些大牛一样被人们广为传阅。能帮助到在写代码时遇到困难的人,希望我能不忘初心,不被繁多的诱惑...

2018-09-26 13:42:05 132

空空如也

空空如也

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

TA关注的人

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