自定义博客皮肤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)
  • 收藏
  • 关注

原创 文件函数

 1.fopen: 函数的功能:打开文件(基于标准I/O文件) 函数的原型:FILE * fopen(const char *path,const char *mode) 函数的参数:path:打开的文件路径或文件名                      mode:表示流行态 (1)r:打开只读文件,该文件必须存在 (2)r+:打开读写文件,该文件必须存在 (3)w:打开只

2016-12-08 22:19:09 788

原创 文件

   通常打开文件的方法: •  FILE *文件指针变量;  文件指针变量=fopen(“文件名”, “文件使用方式”);  If(文件指针变量= =NULL)   {       printf(“cannot open this file\n”);         exit(0);    }   注:当打开文件出错时,函数 fopen 会返回一个空指针NULL  出错

2016-12-07 22:18:08 632

原创 fread

 #include #include int main() { FILE *fd; int number; char s[2048]; char *ptr; ptr = s; fd = fopen("fread.c","r+"); if(NULL == fd) { printf("fopen is e

2016-12-04 22:16:34 638

原创 通讯录终极版

#include #include #include #define len_linklist 0 #define maxsize 11 #define yes 1 typedef struct node { char name[maxsize]; char tel_number[maxsize]; struct node *next; }lnode,*linkl

2016-12-03 23:35:18 467

原创 链表的一级指针和二级指针

 1,初始化链表头部指针需要用二级指针或者一级指针的引用。 2,销毁链表需要用到二级指针或者一级指针的引用。 3,插入、删除、遍历、清空结点用一级指针即可。 分析: 1,只要是修改头指针则必须传递头指针的地址,否则传递头指针值即可(即头指针本身)。这与普通变量类似,当需要修改普通变量的值,需传递其地址,否则传递普通变量的值即可(即这个变量的拷贝)。使用二级指针,很方便就修改了传入的

2016-11-28 20:55:41 1075

原创 简单的链表通讯录

#include #include #include #define len_linklist 2 #define maxsize 11 typedef struct node { char tel_number[maxsize]; char name[maxsize]; struct node *next; }lnode,*linklist; int Init_linkli

2016-11-27 23:01:54 637

原创 数据结构

 顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起长度,一旦分配内存,则在使用中不可以动态的更改。他的优点是访问数据是比较方便,可以随即的访问表中的任何一个数据。链表是通过指针来描述元素关系的一种数据结构,他可以是物理地址不连续的物理空间。不能随即访问链表元素,必须从表头开始,一步一步搜索元素。它的优点是:对于数组,可以动态的改变数据的长度,分配物理空间。

2016-11-25 22:51:48 441

原创 大端小端

 电脑的cpu有两种,大端和小端cpu。 大端cpu: 所谓的大端,是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端: 所谓的小端,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高

2016-11-24 22:47:14 408

原创 指针

 1.函数指针: 函数指针就是指向函数的指针可以作为函数的形参,能够提高代码的扩展性。 在这里我们需要知道回调函数: 回调函数就是C语言里面对函数指针的高级应用。简而言之,回调函数是一个通过函数指针调用的函数。如果你把函 数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是 回调函数。 回调函数的应用是非常广泛的。通常,当我们想通

2016-11-22 22:53:50 366

原创 课堂总结

函数的实现过程 1通过函数名找到函数的入口地址; 2给形参分配空间; 3传值(址):把实参变量对应的内存空间的值(址)传递给形参变量对应的空间 4执行函数体语句 5函数返回并释放内存空间 函数的注意点: 当只读(只使用不修改)实参变量的值时,传实参变量名; 当写(使用,修改)实参变量对应的内存空间的值时,传实参变量的地址; 传入参数 传出参数,带出函数的参数

2016-11-19 21:11:29 385

原创 内存分配

1 2 3 void * malloc(usigned size); void * realloc(void *ptr, unsigned newsize); void * calloc(size_t numElements, size_t sizeofElement); malloc()在内存的动

2016-11-18 21:44:00 463

原创 位运算

2016-11-17 23:19:44 363

原创 quweiti

#include #include #define NUM 320 int number[NUM]; int flag(int i) { int j; if(i == 1) { return 0; } if(i == 2) { return 1; } if(!(i % 2)) { return 0; } for(j = 3; j <=

2016-11-16 22:58:15 472

原创 趣味题

#include int trangle(int n) { int i; int j; for(i = 0; i <= n; i++) { for(j = 0; j <= n + 1 - i; j++) { printf(" "); } for(j = 1; j < i+2; j++) { printf("%6d",c(i , j)); }

2016-11-15 22:14:47 411

原创 趣味题

#include int a[3][3]; int count; int main() { int i; int j; int k; int m; int n; int flag; printf("It exists possible distribution plans:\n"); for(i = 0; i <=

2016-11-14 20:52:51 492

原创 课堂知识总结

已掌握知识 1.*:间接运算符,取值运算符 2.字符串是地址 3.[] = *();  ptr[i] = *(ptr + i);chu'shi'hua 5.当指针被赋值NULL时  不能对零地址空间进行操作; 6常量不能改; 7数组名是指针常量,保存数组首元素的地址 8.若 a是数组名,&a  数组地址 9对一维数组地址取值 = 数组首元素地址   *(&a) = a  对数组名

2016-11-13 22:09:01 421

原创 辗转相除法

「辗转相除法」又叫做「欧几里得算法」,是公元前 300 年左右的希腊数学家欧几里得在他的著作《几何原本》提出的.利用这个方法,可以较快地求出两个自然数的最大公因数,即 HCF 或叫做 gcd.所谓最大公因数,是指几个数的共有的因数之中最大的一个,例如 8 和 12 的最大公因数是 4,记作 gcd(8,12)=4. #include int main

2016-11-12 21:48:43 715

原创 趣味题的分析

数学上证明了一个数用2~根号N的整数逐一测试是否整除后即可判断N是否素数; 在C中开根号需要调用专门的sqrt函数,这样比较慢,还涉及到要使用double型数据; 简略即认为N/2稍大于根号N,值也比较接近,所以用除法代替开根号的调用,简化算法。 #include int test_(int n) //判断是否为素数 { int i; int

2016-11-11 20:42:48 506

原创 程序中的小方法

分解一个多位数的每一位,从低位开始分解: while(k != 0) { printf("%d",i%10); i = i / 10; } 从高位开始分解: for(t = 0,k = 1000; k >= 10; t++) { a[t] = (i % k) / (k /10); k /= 10; } #include #includ

2016-11-10 21:22:58 433

原创 课堂问题 1110

进程虚拟地址空间(分配4G) 高地址  1G分配给内核(内核:操作系统的核心) 3G给用户空间: 栈空间: 局部变量  函数形参 自动变量 (先进后出)  系统管理                               堆空间:malloc calloc ralloc  先进先出   用户管理              全局数据区:bss :未初始化的全局变量    

2016-11-09 21:50:43 343

原创 课堂问题1108

C语言特点: 1  C语言可以访问硬件 2  C语言运行效率高 3  C语言具有出色的移植性 C语言是面向结构的语言,缺点:复用性较差,代码维护性较差,拓展性较差,可读性较差 提高效率的方法: 减少函数的调用,尽量使用静态库编译 sizeof是运算符 对数据类型使用时需要加括号 地址是固定长度,长度大小由操作系统的位数确定 strlen是函数 但是不统计‘、

2016-11-08 21:34:17 370

原创 课堂问题1106

1  i++和++i的区别 ++i相当于下列代码  i += 1;  return i;  i++相当于下列代码  j = i;  i += 1;  return j; 当然如果编译器会将这些差别都优化掉,那么效率就都差不多了。 #include #define MAX_STR_LEN 32 char passwd[MAX_STR_LEN] = {0};

2016-11-07 21:45:12 466

原创 位运算

6种位运算: &按位与 |按位或 ^按位异或 ~取反 >>右移 按位与运算 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 按位或运算 按位或运算符“|”是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二

2016-11-06 21:51:19 328

原创 二进制的源码 补码 反码

二进制 我们常用的十进制是「逢十进一」的,我们只需要使用0、1、2、3、4、5、6、7、8、9这10个数字符号, 就能表示所有的自然数。与此类似,二进制是「逢二进一」的进位制,它只需要使用0、1这两个数字符号,就能表示所有的自然数。 例如 0000 0000(二进制) 表示 0(十进制) 0000 0001(二进制) 表示 1(十进制) 0000 0111(二进制) 表示 7(十进制)

2016-11-05 19:18:54 2809

原创 指针的值传递和地址传递

值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入, 不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 指针传递: 形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作 指针传递的实质: 指针传递参数本质上是值传递的

2016-11-04 16:28:28 6886

原创 C语言中的字符串

1.标准函数gets与puts分别用于字符串的整体输入和输出,且gets接收字符串时,字符串中可包含空格。 使用格式为:gets(字符数组)或者puts(字符数组),由头文件stdio.h支持 2.常用字符串处理函数(由头文件string.h) strlen:测试字符串长度的函数,函数返回值为字符串的实际长度; strcat:连接两个字符串,格式(strcat(字符数组1,字符数组

2016-11-03 21:08:32 381

原创 用户定义数据类型

1结构体: 实际变成中,处理批量数据是非常普遍的,对于同类型的批量数据;作为一个整体; 例如定义一结构体描述学生的类型 struct Student {     char name[9];     unsigned No;     float c;     float ave; }; 关键字struct表示定义的是结构体数据结构类型,标识符Student是结构体类型名;

2016-11-02 14:28:15 4214

原创 头文件和库函数的区别

1.头文件中有函数的申明,库文件实现函数的定义。   比如,printf函数。使用时应包括stdio.h,打开stdio.h你只能看到,printf这   个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库      中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序      中包括了stdio.h这个头文件。链接器就能根据头件中

2016-11-01 21:07:46 5204

原创 程序1031

#include int main() { int i; int count=0; for(i = 5;i <= 100;i += 5) { count++; if(i%25==0) { count++; } } printf("100!的尾数有%d个0\n",count); return 0; } 这个一个计算100!尾数有多少个0;显然 100!超过in

2016-10-31 21:21:47 403

原创 指针

例如  int *p; *:取指针所指向变量的内容,单目运算符 &:取变量的地址,单目运算符; 指针变量的初始化: int *p=&a;或者 int *p; p=a; void swap(int p1,int p2) { int temp; temp=p1; p1=p2; p2=temp; } int main() { int a;

2016-10-30 21:56:39 342

原创 程序运行过程

1. 预处理 首先源代码文件(.c/.cpp)和相关头文件(.h/.hpp)被预处理器cpp预编译成.i文件(C++为.ii)。预处理命令为: gcc –E hello.c –o hello.i 预编译过程主要处理那些源代码中以#开始的预编译指令,主要处理规则如下: u 将所有的#define删除,并且展开所有的宏定义; u 处理所有条件编译指令,如#if,#ifdef等; u 处理#inc

2016-10-29 18:26:58 510

原创 C语言函数

函数 1.函数的概念及种类 1.1 库函数(系统函数) 由C系统提供,用户无须定义,也不必在程序中做类型说明,只需在程序前包含有该函数的头文件即可在程序中直接调用 例如:printf,scanf,getchar等 1.2用户定义函数 用户按照自己的需求写的函数,分为有参函数,无参函数; 2.函数的调用 例如计算三角形的面积 #include #include float area

2016-10-28 16:54:57 414

原创 C语言数组

数组 1.1一维数组的定义及初始化 一维数组的定义格式:int a[10];         a为整型数组,共10个元素; 初始化:例如: int a[5]={1,2,3,4,5}; 1.2 一维数组的应用  用冒泡法对键盘输入的10个数据进行从小到大的排序,并输出排序结果 1.3 二维数组的定义和初始化 1.3.1 二维数组的定义与初始化 格式:

2016-10-27 19:00:38 577

原创 C语言 循环程序设计

一.循环程序设计 1.  for语句实现循环  for语句格式如下: for(表达式1;表达式2;表达式3) 循环体 若循环体超过一条语句就要用大括号括起来; 执行过程:计算表达式1;判断表达式2是否为真(非0为真,0为假);若为真,则执行循环体                     再执行表达式3:程序流转到判断表达式2;退出循环; 例如计算1+2+3+4+...+100的值

2016-10-26 18:09:24 939

原创 C语言基础结构

一.顺序结构程序设计 1.1格式化输入输出函数(printf函数以及scanf函数)    #include int main() { int a; scanf("%d\n",&a); printf("%d\n",a); return 0; } 运行结果; 6 6 1.2字符数据的输入输出(putchar函数以及getchar函数) #

2016-10-25 22:15:38 541

原创 C语言基础知识

一C语言基础知识 1.基本数据类型:整型(整型,短整型,长整型),字符型,浮点型(单精准,双精准),无类型 说  明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 无类型 数据类型 char short int long float double void #include int main(){

2016-10-24 21:22:40 483

空空如也

空空如也

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

TA关注的人

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