第 四 章 顺 序 程 序 设 计
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 PresentationTRANSCRIPT
1
第四章 顺序结构程序设计
第 四 章
顺 序 程 序 设 计
2
第四章 顺序结构程序设计
一、 C语句分类二、赋值语句三、数据输入与输出四、顺序结构程序设计
主要内容
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 语句分类
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
5
第四章 顺序结构程序设计
(一)、 C的输入与输出
(二)、单个字符的输出
(三)、单个字符的输入
(四)、格式输出
(五)、格式输入
第四章 顺序结构程序设计
三、数据输入与输出
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 的输入与输出
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');
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();
9
第四章 顺序结构程序设计
格式 printf(" 格式控制字符串 " [ ,输出列表 ]);
说明 1 、 " 格式控制字符串 " 是用双撇号引起来的字符串,包括三种信息: ( 1 )格式说明:由 % 和格式字符组成。 ( 如 %d 、%f) ( 2 )普通字符:需要按原样输出的字符。 ( 3 )转义字符: ( 如 \t 、 \n 、 \b 、 \r 等 )2 、 " 输出列表 " 是需要输出的一些数据,可以是表达式。
将输出的数据转换为指定的格式输出。
第四章 顺序结构程序设计
(四)、格式输出—— printf 函数
作用 向终端(或系统默认的输出设备)输出若干个任意类型的数据。
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_
输出
11
第四章 顺序结构程序设计
格式说明必须以%开始,以格式字符结束。一般形式如下:
% [ 标志 ] [ 宽度 ] [. 精度 ] [l] [ 格式字符 ]
-- nm d/f/c/u/s 等
长整型整数
输出数据向左靠拢
输出数据最小宽度
对实数:输出小数点位数;对字符串:截取字符的个数
格式说明的一般形式
12
第四章 顺序结构程序设计
格式字符
格式字符 格式说明
d, i 以带符号的十进制数输出整数 ( 正数不输出符号 )c 以字符形式输出 , 只输出一个字符f 以小数形式输出单、双精度数,隐含 6 位小数e,E 以指数形式输出实数o 以八进制无符号形式输出整数(不输出前导符 0 )x,X 以十六进制无符号形式输出整数(不输出前导符 0x )…… ……
P81
附加格式说明字符
字符 说明l 用于长整型数据输出,可加在 d o x u 前面m 数据最小宽度n 对实数,表示输出 n 位小数;对字符串,表示 截取的字符个数- 输出数据向左靠拢
第四章 顺序结构程序设计
格式字符
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 格式符
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 格式符
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
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 码,转换成相应的字符输出。
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
输出 :
系统输出字符和字符串时,不输出单引号和双引号。注意
18
第四章 顺序结构程序设计
格式 scanf(" 格式控制字符串 " [ ,地址列表 ]);
说明 1 、 " 格式控制字符串 " 与 printf 函数类似。可以包含以下三种类型 的信息:
格式说明:与 printf 类似,以%开始,以一个格式字符结束;空白字符(空格、 \t 、 \n ):输入多个数据时的缺省分隔符,可以省略,在输入数据时可以以任一种空白字符分隔;普通字符(照原样输入)。
2 、 " 地址表列 " 是由若干个地址组成的列表,各地址之间用逗号分隔。如变量的地址表示为: & 变量名。
第四章 顺序结构程序设计
(五)、格式输入—— scanf 函数作用 从终端(或系统默认的输入设备)输入若干个任意类型的数据。
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
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
输出:
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 的值为空格。
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
第四章 顺序结构程序设计
四、顺序结构程序设计在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每条语句都会被执行到。
运行情况:
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
运行情况:
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 可以么?
25
第四章 顺序结构程序设计第四章 顺序结构程序设计
作 业
P88: 4.4, 4.6, 4.8, 4.9, 4.10