C语言复习提纲整合版.docx
- 文档编号:18008283
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:31
- 大小:35.95KB
C语言复习提纲整合版.docx
《C语言复习提纲整合版.docx》由会员分享,可在线阅读,更多相关《C语言复习提纲整合版.docx(31页珍藏版)》请在冰豆网上搜索。
C语言复习提纲整合版
复习提纲A
第一章C语言概述、第二章算法
1.程序设计语言:
机器语言、汇编语言、高级语言。
2.高级语言翻译成机器语言的两种方式:
编译方式、解释方式。
3.算法+数据结构=程序
4.结构化程序设计的三种基本结构:
顺序结构、分支(选择)结构、循环结构
5.算法的表示方法:
自然语言、传统的程序流程图、N-S流程图。
6.算法的特性:
有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。
(P19页)
7.C语言的特点。
(P2页)
8.运行C程序的步骤。
(P7页)
9.C语言由函数组成,有且仅有一个main函数。
10.函数:
说明部分、函数体。
11.一条复杂语句分行书写,用反斜杠(\)续行。
12.注释用/*……*/
13.每个语句由分号(;)结束。
第三章数据类型、运算符和表达式
1.常量:
◆整型常量(P40页):
235、0235、-0x235(前可加负号),长整型:
-12l、-065l、0x55l等。
◆实型常量(P45页):
小数形式、指数形式。
◆字符常量(P48页):
用单引号,如‘c’。
◆转义字符(P48页):
表3-3。
◆字符串常量(P52页):
用双引号,如“hglhg”、“a”,内存占用为实际长度加1(结束标志’\0’)。
◆符号常量:
无参宏(#define)。
2.变量:
◆标识符命名规则:
(P39页)。
◆各种类型变量的长度:
整型2个字节(VC6.0中4个字节)、浮点型4个字节、字符型1个字节。
◆整型变量的分类:
int、shortint、longint,注意其取值范围,定义的时候可根据实际情况选择数据类型。
◆浮点型变量的分类:
float、double、longdouble,注意其取值范围,定义的时候可根据实际情况选择数据类型。
◆不同数据类型数据之间的混合运算(P54页)。
不同数据类型之间的运算必须先转换成相同数据类型才能运算。
◆数据类型转换(P56页):
自动、强制。
◆注:
强制类型转换只得到所需类型的结果值,原变量或表达式的类型仍为原类型。
如(float)(x+y)
3.各种运算符运算规则及其优先级(P56页)。
4.自加、自减运算(P57页):
i++,++i,i--,--i。
(不清楚可以在系统中运算查看结果)。
5.其它运算符:
符合运算符、条件运算、逗号运算、长度运算符(形式:
sizeof表达式或sizeof(数据类型))
第四章顺序结构(输入输出)
1.单字符输入/出:
putchar(字符变量)、getchar()。
注意getchar()没有参数。
2.字符串:
gets(字符数组名)、puts(数组名)。
3.格式化输入:
scanf(“格式控制符”,地址列表);
格式控制符:
%c、%d、%o、%x、%s、%f
◆若输入long型、double型应加l,如%ld、%lo、%lf
◆格式%s输入字符串不包含空格,且对应地址表列是字符数组名。
◆默认分隔符:
空格、回车、Tab键(也可按域宽截取)
◆格式控制符间不宜加其它字符,如加入其它字符,输入时应原样输入,否则数据接收错误。
如:
scanf(“%d,%d”,&a,&b);输入数据时两数据间要有逗号;scanf(“%d%d”,&a,&b);%d间有两个空格,则输入数据时至少有两个空格。
◆输入函数中%f格式不能带小数,如:
scanf(“%7.2f”,&a)是错误的。
◆%c格式输入单字符,空格字符和转义字符都作为有效字符接收。
◆%*d表示跳过它对应的输入数据。
4.格式化输出:
printf(“格式控制符”,输出列表);
◆格式控制符部分可加入其它字符,原样输出。
如:
提示语或使输出结果清楚显示
◆输出列表:
可以是变量、常量、表达式、函数调用等。
◆转义字符:
以斜杠(\)开始,作为一个字符,如求字符串长度:
“jk\\gk\bl\0k\nlj”,长度为7。
◆注意:
输出long、double型数据,用%ld、%lf
◆可设定输出宽度,m和n,如:
%5d、%6.2f、%.2f
◆负号表示域内向左对齐,如:
%-12d
第五章选择结构
1.if语句的三种形式:
◆If(表达式)语句;
◆If(表达式)
{语句1;}
Else
{语句2;}
◆If(表达式1){语句1;}
Elseif(表达式2){语句2;}
Elseif(表达式3){语句3;}
……
Elseif(表达式n){语句n;}
Else{语句n+1;}
2.if语句的嵌套。
3.switch语句结构
Switch(表达式)
{
Case常量表达式1:
语句1;break;
Case常量表达式2:
语句2;break;
……
Case常量表达式n:
语句n;break;
default:
语句n+1;
}
4.if中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。
5.逻辑表达式的优化运算:
◆&&运算:
只要算出第一个表达式为0,第二个表达式不再运算。
◆||运算:
只要算出第一个表达式为1,第二个表达式不再运算。
如:
inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;printf(%d%d%d”,i,j,a);
结果i为1,j为0,a为7。
6.如果有多条语句,必须用大括号括起,构成复合语句。
7.switch语句中case后面只能是常量值;若执行完某case后的语句没遇到break,则继续执行下一个case语句。
8.本章主要是算法构思。
(先考虑好需要那些变量,即数据结构,再考虑怎样求解问题)
第六章循环结构
1.主要的循环结构
◆while(表达式){语句;}
◆do
{循环语句序列;}
While(表达式);
◆for(循环变量初值表达式1;循环结束条件表达式2;循环变量增值表达式3)
{循环语句;}
while、for中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。
注意for循环表达式里几种形式(P118—120页)
2.如果有多条语句,必须用大括号括起,构成复合语句。
*
***
*****
*******
*****
***
*
3.循环程序:
注意循环变量的初值、循环条件、修正值等,以及循环中用到的某些变量赋初值,如求累加和变量。
4.一般是先判断条件,再执行循环体;但do—while语句是先执行一遍循环体,再判断条件。
5.注意循环嵌套。
一般是两个或以上的for循环,典型例子如输出一个如右图的菱形图案。
6.break语句跳出整个循环体,不在执行循环、continue语句结束本次循环,可继续执行下一次循环判断。
7.本章主要是算法构思。
(先考虑好需要那些变量,即数据结构,再考虑怎样求解问题)
第七章数组
1.数组定义:
inta[10];或inta[N](N需要事先定义为符号常量:
#defineN10);
数组长度必须是常量值,不能是变量,可以是在程序开始前定义的符号常量,进行长度定义。
2.下标引用:
0~N-1,切记不能引用到N。
(inta[5];a[5]=10;这种引用是错误的)
3.数组初始化时可省略长度定义。
4.数组不能整体赋值。
数组中各元素值的输入/出,应使用循环程序逐个输入/出;字符数组例外(gets、puts)。
6.数组中的排序方法:
冒泡法:
外循环为i=0;i 7.二维数组: 按行存放;赋初值的4种情况P137—138页。 8.字符数组: 通常定义较长长度,如: chars[50];通常用于存放字符串,结束标志为‘\0’。 可用字符串常量为其初始化,如: chars[]=“sdkhg”;也可由键盘输入,如gets(s);输出用puts(s); 注意: chars[5]={‘a’,’d’,’f’,’g’,’w’};此种形式不是字符串,无字符串结束标志,仅仅是普通一维字符数组,不能用puts输出,只能用%c格式逐个输出。 字符数组的输入/出还有两种形式: %c、%s。 9.字符串函数(P146—150页): strcpy(s1,s2)、strcat(s1,s2)、strcmp(s1,s2)、strlen(s)、strupr(s)、strlwr(s) 注意参考教材的例题。 第八章函数 1.函数定义: intfun(inta,inty);如定义时没指明函数类型,如: fun(inta);默认是int型,返回值不确定。 2.声明: 函数定义在前,使用在后,可省略函数声明,反之需要在使用前声明。 函数声明的几种变通形式。 ◆函数声明后加分号,而函数定义后没有分号。 3.函数调用: 函数名(实参表); ◆实参与形参个数、类型、位置一致。 ◆形参与实参占据不同的存储单元;形参只在函数调用时才为其分配存储单元,函数调用结束后释放。 ◆实参与形参之间是传值调用,单向传递关系,形参值改变,不会影响实参值。 ◆补充: 函数可嵌套调用,不可嵌套定义。 ◆嵌套调用: 一个函数内部又调用另外一个函数。 ◆递归调用: 一个函数调用它自身。 4.从作用域角度,变量分为: 全局变量、局部变量。 ◆局部变量: 在函数内部定义,只能在该函数中使用,包括函数的形参和复合语句中定义的变量,main函数中定义的变量也是局部变量,不能被其它函数使用。 ◆不同函数内定义的同名变量,互不影响,因其作用域不同,内存空间独立。 ◆全局变量: 在函数外部定义,作用域从定义开始到本文件结束。 其间的所有函数都可以使用它,可在各函数间传递值,但容易带来副作用,降低模块独立性。 第九章预处理命令 1.预处理命令以“#”开头,末尾不加分号。 在程序编译之前处理。 1. 2.宏替换: 将函数中出现宏名的地方用宏体进行替换。 ◆ #defineSQR(x)x*x main() {inta,k=3; a=++SQR(k+1); printf("%d\n",a); } 替换后的表达是为a=++k+1*k+1 结果为9 宏体可以是数字、也可以是组成C表达式或语句的其它字符,还可以引用已定义的其它宏名。 ◆宏的作用域: 定义宏之后到本源文件结束,可用#undef提前结束。 ◆无参宏(符号常量): #definePI3.14 注意: 函数中双引号内的宏名不替换,如printf(“PI”); ◆有参宏: #define宏名(形参表)宏体 ◆引用: 宏名(实参表) ◆注意有参宏如果宏体和参数没用括号括起,可能有副作用。 ◆分析有参宏的程序时,必须先将宏替换后的表达式写到纸上,再分析结果。 ◆文件包含: #include<文件名>搜索系统标准目录 #include“文件名”先搜索当前目录,找不到再搜索系统标准目录 第十章 1.指针的基本概念: 指针≡地址; 2.指针常量: 某已知变量的地址,或数组名等,: inta,b[5];此时&a和b就是指针常量(固定值)。 3.指针变量: 如inta,*p=&a;chars[9],*q=s; ◆赋值: 必须赋地址值,如inta,*p;p=&a; 如p=2001;是错误的。 4.间接访问: *p=5;等同于a=5; 5.指针作为函数的参数,传递的是实参变量的地址, 如: voidfunc(int*p) ◆调用时用某变量的地址常量,或指向该变量的指针作为实参,如主调函数中有定义inta,*q;q=&a;则可用&a或q作为实参进行调用,即func(&a);或func(q);都是将变量a的地址传递给形参指针p,使指针p指向变量a。 函数中使用*p就是对a的间接访问,就可以改变a的值,或者将结果放入a中。 但形参变量本身改变,反过来不会影响实参指针值。 6.指针与一维数组: inta[10],*p=a;则a代表数组首地址,是指针常量, ◆元素的表示方法: a[i]、*(a+i)、p[i]、*(p+i) ◆元素地址: &a[i]、a+i、&p[i]、p+I ◆区别: a实指针常量,只不能变,而p是指针变量,可进行增减运算;所以常通过p的增减运算来快速访问数组a,如:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 提纲 整合