第 四 章 顺 序 程 序 设 计

25
1 第第第 第第第第第第第第 第 第 第 第 第 第 第 第 第

Upload: vivian

Post on 19-Jan-2016

155 views

Category:

Documents


0 download

DESCRIPTION

第 四 章 顺 序 程 序 设 计. 主要内容. 一、 C 语句分类 二、赋值语句 三、数据输入与输出 四、顺序结构程序设计. 一、 C 语句分类. 第四章 顺序结构程序设计. if () ~ else ~ switch for () ~ while () ~ do ~ while() continue break goto return. if (x>y) z=x; else z=y;. 控制语句. C 语句. printf("Hello!");. 函数调用语句. 由一次函数调用加一个分号构成一个语句。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 四 章  顺 序 程 序 设 计

1

第四章 顺序结构程序设计

第 四 章

顺 序 程 序 设 计

Page 2: 第 四 章  顺 序 程 序 设 计

2

第四章 顺序结构程序设计

一、 C语句分类二、赋值语句三、数据输入与输出四、顺序结构程序设计

主要内容

Page 3: 第 四 章  顺 序 程 序 设 计

3

第四章 顺序结构程序设计

C 语句

控制语句

函数调用语句

由一次函数调用加一个分号构成一个语句。

表达式语句

空语句

?

1 、出现在函数体的执行 部分。2 、作用是向计算机系统 发出操作指令。 复合语句

if () ~ else ~switchfor () ~while () ~do ~ while()continuebreakgotoreturn

if (x>y) z=x;else z=y;

printf("Hello!");

由表达式加一个分号构成一个语句。

a=3;

;

由 { } 将一些语句括起来。

{ t=a; a=b; b=t;}

?

第四章 顺序结构程序设计

一、 C 语句分类

Page 4: 第 四 章  顺 序 程 序 设 计

4

第四章 顺序结构程序设计

构成方式 由赋值表达式加分号构成。

例 1 a=3;b=a*3+5;

赋值表达式与赋值语句的区别

1 、 C 语言中赋值号 "=" 是一个运算符。2 、 C 语言中既有赋值表达式又有赋值语句的概念。3 、 C 语言把赋值语句和赋值表达式区分开来,赋 值表达式可以包括在其他表达式中,增加了表 达式的种类,使表达式的应用几乎无孔不入, 能实现其他语言难以实现的功能。

第四章 顺序结构程序设计

二、赋值语句

if ((a=b)>0) t=a; if ((a=b;)>0) t=a;

例 2

Page 5: 第 四 章  顺 序 程 序 设 计

5

第四章 顺序结构程序设计

(一)、 C的输入与输出

(二)、单个字符的输出

(三)、单个字符的输入

(四)、格式输出

(五)、格式输入

第四章 顺序结构程序设计

三、数据输入与输出

Page 6: 第 四 章  顺 序 程 序 设 计

6

第四章 顺序结构程序设计

说明 1 、所谓输入输出是以计算机为主体而言的。2 、输入输出操作是由函数实现的。

标准输入输出函数

putchar( ) getchar( )puts( ) gets( )printf( ) scanf( )

预编译命令 在使用 C 语言库函数时,要用预编译命令 "#include" 将有关的 " 头文件 " 包括到用户源文件中。

举例 #include <stdio.h>main(){ printf("Hello!" );}

#include "stdio.h"

注:在 TC 环境中,若使用 printf()或 scanf() 函数,则前面的预编译命令可以省略!在 VC++ 环境中不能省略 !

第四章 顺序结构程序设计

(一)、 C 的输入与输出

Page 7: 第 四 章  顺 序 程 序 设 计

7

第四章 顺序结构程序设计

作用 向终端(或系统默认的输出设备)输出一个字符。

举例 #include <stdio.h>void main(){ char ch1 = 'B',ch2='O',ch3='Y'; putchar('\"'); /* 输出双引号 */ putchar(ch1); putchar(ch2); putchar(ch3); /* 输出 BOY*/ putchar('\"'); /* 输出双引号 */}

第四章 顺序结构程序设计

(二)、单个字符的输出 —— putchar 函数显示器

格式?

八进制数 101- 〉 65- 〉

A

"BOY"输出

putchar(ch);

注 : ch 可以是一个字符型(整型)变量、常量或表达式 ; 也可以是一个转义字符,如 putchar('\n') 、 putchar('\101') 。

putchar('B');

Page 8: 第 四 章  顺 序 程 序 设 计

8

第四章 顺序结构程序设计

作用 从终端(或系统默认的输入设备)输入一个字符。

举例 #include <stdio.h>void main(){ char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);}

输入:a

第四章 顺序结构程序设计

键盘

(三)、单个字符的输入 —— getchar 函数

输出

格式 注: getchar 函数没有参数,所接受的字符可以赋给字符型或整型变量,也可以作为表达式的一部分。输入完毕,必须按回车键。

a_

输入:a b

输出 ab_

?

getchar();

Page 9: 第 四 章  顺 序 程 序 设 计

9

第四章 顺序结构程序设计

格式 printf(" 格式控制字符串 " [ ,输出列表 ]);

说明 1 、 " 格式控制字符串 " 是用双撇号引起来的字符串,包括三种信息: ( 1 )格式说明:由 % 和格式字符组成。 ( 如 %d 、%f) ( 2 )普通字符:需要按原样输出的字符。 ( 3 )转义字符: ( 如 \t 、 \n 、 \b 、 \r 等 )2 、 " 输出列表 " 是需要输出的一些数据,可以是表达式。

将输出的数据转换为指定的格式输出。

第四章 顺序结构程序设计

(四)、格式输出—— printf 函数

作用 向终端(或系统默认的输出设备)输出若干个任意类型的数据。

Page 10: 第 四 章  顺 序 程 序 设 计

10

第四章 顺序结构程序设计

例 2 #include <stdio.h>void main(){int a,b; a=3; b=4; printf(" 输出结果为: "); printf("%d %d\n",a,b); printf("a=%d, b=%d\n",a,b); printf("a+b=%d",a+b);}

输出结果为: 3 4a=3, b=4a+b=7 _

例 1

printf("sum=%d \n %c", x, ch);

普通字符

格式说明转义字符

如果 x=100,ch= ' A ' ,那么下面的输出语句将输出什么结果?

输出列表

输出 sum=100A_

输出

Page 11: 第 四 章  顺 序 程 序 设 计

11

第四章 顺序结构程序设计

格式说明必须以%开始,以格式字符结束。一般形式如下:

% [ 标志 ] [ 宽度 ] [. 精度 ] [l] [ 格式字符 ]

-- nm d/f/c/u/s 等

长整型整数

输出数据向左靠拢

输出数据最小宽度

对实数:输出小数点位数;对字符串:截取字符的个数

格式说明的一般形式

Page 12: 第 四 章  顺 序 程 序 设 计

12

第四章 顺序结构程序设计

格式字符

格式字符 格式说明

d, i 以带符号的十进制数输出整数 ( 正数不输出符号 )c 以字符形式输出 , 只输出一个字符f 以小数形式输出单、双精度数,隐含 6 位小数e,E 以指数形式输出实数o 以八进制无符号形式输出整数(不输出前导符 0 )x,X 以十六进制无符号形式输出整数(不输出前导符 0x )…… ……

P81

附加格式说明字符

字符 说明l 用于长整型数据输出,可加在 d o x u 前面m 数据最小宽度n 对实数,表示输出 n 位小数;对字符串,表示 截取的字符个数- 输出数据向左靠拢

第四章 顺序结构程序设计

格式字符

Page 13: 第 四 章  顺 序 程 序 设 计

13

第四章 顺序结构程序设计

#include <stdio.h>main(){ int num1=123; long num2=123456; /* 用 3 种不同格式,输出 int 型数据 num1 的值 */ printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n", num1,num1,num1,num1); /* 用 3 种不同格式,输出 long 型数据 num2 的值 */ printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2); printf("num1=%ld\n",num1); }

格式输出举例—— d 格式符

Page 14: 第 四 章  顺 序 程 序 设 计

14

第四章 顺序结构程序设计

综合举例

float x,y;x=111111.111;y=222222.222;printf("%f",x+y);

333333.328125

整数部分全部输出,小数部分输出 6 位

因有效位数为 7 位,因此后面数字不准确。

float x=123.456;printf("%f",x);printf("%10f",x);printf("%10.2f",x);printf("%.2f",x);printf("%-10.2f",x);

123.456001123.456001123.46123.46123.46

实数最常用的两种输出格式

第四章 顺序结构程序设计

格式输出举例—— f 格式符

Page 15: 第 四 章  顺 序 程 序 设 计

15

第四章 顺序结构程序设计

float x=123.456;printf("%e",x);printf("%10e",x);printf("%10.2e",x);printf("%.2e",x);printf("%-10.2e",x);

综合举例

1.234560e+0021.234560e+002 1.23e+0021.23e+0021.23e+002

第四章 顺序结构程序设计

输出: 1.234560e+002

指数部分尾数部分

格式输出举例—— e 格式符

2 6 5总宽度为 13

Page 16: 第 四 章  顺 序 程 序 设 计

16

第四章 顺序结构程序设计

格式输出举例—— c 格式符#include <stdio.h>

void main()

{

char c='A';

int i=65;

printf("c=%c,%5c,%d\n",c,c,c);

printf("i=%d,%c",i,i);

}

输出 c=A,A,65i=65,A

注意 在 C 语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该数与 256 的余数,然后将余数作为 ASCII 码,转换成相应的字符输出。

Page 17: 第 四 章  顺 序 程 序 设 计

17

第四章 顺序结构程序设计

格式输出举例—— s 格式符#include <stdio.h>void main(){ printf("%s,%5s,%-10s,","Internet","Internet","Internet"); printf("%10.5s,%-10.5s,%4.5s\n","Internet","Internet","Internet");}

Internet,Internet,Internet, Inter,Inter,Inter

输出 :

系统输出字符和字符串时,不输出单引号和双引号。注意

Page 18: 第 四 章  顺 序 程 序 设 计

18

第四章 顺序结构程序设计

格式 scanf(" 格式控制字符串 " [ ,地址列表 ]);

说明 1 、 " 格式控制字符串 " 与 printf 函数类似。可以包含以下三种类型 的信息:

格式说明:与 printf 类似,以%开始,以一个格式字符结束;空白字符(空格、 \t 、 \n ):输入多个数据时的缺省分隔符,可以省略,在输入数据时可以以任一种空白字符分隔;普通字符(照原样输入)。

2 、 " 地址表列 " 是由若干个地址组成的列表,各地址之间用逗号分隔。如变量的地址表示为: & 变量名。

第四章 顺序结构程序设计

(五)、格式输入—— scanf 函数作用 从终端(或系统默认的输入设备)输入若干个任意类型的数据。

Page 19: 第 四 章  顺 序 程 序 设 计

19

第四章 顺序结构程序设计

int a,b;scanf("%d%d",&a,&b);printf("%d,%d",a,b);

343,4

int a,b;scanf("%d,%d",&a,&b);printf("%d,%d",a,b);

3 , 43,4

第四章 顺序结构程序设计

格式输入举例—— d 格式符

注意

举例

当输入多个数据时,若各个格式说明之间没有其他字符,则系统默认使用空格键、回车键和 Tab 键进行间隔;若格式说明之间有其他字符,则必须照原样输入。

343,4

Page 20: 第 四 章  顺 序 程 序 设 计

20

第四章 顺序结构程序设计

float a;scanf("%f",&a);printf("%f",a);

输入: 3.2

float a;scanf("%3.2f",&a);printf("%f",a);

第四章 顺序结构程序设计

格式输入举例—— f 格式符

注意

举例

当输入浮点型数据时,不能规定精度。如果指定了精度,编译时不会报错,但输入的数据将不可预知。

3.200000输出:

输入: 3.218

-107374176.000000

输出:

Page 21: 第 四 章  顺 序 程 序 设 计

21

第四章 顺序结构程序设计

char ch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);

第四章 顺序结构程序设计

格式输入举例—— c 格式符

注意

举例

使用格式说明符 "%c" 输入单个字符时,空格和转 义字符均作为有效字符被输入。

输入: abc

ch1=a,ch2= ,ch3=b输出:

其中: ch2 的值为空格。

Page 22: 第 四 章  顺 序 程 序 设 计

22

第四章 顺序结构程序设计

例1

从键盘输入一个大写字母,转换成相应的小写字母输出。

#include <stdio.h>void main(){ char c1,c2; // 增强人机交互性。 printf("请输入一个大写字母: "); c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2);}

请输入一个大写字母: AA,65a,97

第四章 顺序结构程序设计

四、顺序结构程序设计在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每条语句都会被执行到。

运行情况:

Page 23: 第 四 章  顺 序 程 序 设 计

23

第四章 顺序结构程序设计

例2

输入三角形的三边,求三角形的面积。

#include <stdio.h>#include <math.h>

void main(){ float a,b,c,p,s; printf("请输入三角形的三边: "); scanf("%f%f%f",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("s=%7.2f\n",s);}

请输入三角形的三边: 3 4 5s=6.00

分析 a,b,c: 表示三角形的三边。 p: 中间变量。 p=(a+b+c)/2s: 三角形面积。以上变量均为实型。

输入 a,b,c

输出 s

p (a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c))

第四章 顺序结构程序设计

?若输入3 4 8-2 -3 9

运行情况:

Page 24: 第 四 章  顺 序 程 序 设 计

24

第四章 顺序结构程序设计

# include <stdio.h>void main(){ int num1,num2,num3,sum; float aver; printf("请输入三个整数 :"); scanf("%d,%d,%d",&num1,&num2,&num3);/* 输入三个整数 */ sum=num1+num2+num3; /* 求累计和 */ aver=sum/3.0; /* 求平均值 */ printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); printf("sum=%d,aver=%7.2f\n",sum,aver);}

例3

输入任意三个整数,求它们的和及平均值。

num1,num2,num3: 表示三个整数。 sum: 求和结果aver:平均值

分析 ?数据类型

请输入三个整数: 3,6,10num1=3,num2=6,num3=10sum=19,aver= 6.33

3.0改为 3 可以么?

Page 25: 第 四 章  顺 序 程 序 设 计

25

第四章 顺序结构程序设计第四章 顺序结构程序设计

作 业

P88: 4.4, 4.6, 4.8, 4.9, 4.10