C语言之旅
文章平均质量分 77
从C基础---->C进阶---->C深入,带你一起翱翔C的世界!
snow_5288
三天不读书,智商输给猪
展开
-
统计一个数二进制形式中1的个数
1、题目要求写一个参数二进制中1的个数,比如:15----> 0000 1111 ----> 4个12、函数原型int count_one_bits(unsigned int value){ //返回1的个数}3、实现代码及思路思路一:我们知道,一个无符号整数在内存中占用了4个字节即32个bit位,既然是想统计二进制中1 的个数,我们就可以遍历这32个原创 2017-03-12 12:07:06 · 1387 阅读 · 0 评论 -
malloc的底层实现
// 申请内存块的类型/* Memory block identification */#define _FREE_BLOCK 0#define _NORMAL_BLOCK 1#define _CRT_BLOCK 2#define _IGNORE_BLOCK 3#define _CLIENT_BLOCK 4#define _MAX翻译 2016-10-08 17:43:14 · 1538 阅读 · 0 评论 -
(C语言版)猴子吃桃问题
问题描述:/*有一群猴子,去摘了一堆桃子*//*商量之后决定每天吃剩余桃子的一半*//*当每天大家吃完桃子之后,有个贪心的小猴都会偷偷再吃一个桃子*//*按照这样的方式猴子们每天都快乐的吃着桃子*//*直到第十天,当大家再想吃桃子时,发现只剩下一个桃子了*/问:猴子们一共摘了多少桃子原创 2016-09-17 11:24:03 · 124359 阅读 · 8 评论 -
单链表的基本操作
void Init_LinkList(PNode *pHead);//初始化PNode BuyNode(DataType data);//创建新节点void PushBack(PNode *pHead,DataType data);//尾插void PopBack(PNode *pHead);//尾删void PushFront(PNode *pHead,DataType data);//头插void PopFront(PNode *pHead);//头删PNode Find(PNode pHe原创 2016-09-13 12:31:54 · 1036 阅读 · 0 评论 -
动态内存浅析
首先,我们先来谈谈为什么要使用动态内存分配? 我们都知道,数组是相同元素的一组集合,它的各个元素之间也是连续存储的,所以内存会在编译阶段就为其分配所需的空间,而且在定义数组时就需要准确的标明数组的元素个数,这就导致了数组的长度不得不在运行时候方可得知,因为数组元素所占空间必须由输入数据来决定,这点就形成了数组本身致命的缺陷,同时也影响了程序的灵活性与健壮性。原创 2016-09-11 09:37:56 · 1594 阅读 · 0 评论 -
二分查找的多种实现
折半查找(即二分查找)二分搜索算法:给定排好序的n个元素arr[0:n-1],在这n个元素中找出一特定元素x. 首先比较容易想到的办法是用顺序搜索方法,逐个比较a[0:n-1]中的元素 ,直至找出元素x或搜索遍整个数组后确定x不在其中,这个方法没有很好的利用n个元素已排好序这个条件,因此在最坏情况下,顺序搜索的方法需要O(n)次比较。 而二分搜素搜的基本思想是将n个原创 2016-09-10 21:34:54 · 1565 阅读 · 0 评论 -
我的代码日程
3-13特别:注册自己的csdn博客。1. 打印100~200 之间的素数2. 输出乘法口诀表3. 判断1000年---2000年之间的闰年1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9。。。 素数#includeint main(){int i,n=0;for(n=原创 2016-03-17 10:39:04 · 888 阅读 · 0 评论 -
hehe之小程序
作业:1.给定两个整形变量的值,将两个值的内容进行交换。2. 不允许创建临时变量,交换两个数的内容(附加题)3. 求10 个整数中最大值。4. 写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){ // 返回原创 2016-03-17 10:42:27 · 544 阅读 · 3 评论 -
一塌糊涂的code!!!
#include#includeint main(){int m;m=getchar();if(48{ ;}if((m>=65)&&(m{printf("%c\n",m+32);}if(97{printf("%c\n",m-32);}sys原创 2016-03-21 13:30:09 · 633 阅读 · 0 评论 -
未完成的代码!
3. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。4. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。原创 2016-03-30 22:50:53 · 603 阅读 · 0 评论 -
一段改变我思想的代码!!!
有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。#include#includeint main(){int i=0;char arr[]="student a am i";int sz=sizeof(arr)/原创 2016-04-08 14:06:52 · 471 阅读 · 0 评论 -
常见字符串函数的原型!!!
1、strcat//将指针指向的字符串放到目的字符串后[cpp]char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数 { char * address = strDest; //该语句若放在assert之后,编译出错 asse原创 2016-04-13 22:12:24 · 1453 阅读 · 0 评论 -
好朋友?陌生人?-------指针与数组
数组:用来保存一组相同类型的元素的集合指针:专门用来保存一个变量的地址,即指针就是地址原创 2016-04-26 20:15:22 · 622 阅读 · 0 评论 -
sizeof和strlen
sizeof:判断数据类型长度符的关键字,用于求取一个对象或者类型所占的内存字节数strlen:求取字符串长度的函数,不包括‘\0’例题说明:1,整型数组int a[]={1,2,3,4};printf("%d\n",sizeof(a));-----16//a表示整个数组的地址,在32位系统下,所有地址均占4个字节,所以结果为16printf("%d\n",sizeof原创 2016-04-28 00:12:45 · 481 阅读 · 0 评论 -
加减乘除计算器
一,首先,我们用最常规,最容易想到的办法写出代码#include#includevoid menu(){ printf("1.add 2.sub 3.mul 4.div 0.exit\n");}int Add(int num1,int num2){ return num1+num2;}int Sub(int num1,int num2)原创 2016-05-02 16:39:48 · 892 阅读 · 1 评论 -
与众不同!(strrstr strrchr)
#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#includechar *my_strrstr(char const *str,char const *dest){ int sz1=strlen(str); int sz2=strlen(dest); int n=0; char const *pstr=str;原创 2016-05-07 16:53:18 · 726 阅读 · 0 评论 -
我眼中的结构体
一,结构体的定义聚合数据类型:能够同时存储超过一个的单独数据(例如C语言中的数组和结构体)结构体是一些值的集合,这些值成为它的成员,既是一种自定义类型,也是一种聚合数据类型。二,结构体的声明及具体使用1,声明在声明结构体时,必须列出它包含的所有成员。struct A{ int a; char c;};A仅仅为一个标签,单独的A并不是结构体的类原创 2016-05-08 17:15:33 · 608 阅读 · 0 评论 -
详解交换两个数的值
见到这道题,可能你会想到小时候玩过的游戏,将分别装有酱油和醋的两个瓶子交换,醋装到酱油瓶子里,酱油装到醋瓶子里,我们都知道,交换的过程需要家住一个空瓶子,当然,我们这道题也是同样的道理,需要创建一个临时变量来辅助交换。下面看具体的代码实现:#include//程序中用到输出函数printf,所以需要引其对应的头文件#include//system的头文件int main(){ in原创 2016-05-21 12:16:02 · 4186 阅读 · 3 评论 -
注释转换(C---->C++)
四种状态:测试代码:// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; */int j = 0;// 3.匹配问题/*int i = 0;/*xxxxx*/// 4.多行注释问题/*int i=0;int j = 0;int k = 0;*/int k =原创 2016-05-25 15:25:15 · 1947 阅读 · 0 评论 -
经典笔试题123
1.实现对一个8bit位数据(unsigned char 类型)的指定位(例如第n位)的置0或置1操作,并保持其他位不变。函数原型:void bit_set(unsigned char *p_data,unsigned char position,int flag)函数参数说明:P_data是指定的原数据,position是指定位(取值范围为1~8),flag表示是置0还是置1.原创 2016-05-30 11:03:23 · 573 阅读 · 0 评论 -
8大排序之----冒泡,直接插入,选择排序
学过编程的应该都知道,排序算法有很多种,想把每种算法的基本思想搞懂弄清确实得下一番功夫,今天我先介绍几种简单的,冒泡排序,直接插入排序和选择排序,一定要搞的各种思想的差异。1,冒泡排序(升序)基本思想: 相邻的两个元素进行比较,如果前一个元素大于后一个元素,则交换二者位置,接着继续向后循环比较直到最后一个元素,这样一趟下来就可以将最大的那个元素放到最后的位置。完成之后,原创 2016-06-01 22:00:28 · 832 阅读 · 0 评论 -
多么痛的领悟!!!
传说中的一步错步步错:1>------ 已启动生成: 项目: linklist.c, 配置: Debug Win32 ------1>生成启动时间为 2016/6/4 18:14:03。1>InitializeBuildStatus:1> 正在对“Debug\linklist.c.unsuccessfulbuild”执行 Touch 任务。1>ClCompile:1>原创 2016-06-04 18:53:24 · 2085 阅读 · 2 评论 -
小程序之再度理解
1. 打印100~200 之间的素数#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ int n=0; for(n=101; n<=200; n=n+2) { int i=0; for(i=2; i<=n; i++) { if(n%i==0)原创 2016-06-11 23:15:17 · 1682 阅读 · 1 评论 -
再一遍
1. 给定两个整形变量的值,将两个值的内容进行交换。2. 不允许创建临时变量,交换两个数的内容(附加题)#define _CRT_SECURE_NO_WARNINGS 1#include#includevoid swap(int *x,int *y){ int tmp=*x; *x=*y; *y=tmp;}int main(){ int a=10;原创 2016-06-12 12:09:06 · 483 阅读 · 0 评论 -
又一波经典小程序
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)#include#include#define N 5void swap_arr(int arr1[],int arr2[]){ int i=0; for(i=0; i<N; i++) { int tmp=0; tmp=arr1[i]; arr1[i]=arr2[i];原创 2016-06-14 23:44:32 · 2051 阅读 · 1 评论 -
my code
1.练习:编写代码,演示多个字符从两端移动,向中间汇聚。#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#define M 10void remmove(char arr1[],char arr2[])//缺点:两个数组的长度被固定,通用性差{ int left=0; int right=M-1; while原创 2016-06-20 01:07:05 · 685 阅读 · 0 评论 -
Do you want to know me?----Come in.
(一)自我认识 首先,我,来自农村,家里条件一般,与两个姐姐,小时候听二姐给我讲数学,老是很懵逼,一副听不懂的样子,时常遭到姐姐的白眼与责骂,完了,从那时起,心里就种下了一颗自卑的种子,总觉得我是世界上最笨的人。所以,我得比别人更努力啊,我得好好读书,原因有三: 1.长大后多赚点钱,孝敬父母,父母养大我们三姐妹不容易; 2.人丑就得多读书,只有出息原创 2016-06-24 00:46:38 · 2736 阅读 · 3 评论 -
烧脑算法
1.在屏幕上输出以下图案: * *** ***** ******* ********* ************************ *********** ********* ******* ***** *** *//代码1#define _CRT_SECURE_NO_W原创 2016-06-30 01:36:22 · 1145 阅读 · 0 评论 -
猜字游戏,杨辉三角,二分查找
1.猜数字游戏#define _CRT_SECURE_NO_WARNINGS 1#include#include#includevoid menu(){ printf("*****欢迎进入猜字游戏!*****\n"); printf("*****1.play 0.exit*****\n");}int main(){ int input=1; int r原创 2016-07-01 00:56:43 · 2165 阅读 · 0 评论 -
比赛名次and谁是凶手
1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。//代码1:缺点---->没考虑并列和跨名次的情况#define _CRT_SECURE_NO_WARNINGS 1原创 2016-07-02 20:10:27 · 551 阅读 · 0 评论 -
函数封装演练
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。代码:#define _CRT_SECURE_NO_WARNINGS 1#include#includevoid multiplication_table(int row){ int i=0; int j=0; for(i=1; i<=ro原创 2016-07-06 17:32:14 · 556 阅读 · 0 评论 -
操作符的秘密
一 :操作符1.1:算术操作符 + - * / %注意:1.取%的两个操作数必须为整数类型。 2.两个操作数中只要有一个为浮点型数据,则结果为浮点型。1.2:移位操作符 左移位操作右移位操作>>:(一)逻辑原创 2016-07-10 00:08:12 · 5849 阅读 · 4 评论 -
运算符练习小程序
1.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子:1999 2299输出例子:7#define _CRT_SECURE_NO_WARNINGS 1#include#includeint diff_bit(int m,int n){ int count=0; int tmp=m^n; while(tmp)原创 2016-07-17 15:54:35 · 602 阅读 · 0 评论 -
自拟三子棋小游戏
头文件部分:#ifndef _SANZIQI_H__#define _SANZIQI_H__#include#include#include#define ROW 3#define LINE 3void init_board(char arr[ROW][LINE]); //初始化棋盘int check_full(char arr[ROW][LINE]);原创 2016-07-19 22:26:31 · 498 阅读 · 0 评论 -
从"student a am i"到"i am a student"
1.学会翻转字符串("tneduds a ma i"---->"i an a student")#define _CRT_SECURE_NO_WARNINGS 1#include#include#includechar *reverse(char *start,char *end)//翻转字符串{ char *ret=start; assert(start); a原创 2016-07-20 16:55:09 · 628 阅读 · 0 评论 -
字符串替换空格的两种方法
从"we are happy."---->"we%20are%20happy."代码一:#define _CRT_SECURE_NO_WARNINGS 1#include#includevoid replace_black(char arr[],int sz) { int i=0; int len=0; for(i=0; i<sz; i++) {原创 2016-07-20 17:34:10 · 746 阅读 · 0 评论 -
模拟常见的字符操作函数
1.模拟strcpy(字符串拷贝函数) strncpy(受限制的字符串拷贝函数)2.模拟strlen(求取字符串长度)普通实现,指针实现,递归实现3.模拟strstr(在所给字符串中查找子串第一次出现的位置)4.strcat(字符串连接) strncat(受限制的字符串连接)5.strchr(在字符串中查找某个字符)6.strcmp(字符串比较)实现1,实现2 strncmp(受限制的字符串比较)7.memcpy:内存拷贝函数(两块内存不关联) memmove原创 2016-07-23 20:11:35 · 8549 阅读 · 0 评论 -
旋转字符串并判断
左旋字符串:#define _CRT_SECURE_NO_WARNINGS 1 #include#include#include#includevoid reverse(char *str,int left,int right){ assert(str); while(left<right) { char tmp=*(str+left);原创 2016-07-25 11:48:45 · 601 阅读 · 0 评论 -
C语言斐波那契数列的多种实现
//递归实现#define _CRT_SECURE_NO_WARNINGS 1 #include#includeint fibc(int n)//缺点:如果n较大,则效率大大降低{ if(n<=1) return n; else return fibc(n-1)+fibc(n-2); }int main(){ int num = 0; int ret = 0;原创 2016-07-26 12:05:59 · 922 阅读 · 0 评论 -
C语言找一组数中单独出现的数字
一组数中只有一个或两个数单独出现,其他均成对出现,请找出他们原创 2016-07-26 12:22:20 · 1512 阅读 · 0 评论