《C程序设计》重点总结_c程序设计总结

2020-02-28 其他工作总结 下载本文

《C程序设计》重点总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序设计总结”。

C语言

最后加粗一下重点!

第二章 算法

1.计算计算法分两类:

数值运算算法:求数值解

非数值运算算法:排序、检索、管理

2.算法特性:有穷性、确定性、零或多输入、一或多输出、有效性

3.算法的三种基本结构:

顺序结构

选择结构

循环结构(当型、直到型)

第三章 顺序结构

常量和变量

1.常量:

整型常量

实型常量:小数形式

指数形式:12.34*103=12.34e3

字符常量:普通字符:用' '括起来

转义字符: 开头(a警告 b退格 n t空出一段距离 o xh)

字符串常量:用“ ”括起来

符号常量:#define PI 3.14(大写,行末无分号)

2.变量:先定义,后使用

3.常变量:const int a=3;(取代符号常量)

4.标识符(可作为变量名):

只能由字母、数字、下划线组成且不能数字打头

大小写是不同字符

数据类型

整型类型:基本整int 短整short int 长整long int 双长整long long int 字符char 尔bool

浮点类型:单精度浮点float 双精度浮点double 复数浮点

枚举类型:enum

空类型:

void

数组[] 函数

指针* 结构体struct 共用体union

字节数(有效数字)

int:

2、4 short:2 long:4 long long:8 char:1

float:4(6)double:8(15)long double:8(15)、16(19)规范化指数形式:3.14159→0.314159e001

运算符和表达式

1.实数相除得双精度实数 整数相除得整数(商向零取整)2.自增自减运算符(只用于变量):++i、--i先加减再使用

i++/i--先使用再加减 3.算术表达式自左向右结合,先乘除后加减 4.不同类型数据混合运算:

float和double→double

int和float/double→double

char和int→ASCII和int 5.强制类型转换:(double)(x+y)将x+y的值转换成double型

6.C运算符:等于== 不等于!= 与&& 或|| 非!赋值= 下标[]

C语句

1.分类

控制语句:如

continue(结束本次循环)

break(中止执行switch或循环)

switch(多分支选择)函数调用语句:printf(...);表达式语句:句末有分号

空语句:;(作流程转向点)

复合语句:用{ }括起来,语句句末写分号 用数学公式开头加#include 2.赋值语句:

复合赋值运算符: x+=y等价于x=x+y

x*=y等价于x=x*y

x%=y等价于x=x%y

赋值表达式:a=b、a+b这种表达式不能作为左值

a=b=5 自右而左:b=5;a=b;

数据的输入输出

1.C语言本身不提供输入输出语句,以下都是函数:

putchar输出字符

getchar输入字符

printf格式输出

scanf格式输入

puts输出字符串

gets输入字符串 2.输入输出头文件:#include 3.printf(格式控制,输出表列):

格式控制=%格式字符+普通字符

输出表列可以是常量、变量、表达式 4.scanf(格式控制,地址表列):不能忘“&”

注意:逗号对逗号,空格对空格

%c中,空格和转义字符都作为有效字符

输入数值数据时遇非法字符认为数据结束 5.格式字符:

%d有符号的十进制整数

%f小数形式的实数(%7.2f表示共7位,小数2位)(%-7.2f表示向左对齐)双精度%lf

%c一个字符

%s字符串

%e %E指数形式(printf(“%e”,123.456)→ 1.23456e+002)

%o八进制整数(补码)

%x十六进制整数

%u无符号十进制整数

%g %G系统自动选择变成%f或%e

输出“%”用连续两个“%”表示

6.putchar()输出一个字符:putchar(66)输出“B”

putchar('n')换行 7.getchar(c)输入一个字符

第四章 选择结构

1.if:两分支选择

switch:多分支选择 2.将a和b的值互换:t=a;a=b;b=t;3.优先级:!→ 算术运算符 → 关系运算符 → && → || → 赋值运算符

关系运算符优先级:高: >= → 低:==!=

逻辑运算符优先级:!→ && → || 4.关系表达式:“1”代表真,“0”代表假

逻辑表达式:非0代表真,0代表假

a&&b&&c只有a为真才向后算

a||b||c只有a为假才向后算 5.逻辑型变量:头文件#include 如a=score>=60 6.条件表达式:max(a>b)?a:b;7.选择结构嵌套:else总与上面最近的未配对if配对 8.多分支选择结构:(多个case,最多一个default)

switch(表达式)

{

case 常量:语句;break;

default:语句;

}

多个case共用一组语句:

case'A':

case'B':

case'C':printf(“>60n”);break;

第五章 循环结构

三种循环

1.while(表达式){语句;} 2.do {语句;} while(表达式)

3.for(初值;循环条件;循环变量增值):

改写成while:

初值;

while(循环条件)

{

语句;

循环变量增值;

}

for里3项都可以省略,第1、3项可含逗号,第2项可以是关系/逻辑/数值/字符表达式

逗号表达式内,整个逗号表达式的值=最右边表达式的值

跳出、结束循环

break:终止整个循环,只用于switch和3种循环语句 continue:结束本次循环

如果是双重循环,内循环里有break,则终止内循环而不是整个循环

第六章 数组

1.一维数组:

int a[10];含a[0]~a[9]十个元素

初始化:a[10]={0,1,2,3,4,5,6,7,8,9};中括号里可以不写,大括号里不写的得0

起泡法排序:n个数n-1趟比较,第j趟比较n-j次 2.二维数组:

float a[3][4];含a[0][0]~a[2][3]十二个元素

初始化:3行4列int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};第一维中括号可以不写,大括号里不写的得0

打擂台算法:先max=a[0][0],剩下的挨个跟a[0][0]比,赢了就赋给max 3.字符数组:

char a[10];含a[0]~a[9]十个元素

初始化:char a[]={'I',' ','a','m',' ','h','a','p','p','y'};

char a[2][3]={{'#','#','#'},{'#','#','#'}};

char a[]=“I am happy” 4.''作为字符串结束的标志 5.scanf函数输入项如果是字符数组名不加&: scanf(“%s”,a);6.输出字符串:puts(字符数组)

输入字符串:gets(字符数组)

字符串连接:strcat(字符数组1, 字符数组2)

字符串复制:strcpy(字符数组1, 字符串2)将2复制到1中

strncpy(str1,str2,2)将2的前2个字符复制到1中

7.字符串比较:strcmp(字符串1,字符串2)

if(strcmp(s1,s2)>0)printf(“yes”);8.测字符串长度:strlen(字符数组)9.转换为小写:strlwr(字符串)

转换为大写:strupr(字符串)

第七章 函数

1.定义有参函数:三处类型名和return z不能少 2.形参:定义函数时括号中的变量

实参:主调函数调用时括号中的参数(常量、变量或表达式)3.数据传递(单向传递,值传递):实参的值给形参,函数中return z把z的值作为函数值返回主函数赋给相应变量 4.函数调用

函数类型名和里面return表达式的类型名一致(函数类型决定返回值类型)

不需要返回值的函数里边不写return,类型名为void(空类型)

调用结束时形参单元被释放,实参单元仍保留原值。形参和实参是两个不同存储单元

主函数的声明和函数的定义第一行(函数原型)一样,再加分号

声明中的形参名可以不写:float add(float,float)

函数原型专业写法:

void print(int num, char sex, float score);

声明也可以在int main()之前 5.嵌套调用

递推法:主函数声明a函数,a函数定义中声明b函数,定义b函数

改进:b函数只用一个return语句 6.递归调用(调用函数本身):

分为“回溯”和“递推”两个过程,必须具有一个结束递归的条件。7.数组名作参数

数组元素作实参,向形参传递元素的值

数组名作实参,想形参传递元素的地址

二维数组名作参数,函数定义里用两个for控制 8.局部变量和全局变量

局部变量:在函数内定义,比如形参

全局变量(外部变量):在函数外定义,范围直到本源文件结束

不同函数中可以使用同名变量

习惯:全局变量首字母大写

若同一源文件中全局变量和局部变量重名,则在局部变量作用范围内全局变量被屏蔽 9.变量的存储方式和生存期

第八章 指针

概念

1.“指针”就是地址。指针变量是存放地址的变量 2.直接访问:按变量名访问

间接访问:将变量a的地址存放在变量b中,通过b访问a 3.*a表示a指向的对象,a叫指针变量,a的值是地址(指针)4.定义指针变量必须指定基类型:int *a, *b;(int叫基类型)5.初始化时:int *p1=&a, *p2=&b;

赋地址时:

p1=&a;p2=&b;6.一个变量的指针的含义包含两个方面:

地址:以存储单元编号表示

数据类型:指向存储单元

7.不能写 *point_1=100;等号右边应该写变量,不能写数 8.引用指针变量:p=&a;

定义时:swap(*p1,*p2)调用时:swap(p1,p2)9.“交换值”:int temp;temp=*p1;*p1=*p2;*p2=temp;10.p=&a[0];p=a;表示a数组首元素的地址赋给p

数组指针

1.指针指向数组元素时可以:加减整数、自加自减

同一数组中的两元素p1、p2可以p1-p2 2.自加自减

*p++=*(p++):先引用p的值,再使p自增1

*(++p):先p+1,再取*p

++(*p):p所指向的元素值加1 3.一维:

fun(int arr[], int n)与fun(int *arr, int n)等价

a[i]与*(a+i)等价 4.多维:

*(*(a+i)+j)= *(a[i]+j),都是a[i][j]的值

a(&a[0])、a+1(&a[1])表示第0行、第1行

*a、*(a+1)表示a[0][0](a[0])、a[1][0](a[1])

a+i、a[i]、*(a+i)、&a[i]、&a[i][0]都代表同一地址

字符串指针

1.char *a=“blablabla”;printf(“%s”,a);没问题 2.字符数组名和字符指针变量可以做形参和实参 3.不能对数组名赋值

4.字符指针变量只分配一个存储单元

《《C程序设计》重点总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
《C程序设计》重点总结
点击下载文档
相关专题 c程序设计总结 程序设计 重点 c程序设计总结 程序设计 重点
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文