自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【网络】网络的基础知识--TCP/IP协议、IP分组、TCP传输

网络基础知识点1、OSI参考模型:2、TCP/IP参考模型:3、OSI和TCP/IP两种模型结构的比较:4、关于各层间的作用(基于TCP/IP):5、TCP/IP协议栈与数据封装6、以太网帧格式7、ARP协议8、RARP协议9、IP协议IP如何分片;IP的组装;IP地址与路由;10、UDP协议11、TCP协议为何要三次握手呢?两次可以吗?为何要四次挥手呢?

2016-08-31 22:46:31 13509

原创 【Linux】信号的基础知识&mysleep的实现

1、基本信号1.1产生信号的条件:  1)键盘sigint--ctrl+c   sigouit--ctrl+\    sigstp--ctrl+z2)硬件异常(SIGSEGV)3)kill指令 kill函数给一个指定的进程发送指定的信号。 int kill(pid_t pid, int signo);  raise函数给当前进程发送指定的信号(自己给自己

2016-08-31 19:05:59 389

原创 【Linux】linux下的可重入函数

1、可重入函数的概念:2、可重入的条件:3、可重入函数使用的变量有两种情况:4、不可重入的函数<基本上>:5、常用的可重入函数的方法有:

2016-08-31 18:57:55 752

原创 【Linux】进程间通信的几种方式(1)

进程间通信方式:1、匿名管道2、命名管道

2016-08-29 10:16:05 645

原创 【Linux】进程等待&程序替换

进程等待:wait、waitpid   等待目的、等待方式进程的程序替换: execv

2016-08-21 10:44:25 321

原创 【Linux】进程的创建fork()

进程的创建:       1)fork()创建一个新进程。子进程会得到父进程中数据段,栈段和堆区域的一份拷贝。子进程独立可以修改这些内存段。但是文本段是子进程和父进程共享的内存段,不能被子进程修改fork()---进程一分为二《父进程-父进程(id!=0)、子进程(id==0),出错(id=-1)》       2)vfork()创建一个新进程,子进程会立即即调用exec,于是不会

2016-08-21 09:36:36 475

原创 【二叉树】二叉搜索树

二叉搜索树:1.每个节点都有一个关键码(key)作为搜索依据,关键码互不相同。2.左子树的所有关键码都小于根节点的关键码。3.右子树的所有关键码都大于根节点的关键码。4.左右子树都是二叉搜索树。删除key:左为空,右为空,左右都不空1)左为空:cur的右树链到父节点2)右为空:cur的左树链到父节点3)左右都不空:找右树最左节点或左树最右节点,将找到的节点与cur交换后删除它。二叉搜索树的增、删、

2016-08-15 13:59:57 156

原创 【Linux】 进程调度算法

Linux中的进程调度算法分类如下:一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法(FCFS)    先来先服务(First Come First Service,FCFS)调度算法是一种最简单的、不可抢占式的调度算法,既可用于作业调度,也可用于进程调度。该算法按照进程进入就绪队列的先后顺序选择可以占用处理器的进程。每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,

2016-08-15 13:59:54 517

原创 【二叉树】线索化二叉树

线索化二叉树:    利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息。LChild(左孩子)Ltag(左线索标志)DataRtag(右线索标志)RChild(右孩子)中序(左根右):650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/82/99/wKioL1dczXigP3o1AAApdH6AISE445.png-wh_5

2016-08-15 13:59:51 190

原创 【C++】 二叉树的基本知识及其遍历

二叉树:每个节点最多两个孩子节点。二叉树的结构:         struct TreeNode                      {                            DataType _value;     //节点值                          TreeNode*  _left;    //左孩子                       

2016-08-15 13:59:48 207

原创 【Linux】Centos下的&quot;vim&quot;的配置

Linux的编辑器--vim   vim是多模式的编辑器(命令模式、插入模式、底行模式)。今天我们来学习一些如何配置vim?  可以自己用命令来配置,也可以从网上下载相关文件来配置。1.复制文件.vimrc    下载vimrc.zip,解压后的文件为.vimrc,将其放到当前用户avril的目录下。    链接:http://files.cnblogs.com/ma6174/vimrc.zip 

2016-08-15 13:59:45 199

原创 【linux】浅谈Linux下的 find 指令

linux中的find命令及相关实例:     find指令是个使用频率比较高的命令。常用于在系统特定目录下,查找具有某种特征的文件。一.find指令的一般格式:          find [pathname] -options [-print / -ecex / -ok...]其中:      pathname表示要查找的目录    ~ 表示home目录    . 表示当前目录       /

2016-08-15 13:59:42 238

原创 【面试题】 &nbsp; 单链表的热点面试题(1 )

单链表的面试题:1删除一个无头单链表的非尾节点2在无头单链表的一个非头节点前插入一个节点3查找单链表的中间节点,要求只能遍历一次链表4查找单链表的倒数第k个节点,要求只能遍历一次链表5从尾到头打印单链表6逆置 / 反转单链表存储结构:typedef int DataType;typedef struct SListNode{ DataType _data; struct SListNode*  _

2016-08-15 13:59:40 159

原创 【单链表】 &nbsp; c语言的单链表

单链表:是一种线性表,每个节点里面存储着下一个节点的指针,把存储的数据元素连起来。        本文中应用了C++的引用来传参数。650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/7D/D2/wKiom1bw00qj4tk8AAAXPfwFDNQ807.png" title="1.png" alt="wKiom1bw00qj4tk

2016-08-15 13:59:37 435

原创 【动态顺序表】 c语言的动态顺序表

动态顺序表: 容量不够时 自动增容(静态顺序表的改进)            动态顺序表的结构:typedef int DataType;typedef struct SeqList{ DataType* _array;   //指向数据块的指针 size_t _size;       //有效数据个数 size_t _capacity;   //容量}SeqList;增容:void _Check

2016-08-15 13:59:34 267

原创 【顺序表】 c语言的顺序表

顺序表:一段地址连续的存储单元依次存储数据元素的线性结构。静态存储的结构:#define MAX_SIZE 5typedef int DataType;typedef struct SeqList{ DataType array[MAX_SIZE]; size_t size;}SeqList;/////////////   顺序表的 增 删 查   //////////////////

2016-08-15 13:59:31 485

原创 【c语言】 编写一个函数reverse_string(char * string)(递归实现)

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#include #include int my_strlen(const char *str) //自定义的计算字符串长度的函数{ assert(str); int count = 0; while (*str) {

2016-08-15 13:59:29 448

原创 【c语言】 &nbsp; 模拟实现printf,要求功能: my_printf(&quot;dc\ts\ndc\ndc\ts!&quot;, ...)

模拟实现printf功能输出如下形式,'d'输出整形,'c'输出字符型,'s'输出字符串,其他输出自身形式 my_printf("dc\ts\ndc\ndc\ts!",1, 'b',"zhangweina",2, 'i', 3,'t', "welcome to you");可变参数列表的一些小知识://宏 stdard.h//va_list  声明一个类型//va_start 第一个参数为va_l

2016-08-15 13:59:26 256

原创 【c语言】 &#160; &#160; &#160; 小游戏——猜字游戏

大家一起来玩一个小游戏吧!  srand((unsigned int)time(NULL));//设置随时间变化的随机数ret=rand()%100; //产生0~100随机数 添加 #include改变100的值,使其产生0~其他的随机数.自定义游戏菜单menu.#include#include#includevoid  fun1(int ret,int count)//游戏主体{

2016-08-15 13:59:23 527

原创 【c语言】 &nbsp; 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

注意:计算时1要用double类型即1.0。奇数偶数分开计算,再合并。#includeint main(){ int i; double sum=0,sum1=0,sum2=0; for(i = 1;i <= 99;i+=2) { sum1=sum1+1.0/i;     } for(i = 2;i <= 100;i+=2)  {       sum2=sum2-1.0/i

2016-08-15 13:59:20 1060

原创 【c语言】 &nbsp; 将数组A中的内容和数组B中的内容进行交换。(数组一样大)

分别输入两组数,编写swap函数交换两数组内容,再在主函数中调用swap函数达到函数交换的目的#includevoid swap(int arr1[],int arr2[],int len) {     int i, temp;  for(i = 0; i < len; i++)     {       temp=arr1[i];       arr1[i]=arr2[i];  

2016-08-15 13:59:18 232

原创 【c语言】 &nbsp; 输出一个整数的每一位

先以1000以内整数为例 #includeint main(){  int num=0;  int a,b,c;  printf("请输入1000以内的数字:>");      scanf("%d",&num);    if(num<1000)  {  a=num/100;//百位数字         b=(num%100)/10;//十位数字  c=(num%100%

2016-08-15 13:59:15 1018

原创 【c语言】 &nbsp; 写一个函数返回参数二进制中 1 的个数

如何将输入的数转化为二进制,统计其中 1 的个数。1.将十进制转换为二进制是将数字不断除2取余,在这里我将余数为1的情况进行累加,可以得出结果。#includeint main() {         int num;   int s=0,yus=0,count=0;//s为商,yus为余数       printf("请输入一个数字:>");        scanf("%d

2016-08-15 13:59:12 230

原创 【c语言】 &nbsp; 寻找十个整数中的最大值

用数组输入十个整数,应用for循环对数组中元素,从前到后两两相比较找出最大值。#includeint main(){   int a[10]; int n,i,maxa; n=sizeof(a)/sizeof(a[0]); printf("请输入10个整数\n"); for(i=0;i<n;i++) { scanf("%d",&a[i]);}  maxa=a

2016-08-15 13:59:09 659

原创 【c语言】 &nbsp; 交换两个整形变量的值(要求不创建临时变量)

如何不创建临时变量,来交换两个整形变量的值异或运算 #includeint main(){ int num1=12,num2=24;    printf("交换前的变量值");    printf("%d,%d",num1,num2);      num1=num1^num2;      num2=num1^num2;      num1=num1^num2;//异或 print

2016-08-15 13:59:06 261

原创 C语言 判断0~3000之间的闰年

熟话说“四年一润,百年不润,四百年再润”。那么我们来用编程查找闰年吧!#includeint main(){ int year,leap=1; printf("\t\t\t判断0~3000之间的闰年\n"); printf("请输入0~3000之间的年份\n");flag: scanf("%d",&year); //输入年份 if(year>0&&year<=3000)    //

2016-08-15 13:59:04 1089

原创 C语言 &nbsp; 99乘法口诀表

我们熟悉的乘法口诀表,可以用简单的c语言展现哦!#includeint main(){ int i,j,k;  printf("\t\t\tThis is the 9*9 table.\n"); for(i=1;i<=9;i++)     //循环计算1~9  {   for(j=1;j<=i;j++)  //输出数i的乘法项    {       k=i*j;     prin

2016-08-15 13:59:01 366

原创 c语言打印100~200之间的素数

素数即就是该数除了1和它本身以外不再有其他的因数,否则称为合数。     找寻100~200之间的素数的算法:让a被2~√a除,若a不能被整除,则a是素数。#include#includeint main(){   int a,k,i;//数a    printf("100~200以内的prime\n");     for (a=101;a<=200;a=a+2)  {  k= sq

2016-08-15 13:58:58 372

原创 【Linux】PCB(进程控制块)--‘task_struct’

操作系统/进程/PCB概念:    操作系统是进行软、硬件管理的软件,操作系统的进行硬件管理时,需要通过驱动程序来进行执行,驱动程序就相当于一个执行者,介于操作系统和硬件之间。操作系统的任务包含进程管理,进程调度,进程间通讯机制,内存管理,中断异常处理,⽂件系统,驱动程序管理,I/O系统等。    进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单

2016-08-14 21:17:15 1084

原创 【linux】浅谈Linux下的gcc编译器和"Makefile"文件

编译器( gcc 、g++):预处理—— 取消注释、宏替换、.h文件展开(文件包含)、条件编译 。预处理指令是以#号开头的代码行。编译    —— c语言->汇编代码汇编    ——汇编代码 转换为目标文件,机器可识别代码链接    ——可执行文件(库文件.lib(静态库.a)    .dil(动态库.so))库文件为目标文件                    静态链接

2016-08-13 22:14:20 460

原创 【Linux】进度条的编辑

进度条的几个特点:1、存在一个区间,不断加载数据,直到区间加载满为止。2、显示进度,从0%~100%。可会出现一个旋转的小圈,表示正在加载。进度条的具体实现:进度条的代码实现:

2016-08-13 21:11:45 248

空空如也

空空如也

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

TA关注的人

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