自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构项目二:停车场管理

项目目的:为了深入理解队和栈的使用原理,利用一个栈两个队列简单实现停车场的管理。Parking.h 文件:#ifndef __PARKING_H__#define __PARKING_H__#define TRUE 1#define FALSE 0#define SIZE 20#define TIME 86400/*停车场管理问题描述:停车场

2017-10-25 15:57:06 4362 3

转载 知识点1:C语言中exit()与return的区别

exit函数和return函数:1、exit函数和return函数的主要区别是:    1)exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关

2017-08-17 19:36:12 642

原创 强化练习9:将不定长的字符串转化为一个16位的字符数组

题目:将不定长的字符串转化为一个16位的字符数组。程序如下:#include #include #define SIZE 100#define LEN 16// 多位数自加成一位数int Add_Str (int Num){ int sum = 0; while (Num) { sum += Num % 10; Num /= 10; }

2017-08-14 20:15:15 1131

原创 笔记11:进程控制编程

1、获取进程的id头文件:#include #include 函数原型:获取本进程IDpid_t getpid(void)获取父进程IDpid_t getppid(void)获取用户IDpid_t getuid(void)例:#include #include #include int main(){ pr

2017-08-11 19:44:52 297

原创 笔记10: 进程控制的基本概念

1、进程(1)进程狱程序的区别 程序是放到磁盘的可执行文件。  进程是指程序执行的实例。(2)进程的地址空间分配给每个进程的内存(memory)由一系列段(segments)组成: ①text segment(代码段)    包含机器语言指令。通常是只读的、共享的。 ②initialized data segment(初始化数据段

2017-08-09 19:45:53 416

原创 文件系统编程的应用

修改项目通讯录:利用文件读取数据,写入数据。头文件:AddressList.h#ifndef __ADDRESSLIST_H__#define __ADDRESSLIST_H__#define FALSE 0#define TRUE 1#define N 20typedef struct _information{ int id; char name[N]

2017-08-08 20:24:49 299

原创 笔记9:Linux 文件系统编程

1、什么是系统调用所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。2、什么是文件文件是系统资源(内存、硬盘、一般设备、进程间通信的通道等)的一个抽象。对系统资源进行访问的一个通用接口。普通文件一般意义上的文件,作为数据存储在磁盘中,可以随机访问文件的内容。Linux系统中的文件是面向字节的,

2017-08-07 19:33:56 531

原创 强化练习8:将一个班级40位同学随机分成10组

#include #include void swap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void printA(int *a, int len){ int i; for (i = 0; i < len; i ++) { if (i % 4 == 0) prin

2017-08-07 09:03:08 1050

原创 笔记8:二叉树

二叉树的定义:二叉树是由 n ( n ≥0 ) 个结点组成的有限集 合,该集合或者为空,或者是由一个根结点加 上两棵分别称为左子树和右子树的、互不相交 的二叉树组成。程序如下:#ifndef __BTREE_H__#define __BTREE_H__#define BLEFT 0 // 表示插入二叉树的左边#define BRIGHT 1 // 表示插入二叉

2017-08-06 20:05:35 224

原创 笔记7:树

1、树的定义:树是一种非线性的数据结构树是由 n ( n ≥0 ) 个结点组成的有限集合如果 n = 0,称为空树;如果 n > 0,则:有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱。除根以外的其它结点划分为 m (m ≥0) 个互不相交的有限集合T0,T1,…,Tm-1,每个集合又是一棵树,并且称之为根的子树。2、

2017-08-06 20:01:59 217

原创 强化练习7:请编写一个c函数,该函数给出一个字节中被置为1的位的个数

题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数  程序如下:#include void num(char ch) { int count = 0; int i; for(i = 0;i < 8; i++) { if(ch & 1 == 1) {

2017-08-06 19:54:00 391

原创 强化练习6:判断一字符串是否为回文,是返回1,不是返回0,出错返回-1

题目:判断一字符串是否为回文,是返回1,不是返回0,出错返回-1 程序如下:#include int fun(char *p){ if (p == NULL) return -1; char *pstart = p; char *pend = p; while (*pend) { pend++; } pend--; while

2017-08-06 19:46:12 2465 1

原创 强化练习5:找合法帧

题目:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.提示:帧头和帧尾分别是head和tail  字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧。程序如下:#include #include char *findstr(char *str, char *sub)

2017-08-06 19:37:53 251

原创 强化练习4:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号。

题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号。程序如下:#include int main() { int a[100]; int i,n,q; int p = 0; printf("input number:"); scanf("%d",&n); q = n; for

2017-08-06 19:31:24 903

原创 强化练习3:判断闰年

题目:判某一年是否闰年。输入:年(year)计算:判是否闰年输出:闰年或非闰年(leap)闰年条件:能被4整除,但不能被100整除。能被4整除,又能被400整除。程序如下:#include int main(){ int year; int leap; scanf("%d", &year); if((year%4 == 0 && ye

2017-08-06 19:24:53 263

原创 强化练习2:编程实现统计某年某月份的天数

口诀:一三五七八十腊(1,3,5,7,8,10,12),31天永不差,平年二月28,闰年二月29,其他月份三十天。程序如下:#include int main(){ int year; int month; scanf("%d %d", &year, &month); switch (month) { case 1: case 3: c

2017-08-06 19:19:57 518

原创 强化练习1:通过编程实现,分别统计0~n有多少个0~9 提示:n通过参数传入

程序如下:#include int main(){ int c[10]; int i; for (i = 0; i<10; i++) { c[i] = 0; } int num; scanf("%d", &num); c[0] = 1; for (i = 1 ; i <= num; i++) { int num = i; while (num

2017-08-06 19:15:43 232

原创 几种常见的排序(二)

1、希尔排序#include void swap (int *a, int i, int j){ int tmp; tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void printfA (int *a, int len){ int i; for (i = 0; i < len; i++) { printf ("%4d", a[i])

2017-08-06 19:08:35 183

原创 几种常见的排序(一)

1、冒泡排序:冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。  冒泡排序算法的运作如下:  ①比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。②对每一对相邻元

2017-08-04 17:40:16 392

原创 笔记6:链表(三种:头指针、头结点、头结点循环)

1、头指针链表#include #include #define TRUE 1#define FALSE 0typedef int LinkData; // 链表的数据类型typedef struct _node{ LinkData data; // 链表的数据 struct _node *next; // 指向链表下一个结点的指针}N

2017-08-03 20:35:50 443

原创 笔记5:顺序表

#ifndef __SEQLIST_H__#define __SEQLIST_H__#define FALSE -1#define TRUE 0#define INIT_SIZE 100#define INCRESS_SIZE 20 typedef int SeqData;// 顺序表结构typedef struct _seqList{ SeqDa

2017-08-02 19:39:21 196

原创 笔记4:队列

1、顺序队列#ifndef __SQQUEUE_H__#define __SQQUEUE_H__#include "error.h"#define TRUE 1#define FALSE 0#define SIZE 10typedef int QueueData;typedef struct _queue{ QueueData data[SIZE]; int fron

2017-08-01 21:00:48 145

原创 笔记3:栈

栈的定义:      只允许在一端插入和删除的线性表;  允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。栈的特点:  后进先出 (LIFO)。1、顺序栈#ifndef __SQSTACK_H__#define __SQSTACK_H__#include "error.h"#define TRUE 1#define FALSE 0#de

2017-07-28 20:41:44 186

原创 初次项目:电子通讯录

学C语言快一个月了,第一次做项目,中间出现了许多BUG,终于勉勉强强实现了预期的所以功能!其中还存在一些BUG(如:输入字符程序崩溃等等),后期完成阶段学习会回来完善代码。AddressList.c 文件:#include #include #include "AddressList.h"#include //主菜单int Interface_Display(

2017-07-26 20:07:55 378 2

原创 头结点链表的三种插入结点方式

1、头文件(.h)#ifndef __LINKLIST_H__#define __LINKLIST_H__#define FALSE 0#define TRUE 1typedef int LinkData;typedef struct _node{ LinkData data; struct _node * next;}Node;// 创建链表Node * Cre

2017-07-25 20:36:23 1394

原创 笔记2:结构体的概述与使用

1、结构体的声明声明一个结构体类型一般形式:struct 结构体名{结构体所包含的成员变量;};例: struct stu{char name[20];Int age; }; 2、定义结构体的类型变量例:struct stu s1,s2;struct stu{char name[20];Int age; }s1,s2;

2017-07-22 20:43:52 197

原创 笔记1:函数的概述与递归函数

1、函数的概述函数(Function)是一段可以重复使用的代码,除了C语言自带的函数,我们也可以编写自己的函数,称为自定义函数。函数三要素: ①返回值:由关键字 return 进行返回;                       ②函数名;由数字、字母、下划线组成,不能以数字开头;                  ③函数参数。放在括号 () 内,每一个参数之间用逗号

2017-07-21 20:02:37 263

原创 函数指针小结

题目:输入一个字符串,同时输入帧头和帧尾(可以是多个字符)。将该字符串中合法的帧识别出来。提示:帧头和帧尾分别是head和tail  。字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧。#include #include // 在字符串str中寻找字符串sub,如果找到返回从sub开始的字符串char *

2017-07-20 20:59:49 150

原创 C语言中指针的一些易错点!

1、字符数组与字符串的使用注意:数组名是指向数组首个元素的地址。先看个例子:#include int main(){ char *str = "hello"; int len = strlen(str); int i; //直接输出字符串 printf("%s\n", str); //使用*(str+i) for(i=0;

2017-07-19 17:56:13 2412

原创 趣味题:李白打酒

待续!#include int count = 0;void libaidajiu(int alco, int store, int flower){ if (store > 5 || flower > 10) return; if (store == 5 && flower == 9) { if (alco == 1) count++; return ;

2017-07-18 21:00:45 530

原创 利用指针对数组&句子进行逆序

最近开始学习指针,以前我们学过一些排序(冒泡、选择等等),这次给大家带来指针的一些用法!1、将数组a[10] = {1,2,3,4,5,6,7,8,9,10}逆序输出#include //利用指针将数组逆序int main1(){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; int *p1 = a; int *p2 = a + si

2017-07-17 20:10:08 1682

原创 一些字符串处理函数的实现!

最近刚学完数组,把一些学了的字符串处理函数进行自己理解,写出了他们的一些转化程序。有出错的地方请大家指出,相互学习!1、strcat字符串追加size_t  strcat(char * _Str1, const char * _Str2);将参数_Str2追加到_Str1后尾strcat字符串追加的实现:#include #include //strcat

2017-07-16 21:00:17 291

原创 敲黑板!break和continue的区别!

首先,我们分别了解break和continue的定义。1、break语句的功能是:在switch语句中使流程跳出switch结构。在循环语句中使流程跳出当前循环。举例:将从键盘上输入的若干个正整数求和,遇到负数则终止程序,并且输入的数不超过10个。    输入:正整数    计算:求累加和    输出:和#include #define MAX 10int m

2017-07-14 00:04:22 237

原创 分享一条趣味题:谁是凶手?

题目:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手?参考程序:#include int main(){ char killer; int i; for (i

2017-07-13 00:26:37 628

原创 初入C语言!整数算法训练2:输入5个数(含负数、小数),将它们按由小到大的顺序排列起来。

冒泡和选择两种排序的简单编程。

2017-07-11 16:44:12 1917

原创 初入C语言!整数算法练习1:通过编程实现,统计1~n有多少个9 ? 提示:n通过参数传入!

2017-07-11 11:10:32 693

空空如也

空空如也

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

TA关注的人

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