自定义博客皮肤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 569

原创 文件

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

2016-12-07 22:18:08 395

原创 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 332

原创 通讯录终极版

#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 304

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

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

2016-11-28 20:55:41 737

原创 简单的链表通讯录

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

2016-11-27 23:01:54 481

原创 数据结构

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

2016-11-25 22:51:48 283

原创 大端小端

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

2016-11-24 22:47:14 262

原创 指针

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

2016-11-22 22:53:50 241

原创 课堂总结

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

2016-11-19 21:11:29 245

原创 内存分配

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

2016-11-18 21:44:00 246

原创 位运算

2016-11-17 23:19:44 252

原创 quweiti

#include #include #define NUM 320int 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 330

原创 趣味题

#includeint 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 277

原创 趣味题

#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 290

原创 课堂知识总结

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

2016-11-13 22:09:01 299

原创 辗转相除法

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

2016-11-12 21:48:43 459

原创 趣味题的分析

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

2016-11-11 20:42:48 371

原创 程序中的小方法

分解一个多位数的每一位,从低位开始分解: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 275

原创 课堂问题 1110

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

2016-11-09 21:50:43 235

原创 课堂问题1108

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

2016-11-08 21:34:17 240

原创 课堂问题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 294

原创 位运算

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

2016-11-06 21:51:19 226

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

二进制我们常用的十进制是「逢十进一」的,我们只需要使用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 2353

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

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

2016-11-04 16:28:28 5583

原创 C语言中的字符串

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

2016-11-03 21:08:32 255

原创 用户定义数据类型

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

2016-11-02 14:28:15 2538

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

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

2016-11-01 21:07:46 3758

原创 程序1031

#includeint 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 279

原创 指针

例如  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 235

原创 程序运行过程

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 325

原创 C语言函数

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

2016-10-28 16:54:57 306

原创 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 350

原创 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 656

原创 C语言基础结构

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

2016-10-25 22:15:38 323

原创 C语言基础知识

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

2016-10-24 21:22:40 289

空空如也

空空如也

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

TA关注的人

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