1、第一章 新手上路第一课 Hello World简单的小程序输出 Hello World:/头文件#include /主函数main()printf(“hello worldn“);/函数体注意:1.C 语言属于编译型语言2.一个程序必须有主函数,而且只能有一个3.C 语言源文件的扩展名是.c4.C 语言中语句结束的标志是分号第二课 格式化输出函数格式化输出函数:printf()1.不属于 C 语言基本语法2.C 语言并非必须包含头文件3.printf()函数是在头文件 中定义的4.用什么库函数,包含什么头文件程序执行1.编译:.c-.obj(二进制文件)2.组建:.obj-.exe(可执行文件
2、)3.运行:在程序结束后不会关闭窗口调用 dos 系统命令: system()使用 system()函数要引入头文件转义符1.n:换行2.:反斜杠3.:单引号 4.“:双引号“5.t:缩进第三课 变量定义变量1.定义变量:a.定义一个整数型变量int 变量名b.定义多个整数型变量int 变量名 1,变量名 2,.输出变量printf(“%d“,变量名 );其中%d 是格式控制符printf 输出的是双引号中的内容输入变量a.scanf(“%d“,变量名前要加其中,%d%d 之间没有空格,输入顺序与变量顺序一致间隔符:回车、空格、制表符第四课 变量的赋值变量的赋值1.%相当于百分号字符%2.顺序
3、结构:从上往下依次执行3.变量:变量值可在程序中变化4.变量初始化:将定义域赋值合并在一起,比如:int a=5;5.赋值:将等号右边的值赋值给左边,比如:a=a+1;运算符1.算术运算符:+、-、*、/、%2.赋值运算符:=3.复合运算符:+=、-= 、*= 、/= 、%=4.自增自减运算符:+、-第五课 变量的交换借助第三方变量交换的实例#include main()int a,b,temp;printf(“请输入两个整数: “);scanf(“%d%d“,printf(“a=%d,b=%dn“,a,b);temp=a;a=b;b=temp;printf(“a=%d,b=%dn“,a,b)
4、;不借助第三方变量交换的实例#include main()int a,b;printf(“请输入两个整数: “);scanf(“%d%d“,printf(“a=%d,b=%dn“,a,b);a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%dn“,a,b);第六课 变量修饰符变量修饰符知识点1.sizeof():计算变量在内存中所占大小2.字符变量只占 1 字节3.bit:最小存储单位,只能存储 0 或 14.int:整型,占 4 字节,取值范围:-231231-1,格式控制符:%d5.short:短整型,占 2 个字节,格式控制符: %hd6.long:长整型,占 4 个字
5、节,格式控制符:%ld7.signed:有符号8.unsigned:无符号,格式控制符:%u第七课 浮点类型普通浮点类型a.定义:float a;b.赋值:float a=3.5f;双精度浮点类型a.定义:double a;b.赋值:double a=3.5;变量、常量都占内存空间浮点型的常量:double a=.3 相当于 double a=0.3格式控制符a.float 控制符:%e:科学计数法形式,最常考,实数 E 整数(整数、0、负数)%f:保留 6 位小数,不足部分以 0 补位%g:原样输出,最常用b.double 控制符: %le、%lf 、%lg注意:1.浮点数和整数运算,结果为
6、浮点数2.整数和整数运算,结果为整数3.实数不可以参与余数运算第八课 格式化输入输出C 语言中三种进制1.八进制a.逢 8 进一b.表示八进制:0、1、2、3、4、5、6、7c.格式控制符: %od.赋值:以 0 作为开头,例如:int a=010;2.十进制a.逢 10 进一b.表示十进制:0、1、2、3、4、5、6、7、8、9c.格式控制符: %d3.十六进制a.逢 16 进一b.表示十六进制:0、1、2、3、4、5、6、7、8、 9、A、B、C、D、E、Fc.格式控制符: %xd.赋值:以 0x 作为开头,例如:int a=0x10格式控制符1.%md:空格补位,一共占 m 位,若 m:
7、大于2.=:大于等于5.字符串 2-1:字符串 1p0-*pp1-*(p+1)p2-*(p+2)pi-*(p+i)pij-(*(p+i)j指针形式:pij-*(*(p+i)+j)p00-*(*(p+0)+0)-*pp01-*(*(p+0)+1)-*(*p+1)p10-*(*(p+1)+0)-*(p+1)p11-*(*(p+1)+1)4.对应赋值:层次不同的指针不能相互赋值第八章 线性列表和其他第一课 结构体和共用体结构体1.定义struct 结构体类型名成员属性;/以分号结束2.定义变量struct 结构体类型名 变量名struct 结构体类型名成员属性变量名;3.赋值变量名.属性名4.初始化
8、(定义时)struct 结构体类型名 变量名 =依次初始化各成员5.定义类型别名typedef 原类型名 新类型名共用体union 共用体类型名成员属性变量名;第二课 结构体和指针结构体指针基本用法main()Rect x=3,5,*p;p=printf(“%dn“,p-width);/p 所指向的结构体的属性优先级:+p-x 等价于+(p-x)第五课 malloc 函数本课知识点1.malloc 函数所在的头文件:2.malloc 函数使用格式:malloc( 空间大小)3.malloc 函数返回值类型:void *4.malloc 申请的空间并不会自动消失5.释放空间:free(p);第六
9、课 线性链表定义#include #include struct Nodeint data;struct Node *next;main()struct Node *header=NULL;创建struct Node *create(int n)struct Node *p;p=(struct Node*)malloc(sizeof(struct Node);p-data=n;p-next=null;return p;输出void output(struct Node *p)while(p)printf(“%dn“,p-data);p=p-next;修改void modify(struct N
10、ode *p,int n,int k)int i;for(i=0;inext;p-data=k;插入void insert(struct Node *p,int n,int k)struct Node *pNew;int i;for(i=0;inext;pNew=(struct Node*)malloc(sizeof(struct Node);pNew-data=k;pNew-next=p-next;p-next=pNew;删除void del(struct Node *p,int n)struct Node *pDel;int i;for(i=0;inext;pDel=p-next;p-ne
11、xt=pDel-next;free(pDel);第十课 文件的打开和关闭定义文件指针FILE *fp打开文件fp=fopen(“文件名“,“ 打开方式“)12 种打开方式文本文件:r:只读w:新建写入a:追加r+:读写w+:新建读写a+:读写二进制文件:rb:只读wb:新建写入ab:追加rb+:读写wb+:新建读写ab+:读写关闭文件fclose()第十一课 文件的输入和输出字符的写入和读取fputc(字符,文件指针):像文件中写入单个字符putchar():在控制台打印一个字符fgetc(文件指针):从文件中读取单个字符getchar():从控制台读条一个字符feof(文件指针):对文件进行
12、遍历rewind(文件指针):将文件指针重新指回文件头部字符串的写入和读取fputs(字符串,文件指针):像文件中输入字符串puts(数组名):向控制台输出字符串fgets(数组名,数组大小,文件指针):从文件中读取字符串gets(数组名):从控制台读取字符串普通变量的写入和读取fprintf(文件指针,“%d“,5) :向文件中写入printf(“%d“,5):向控制台输出fscanf(文件指针 ,“%d“,&a):从文件中读取scanf(“%d“,&a):从控制台输入数组的写入和读取数组的写入:fwrite(数组名, 单个元素大小,数组大小 ,fp)数组的输出:fread( 数组名,单个元
13、素大小,数组大小,fp)第十二课 进制的转换二/八/十六进制-十进制数码乘以相应权之和十进制-二 /八/十六进制连续除以基,直至商为 0,从低到高记录余数二进制八/十六进制二进制转换成八进制:从右像左,每 3 位一组( 不足 3 位补 0),转换成八进制八进制转换成二进制:用 3 位二进制数代替每一位八进制数二进制转换成十六进制:从右像左,每 4 位一组( 不足 4 位补 0),转换成十六进制十六进制转换成二进制:用 4 位二进制数代替每一位十六进制数其中:数码:表示数的符号基:数码的个数权:每一位所具有的值第十三课 位运算按位与(&)如果两个相应的二进制位都为 1,则该位的结果值为 1,否则为 0按位或(|)两个相应的二进制位中只要有一个为 1,该位的结果值为 1按位取反()用来对一个二进制数按位取反,即将 0 变 1,将 1 变 0按位异或()若参加运算的两个二进制位值相同则为 0,否则为 1左移()将一个数的各二进制位右移 N 位,移到右端的低位被舍弃,对于无符号数,高位补 0