C语言程序设计 第四章
- 格式:doc
- 大小:34.50 KB
- 文档页数:3
第四章模块化程序设计1. 教学内容:§4.1 函数4.1.1 C程序结构4.1.2 函数定义与函数声明4.1.3 函数的传值调用4.1.4 函数的嵌套调用4.1.5 函数的递归调用§4.2 变量的存储属性4.2.1 动态变量4.2.2 静态变量4.2.3 外部变量§4.3 编译预处理4.3.1 宏替换4.3.2 文件包含2. 教学目的及要求:1) 熟练掌握函数定义与函数声明2)熟练掌握函数传值、嵌套、递归调用3)理解变量的存储属性3. 学重点:1) 函数定义与函数声明2) 函数的传值、嵌套、递归调用第四章模块化程序设计模块化程序设计是进行大程序设计的一种有效措施,其基本思想是将一个程序按功能进行分割成一些模块,使用权每一个模块都成为功能单一、结构清晰、接口简单、容易理解的小程序。
C语言提供了一些支持模块化软件开发的功能:⑴函数式的程序结构。
⑵允许通过使用不同存储类别的变量,控制模块内部及外部的信息交换。
⑶具有编译预处理功能,为程序的高度、移植提供了方便,支持模块化程序。
§4.1 函数函数是具有独立功能的程序段。
4.1.1 C程序结构C程序结构实际上是由函数组成的结构。
所有其它函数均由主函数main()调用。
如下图所示:C程序结构设计在逻辑上遵循自顶向下、逐步细化的层次结构。
【例】:“高等院校事务管理系统”菜单设计。
P1024.1.2 函数定义与函数声明定义函数就是在程序中设定一个函数模块。
一个函数由变量声明与可执行语句组成的独立实体,用以完成一指定功能。
函数定义形式如前所述:【例】:求三个数的平均值按自顶向下的方法可写出计算平均值的主函数和自定义函数,如下:int average(x,y,z) /*声明自定义函数*/ int x,y,z; /*声明形式参数x,y,z为整型数*/ {int aver; /*声明变量aver为整型数*/ver=(x+y+z)/3; /*求x,y,z的平均值,并赋给aver变量*/ return (aver); /*将aver的值作为函数的返回值*/ }㈠函数定义函数定义的内容及形式:函数类型标识符函数名([类型标识符形式参数1],… …){函数体;}⒈函数名函数名是函数的名字。
C语言程序设计
第四章分支结构程序设计
1、分支(选择)结构的基本形式:
If (表达式)
语句
注:if(表达式)后面没有“;”
2、分支(选择)结构的标准形式:
If (表达式)语句1
else 语句2
3、多分支(选择)结构的形式:
if (表达式)语句1
else if (表达式)语句2
else if (表达式)语句3
…
else if (表达式)语句n
else 语句n+1
4、对if语句的说明如下:
①三种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至可以是一个变量。
例如,if(a=5);语句、if(b);语句都是允许的。
只要表达式的值为非0,即为“真”。
如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。
②第二、第三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。
③在if和else后面可以只含有一个内嵌的操作语句,也可以由多个操作语句组成,此时用花括号{}将几个语句括起来组成一个符合语句。
5、if语句的嵌套:
C语言规定,缺省{}时,else总是与上面最近的、没有匹配过的if匹配。
例如:改写下列if语句,使else和第一个if配对。
If(X<2)
If(X<1)Y=X+1;
else Y=X+2:;
①通过添加{}改变配对关系:
If(X<2)
{
If(X<1)Y=X+1;
}
else Y=X+2:;
②或者,通过添加else语句改变配对关系:
If(X<2)
If(X<1)Y=X+1;
else;
else Y=X+2:;
6、条件运算符为?:。
表达式的一般形式为:
表达式1?表达式2:表达式3
执行过程:如果表达式1的值为非0,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。
如:
max=(a>b)?a:b;
该语句的意思是:如果a>b为真,则把a赋予max,否则把b赋予max.
7、对条件运算符和条件表达式的说明如下:
①条件运算符仅优先于赋值运算符和逗号运算符。
②条件运算符是一个三目运算符(C语言中唯一的一个三目运算符),结合方向“自右到左”
例如:
a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d)
③条件表达式不能取代一般的if语句,只有在if语句中内嵌的语句为赋值语句
(且两个分支都给同一个变量赋值)时才能代替if语句。
8、根据switch语句中break语句的使用情况,switch语句分为如下三种:(1)在switch语句中不使用break语句,
switch (表达式)
{
case 常量表达式1:语句1:;
case 常量表达式2:语句2:;
…
case 常量表达式n:语句n;
default:语句n+1;
}
(2)在switch语句的每个语句段中都使用break语句
switch (表达式)
{
case 常量表达式1:语句段1;break;
case 常量表达式2:语句段2;break;
…
case 常量表达式n:语句段n;break;
default :语句段n+1;break;
}
注:break语句是终止后面switch语句的执行
(3)在switch语句中的某些语句段中使用break语句
9、对switch语句的说明如下:
①switch语句中的表达式和case后面的常量表达式的结果值的类型应该一致(整型或字符型)。
②每一个case后面的常量表达式的值必须互不相同,否则将出现矛盾现象。
各个case的出现次序不影响执行结果。
③执行完一个case后面的语句后,流程控制转移下一个case继续执行,除非
有break语句跳出switch。
④default语句为选择项,可有可无。
另外,default后面可以不加break语句。