2程序设计基本结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序模块 成立 条件 不成立 (a)
程序模块 直到条件不成立时为止
新程序模块
(b)
(c)
C语言程序设计基本结构
jingqilu@
顺序结构
赋值语句
• 赋值语句是由赋值表达式加上一个分号构成: –x=a+b; • 特点: –C语言中赋值号“=”作为赋值运算符; –赋值表达式可以出现在其它表达式能出现的地方, 也可出现在其它表达式之中: » if((x=a+b)!=0) t=10;
{ char a, b;
a=‘b’; b=‘o’;
putchar(a); putchar(b); putchar(′y′); putchar(′\n′); }
显示器
六句共同作为 Main函数的主 体,缩在其内
boy
顺序结构
jingqilu@
数据的输出&输入
printf( ) 格式输出函数
main( ) { float score; 68↓ scanf(″%f″, &score); 键盘 50↓ if(score<60.0) printf(″score=%3.1f---Fail\n″, score); if(score>=60.0) printf(″score=%3.1f---Pass\n″, score); }
C语言程序设计基本结构
jingqilu@
结构化程序设计思想
基本模块
顺序结构
基本模块
分支结构 循环结构
C语言程序设计基本结构
jingqilu@
顺序结构
程序模块A 程序模块A 程序模块B 程序模块B 新程序模块
(a)
(b)
(c)
C语言程序设计基本结构
jingqilu@
顺序结构
jingqilu@
数据的输出&输入
printf( ) 格式输出函数
例: #include <stdio.h>
格 式 说 明
main( ) { 格式字符 x=10; printf(“x=%d\n”,x); }
说明
• 格式字符要用小写 • 格式字符与输出项个数应相同,按先后顺序一一对应 • 格式字符与输出项类型不一致,自动按指定格式输出
C语言程序 设计基本结构
电子科技大学中山学院电子系 卢晶琦 jingqilu@
C语言程序设计基本结构
jingqilu@
1
2 3
结构化程序设计思想 顺序结构 分支结构
4
循环结构
C语言程序设计基本结构
jingqilu@
结构化程序设计思想
• 要求程序设计者按照一定的规范书写程序,而不随心所 欲的设计程序;
显示器
x=10
顺序结构
main() { int a=5,b=200,c=-3,d=104; 数据的输出&输入 unsigned int e=65535; printf( ) 格式输出函数 long f=158323; char g='i'; printf("%d,%3d,%-3d,%ld,%8ld\n",a,a,b,f,f); printf("c=%d %o %x %u\n",c,c,c,c); printf("e=%d %o %x %u\n",e,e,e,e); printf("%c,%d\n",g,g); printf("%c,%d\n",d,d); printf("%s,%3s,%8.2s,%-8.2s\n","welcome“, "welcome","welcome","welcome"); getch(); }
显示器
不 可 缺 少
分支结构
jingqilu@
if~else结构
例 打印成绩≥60分为“Pass”, 否则为“Fail”。
方法二: 用if~else语句实现:
main( ) 缩进式清楚的表示 { 出两层包含关系 float score; 68↓ scanf(″%f″, &score); 键盘 50↓ if(score<60.0) printf(“score=%2.8.1f---Fail\n”, score); else printf(“score=%2.8.1f---Pass\n”, score); }
顺序结构
jingqilu@
数据的输出&输入
数据输出:将内存中的某些数据送到外设上; 数据输入:将外部设备的某些数据送到计算机 内存; C语言无I/O语句,I/O操作由函数实现;
• #include <stdio.h> C语言的输入输出由函数来实现,它提供了多种输入输 出函数,使输入输出灵活、多样、方便,功能强。标 准I/O函数库中有一些公用的信息写在头文件stdio.h中 ,因此要使用标准I/O函数库中的I/O函数时,一般应在 程序开头先写预编译命令:# include “stdio.h”以便把I/O 函数要使用的信息包含到程序中来。
格式:printf(“控制字符串”,参量表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数; 出错,返回EOF(-1); • 参量表:要输出的数据(可以没有,多个时以“,”分 隔) • 控制字符串:包含两种信息
–格式说明: [修饰符] ,用于指定输出格式 –普通字符或转义序列:原样输出 • 格式字符
显示器
分支结构
jingqilu@
if~else结构 例
求输入整数a的平方值
#include “stdio.h” main() { int a; printf("Enter an integer A:\n"); scanf("%d",&a); Enter an integer A: if(a!=0) 键盘 5 { a=a*a; printf(“a*a=%d\n”,a); } a*a=25 显示器 else printf("a*a=0\n"); }
jingqilu@
顺序结构
jingqilu@
数据的输出&输入
了解
getche( )、getchar( )、getch( )字符输入函数
格式:getche( ) 功能:从键盘取一字符,并在屏幕上自动回显字符; 返值:正常,返回读取的代码值;出错,返回EOF(-1) 格式:getchar( ) ——(少用!) 功能:从键盘读一字符,不回显 返值:正常,返回读取的代码值;出错,返回EOF(-1)
注意输入的 格式和程序 保持一致
C语言程序设计基本结构
jingqilu@
分支结构
如果…则…否则 if语句
非0为真 0为假 if(表达式) { 语句 }
表达式 语 句 真 下一语句 假(0)
真(非0) 表达式 假
语句
(a)
(b)
分支结构
jingqilu@
if语句
scanf("%f",&x);
{
y=(-x); printf("y=%f",y);
}
思考: 修改后的程序运行后,x的值改变了吗?
分支结构
jingqilu@
if~else结构
例 打印成绩≥60分为“Pass”, 否则为“Fail”。
void main( ) 键盘 50↓ { float score; scanf(″%f″, &score); 显示器 if(score<60.0) printf(“score=%3.1f---Fail\n”, score); else printf(“score=%3.1f---Pass\n”, score); }
格式:getch ( ) 功能:从键盘读一字符,不回显 返值:正常,返回读取的代码值;出错,返回EOF(-1)
顺序结构
jingqilu@
程序举例(上机练习)
例: 输入一个小写字母, 按大写输出。
#include <stdio.h> #include <conio.h> main() { char ch; ch=getche( ); putchar(ch-32); }

打印出不及格的成绩;
main( ) { float score; scanf(“%f”,&score); if (score<60.0) printf(“score=%5.1f\n”,score); }
键盘
68↓ 50↓
显示器
分支结构
jingqilu@
if~els如何进一步区分成绩的优良中差等级?
分支结构
jingqilu@

输入一个学生的成绩,当成绩≥90时,打印“Very Good”, 当80≤成绩<90时,打印“Good”,当60≤成绩<80时,打印 “Pass”,当成绩<60时,打印“Fail”
#include <stdio.h> void main() { float score; scanf("%f",&score); if(score>=90) printf("score=%f--Very Good",score); if(score<90 && score>=80) printf("score=%f--Good",score); if(score<80 && score>=60) printf("score=%f--Pass",score); if(score<60) printf("score=%f--Fail",score); }
顺序结构
jingqilu@
数据的输出&输入
putchar( ) 字符输出函数
例: #include <stdio.h>
main( )
缩进两列
格式:putchar( c ) 参数:c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值; 出错,为EOF(-1)
复 合 语 句
分支结构
jingqilu@
上机程序纠错
#include<stdio.h> void main() { float x,y; scanf("%d,x"); if(x>=0) { y=x; printf("y=%f",y); } else y=(-x); printf("y=%f",y); }
分支结构
不成立 条件 成立 程序模块B 程序模块A 不成立 程序模块B 新程序模块
条件 成立 程序模块A
(a)
(b)
(c)
C语言程序设计基本结构
jingqilu@
循环结构
当 型 循 环
条件 成立 程序模块 不成立 当条件成立时执行 程序模块 新程序模块
(a)
(b)
(c)
直 到 型 循 环
{
缩 语句1 进 两 } 列 else
一条语句
真 假 表达式
表达式
语句1
语句2


{
缩 进 语句2 两 列
语句1 下一语句 (a) (b)
语句2
}
分支结构
jingqilu@
if~else结构
例 打印成绩≥60分为“Pass”, 否则为“Fail”。
方法一: 用两个简单的if语句实现:
a
键盘
aA
显示器
顺序结构
jingqilu@
程序举例(上机练习)
输入三角形的三条边长,求三角形的面积;
三角形面积计算公式:area s(s a)(s b)(s c)
例: #include <math.h>
#include <stdio.h> void main( ) { float a, b, c, s, area; scanf(“%f, %f, %f”, &a, &b, &c); 3,4,6 s=0.5*(a+b+c); 键盘 area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%.2f, b=%.2f, c=%.2f\n”, a, b, c); printf(″area=%.2f\n″, area); a=3.00, b=4.00, c=6.00 } 显示器 area=5.33
核心:
• 采取“自顶向下、逐步细化、模块化”的方法; • 三个基本模块:顺序、分支、循环; –顺序:表达式语句、赋值语句、函数调用语句等; –分支:if、switch、转移、标号语句等; –循环:while、for、do-while;另外在后两种结构 中还可出现break、continue语句、复合语句和空语 句等作为其中的一部分; • 任何程序均由具有良好特性的三种基本模块“堆积”搭 成;
相关文档
最新文档