C语言复习.docx

上传人:b****3 文档编号:26598407 上传时间:2023-06-20 格式:DOCX 页数:19 大小:37.67KB
下载 相关 举报
C语言复习.docx_第1页
第1页 / 共19页
C语言复习.docx_第2页
第2页 / 共19页
C语言复习.docx_第3页
第3页 / 共19页
C语言复习.docx_第4页
第4页 / 共19页
C语言复习.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言复习.docx

《C语言复习.docx》由会员分享,可在线阅读,更多相关《C语言复习.docx(19页珍藏版)》请在冰豆网上搜索。

C语言复习.docx

C语言复习

C语言的特点

一.语言间洁、紧凑、使用方便、灵活。

二.运算符丰富,共有34运算符。

三.数据结构丰富。

四.具有结构化的控制语句。

用函数(子程序)作为程序的模块单位,便于实现程序模块化。

五.语法限制不太严格,程序设计自由度大。

六.C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的

大部分功能,可以直接对硬件进行操作。

七.生成目标代码质量高,程序执行效率高。

八.用C语言写的程序可移植性好。

 

C程序的介绍

例:

main()

{SP=0x80;/*sp=80H*/

delay05ms;//调用函数delay05ms

}

 

本程序执行后单片机的(SFR)SP=80H,再延迟0.5MS。

一.本例说明:

1.C程序是由函数构成的。

一个C源程序至少包含一个主函数main,除了main

外还可包含其它函数。

2.每一个C程序只能有一个主函数main,后面要带括号()。

3.函数体要用大括号(花括弧){}括起来。

4.每个语句后必须用;号结束。

分号是C语句的必要组成部分。

5.用/*…….*/或//………二种方式表示注释部分。

6.一个C程序总是从main函数开始执行的,且不论main函数在整个程序中的位置如何(即与位置无关)。

二.算法

1.用流程图表示算法。

2.三种基本结构和改进的流程图

(1)三种基本结构:

顺序结构

选择(分支)结构

循环结构:

*当型(while)循环结构

*直到型(until)循环结构

(2)N_S流程图

1973年由美国学者I.Nassi和B.Shnaiderman提出的一种新型流程图。

 

数据类型

一.常量和符号常量

二.变量:

变量名实际上是一个“符号地址”

三.整型数据:

1.基本整型(int)

2.短整型

3.长整型

四.字符型(char):

长度为一个字节

分为sighedchar和unsighedchar,默认为sighedchar

五.实型数据(浮点型)

六.指针型(*):

指针变量的长度为1—3个字节

七.位标量(bit):

C51扩充的数据类型

八.特殊功能寄存器(SFR):

占用一个字节,域值为0—255(C51扩充的数据类型)

例.sfrSP=0x80;

九.16位sfr(sfr16):

占用二个字节,域值为0—65535(C51扩充的数据类型)

一十.可寻址位(sbit):

C51扩充的数据类型

例.sfrP1=0x90;

sbitP1_1=P1^1;

 

顺序程序设计

一.程序的构成

数据描述----定义数据结构(用数据类型表示)和数据初值

程序:

数据操作-----由语句来实现,是对巳提供的数据进行加工

二.C语句种类

1.控制语句:

(1)if()~else~(条件语句)

(2)for()~(循环语句)

(3)while()~(循环语句)

(4)do~while()(循环语句)

(5)continue(结束本次循环语句)

(6)break(中止执行switch或循环语句)

(7)switch(多分支选择语句)

(8)goto(转向语句)

(9)return(从函数返回语句)

其中:

()表示括号中是一个条件

~表示内嵌的语句

例:

if(x>y)z=x;

elsez=y;

2.函数调用语句

例:

printf(“goodbye“);

3.表达式语句:

由一个表达式构成的一个语句

例:

a=3是一个表达式

a=3;是一个表达式语句

注意,任何表达式都可以加上分号而成为语句,分号是语句中不可缺少的一部分。

4.空语句:

;即只有一个分号的语句,它什么也不做。

5.复合语句:

可以用{}把一些语句括起来成为复合语句,又称分程序

例:

{z=x+y;t=z/100;

printf(”%f”,t);

}

注意,C语言允许一行有几个语句,复合句中最后一个分号不能忽略。

 

三.赋值语句

1.C语言中的赋值号“=”是一个运算符。

2.赋值表达式与赋值语句的概念:

例:

if((a=b)>0)t=a;

其中:

a=b是赋值表达式,不能写成(a=b);>0

因为if的条件中不能包含赋值语句。

注意,要清楚“表达式”与“语句”的区别。

四.顺序结构程序的特点

顺序结构程序的特点是按顺序执行程序,在程序中无判别、分支语句

和循环语句。

 

选择结构(分支)程序

一.关系运算符和关系表达式

1.关系运算符:

(1)<小于

(2)<=小于或等于

(3)>大于

(4)>=大于或等于

(5)==等于

(6)!

=不等于

2.关系表达式:

用关系运算符将二个表达式连接起来的式子就是一个关系表达式。

例:

a>b

a+b>b+c

(a=3)>(b=5)

注意,关系表达式的值是一个“逻辑值”,即“真”或“假”,以

“1”表示“真”,以“0”表示“假”。

二.逻辑运算符和逻辑表达式

1.逻辑运算符:

(1)&&逻辑与(相当于AND)例:

a&&b

(2)||逻辑或(相当于OR)例:

a||b

(3)!

逻辑非(相当于NOT)例:

!

a

2.逻辑表达式

逻辑表达式由逻辑运算符组成

逻辑表达式是一个逻辑值,以“1”表示“真”,以“0”表示“假”。

三.if语句(三种形式)

1.if(表达式)语句:

例:

if(ACC=0)TR0=0;

temp1=temp2;

2.if(表达式)语句1else语句2:

例:

if(P1-1=1){temp6=6;gotoINIT;}

elsegotoSTART;

3.if(表达式1)语句1

elseif(表达式2)语句2

elseif(表达式3)语句3

.

.

.

例:

if(acc==1)temp=1;

elseif(acc==2)temp=2;

elseif(acc==3)temp=3;

elseif(acc==4)temp=4;

elsetemp=0;

四.switch语句:

switch语句是多分支选择语句

1.形式:

switch(表达式)

{case常数表达式1:

语句1

case常数表达式2:

语句2

.

.

.

case常数表达式n:

语句n

default:

语句n_1

}

2.用法:

(1)switc后面括号内的“表达式”可以是任何类型。

(2)当“表达式”的值与某一个case后面的常数表达式相符时,执行后面的语句,若无匹配时就执行default后面的语句。

(3)每一个case后面的常数表达式必须各不相同。

(4)各个case和default出现的次序不影响执行的结果。

(5)执行完case后面的语句后,流程控制转移到下一个case继续执行。

即”case常数表达式”只是起语句标点作用,并不在该处进行条件判断。

因此,应该在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行,可以用一个break语句达到此目的。

例:

把上例中用if……else完成的任务用switch语句来表达,显得更间洁、明了。

switch(ACC)

{case1:

temp=1;break;

case2:

temp=2;break;

case3:

temp=3;break;

case4:

temp=4;break;

default:

temp=0;

}

(6).多个case可以共用一组执行语句

switch(ACC)

{case1:

case2:

case3:

case4:

temp=4;

default:

temp=0;

}

循环控制

一.构成循环控制的方法:

1.用goto语句和if语句构成循环;

2.用while语句;

3.用do-while语句;

4.用for语句。

二.goto语句,及循环控制的构成:

1.形式:

goto语句标号;//不能用整数做标号

2.与if语句一起构成循环控制:

例:

if(P0_6==0)

gotoINIT;

elsegotoSTART;

三.while语句(当型)

1.形式:

while(表达式)语句

当表达式为非“0”值时,执行while语句中的内嵌语句。

特点是先判断表达式,后执行语句。

2.用法:

(1)循环体如果包含一个以上的语句,应该用{}括起耒。

(2)在循环体中应有使循环趋于结束的语句。

例:

while(a<=100)

{b=b+1;

a++;

}

 

3.无限循环的方法:

用while

(1)表示无限循环。

例:

while

(1)

{b=b+1;

a++;

}

四.do—while语句(直型)

形式:

do循环体语句

while(表达式);

特点是先执行一次语句,然后判断表达式。

即先执行,后判断。

例:

do

{b=b+1;

a++;

}

while(a<=100);

while和do…while的差别是前者是先判断再执行,

后者是先执行再判断。

五.for语句

1.形式:

for(表达式1;表达式2;表达式3)语句

2.执行过程:

(1)先求介表达式1。

(2)求介表达式2:

若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行(3)。

如果其值为假(值为0),则结束循环,转到(5)。

(3)求介表达式3。

(4)转回

(2)继续执行。

(5)循环结束,执行for语句下面的一个语句。

所以for语句最容易理解的形式如下:

for(循环变量赋初值;循环条件;循环变量增值)语句

例:

for(i=1;i<=100;i++)

sun=sun+1;

注意,for语句后面没有分号。

若内嵌语句为“复合语句”,必须用{}括起耒。

例:

时延函数(延迟0.5ms)

voiddelay05ms(void)

{for(i=250;i>0;i--)

{;}//空操作,每次执行用时2us

}

 

用流程图表示:

 

六.break语句和continue语句

1.相同处:

两语句都是结束循环。

2.不同处:

continue只是结束本次循环,而不是终止整个循环的执行。

Break是结实整个循环过程,不再判断执行循环的条件是否成立。

注意,break语句不能用于循环语句和switch语句之外的任何语句中。

数组

一.一维数组的定义:

类型说明符数组名[常量表达式];

例:

chartab[10];

说明:

1.数组名后用方括号括起“常量表达式”。

2.常量表达式表示元素的个数,即数组的长度。

上例中tab[10]中的10表示有10个元素

但要注意,下标是从“0”开始的,10个元素是:

tab[0],tab[1],tab[2],……tab[9]

不能出现和使用tab[10]

3.常量表达式中只可以是常量,不能是变量。

 

二.一维数组的引用:

1.数组必须先定义,后使用。

2.只能逐个引用数组元素,不能一次引用整个数组。

数组元素的表示形式为:

数组名[下标]

注意,下标为整型常数或整型表达式。

例:

tab[0]=tab[1]+tab[7];

Tab[2*3]=I;

 

三.一维数组的初始化

1.在定义数组时对数组元素赋以初值

例:

chartab[5]={12,42,64,62,52};

2.可以只给一部份元素赋值

例:

chartab[5]={1,2,3};

表示只给前面3个元素赋值,后2个元素为“0”

3.如果想使一个数组中全部元素值为同一个数,必须全部写出耒

例:

chartab[5]={0,0,0,0,0};

4.在对全部元素赋初值时,可以不指定数组长度

例:

chartab[]={1,2,3,4,5};

 

函数

一.概述

1.在C语言中,子程序的作用是由函数完成的。

2.一个C语言程序可由一个“主函数”和若干个“函数”构成的。

3.由主函数调用其它函数,其它函数也可以互相调用。

4.所有的函数都是独立的,即函数不能嵌套。

5.函数不能调用主函数“main”。

6.从用户使用的角度看,函数有二种:

(1)标准函数,即在“函数库”中的函数。

(2)用户自己定义的函数。

7.从函数的形式看,函数分二类:

(1)无参函数:

在调用无参函数时,主调函数并不将数据传送给被调函数。

(2)有参函数:

在调用有参函数时,在主调函数和被调函数之间有数据传递。

 

二.函数定义的一般形式

1.无参函数的定义形式:

类型标识符函数名()

{声明部分

语句

}

注意,“类型标识符”指定函数值的种类,即函数返回“值”的类型。

2.有参函数的定义形式:

类型标识符函数名(形式参数表列)

{声明部分

语句

}

 

例:

intmax(intx,inty)

{intz;

z=x>y?

x:

y;

return(z);

}

说明:

1.第一行关键字int表示函数值是整型的,括号中是二个形式参数x和y。

2.花括号内是函数体,包括声明部分和语句部分。

3.在声明中,定义在函数中要用到的“变量”。

4.return(z)的作用是将z的值作为“函数值”带回到主调函数中,z被称为“函数返回值”。

5.若不指定函数类型,系统会“隐含”指定函数类型为int型。

3.可以有空函数

(1)形式

类型标识符函数名()

{}

(2)作用:

不做任何工作,只为以后扩充时用,目前只占用一个位置。

三.函数参数和函数的值

1.形参和实参:

在定义函数时,函数名后面的括号中的变量称为“形式变量”,间称为“形参”。

在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”,间称为“实参”。

2.函数的返回值:

希望通过调用函数,使主调函数能得到一个确定的值,这个值就是“函数返回值”。

(1)“函数返回值”是通过函数中的return语句得到的。

如果不需要返回值,可以不要return语句。

(2)函数值的类型

函数的返回值应当是定义函数时指定的函数值的类型。

(3)为了明确表示“不带回值”,可以用void(空)来定义“空类型”(无类型)。

例:

voiddelayo5ms(void)

为了使程序减少出错,保证正确调用函数,凡是不要求带回函数值的函数,一般都应定义为void类型。

四.函数的调用

1.函数调用的一般形式:

函数名(实参表列);

若调用无参函教,则“实参表列”可以没有,但()不能省略。

例:

Delay05ms();

2.函数调用的方式:

(1)把函数调用作为一个语句。

(2)作为函数表达式。

例:

比如巳有函数max(x,y)

c=2*max(a,b);

(3)作为函数参数。

把函数调用作为另一个函数的“实参”

例:

m=max(a,max(b,c));

其中,max(b,c)是一次函数调用,它的函数返回值作为另一次函数调用的“实参”。

m的值是a、b、c三者中的最大者。

五.局部变量和全局变量

1.局部变量

在一个函数内部定义的变量是内部变量,只在本函数范围内有效。

2.全局变量

在函数之外定义的变量称为外部变量,外部变量是“全局变量”(也称为全程度量),它的有效范围从定义变量的位置到本源文件结束。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1