
c语言
文章平均质量分 53
ZWE7616175
这个作者很懒,什么都没留下…
展开
-
C语言通讯录管理系统
c语言实现通讯录管理系统,可以对通讯录里的联系人进行增加、删除、查找、修改、排序、清空等功能。原创 2017-07-15 17:24:24 · 2237 阅读 · 2 评论 -
模拟实现strstr函数
模拟实现strstr函数原创 2017-07-24 11:22:26 · 323 阅读 · 0 评论 -
典型约瑟夫环问题的实现
数学问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时把编号从0~n-1,最后结果+1即为原问题的解。解决问题步骤:1.构造一个无头的循环链表2.找出每次需要删除的节点3,删除节点,直到只有一个节点的时原创 2017-08-02 11:19:46 · 462 阅读 · 0 评论 -
【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
1.删除无头单链表的非尾节点函数原型:void DelNotTail(pNode pos);分析:无头单链表与有头单链表的区别在于找其中的节点不能使用遍历的方法,我们这里定义一个指针cur,让它指向pos的next,然后将cur->data给pos->data,pos->next指向cur->next,最后将cur删除。void DelNotTail(pNode pos原创 2017-08-02 11:44:32 · 712 阅读 · 0 评论 -
关于C语言整型提升的讲解
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为“整型提升”。首先,我们需要知道整型提升的规则:1.若是有符号数,则前面8*3位补符号位。2.若是无符号数,则前面面8*3位补0。1.int main(){ unsigned char a = 200;//00000000 00原创 2017-07-25 17:34:52 · 4351 阅读 · 0 评论 -
结构体相关的计算(结构体指针加一以及强制类型转换后加一)
结构体相关的计算(结构体指针加一以及强制类型转换后加一)。原创 2017-07-25 19:56:52 · 10504 阅读 · 0 评论 -
[详细分析]实现一个8bit数据(unsigned char)的指定位的置0或者置1操作,并保持其他位不变
实现一个8bit数据(unsigned char)的指定位的置0或者置1操作,并保持其他位不变。原创 2017-07-25 20:44:32 · 1396 阅读 · 0 评论 -
实现右旋、左旋循环移位函数
实现右旋移位函数,比如:“abcdefghi”循环右移2位是“hiabcdefg”。原创 2017-07-25 23:02:42 · 526 阅读 · 0 评论 -
C语言模拟实现atoi函数
#include #include #include #include #include enum{ INVALUE, VALUE};int my_atoi(char *str){ int tmp = 0; int flag = 1; int num = 0; //空指针 assert(str != NULL); //空字符串 if (*str ==原创 2017-07-26 18:54:09 · 516 阅读 · 1 评论 -
静态顺序表的实现
SeqList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include #include #include #include #define MAX 10typedef int DataType;typedef struct SeqList{ DataType data[MAX]; int sz;}SeqList,原创 2017-07-28 11:18:39 · 349 阅读 · 0 评论 -
【C语言】动态顺序表的实现
SeqList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include #include #include #include #define DEFAULT_SZ 2#define INC 1typedef int DataType;typedef struct SeqList{ DataType *data; i原创 2017-07-28 14:25:18 · 362 阅读 · 0 评论 -
用链表、顺序表模拟实现栈和队列
#define _CRT_SECURE_NO_WARNINGS 1#include #include /*1.编写函数,采用链式存储实现栈的初始化、入栈、出栈操作2.编写函数,采用顺序存储实现栈的初始化、入栈、出栈操作3.编写函数,采用链式存储实现队列的初始化、入队、出队操作4.编写函数,采用顺序存储实现队列的初始化、入队、出队操作*//////////////链式存储实现栈的初始原创 2017-11-09 20:22:52 · 1006 阅读 · 0 评论 -
命令行参数
每个C程序语言都必须有一个main函数,作为程序的入口点。当程序执行时,命令行参数(command-line argument)通过两个入口参数提供给main函数。 main函数的函数原型:int main(int argc,char *argv[]);argc表示命令行参数的个数,argv指向命令行参数的指针数组,每一个参数都是以NULL结尾的字符串。每个字符串,通常指向该程序的名称。ar...原创 2018-04-10 20:16:23 · 405 阅读 · 0 评论 -
C程序的编译过程
从一个.cpp文件到执行需要经历四个过程: 以一个实例来说明编译过程,假设现在有一个hello.c文件1、预处理gcc -E hello.c -o hello.i 主要内容如下: (1)将所有的#define删除,并且展开所有的宏定义; (2)处理所有的条件编译,如#if,#ifdef; (3)处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。该过程...原创 2018-04-20 21:48:42 · 255 阅读 · 0 评论 -
C语言---基本语句(面试题)
C语言中的基本语句及常考的面试题1.switch语句注意:括号中只能为整型(包括字符类型)、枚举类型面试题:switch-case与if-else的区别?①case语句小于3句时,与if-else**底层的实现方式是相同的**; ②线性查找 当case语句大于4的时候,且相邻的两个case之间产生的间隔之和不超过6的时候,就按照线性结构查找; ③树形查找 当最大的case和...原创 2018-04-20 23:21:02 · 326 阅读 · 0 评论 -
大端、小端存储以及典型例题分析
void main(){ union { short k; char i[2]; }*s,a; s = &a; s->i[0] = 0x39; s->i[1] = 0x38; printf("%x\n", a.k); system("pause:");}原创 2017-07-24 10:23:58 · 3009 阅读 · 0 评论 -
单链表的基本操作(尾插,尾删,头插,头删,查找,指定位置插入、删除,指定元素删除、全部删除等)
单链表的基本操作(尾插,尾删,头插,头删,查找,指定位置插入、删除,指定元素删除、全部删除等)原创 2017-08-01 13:53:09 · 1162 阅读 · 0 评论 -
[注释转化]C语言注释转换为C++语言注释
注释转化(C语言注释转换为C++语言注释)原创 2017-07-29 20:08:31 · 433 阅读 · 0 评论 -
计算两个数的平均数的几种方法解读
求平均值的方法举例及详细分析,一般方法以及借助位运算来求两个数的平均值。原创 2017-07-20 12:09:59 · 2539 阅读 · 0 评论 -
求字符串长度的函数的几种实现方法
求字符串长度的函数的几种实现方法,包括计数器实现、指针减指针、递归等。原创 2017-07-20 13:50:53 · 10782 阅读 · 1 评论 -
文件版通讯录的c语言实现
contact.h#ifndef __CONTACT_H__ #define __CONTACT_H__ #include #include #include #define MAX 1000 #define NAME_MAX 20 #define SEX_MAX 5 #define ADDR_MAX 30 #define TELE_MAX 12 #define DEF原创 2017-07-20 19:35:34 · 496 阅读 · 0 评论 -
高级的字符串函数
2.1 strpbrk原型:char *strpbrk(const char *s, const char *accept);描述:strpbrk()函数在字符串s中查找字符串accept中的任一字符第一次出的位置返回值:返回指向s中一个字符的指针,该字符是第一个与accept中一个字符匹配的字符。如果没有匹配的字符,则返回NULL。2.2 strspn在字符串前缀原创 2017-07-09 14:36:15 · 306 阅读 · 0 评论 -
字符串替换空格
请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are happy.”,则输出“we%20are%20happy.”。原创 2017-07-17 18:44:30 · 487 阅读 · 0 评论 -
结构体、位段(位域)详解
结构体大小前边简单介绍了一下,现在对计算结构体的大小进行详细的解释,希望能帮助大家。原创 2017-07-17 20:23:46 · 3664 阅读 · 1 评论 -
C语言结构体与位段
深度理解结构体与位段1.结构体的定义 有以下3种方法定义结构体类型变量。(1)先声明结构体类型再定义变量(2)在声明类型的同时定义变量例如:struct Student{ int num; char name[20]; int age; float score; char address;}student1,student2;(3)直接定义结构体类型变原创 2017-07-09 16:02:51 · 484 阅读 · 0 评论 -
调整数组使奇数(odd)全部都位于偶数(even)前面
#include#include#include#includevoid first_odd(int *str, int sz){ int i = 0; int j = 0; int k = 0; int odd_count = 0; int even_count = 0; int* odd = malloc(sz*sizeof(int)); if (odd == NULL原创 2017-07-18 18:28:48 · 696 阅读 · 0 评论 -
动态内存开辟
动态内存开辟的函数有malloc、realloc、calloc、free函数,接下来对每一个函数进行解释及使用,并总结出几个经典的例子巩固,以及总结常见的错误。原创 2017-07-16 14:46:42 · 435 阅读 · 0 评论 -
【三子棋】用c语言编写一个小游戏---三子棋
game.h#ifndef __GAME__H__#define __GAME__H__#include #include #include #include #define ROWS 3#define COLS 3void init_board(char board[ROWS][COLS], int rows, int cols);void display_board原创 2017-07-22 14:02:53 · 752 阅读 · 0 评论 -
【扫雷】编写一个小游戏--扫雷的c语言实现
game.h#ifndef __GAME__H__#define __GAME__H__#include #include #include #include #define ROW 9#define COL 9#define COUNT 10#define ROWS ROW+2#define COLS COL+2void init_board(char boar原创 2017-07-22 14:13:47 · 899 阅读 · 0 评论 -
输入字符串abbbcceffffzz ,要求输出a3b2ce4f2z
#includevoid number_letter(char *str){ int i ; int j = 0; int count = 1; while (*str!=NULL) { if (*(str + 1) == *str) { count++; } else { if (count == 1) { printf("%c", *原创 2017-07-18 20:55:39 · 765 阅读 · 0 评论 -
指针的相关运算,包括一维数组、二维数组、字符数组的sizeof、strlen运算
一维数组 int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//整个数组 4*4 printf("%d\n", sizeof(a + 0));//首元素地址 4 printf("%d\n", sizeof(*a));//首元素 4 printf("%d\n", si原创 2017-07-18 21:28:44 · 481 阅读 · 0 评论 -
你真的了解“宏”吗?详解宏的定义和使用,宏与函数的区别
在我们编程的过程中,经常会遇到一些经常使用的常量,而且在下一次使用的过程中根据实际情况需要改变这个值,例如扫雷,我们可能一开始设计的是3*3的雷盘,但是在之后的使用中我们想要更大的雷盘,在这种情况下,宏就显得得心应手了。1.宏常量的替换#define N 10#define PI 3.141592654#define UINT unsigned int 我们注意到原创 2017-07-22 13:46:05 · 1298 阅读 · 0 评论 -
C语言----数组(描述数组相关的知识、动态创建一个二维数组)
面试题:什么是数组?解答此类问题要循序渐进,具有条理性。①概念:数组是相同类型的数据的集合;②分类:一维数组、二维数组③特性:数组在底层是一段连续的空间,支持随机访问。 数组名在不同情境下表示的含义不同。&数组名、sizeof(数组名)均表示的是整个数组,其他情况下(作为参数、指针指向等)表示的均是首元素的地址。 注意:int arr[10]的类型是int [10]. ...原创 2018-04-20 23:31:18 · 304 阅读 · 0 评论