自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程间的通信

Linux进程间的通信:进程间通信的方式:无名管道(pipe)和有名管道(fifo)消息队列共享内存信号量信号套接字匿名管道:pipe函数创建一个匿名管道,其函数原型:# include<unistd.h>int pipe(int fd[2])参数fd[2]是一个长度为二的文件描述符;其中fd[1]是写入端,fd[0]是读出端;返回值:0表示创建成功,-1表示创建失败;读写操作:rea...

2018-07-14 01:52:57 224

原创 自主shell,支持输入/输出/追加重定向

shell具体执行过程编写一个支持输入输出追加重定向的shell脚本程序: 1 # include <stdio.h> 2 # include <stdlib.h> 3 # include <unistd.h> 4 # include <string.h> 5 # include <sys/wait.h> 6 # in...

2018-07-13 23:12:19 780

原创 Linux文件系统

文件描述符fd:文件描述符是一个非负整数。当我们打开一个现有文件或者创建一个新文件时,内核会想进程返回一个文件描述符。当我们打开文件时,操作系统在内存中要创建相应的数据结构来描述目标文件,即file结构体,来表示已经打开的文件。进程执行open系统调用时必须让进程和文件关联起来。每个进程都有一个*file指针,指向一张表files_struct,这张表包含一个文件指针数组,每个元素都是一个指向打开...

2018-07-13 22:34:15 183

原创 进程调度算法以及描述进程的结构体

进程的调度算法 :先来先服务 (FCFS,first come first served) 在所有调度算法中,最简单的是非抢占式的FCFS算法。 算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了...

2018-07-12 19:49:04 901

原创 栈的基本操作和栈的面试题

栈的基本操作:头文件“Stack.h”# pragma once# include "Stack.h"# include <stdio.h># include <stdlib.h># include <assert.h># include <string.h># define maxsize 100typedef char DataTy...

2018-07-10 01:06:32 303

原创 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要的权限.

 Linux中的基本权限(r、w、x)r :表示具有读权限。w :表示具有写权限。x: 一般针对可执行文件 / 目录,表示具有执行 / 搜索权限。s: 一般针对可执行文件 / 目录,表示具有赋予文件属主权限的权限,只有 user 和 group 组可以设置该权限。t :一般针对目录,设置粘滞位后,有权限的用户只能写、删除自己的文件, 否则可写、删除目录所有文件。旧系统还表示可执行文件运行后将 te...

2018-06-09 11:56:43 694

原创 linux根目录下各个文件夹的

Linux  根目录下各个文件夹的作用:/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz 为 linux 的内核文件,以及 /boot/gurb。建议单独分区,分区大小100M即可/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是...

2018-06-09 11:40:16 391

原创 单链表的实现

头文件 SList.h# pragma once# include "SList.h"# include <stdio.h># include <stdlib.h># include <assert.h>typedef int DataType;typedef struct SList{ DataType data; struct SList ...

2018-06-01 16:44:50 207

原创 顺序表(静态)

头文件  SeqList.h# pragma once# include "SeqList.h"# include <stdio.h># include <stdlib.h># include <string.h># include <assert.h># define ARRAYSIZE 100typedef int DataTy...

2018-05-25 23:57:21 157

原创 时间复杂度和空间复杂度

时间复杂度和空间复杂度:时间复杂度:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。计算方法:1.用1代替运行时间里加法常数项。2.只保留最高项,去除低阶的项。3.去掉最高项的系数递归的时间复杂度:斐波那契数列    int Fibon(int n ){    i...

2018-05-25 12:43:05 303

原创 C语言实现通讯录

通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供功能: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 实现动态开辟头文件 #include “contact.h”#ifndef __CONTACT_H__#define __...

2018-05-11 21:19:27 337

原创 c语言实现通讯录

通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供功能: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 头文件 #include “contact.h”#ifndef __CONTACT_H__#define __CONTAC...

2018-05-10 12:50:12 346

原创 自定义类型的总结

结构体类型:1.结构体类型创建:声明一个结构体类型的一般形式为:struct 结构体名 {成员列表 };eg:struct  Student{int num;char name;char sex;int age;};这个声明创建一个结构体类型Student,它包含四个成员:num ,name , sex, age .eg:struct  Student{int num;char name;char...

2018-05-08 22:42:52 251

原创 模拟实现 strncpy strncat strncmp

模拟实现strncpy:函数原型:char *strncpy(char *dest,char *src,size_t n);函数功能:c/c++)复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_t n的值决定。如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只是将src的前n个字符复制到dest的前n个字...

2018-05-06 11:32:46 255

原创 指针数组 .数组指针 .函数指针. 函数指针数组. 指向函数指针数组的指针

指针相关的总结:1.指针数组:一个数组的元素都是指针类型的数据称为指针数组定义一维数组的一般形式为:类型名* 数组名[数组长度];例如:int* p[5];由于[]优先级高,先跟p结合这就是一个数组的形式,然后再跟前面的‘*’结合,’*’表示此数组是指针类型的,每个数组元素都可以指向一个整型变量。2.数组指针:一个指向数组的指针。定义数组指针的一般形式:类型名 (*数组名)[数组的长度];例如:i...

2018-04-26 00:59:06 202

原创 函数栈帧的创建和销毁

我们用一个简单的求和函数来探索函数的调用过程#include<stdio.h>#include <stdlib.h>int Add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ int a = 10; int b = 20; int sum ...

2018-04-19 00:52:13 578

原创 可变参数列表解析

可变参数列表解析可变参数是通过将函数实现为可变参数的形式,可以使得函数可以接受一个及一个以上的函数参数。也许可变参数对我们来说是陌生的,但是作为C语言的初学者经常使用的printf 函数函数是一个典型的参数可变的函数。在保证它的第一个参数是字符串的条件下,你可以输任意数量任意合法类型的参数。只要你在第一个字符串参数中使用了对应的格式化字符串,你就可以输出正确的值。printf函数是封装好的函数,那...

2018-04-18 21:53:05 175

原创 c语言实现扫雷

我们先写出实现扫雷需要的一些功能:    1>初始化雷阵    2>显示雷阵    3>布局雷阵    4>扫雷下面是完整代码:头文件  saolei.h# ifndef __SAOLEI_H__# define __SAOLEI_H__# define MAX 10# define ROW 10# define COL 10//设置雷void set_mine...

2018-04-10 23:43:31 333

原创 C语言三字棋游戏先简单介绍一下三子棋的规则,方便我们接下来的编程和理解。规则如下: 在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。

先简单介绍一下三子棋的规则:在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。按照我们以前玩的游戏进入页面首先得有菜单,那给我们的游戏也来个简单的菜单,提示用户操作!!!int Menu(){ printf("**********************************\n"); printf("************* 1.play ********...

2018-04-08 18:58:16 11392

原创 C语言数组的总结

一维数组的初始化:类型说明符 数组名[常量表达式]={值}在{}里的值要用’,’间隔开。注:数组的创建,{}中要给一个常量或者一个常量表达式才可以,不能使用变量。在内存中的分配:char arr1[]=”abc”;   在内存的布局:’a’’b’’c’’\0’char arr2[]={‘a’’b’’c’}  在内存的布局:’a’’b’’c’一维数组的指针访问:数组名就是数组首元素的地址,打印数组的...

2018-04-04 15:25:44 222

原创 C语言在屏幕上打印杨辉三角。

可以先对数组a的第一列元素赋值1,其他元素赋值0.  观察杨辉三角可以发现,从第二行起,各行第二列之后的元素是上一行同列元素和前一列元素之和。# include <stdio.h># include <stdlib.h>int main(){ int arr[10][10]; int i = 0; int j = 0; for (i = 0; i < 10; i++)...

2018-04-03 21:42:10 197

原创 函数实现两个数的交换

# include <stdio.h># include <stdlib.h>void Swap1(int x, int y){ int temp; temp = x; x = y; y = temp;}void Swap2(int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp;}int main(){...

2018-04-02 23:22:53 1555

原创 实现一个函数,判断一个数是不是素数。

 # include <stdio.h># include <stdlib.h># include <math.h>int is_prime(int num){ int i = 0; for (i = 0; i < sqrt(num); i++); { if (num%i == 0) return 0; } return 1;}int main(){ ...

2018-04-01 18:12:17 190

原创 实现一个函数判断year是不是润年。

  # include <stdio.h># include <stdlib.h>int leap_year(int year){ if ((year %4 == 0 && year /100 != 0) || (year % 400 == 0)) return 1; else return 0;}int main(){ int a = 0; int b...

2018-04-01 18:10:51 667

原创 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。

 # include <stdio.h># include <stdlib.h>int MUL(int num){ int i, j; printf("——————————乘法口诀表——————————\n"); for (i = 1; i <= num; i++)  { for (j = 1; j <= i; j++)  printf("%d*%d=%2...

2018-04-01 18:08:39 196

原创 c语言编程实现两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同

这个问题可以先把两个数按位异或,找出两个数不同的位,把异或后的值再赋给一个数,再数这个数里一的个数,即为不相同的个数。# include <stdio.h># include <stdlib.h>int count_one_bits(int num, int count) //计算一个参数中一的个数的函数{ while (num) { count++; num = nu...

2018-03-30 19:51:42 637

原创 c语言求一个整数在存储内存中的二进制中意的个数

# include <stdio.h># include <stdlib.h>int count_one_bits(int num, int count){ /*int i = 0; for (i = 0; i < 32; i++)             { if (((num >> i) & 1) == 1) //每次右移一位并与1如果等于1...

2018-03-30 19:40:40 249

原创 c语言操作符总结

操作符的总结: 分类:算数操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员算术操作符1.除了%操作符之外,其它几个操作符可以作用于整数和浮点数。2.对于/操作符如果两个数是整型,执行整数除法。返回值是整除以后的商。而只要是浮点数执行的就是浮点型除法。3.%操作符的两个操作数必须为整数。返回值是整除之后的余数。位运算符...

2018-03-30 17:19:49 237

原创 c语言写猜字游戏

#include <stdio.h>#include <stdlib.h>#include <time.h>void menu(){ printf("         欢迎试玩猜数字游戏        \n"); printf("             1.开始游戏            \n"); printf("             0.退出游戏   ...

2018-03-28 22:00:32 1597

原创 C语言找有序数列中的数字并输出下标(折半查找法)

1.用函数的方法:# include <stdio.h># include <stdlib.h> int bin_search(int arr[],int left ,int right, int key) { int mid = 0; while (left <= right) { mid = left + (right - left) / 2; if...

2018-03-28 21:56:15 2083

原创 C语言打印菱形

要用C语言如下图所示的打印菱形(七行):首先我们观察可以分为上下两部分打印,第一部分也就是上半部分我们可以先打印空格,在打印“*”,我们再来观察需要打印的空格和“*”的个数,首先第一行需要打印空格的个数为六个,“*”的个数为一个接下来一次是5 ,2   4,3依次类推,所以我们先定义一个变量来控制行数,再用for 循环来实现打印!!!再观察下半部分,可以观察到类似规律!!!      *     ...

2018-03-28 07:46:29 984

原创 c语言计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

1.第一种方法我们首先观察这个式子的规律,奇数项为正数,偶数项为负数。我们用条件语句判断奇偶,然后分别求和!!!#include<stdio.h>int main(){ double sum; int i; for (i = 1; i <= 100; i++) { if (i % 2 == 1) // { sum += 1.0 / i; } else if (i % ...

2018-03-23 22:54:37 8652 1

原创 c语言找出十个数中最大的数

首先我们输入十个数放到一个数组里面,然后将数组里的数依次比较。输出最大的数。#include <stdio.h>int main(){ int a[9]; //数组及其他变量的初始化// int i = 0; int max = 0; printf("请输入十个整数:\n"); for (i = 0; i < 10; i++) //通过for循环输入十个整数// { scanf...

2018-03-23 00:03:40 24122 3

原创 c语言求解一元二次方程

用c语言求解一元二次方程,首先我们判断该方程是否为一元二次方程,判断a是否等于零,当a等于0时该方程就不是一元二次方程,当方程为一元二次方程时再判断有几个根。然后用求根公式求解。#include <stdio.h>#include <math.h>#define EXP 0.00000001int main(){ double a = 0.0, b = 0.0, c = 0...

2018-03-22 23:41:39 7340 1

原创 求两个整数的最大公约数C语言

首先输入两个整数a,b。比较a,b的大小,用两个数中最小的数(自减)同时除以两个数。当第一个数能够同时整数两个数即为两个数的最大公约数!!!!#include <stdio.h>int main(){ int a; int b; printf("请输入两个整数:\n"); scanf_s("%d%d", &a, &b); int n = a; int i; if (n ...

2018-03-22 16:26:22 511

原创 两个变量的交换

两个变量的交换有多种方法。首先我们用一种最基本的方法,不用指针,直接用一个变量实现两个数据的交换。#include <stdio.h>int main(){ int a = 10; int b = 20; int c = 0; c = b; b = a; a = c; printf("a=%d\nb=%d\n ", a, b); system("pause"); return 0;}那...

2018-03-21 00:22:30 179

原创 打印九九乘法口诀表

打印乘法口诀表:#include <stdio.h >int main(){ int  i, j;//定义两个整型变量分别代表行和列// printf("——————————九九乘法口诀表——————————\n"); for (i = 1; i <= 9; i++) //行循环控制变量// { for (j = 1; j <= i ; j++) //列循环控制变量// ...

2018-03-21 00:05:30 704

原创 the first day to learn c

      我!在写这个博客以前是一个在迷雾世界里寻找出路的人!一个乐观主义者!!!就是这种乐观让我在大学生活的前两年没有任何亮点,渐渐地耳旁不同的声音让我明白相同的一点,那就是就业压力大!!!面对就业压力,或提升自己——考研,或获得一个技能。所以我选择最热潮的IT行业。      以前看过一段话“雏菊    正因为是一张白纸,才可以随心所欲地描绘地图。一切全在你自己。对你来说,一切都是自由的,在...

2018-03-19 22:35:23 118

空空如也

空空如也

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

TA关注的人

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