《《C程序设计简明教程》-王晓东-电子教案 第3章 顺序结构》由会员分享,可在线阅读,更多相关《《C程序设计简明教程》-王晓东-电子教案 第3章 顺序结构(42页珍藏版)》请在金锄头文库上搜索。
1、1/42,3.1 C语言的基本语句,3.2 数据输入与输出,3.3 顺序程序设计举例,第3章 顺序结构程序设计,2/42,C是模块化程序设计语言,C程序结构,3.1 C语言的基本语句,3/42,顺序结构即按照语句书写顺序执行的程序结构。,顺序结构,顺序结构,顺序结构是程序设计语言最基本的结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行。,C语言程序的三种基本结构,C语言提供三种结构化语句来控制程序的执行流程:,4/42,选择结构,选择结构又称为分支结构,是指有条件地选择要执行的程序段。,选择结构示意图,5/42,循环结构,当条件成立(为“真”或非0)时,反复执行程序段A,否则不执
2、行程序段A。,1. 当型循环结构,6/42,先执行程序段A,再判断条件是否为“真”(非0);若为“假”(0)再执行A,如此反复,直到条件为“真”(非0),为止。,2. 直到型循环结构,7/42,C语言的语句概述:,程序对数据的处理是通过“语句”的执行来实现的。,一条语句完成一项操作(或功能)。,一个为实现特定目的的程序应包含若干条语句。,8/42,C语句:以“;”作分隔符,编译后产生机器指令. C语句分类:,4、空语句: ; 执行该语句不做任何操作,1、程序控制语句(9种):,如 total=total+limit; a=3; func( ); printf(“Hello,world!n”);
3、,3、表达式语句:表达式加分号构成。,2、函数调用语句:由一次函数调用加一个分号构成,5、复合语句:用 括起来的一组语句 一般形式: 数据说明部分; 执行语句部分; 说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,Y = sin ( 1.12); Y1 = sin ( x ); Y2 = 3*sin (x+1.12 ) + sqr(x); Y3 = sin ( sqrt(x+1.12) );,9/42,例3-1:,#incl
4、ude stdio.h main() int x=1,y=2; int x=2; int x=3; printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); ,程序运行结果为: x=3, y=2 x=2, y=2 x=1, y=2,10/42,3.2 数据的输入与输出,C语言本身不提供输入/输出语句。,C语言的输入/输出功能由C语言的标准I/O库函数提供。 #include ,C语言的输入/输出库函数名称不是保留字(或称关键字)。如printf,scanf。,11/42,#include main() int
5、 c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a); ,运行结果:A B,例,3.2.1 字符的输入与输出 字符输出函数,格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1),12/42,例3-2:,#include ,程序运行结果为: ABBC,main( ) int a=65; char b=B; putchar(a); putchar(65+1); putchar(b); putchar(B+1); ,包含函数putchar的头
6、文件,13/42,格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1),字符输入函数,例,#include main() int c; printf(“Enter a character:“); c=getchar(); printf(“%c-hex%xn“,c,c); ,运行结果: Enter a character:A A-hex41,14/42,例3-3:,#include /*说明函数getchar的原型包含在哪个文件中*/,void main() int a; char b; a=getchar(); b=getchar(); pr
7、intf(“a=%cta=%dtb=%ctb=%dn“,a,a,b,b); ,从键盘输入字符, 该字符的ASCII编码值赋给a,程序运行情况如下: 13 a=1 a=49 b=3 b=51,15/42,注意:,调用函数getchar时,程序执行被中断,等待用户从键盘输入数据。当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。,函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键,如上例所示。,无论输入的是英
8、文字母或标点符号还是数字,都是作为字符输入 。,16/42,3.2.2 格式输出函数,格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1),输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明:%修饰符格式字符,用于指定输出格式 普通字符或转义序列:原样输出,17/42,18/42,格式说明的形式:,%+/-m.n|h|Ltype,19/42,int a=567;printf ( “%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf
9、(“%o”,a);,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC”);,float a=567.789;printf(“%e”,a);,float a=567.789;printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.677890e+02,567.789000,567.789,%,说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致
10、,自动按指定格式输出,例 main() unsigned int u=65535; printf(”u=%dn“,u); 输出结果:u=-1,例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);,例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 输出结果: 3 4 a=3, b=4,20/42,例如:,printf (“%dn“,100);,printf(“%5dn“,100);,printf(“%8dn%8d,100,100*100);,
11、21/42,例如:,printf (“%on“,-1);,printf (“%x,%Xn“,-1);,printf (“%u,%d“,-1);,22/42,printf (“%4c,%cn“,A, A);,printf (“%-8s,%8.2s“, “ Name “, “ Name “);,例如:,23/42,printf (“%fn%10.3fn“,100.7654321, 100.7654321);,printf (“%en%10.9e“, 100.7654321,100.7654321);,例如:,24/42,例 int a=1234; float f=123.456; char ch=
12、a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);,运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a,例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);,运行结果:Hello,world! Hello,world! Hello Hello Hel,例 m.n,25/42,例 int a
13、=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c);,运行结果:1234,1234 123.46,123.5 Hello,Hel,例,26/42,例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f);
14、,例 0 、+,例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a);,例 #,例 long a=65536; printf(“%d,%8ldn”,a, a);,例 l,/00001234,/0000123.46,/000+1234,/000+123.56,/173,0173,7B,0X7B,/0, 65536,27/42,#include“stdio.h“ void main() int i=8; printf(“%dt%dt%dn“,+i,-i,i-); ,例3-5:,输出结果为: 7 6 8,28/42,#include “stdio.h“ void
15、 main() int a=3,b=4; printf(“%dn“,(a=b,b,a+3); /*输出序列是一个逗号表达式*/ printf(“%dn“,a=b,b,a+3); /*输出第一个参数变量a的值*/ ,例3-6:,输出结果为: 7 4,29/42,3.2.3 格式输入函数,格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”, 输入:10 则 a=10,例 scanf(“%x”, 输入:11 则 a=17,30/42,格式控制字符:,(1)组成:,普通字符、格式说明。,普通字符:,格式说明:,键盘输入时,要按原样输入,一般起分隔或提示作用。,但分隔或提示作用若由用户输入,就失去了本来的意义,一般采用printf来实现。,% * m h|l type,31/42,格式字符(type)一鉴表:,32/42,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”, 输入 19991015 则1999yy, 10 mm, 15 dd,例 scanf(“