C语言程序设计电子教案
2. 分支结构
不成立 条件
成立 程序模块A 程序模块B
和其它模块的顺序关系
பைடு நூலகம்
条件
成立
不成立
程序模块A 程序模块B
新程序模块
(a)
(b)
(c)
图 3.2 分支结构
3. 循环结构
和其它模块的顺序关系
不成立 条件 成立 程序模块
当条件成立时执行 程序模块
新程序模块
(a)
(b)
(c)
图 3.3 当型循环结构
3.3 赋值语句
<变量>=<表达式>; 赋值语句是由赋值表达式加上一个分号构成。 如x=a+b;。 C/C++语言的赋值语句具有其它高级语言 中赋值语句的一切特点和功能,也有C/C++语言自己的特色:
(1) C/C++语言中赋值号“=”作为赋值运算符。
(2) 其它高级语言没有赋值表达式这个概念。作为赋值表达式可以作为操作对象出现在其它表达式能出现
3.1.2 结构化程序设计方法 (1) 一个大的程序开发应当采取“自顶向下,逐步细化, 模块(即结构)化”的方法。
(2) 任何程序均由具有良好特性的三种基本模块(顺序, 分支,循环)“堆积”搭成,即由基本小单元顺序 组成一个大结构,从而避免了使用goto语句的缺点。
3.1.3 结构化程序的标准 (1) 程序符合“清晰第一,效率第二”的质量标准。 (2) 具有良好的特性。
① 只有一个入口。 ② 只有一个出口(有些分支结构很容易写成多个出口)。 ③ 无死语句(永远执行不到的语句). ④ 没有死循环(永远执行不完的无终止的循环)。
3.1.4 三种基本模块 1. 顺序结构
程序模块A 程序模块B
和其它模块的顺序关系
程序模块A 程序模块B
新程序模块
(a)
(b)
(c)
图 3.1 顺序结构
sprintf()等);
➢ C++的输入输出操作功能都在头部文件streamio.h中(如输入输出是cin和cout)若它们需格式控制,
还需用#include “iomanip.h” (input output stream) —见下 。因此调用输入输出函数时,在程序前面应 加上:
对C: #include <stdio.h> 输入输出用scanf()和sprintf()等 对C++: #include <iostream.h> 输入输出用cin和cout等 如没有该命令指定,会造成编译错误(如:不认识的标识)。 3.5.1 C++的输入和输出(cin和cout) c--computer
程序模块 成立 条件
程序模块 直到条件不成立时为止
新程序模块
不成立
和其它模块的顺序关系
(a)
(b)
(c)
图 3.4 直到型循环结构
3.2 C/C++ 语 句 概 述
C/C++语言是函数式语言,每一个函数是由数据说明部分和执行语句部分组成。所有语句均是执行语句, 无非执行语句。语句可分为单个语句,复合语句和空语句。根据结构化程序设计的三个模块大致可分为:
第3章 C /C++程序设计初步
3.1 结构化程序设计思想 3.2 C/C++语句概述 3.3 赋值语句 3.4 文件包含 3.5 输入输出
教材上的第二章2.1和2.4及2.5 的一部分(2.5.1和2.5.2)
3.1 结构化程序设计思想
3.1.1 程序的质量标准 首先是程序的结构/可读性好,其次是的程序的时空优化/效率。一个好的程序首先要有良好的结构,使程序 清晰易懂。然后,才考虑使其运行速度尽可能的快,运行时所占内存应尽量压缩至合理的范围。也就是说, 现在的程序质量高易读性好是第一位的,其次才是效率。因为从根本上说,只有程序具有了良好的结构,才 易于设计和维护,减少软件成本,从整体来说才是真正提高了效率。
的地方,也可出现在其它表达式之中。 例如: if((x=a+b)!=0) t=10;
3.4 文件包含
一个C/C++程序由若干个源文件组成,而一个源文件还可将另一个源文件的内容/功能包含进来。这个包
含进来的文件中的功能(如函数)均可用,在编译时先进行展开,包含进来的文件名我们用预编译命令
“#include”来指定,其一般形式为:
➢ 顺序结构中的表达式语句、赋值语句、函数调用语句等; ➢ 分支结构中的if语句、switch语句、转移语句、标号语句等; ➢ 循环结构中的while语句、for语句、do-while语句。 另外在后两种结构中还可出现break语句、continue
语句、复合语句和空语句等作为其中的一部分。
C/C++程序结构(函数式语言,即主要是由语句函数组成):
<各种函数、其它数据类型的声明或定义> #include <各种含许多功能的标准文件>; void main() //执行函数 { <语句和函数> }
程序编写注意事项:
(1) 每个语句最后都必须有一个分号(;),一个语句可分写成几行,几个语句也可合写成一行(但不提倡,因其不 利于单步调试)。 (2) 空语句直接由分号(;)组成,用于控制语句特殊要求,它无任何操作,只起到一个逻辑上的语句作用。 (3) 复合语句由花括号{ }括起的若干个语句, 语法上可以看成是一个语句。复合语句中最后一个语句的分号 不能省略。 如下面是一个复合语句:
#include <文件名> 或 #include “文件名”
如: #include “stdio.h”
#include <iostream.h>
3.5 输入输出
C/C++语言的输入和输出无相应的I/O操作语句,而是利用I/O操作库函数来完成。因此输入输出要 调用输入输出库函数。
➢ C的I/O输入输出操作功能都在头部文件stdio.h中(standand input output)(如输入输出是scanf()和
{ z=x+y; y=x/z; x=z-y; } (4) 表达式语句是在各种表达式后加一个分号(;)形成一个语句。如赋值语句由赋值表达式加一个分号构成: x=x+y;
{ z=x+y;y=x/z; x=z-y; }
再如表达式 x++后加一个分号构成表达式语句: x++; 表达式和表达式语句的区别是表达式后无分号, 可以出现在其它语句中允许出现表达式的地方;而表 达式语句后有分号, 自己独立成一个语句,不能再出现在其它语句的表达式中。如: if((a=b)<0) min=a;