1、2010年3月13日星期日,教师:赵军富,C 语言程序设计,第三章 顺序结构程序设计,2010年3月13日星期日,教师:赵军富,C 语言程序设计,3.1 C语句概述 3.2 C程序基本结构 3.3 数据输入、输出 3.4 程序实例,第三章 顺序结构程序设计,2010年3月13日星期日,教师:赵军富,C 语言程序设计,C程序的特点: 1、一个C程序由若干函数组成 2、程序中有且只有一个主函数main( ) 3、程序的运行从主函数开始 4、函数由函数首部和函数体组成 5、函数体由说明语句和执行语句组成 6、C中语句有四类,控制语句 表达式语句 空语句 复合语句,3.1 C语句概述,2010年3月1
2、3日星期日,教师:赵军富,C 语言程序设计,结构化程序有三种基本结构,顺序结构,选择结构,循环结构,语句执行的顺序与程序书写的顺序一致。,根据条件进行判断,若条件成立,执行A,否则执行B,当型循环:当条件成立时,反复执行A条件不成立,停止,直到型循环:重复执行动作A, 直到某一条件成立时,停止,3.2 C程序基本结构,三种基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,一、顺序结构,main( ) int a,b,c;a=5;b=6;c=a+b; ,1. 程序执行的顺序和语 句书写的顺序一致,2.有一个数据入口 一个数据出口,特点:,3.2 C程序基本结构,2010年3月
3、13日星期日,教师:赵军富,C 语言程序设计,二、选择结构,条件,A,B,YES,NO,1、当条件满足时,执行语句A,否则,执行语句B,2、有一个数据入口一个数据出口,例如:键盘输入一个整数,判断其正负?,int a;,a,a0,if(a0) printf(“a为正数”); else printf(“a为负数”);,语句A,语句B,特点:,3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,三、循环结构,Y,N,求1100的自然数之和,X=100,s=0,x=1,语句,1当型循环,1. 若条件满足,重复执行语 句内容,否则,退出循环,条件,2. 一个数据入口一个
4、数据出口,s=s+x; x=x+1;,语句,S,条件不满足,不执行任何语句,特点:,3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,语句,N,Y,求1+2+3+n =1000的最大的n,例:,s=1+2+3 n=,n=1,s=0;,s=s+n n=n+1,S=1000,n=1 s=0,语句,2 直 到 型 循 环,特点:不论条件是否满足,语 语句至少执行一次。,条件,3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,四、 流程控制语句,1、if( ) else 条件语句 2、for( ) 循环语句 3、while( ) 循环
5、语句 4、do while() 循环语句 5、continue 继续语句 6、break 间断语句 7、switch( ) 开关语句 8、 goto 转向语句 9、return 返回语句,控制语句的作用:在于控制程序的走向(流程),3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,五、表达式语句,定义:表达式加分号就构成了表达式语句。,赋值语句,X = 5 ;,赋值表达式,分号,+,=,函数调用表达式:printf(“fdks”) 函数调用语句: printf(“fdks”) ;,算术表达式:x+y 算术表达式语句: x+y ;,合法的语句,3.2 C程序基本
6、结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,六、复合语句和空语句,1、复合语句:用一对 括起的一条或多条语句。,注意:(1) 复合语句作为一条语句使用(2) 花括号外不必加分号,2、空语句:有而且只有由一个分号组成,不执行任何操作。,main( ) int a=10,b=20,c;if(ba) c=a+b; printf(“%d”,c); Else; ,控 制 语 句,表达式语句,复合语句,函数调用语句,空语句,3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,例如:若a的值等于100,则成绩为优秀,if(a=100) .,if(a=10
7、0),赋值运算,关系运算,格式:变量=表达式,功能:将表达式的值赋给左边的变量(存入该变量的内存单元中)。,说明:1.左边是以变量名为标识的内存单元。2.当右边类型与变量类型不符时,先进行类型转换,再赋值。3.左边必须是变量,不允许是常量或表达式。,k=1 ; k+1=1; 1=k ;,七 、赋值语句,3.2 C程序基本结构,2010年3月13日星期日,教师:赵军富,C 语言程序设计,3.3 数据的输入输出,数据输入输出简单概述 1、C中没有专门的输入输出语句; 2、输入输出操作通过输入、输出函数实现; 3、本节介绍两个基本的输出函数; 4、字符输出函数; 5、格式输出函数。,2010年3月1
8、3日星期日,教师:赵军富,C 语言程序设计,一 、字符输出函数,1 格式: putchar(字符变量),2 功能 :在标准输出设备上,输出指定的字符.,3 说明 :,* 一次调用只能输出一个字符 * 加上分号成为字符输出语句 * 使用时在程序开头用,#include,#include main( ) char c=a;putchar( c); ,思考,char c1,c2,c3; c1=a;c2=b;c3=c; putchar(c1); putchar(c2); putchar(c3);,a b c,abc,输出多个字符怎样排列?,3.3.1 数据的输出,2010年3月13日星期日,教师:赵军
9、富,C 语言程序设计,二 格式输出函数,1 格式:printf(格式控制串,变量列表) 2 功能:从标准输出设备上,按指定的格式输出对应的变量.,%d: 按十进制整数形式输出变量的值 %o:按八进制整数形式输出变量的值 %x:按十六进制整数形式输出变量的值 %ld: 按十进制整数形式输出长整型变量的值 %u: 输出无符号整数变量 %f:输出单精度浮点变量的值 %e: 按指数形式输出浮点变量的值,格 式 控 制 串,3.3.1 数据的输出,2010年3月13日星期日,教师:赵军富,C 语言程序设计,%g: 输出f和e格式中宽度较小的格式,不输出无意义的0 %c: 输出字符变量 %s: 输出一个字
10、符串,%md 输出整数据占m个字符位,右对齐 %-md 输出整数据占m个字符位,左对齐 %m.nf 输出数据占m个字符位,小数点后留n位,右对齐 %-m.nf 输出数据占m个字符位,小数点后留n位,左对齐 %m.ns 输出字符串占m个字符位,仅输出前n个字符,右对齐 注 意:这里的留指以四舍五入的方法保留,float x=12.345; Printf(“%f”,x); 12.345000 Printf(“%e”,x); 1.2345e+01 Printf(“%g”,x); 12.345,3.3.1 数据的输出,2010年3月13日星期日,教师:赵军富,C 语言程序设计,1. 格式控制串的控制符
11、号与变量表要一一对应,即:类型相同,个数相等 printf(“%d,%d ,%dn”,a,b); 输出?,2. 格式控制符号尽量用小写字母,%e和%E的区别:.78e+0016.78E+001,3. 格式控制符号之外的符号均照原样显示,printf(“a=%d,b=%d”,a,b);输出:a=3,b=5,4. 若需显示百分号,格式为:%,%,当a为3,b为5时,5. 如果实际数据所占字符位大于指定的域宽,按实际输出,特点:,3.3.1 数据的输出,2010年3月13日星期日,教师:赵军富,C 语言程序设计,例如:int a=5,b=8printf(“%d,%d n”,a,b);,5,8,pri
12、ntf(“a=%d,b=%dn”,a,b);,a=5,b= 8,printf(“%5d%5dn”,a,b);,5 8,5之前空4个字符位,printf(“Turbo C”);,Turbo C,3.3.1 数据的输出,2010年3月13日星期日,教师:赵军富,C 语言程序设计,功能:从标准输入设备上读一个字符,一、字符输入函数,格式1:getch() 格式2:getche() 格式3:getchar(),输入字符,回车后才读入,输入字符,并回显,不必回车,输入字符,不回显,不回车,区别,#include,格式3,格式1,2,例如:大写字符和小写字符的转换,3.3.2 数据的输入,2010年3月1
13、3日星期日,教师:赵军富,C 语言程序设计,main() char c;c=getchar( );putchar(c); ,从键盘输入一个字符,从屏幕输出一个字符,例如:,3.3.2 数据的输入,2010年3月13日星期日,教师:赵军富,C 语言程序设计,二 格式输入函数,1 . 格式:scanf(格式控制串,地址表列),2. 功能:按照格式控制参数的要求,从终端上把数据送到地址参数所指定的内存空间中,3 . 格式控制符号 :同printf(),4. 要求:类型相同,个数相等,int a,b;,scanf(“%d,%d”, ,&b,&a,&,输入:5 , 8,5,8,3.3.2 数据的输入,2
14、010年3月13日星期日,教师:赵军富,C 语言程序设计,说明:,5. 输入时不允许规定精度,可以指定域宽,int a ; scanf(“%3d”,float x; scanf(“%8.2f ”,(不正确),6. 输入时,遇下列情况结束,* 回车,空格 * 宽度结束 * 非法输入,int K; scanf(“%3d”, 输入:123456789 K为: 123,3.3.2 数据的输入,2010年3月13日星期日,教师:赵军富,C 语言程序设计,main( ) int a; float b,c;scanf(“%2d%3f%4f”, ,输入:12345678987654321,输出?,a=12,b
15、=345.000000,c=6789.000000,12,345,6789,3.3.2 数据的输入,2010年3月13日星期日,教师:赵军富,C 语言程序设计,6. 格式控制符号之外的符号照原样输入,int a,b;,scanf(“%d%d”, 3 5,scanf(“%d,%d”, 3, 5,scanf(“a=%d,b=%d”, 输入: a=3,b=5 ,char c1,c2,c3; scanf(“%c%c%c”, ,A B C,(1)输入:ABC (2) 输入:A B C,?,3.3.2 数据的输入,2010年3月13日星期日,教师:赵军富,C 语言程序设计,3.4 顺序结构程序实例,例1:
16、x=10.2,y=20.5, 如何交换两个变量的值?,10.2,20.5,x,y,20.5,10.2,20.5,10.2,t,10.2,10.2,20.5,main( ) float x, y, t; scanf(“%f,%f”, ,x,y,2010年3月13日星期日,教师:赵军富,C 语言程序设计,例2:计算表达式:Z=3X+5Y-8,Main( )int X,Y,Z;scanf(“%d ,%d”,3.4 顺序结构程序实例,2010年3月13日星期日,教师:赵军富,C 语言程序设计,例3:求ax2+bx +c=0方程的根。a,b,c由键盘输入,设b2 4ac 0。,开始,输入a,b,c,p=
17、,q =,结束,= p+q,= p-q,#include main( ) float a, b, c, disc, x1, x2, p, q;scanf(“a=%f, b=%f, c=%f”, ,3.4 顺序结构程序实例,2010年3月13日星期日,教师:赵军富,C 语言程序设计,一、C中的语句有四类 二、C程序的基本结构有三种 三、字符输入输出函数(一次一个字符) 四、格式输入输出函数(scanf,printf) 五、格式控制符的使用:%m.nf, %-m.nf, %ms,%-ms等,本章小结,2010年3月13日星期日,教师:赵军富,C 语言程序设计,二 、 补充习题:1、以下程序的输出结
18、果是: ( )main( ) printf(“n*s1=%16s*”, “China_Beijing”);printf(“n*s2=%-5s*”, “chi”); A、*s1=China_Beijing_ _ _ * B、 *s1=China_Beijing_ _ _ *s2=*chi* *s2=chi_ _* C、*s1=*_ _ _China_Beijing * D、 *s1=_ _ _China_Beijing *s2= _ _ chi* *s2= chi _ _ *,一、课后习题(P61 的6、7、8、9题),习题,D,2010年3月13日星期日,教师:赵军富,C 语言程序设计,2、根
19、据定义和数据的输入方式,下列输入语句正确的是: ( )已有定义: float f1, f2 ; 数据的输入形式为: 4.523.5 A、scanf(“%f, %f”, 3、已知ch是字符型变量,下面不正确的赋值语句是: ( )A、ch=a+b B、ch=0 C、ch=7+ 9 D、ch=7+94、设x、y、z为整型变量,则运行以下语句x=(y=(z=10)+5)-5后: ( )A、 x=10 B、x=10 C、 x=10 D、 x=10y=15 y=10 y=10 y=5z=10 z=10 z=15 z=5,A,B,D,习题,2010年3月13日星期日,教师:赵军富,C 语言程序设计,5、以下程序的输出结果为:_。main( ) printf(“%f, %4.3fn”, 3.14, 3.1415);,3.140000, 3.142,习题,