c语言
鱼忆七秒呐
这个作者很懒,什么都没留下…
展开
-
二进制位模式从左到右的翻转
//编写函数://unsigned int reverse_bit(unsigned int value);//这个函数的返回 值value的二进制位模式从左到右翻转后的值。////如://在32位机器上25这个值包含下列各位://00000000000000000000000000011001//翻转后:(2550136832)//10011000000000000000000原创 2016-07-22 14:45:27 · 807 阅读 · 0 评论 -
预处理阶段知识概要
1.预处理阶段 1).实现的作用: (1)实现宏替换 (2)将使用的头文件的展开 (3)取消注释 (4)条件编译 在unix编译中,预处理指令 gcc -E test.c test.i 下面在unix编原创 2016-10-18 22:30:29 · 1189 阅读 · 0 评论 -
c语言编程实现字符串向整数的转换(剑指offer)
看到这道题的时候,哦,挺简单的,就开始着手去写。然而错了,其实并不是你想的那样。 对于这道题我们要考虑的情况:字符串前面有空格前面的‘+’‘-’定义的int是否溢出不合法情况eg:“-123de4”#include <stdio.h>#include <Windows.h>#include <assert.h>#include <ctype.h>typedef enum STAT原创 2016-11-29 20:49:20 · 1020 阅读 · 0 评论 -
顺序表静态与动态实现及基本的操作(增删查改等)
//seqlist.h#define _CRT_SECURE_NO_WARNINGS 1#ifndef _SEQLIST_#define _SEQLIST_#define MAX_SIZE 8typedef int Datatype;typedef struct seqlist//静态顺序表的声明{ Datatype array[MAX_SIZE]; unsigned原创 2016-12-12 19:55:40 · 663 阅读 · 0 评论 -
对一个8bit unsigned char的数据的指定位进行置1或置0操作,其它位保持不变
eg:10: 0000 1010 让其bit为的第3个位置1操作,就变成0000 1110 对应的数据是14 观察 0000 1010 0000 1110 其它位不变,指定位从0变为1,可以想到给指定位或1后该位为1,其它位或0而保持不变。 0000 1010 0000 0100(将1左移指定位减一位) 按位或 0000 1110 同理 让其bit为的第4个位置0操作,就变成原创 2016-11-28 14:20:43 · 902 阅读 · 0 评论 -
实现字符串右循环移位函数
“abcdef”循环右移3位为“defabc” 第一种方法:假设循环右移steps, 循环右移一次的情况 然后按此操作循环steps次 代码实现:void RightLoopMove(char* pstr, unsigned short steps){ assert(pstr); int len = strlen(pstr); while (steps--)原创 2016-11-28 15:15:12 · 1383 阅读 · 0 评论 -
单链表(无头节点)的实现
链表:链表是一种顺序表,但并不是顺序存储,每个节点都存储着一个指向下一个节点的指针,把存储的数据元素连接起来//SlistNode#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <assert.h>typedef原创 2016-12-12 20:14:16 · 4788 阅读 · 0 评论 -
单链表及相关面试题
//SlistNode.h#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <assert.h>typedef int Datatype;typedef struct SlistNode{ Datatyp原创 2017-03-13 11:51:32 · 502 阅读 · 0 评论 -
字符串数组空格的替换
#include void replace(char arr[]){ int black=0; char* str=arr;//定义一个指针指向数组 char* end=NULL; char* new_end=NULL; while(*str)//统计空格数量 { if(*str==' ') black++; str++; } e原创 2016-07-22 15:15:48 · 423 阅读 · 0 评论 -
写一个宏将一个数的奇数位和偶数位交换
将奇数位和偶数为交换 eg:5->二进制0000 0000 0000 0000 0000 0000 0000 0101 交换后0000 0000 0000 0000 0000 0000 0000 1010 –>10 可以使用我们的位运算来实现#define EXCHANGE(num) (((num&0x55555555)<<1)|((num&0xAAAAAAAA)>>1原创 2016-10-22 23:25:57 · 411 阅读 · 0 评论 -
求两个数的最大公约数
最大公约数:、最大公因子,指两个或多个整数共有约数中最大的一个。 求两个数的最大公约数,以下用两种方法实现。//辗转相减法int common_divisor(int a, int b){ while (1) { if (a > b) { a = a - b; } if (a < b)原创 2016-09-26 17:52:06 · 329 阅读 · 0 评论 -
c语言简单实现扫雷游戏
对于扫雷游戏,我相信每个人都玩过,大概了解它应有的操作和大概的原理。那我们应该怎样着手去实现扫雷游戏呢……首先对于雷阵这个界面,就想到可以定义的一个二维数组,我们不可能把把雷的位置也显示出来,所有需要定义2个二维数组:mine用来布雷,show用来显示扫雷情况,并对其初始化,mine开始初始化为0,show初始化为’*’;接下来就是主要逻辑功能的实现,宏定义雷的个数DEFAULT,利用循环给mi原创 2016-10-11 19:48:03 · 3589 阅读 · 1 评论 -
字符串内容逆置(不能使用库函数只能开辟有限个空间)
//有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".//要求://不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)#includeint strlen( const char* arr)//统计空格{ int count=0; while(*arr++) { count++; }原创 2016-07-22 15:27:57 · 701 阅读 · 1 评论 -
c语言中auto,static,register,const,volatile,extern认识与理解
auto auto关键字在我们写的代码中几乎是看不到的,但它却如此的重要,无处不在。它用来声明变量的生存期是自动的,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。编译器在默认的缺省情况下,所有变量都是auto,你就当他不存在吧。 static 修饰变量,他们都存在内存的静态区。 (1)修饰全局变量(静态全局变量):静态全局变量与其他的全局变原创 2016-09-02 17:42:30 · 617 阅读 · 0 评论 -
系统的存储模式大小端理解与判断
大端模式:字数据的高字节存储在低地址,低字节则存放在高地址 小端模式:字数据的高字节存储在高地址,低字节则存放在低地址假设 int i=1 以大端存储存储,其内存布局如下 0x0|0x0|0x0|0x1 低地址 高地址以小端存储存储,其内存布局如下 0x0|0x0|0x0|0x1 高地址 低地址判断系统的存储模式利用联合int c原创 2016-09-04 20:54:29 · 312 阅读 · 0 评论 -
猜数字游戏
菜单部分void menu(){ printf("1.play 0.exit");//菜单的打印}主函数部分int main(){ int input=1;//定义的input是自己猜的数字 while(input) { menu(); printf("\n请选择:"); scanf("%d",&input); switch(input)原创 2016-09-05 17:43:39 · 544 阅读 · 0 评论 -
冒泡排序实现整数数组的排序
冒泡排序:是一种从后往前的排序方法,比较相邻的两个数,如果第一个比第二个大就交换它们,依次往下比较,一趟下来就确定了最后的的元素(该数组的最大数)。若该数组有n个元素,需进行n-1趟排序,第i趟比较的次数为n-i次。 eg:5 4 3 2 1 //5个元素 4 3 2 1 5 //第一趟 3 2 1 4 5 //第二趟 2 1 3 4 5 //第三趟原创 2016-09-01 15:53:18 · 3750 阅读 · 0 评论 -
三子棋小游戏
实现一个3*3的棋盘游戏,玩家与电脑之间的操作。 声明部分//game.h#define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__#define __GAME_H__#define ROWS 3#define CLOS 3enum OP{ EXIT, PLAY};void init_board(char board[R原创 2016-10-10 16:35:01 · 325 阅读 · 0 评论 -
通讯录
实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人//contact.h#define _CRT_SECURE_NO_WARNI原创 2016-11-29 20:54:31 · 353 阅读 · 0 评论