第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