第4章 顺序结构程序设计
- 格式:doc
- 大小:38.00 KB
- 文档页数:6
1 第四章 顺序结构程序设计
【目的要求】
一、了解:C程序中语句的概念和类别
二、理解:顺序结构
三、掌握:C语言语句的执行顺序,语法结构。
第一节 程序设计的三种基本结构
一.对于编写好程序的要求:
我们对于好程序的要求:首先要正确。不仅语法正确,可以通过计算机的执行。语义、语用也要正确,就是正确的输入带来正确的处理和输出。其次要健壮,对于正确的输入和错误的输入都应有正确的响应,不能说正确的输入给出正确的结果,如果换了一批数据,就死机了。这就不是好程序。第三就是要可读性好。有如下要求:算法结构的简洁,书写符合规范,对于难理解的地方要给予注释。比如对于每个函数的功能要给予注释。注释是用/*………..*/来实现的。它是写个人看的,计算机处理程序时会将这部分内容忽略掉,不予处理。
二.程序的三种基本结构:
1.顺序结构
2.选择结构
3。循环结构:有当型和直到型两种
(1)当型:条件为真时,反复执行,直到为假。
(2)直到型:先执行,再判断是否假,若为假则继续执行,直到为真。任何复杂的语句都是由这三种基本结构组成的语句来完成,就象任何复杂的信息都是由01二进制码来描述一样。
多分支结构:在C语言中,是由switch语句来完成的。
要会画流程图:
2 第二节 C语言的语句
一.C语言的基本语句
1. 表达式语句
由一个表达式加一个分号构成一个语句。这是语句中最常见的形式。最常用的是表达样式构成的赋值语句,如a=5; ++i; x=0, y=1; 任何表达式都可以加上分号构成赋值语句。
2.函数调用语句。包括函数调用语句如标准输出和标准输入语句printf(“%d”,n);
scanf(“%d”,&n); 函数调用其实也和表达式一样。
3. 空语句和复合语句
复合语句是由大括号包围若干条语句组成的。
【其格式如下】
{[数据说明部分]; 执行语句部分; }
与其对应的是空语句 ; 即只有一个分号的语句,什么也不做。
注意: ;是语句的标志,不可缺少,但是复合语句在括号外面不可再加;
复合语句的真正存在意义在于如果有若干条语句,要么都执行,要么都不执行,就必须用括号括起来,如下所叙述:
【例】
void main()
{ int a,b;
scanf("%d%d",&a,&b);
if(a
{ int temp;
temp=a; a=b; b=temp;
}
printf("\nfrom big to small,the number is %d>%d",a,b);
}
这里temp是定义在语句内部的局部变量,有效区为黑体字部分。
黑体字部分为一个复合语句,如果不用括号,则在输入5 4 时会出现错误结果
4. 控制语句 C语言中有9种控制语句
(1) if () ~else ~ 条件语句
(2) switch 多分支选择开关语句
(3) for()~ 循环语句
(4) while()~ 循环语句
(5) do~while(); 循环语句
(6) continue 结束循环中下面的语句,判断是否从头循环
(7) break 中止执行循环或语句
(8) goto 转向语句
(9) return 函数返回语句
( )表示条件(表达式),~表示语句
3 如以前的将变量x和y的最大值赋给z的表达式是 if(x>y)z=x; else z=y;
【例】条件语句if
先画流程图再编写程序:
已知一个输入的整数,求其符号
void main()
{ int x,y;
scanf("%d",&x);
if(x<0) y=-1;
else if(x==0) y=0;
else y=1;
printf("\nx=%d,y=%d",x,y);
}
【例】用各种方法编写程序求1加到100的和
用for语句来写:
void main()
{
int i,s=0;
for(i=1;i<=100;i++)
s+=i;
printf("\nthe sum from 1 to 100 is %d",s);
}
用while语句来写
void main()
{
int i=1,s=0;
while(i<=100)
{s+=i; i++;}
printf("\nthe sum from 1 to 100 is %d",s);
}
用do while语句来写
void main()
{
int i=1,s=0;
do{
s+=i; i++;}
while(i<=100);
printf("\nthe sum from 1 to 100 is %d",s);
4 }
用goto语句来写
void main()
{
int i=1,s=0;
label:s+=i;
i++;
if(i<=100)goto label;
printf("\nthe sum from 1 to 100 is %d",s);
}
5 第三节 顺序结构设计举例
【例1】计算三个键盘输入的整数的平均值并输出
#include “stdio.h”
void main()
{ int a,b,c; float f;
scanf(“%d%d%d”,&a,&b,&c);
f=a+b+c;
f=f/2;
printf(“f=%f\n”,f);
} /* 输入3 4 5 输出c=4.000000 */
【例2】从键盘输入一个小写字母,输出其大写字母(可改进)
[1。输入检查 2。重复输入 3。复合语句]
#include "stdio.h"
void main()
{
char c1,c2;
printf("please input a lowcost letter:");
c1=getchar();
if(c1>='a'&&c1<='z')
{
c2=c1-32;
printf("\nthe letter become %c",c2);
}
else printf("\nyou input a wrong letter");
}
【例3】已知三边长,求其面积
#include "stdio.h"
#include "math.h"
void main()
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("the area is %f",area);
}
6