c语言
文章平均质量分 56
Y-ANG
这个作者很懒,什么都没留下…
展开
-
通讯录-静态实现
头文件: “Contact.h”#include#include#includeenum po{ EXIT, ADD, DELE, SER, MODIFY, DISPLAY, CLEAR, SORT};#define NAME_MAX 100#define SEX_MAX 5#define TELE_MAX 12#define ADDR_MAX原创 2016-05-14 16:31:03 · 877 阅读 · 0 评论 -
const在c与c++中的不同地位
我们都知道,const关键字是防止某个变量被修改的,即限定这个变量是只读的。C和C++中应用const会使程序的健壮性更高一些。C和C++中,const的区别:一、const修饰一般变量在C中,const修饰一般变量是常变量,它具有变量属性,但同时,它又具有常性不可被修改。在C++中,加const修饰以后变量就是个常量,不可被修改。二、const修饰指针变量先回想一下我们以原创 2016-07-01 00:04:27 · 934 阅读 · 1 评论 -
通讯录——文件版
在之前已经写过了动态版的通讯录,要将此改为文件版本,只需增加两个函数,一个函数是将每次输入的内容写入文件内,另外一个函数是在每次打开该程序时读入文件内容代码如下:"Contact.h"#define _CRT_SECURE_NO_WARNINGS#ifndef __CONTACT_H__#define __CONTACT_H__#include#include#inclu原创 2016-05-25 18:43:31 · 567 阅读 · 0 评论 -
通讯录——动态版
实现了静态版本以后,要实现动态增容版只要在之前的基础上增加增容函数和缩容函数即可,在此主要使用realloc函数实现。"Contact.h"#define _CRT_SECURE_NO_WARNINGS#ifndef _CONTACT_H__#define _CONTACT_H__#include#include#includeenum po{ EXIT, ADD,原创 2016-05-25 19:22:46 · 460 阅读 · 0 评论 -
链表的相关面试题
链表的相关面试题:删除无头结点单向链表的非尾结点,逆序链表,无头结点时指定结点前插入,查找链表的中间结点原创 2016-07-30 13:57:36 · 494 阅读 · 0 评论 -
内存操作函数memcopy和memmove
我们以前在拷贝一个字符串时只想到过strcpy()函数拷贝,但是这个函数在使用时存在一定的缺点,一方面它只能用来拷贝字符串并不能拷贝其他类型的数据,另一方面它只有在遇到'\0'时才结束拷贝,所以容易溢出。所以,就引入memcpy()这个内存操作函数。首先,先看一下二者的区别:memcpy:1.函数原型:void *memcpy( void *dest, const void原创 2016-05-21 15:22:35 · 749 阅读 · 0 评论 -
冒泡排序及其优化
冒泡排序的基本思路是(以升序为例):每次将相邻两个数字进行比较,将小的数字放在大的前边。例如已知六个数字为9,8,5,4,2,0,第一次现将最前边的9和8进行调换,其次再将9和5进行调换......如图(只进行了两趟交换)如此进行下去,如果有n个数,就要进行n-1趟比较;在第一趟要进行n-1次交换,在第j次就要进行n-j次交换。void bubble_sort(int *p,i原创 2016-05-31 18:59:21 · 442 阅读 · 0 评论 -
字符串操作函数模拟之番外篇
一、strchr() 函数原型:char *strchr( const char *string, int c ); strchr() 函数查找字符在指定字符串中首次出现的位置,如果找到,就返回指定字符在已知字符串中最后一次开始出现的位置,找不到就返回NULL。例如:已知字符串“abdedef”,该函数返回“dedef”#include#include#in原创 2016-05-14 17:39:13 · 419 阅读 · 0 评论 -
字符串操作函数的模拟
要模拟库函数的实现,必须要搞清楚的是在程序调用中它的实现原理是什么,接下来就讲解几个字符串相关的函数,比如strcmp(),strncmp(),strcat(),strncat()......字符串函数主要包括受限制字符串函数与不受限制字符串函数,那么什么是受限制字符串函数与不受限制字符串函数呢?!简单来讲,不受限制字符串函数就是使用这些函数时,它们只是通过字符串结尾的NULL原创 2016-05-14 17:15:36 · 493 阅读 · 0 评论 -
怎样判断你的电脑是大端字节序还是小端字节序
简单来讲所谓的大端存储就是将高字节序的内容存在低地址处,那么,小端存储就是将低字节序的内容存在高地址处。 (图片做以解释)在计算机中,数据的是以其二进制补码的形式存储于计算机中的,上边又提到了大端存储和小段存储,但是,每台计算机的存储方式又是不一样 的,那么,怎么判断一台计算机是打断存储还是小段存储呢?!下面就来分装一个函数来实现此功能:原创 2016-05-14 17:13:29 · 8849 阅读 · 5 评论 -
关于#define
一、#define1、仅仅作为标识符: #define作为标识符时是没有参数的2、作为宏: #define 作为宏与它作为标识符的区别就是宏有参数而标识符没有 例如:#define MAX(X,Y) ((X)>(Y)?(X):(Y))二、宏与函数的区别1、宏在使用时(编译阶段)会直接被替换掉(即简单的原创 2016-05-14 16:56:02 · 611 阅读 · 0 评论 -
关于C和c++中的文件结构
一、头文件 头文件用于保存程序生命的文件,后缀是".h" 1、头文件的内容包括 (1)头文件开头处的版权和版本声明 (2)预处理块 (3)函数和类结构声明等 2、对于头文件做出的一些规则和建议 规则一: 使用ifndef/define/endif预处理块——————防止头文件原创 2016-05-14 16:48:32 · 607 阅读 · 0 评论 -
返回一个参数中二进制数中1的个数
#include#includeint _Count(int n){ int arr[30]; int i=0; int j=0; int m=0; while(n) { arr[i++]=n%2; n=n/2; j++; } for(i=0;i<=j;i++) { if((arr[i]^1)==0) m++; } return(m); }原创 2016-05-14 16:47:19 · 1045 阅读 · 0 评论 -
c语言编写猜数字游戏
#include#include#includeint main(){ int num = 0; int ret = 0; srand((unsigned)time(NULL)); ret = rand()%100+1; //产生一个小于100的随机数 while(1) { printf("请输入一个数字>>\n"); scanf("%d",&n原创 2016-05-14 16:28:37 · 1253 阅读 · 0 评论 -
模拟三次密码输入
#include#include#include#includeint main(){ char *passwrd="123456"; char ch[10]; int i=0; for(i=0;i<3;i++) { printf("请输入密码:\n"); scanf("%s",ch); //判断输入的数字是否和原始密码相同 if(str原创 2016-05-12 23:08:23 · 626 阅读 · 0 评论 -
如何变换两个变量的数值
一、创建第三个变量交换两个值 这种办法是最普通最直观的。#include#includeint main(){ int a=1,b=8; int c=0; c=a; a=b; b=c; printf("%d %d\n",a,b); system("pause"); return 0;}二、不创建第三个变量交换两个值 可以通原创 2016-05-12 22:54:35 · 978 阅读 · 0 评论 -
输出乘法口诀表
#include#includeint main(){ int i = 0; int j = 0; int m = 0; int num = 0; printf("enter a number:"); scanf("%d",&num); //确定要打印的行数 for(i=1;i<=num;i++) { for(j=1;j<=i;j++) { m=原创 2016-05-12 22:17:43 · 426 阅读 · 0 评论 -
输出1-100的整数中出现数字9的次数
#include#includeint main(){ int i,count=0; for(i=0;i<100;i++) { if((i%10==9) || (i%10==0)) count++; } printf("%d\n",count); system("pause"); return 0;}原创 2016-05-12 22:09:10 · 627 阅读 · 0 评论 -
c语言项目-注释转换
题目要求:要将全部的c语言风格的注释转换为c++风格的注释,如下图所示,需要将input.c文件经过注释转换程序转换为output.c文件所示分析:从input.c文件可以看书,每行开头遇见的内容有三种 // , /* ,其他代码。因此,这里就要分情况讨论。可以定义三个函数,分别处理NULL,C,C++对应状态。将 // 定义为CPP_STATE原创 2016-05-25 23:19:05 · 737 阅读 · 0 评论