![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
supreV
这个作者很懒,什么都没留下…
展开
-
停车场项目
停车场项目需求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求: (1)建立三个数据结构分别是:停放栈、让路栈、等候队列。 (2)输原创 2017-11-29 18:42:15 · 386 阅读 · 0 评论 -
编写一个c函数,将“I am from shanghai”倒置为“shanghai from am I”
编写一个c函数,将“I am from shanghai”倒置为“shanghai from am I”原创 2018-01-26 16:45:55 · 1032 阅读 · 0 评论 -
进程间通信2
信号量什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行进程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个进程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序对其访问都是原子操作原创 2017-12-07 20:05:51 · 209 阅读 · 0 评论 -
进程间通信1
为什么进程间要通信?数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源 通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事情。 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变管道通信什么是管道管道是单向的、先进先出的,它把一个进程的输出和另一个进原创 2017-12-07 19:59:30 · 226 阅读 · 0 评论 -
进程控制
基础概念什么是进程?进程是一个具有一定独立功能的程序的一次运行活动 进程是一个程序正在执行的实例。每个这样的实例都有自己的地址空间和执行状态。进程执行状态执行状态 进程正在占用CPU。就绪状态 进程已具备一切条件,等待分配CPU。等待状态 进程不能使用CPU,若等待的事件发生则可将其唤醒。进程ID每个进程都有一个ID(ID是一个正整数),唯一标识了系统中的这个进程。 每个进程都有一原创 2017-12-06 20:35:31 · 242 阅读 · 0 评论 -
c语言:查找两个字符串的最大公共子串
题目:编程实现查找两个字符串的最大公共子串 示例:”aocdfe”和”pmcdfa”最大公共子串为”cdf” 思路: 输入两个字符串,由短字符串的长度决定比较次数。 每次比较一个字符,从短字符串的第一个依次与长字符串的每一个字符比较,若出现相同的字符,则两个字符串各自取下一位进行比较,直到出现不相同字符的为止。(同时要注意比较是不能超出短字符串的长度,不然会原创 2017-11-24 20:15:04 · 19889 阅读 · 6 评论 -
通讯录项目(完善版)
学完链表写了一个通讯录的项目,具体要求如下:语言:c语言格式:编号姓名手机号码 :11位数住宅电话 :8位数要求:使用结构体形式对数据存储功能:使用链表实现增加(在增加人员的过程中有一 个自动排序功能,比如按姓名排序)、删除、修改、查找(比如:工号查找、电话查找)的功能; (1)添加用户信息(号码长度 号码是否重复) (2)列出用户信息(按姓名排序) (3)查找用户信息(原创 2017-11-23 01:26:31 · 442 阅读 · 1 评论 -
题目:生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? (第七届蓝桥杯B组真题(第二题)) 思路: 由于不知道从几岁开始和过得次数,需要定义两个变量进行两次循环,由于这是一个等差数列,第一次与最后一次想加,第二次与倒数第二次相加…… 数值都是相等的,所以知道次数与第一个原创 2017-11-24 17:44:25 · 763 阅读 · 0 评论 -
进程与线程,信号量与互斥量的区别
什么是进程?进程是一个程序正在执行的实例。每个这样的实例都有自己的地址空间和执行状态。 进程有一个PID(Process ID,进程标识),用以区分各个不同的进程。内核记录进程的PID与状态,并根据这些信息来分配系统资源(如内存等)。 当内核产生一个新的PID,生成对应的用于管理的数据结构,并为运行程序代码分配了必要的资源,一个新的进程就产生了。什么是线程?线程是进程的一个原创 2017-12-09 21:03:24 · 1264 阅读 · 0 评论 -
编写程序,实现strlen()相同功能myStrlen()函数
#include<stdio.h>int my_strlen(char *p){ int length = 0; while(*p++ != 0) { length++; } return length;}int main(){ char str[10] = "hello"; int a; a = my_strl原创 2017-11-16 20:57:01 · 3853 阅读 · 0 评论 -
C语言结构体(预习)
结构体声明(structure declaration)的一个例子如下:struct book { char title[MAXTITL]; char author[MAXAUTL]; float value;}; 上述声明描述了一个由两个字符数组和一个float变量组成的结构体。上述声明并没有创建实际的数据对象,只是描述了组成这类对象的元素(数据该如何存储)。创建结原创 2017-11-16 20:53:02 · 378 阅读 · 0 评论 -
内存分配
若共有4G内存,假设内核态分配1G,用户态分配3G1G内核态3G用户态其中,用户态可分为:BSS 未初始化全局变量数据段 初始化全局变量代码段 代码,常量堆 malloc分配(用户管理)栈 局部变量,形参(系统 管原创 2017-11-15 20:52:26 · 176 阅读 · 0 评论 -
编写程序,实现strcpy()相同功能myStrcpy()函数
#include<stdio.h>char *my_strcpy(char *p,char *q){ char *tmp = p; while((*p++ = *q++) != '\0'); return tmp;}int main(){ char str1[20] = "hello"; char str2[20] = "hey"; char *m原创 2017-11-15 21:00:35 · 4338 阅读 · 1 评论 -
指针预习
计算机中所有的数据都必须放在内存中我们将内存中字节的编号称为地址(Address)或指针(Pointer)CPU 只能通过地址来取得内存中的代码和数据CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。需要注意的是,虽然变量名、函数名、字符原创 2017-11-13 21:00:24 · 278 阅读 · 0 评论 -
数组与指针预习
c语言处理数组非常有效数组和指针能非常和谐的一起工作。数组跟指针可以相互转换。使用指针比使用数组下标快两倍。将数组作为参数传递给函数和将数组中第一个元素的指针传递给函数是完全等价的。数组下标总是从0开始 计算机中所有的数据都必须放在内存中,为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。原创 2017-11-11 00:30:46 · 260 阅读 · 0 评论 -
编写程序,实现strcmp()相同功能myStrcmp()函数
strcmp的作用是比较字符串1和字符串2#include<stdio.h>#include<string.h>int main(){ char str1[100] , str2[100]; printf("请输入两个字符串1:"); gets(str1); printf("请输入两个字符串2:"); gets(str2); int m, n, i,原创 2017-11-15 20:15:58 · 5787 阅读 · 0 评论 -
通过编程实现输出2的1000次方
解析2的1000次方超出了长整型的最大位数,可以将该数每一位放在数组里面,从前往后位数从低到高每次乘2是从高位开始乘,设高位为a,如果a*2 >= 10, 向该元素位置后一位进位,如果该元素已经是最高位,则位数加1;代码#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ int a[1000] = {0原创 2018-01-26 21:22:29 · 1392 阅读 · 0 评论