第3章C程序的基本控制结构

《第3章C程序的基本控制结构》由会员分享,可在线阅读,更多相关《第3章C程序的基本控制结构(106页珍藏版)》请在文档大全上搜索。
1、13.1 3.1 顺序结构顺序结构3.2 3.2 选择结构选择结构3.3 3.3 循环结构循环结构23.1.1 程序控制基本结构程序控制基本结构PAB真真假假 选选 择择 结结 构构 AB 顺顺 序序 结结 构构 PA假假真真 循循 环环 结结 构构 程序设计语言的三种基本控制结构: 顺序、选择、循环顺序、选择、循环。 3基本控制结构的特点:(1)整个结构只有一个入口和一个出口;(2)一个完整的结构可以嵌套在另外一个结构中,充当该结构的一个组成部分;(3)结构中的所有组成部分都应该能够被执行。4BA图图3.1 3.1 顺序结构执行流程顺序结构执行流程 顺序结构是最基本的控制结构,是由一组顺序执
2、行的程序块所组成。程序流程图如下所示。3.1.2 顺序结构顺序结构5 顺序结构是最基本的控制结构,是由一组顺序执行的程序块所组成。而最简单的程序块又是有若干语句所构成。 3.1.3 C程序的语句程序的语句 C C语言的语句可分为以下四类:语言的语句可分为以下四类:(1)(1)简单语句简单语句(2)(2)空语句空语句(3)(3)复合语句复合语句(4)(4)流程控制语句流程控制语句61.1.表达式语句表达式语句: : 由一个表达式加上一个分号构成。由一个表达式加上一个分号构成。如:如:A+; A+; x=1; x=1; p+=q p+=q* *4+5; 4+5; y=42?6:1; y=42?6:
3、1; 2.2.函数调用语句函数调用语句: : 由函数调用表达式加分号构成。由函数调用表达式加分号构成。 如:如:printf(“%d”,aprintf(“%d”,a); ); scanf(“%f”,&bscanf(“%f”,&b););73.3.空语句空语句 由一个分号表示,一般形式为:由一个分号表示,一般形式为: ; 空语句在语法上是一条语句,但执行时不做空语句在语法上是一条语句,但执行时不做任何操作。任何操作。 例如:例如: while(getchar()!=n) ; 8 语句1; 语句n; 4.4.复合语句复合语句 用一对花括号,把若干条语句括起来,就用一对花括号,把若干条语句括起来,就
4、形成了一条复合语句。形式如下:形成了一条复合语句。形式如下:复合语句多用于流程控制语句中。复合语句多用于流程控制语句中。可以是可以是 简单语句、空语简单语句、空语句、复合语句、流程控句、复合语句、流程控制语句制语句9例如,分析以下程序的执行结果。例如,分析以下程序的执行结果。void main() int a,b,temp; scanf(%d%d,&a,&b); temp=a; a=b; b=temp; printf(%d,%d,a,b); 输入:输入:14 8 输出:输出:8,1410一格式输出函数一格式输出函数 printf( ) 简介简介 printf( )用来按指定的格式输出数据,是内
5、存与显示器用来按指定的格式输出数据,是内存与显示器之间进行数据交换的主要手段。之间进行数据交换的主要手段。其一般调用格式为:其一般调用格式为: printfprintf(“(“格式控制字符串格式控制字符串”,输出项目清单,输出项目清单););例如,例如,int i=97;printf(“i=%d,%cn”, i, i );常量、变量常量、变量或表达式或表达式11格式控制字符串格式控制字符串 包括三类符号包括三类符号:1.1.普通字符:输出时按原样输出,用于提示信息的输出。普通字符:输出时按原样输出,用于提示信息的输出。2.2.转义字符转义字符:指明特定的操作。:指明特定的操作。(详见课本(详见
6、课本P15 P15 转义字符表)转义字符表) 常用的有常用的有: : n、t、a、” 等等。等等。 3.3.格式转换说明符:按规定的格式输出数据。格式转换说明符:按规定的格式输出数据。(详见课本(详见课本P34P34) 常用的有常用的有: : %d、%o、%x、%f、%c、%s、%等等。等等。12格式转换说明符格式转换说明符功功 能能%d (或或i) 以带符号的十进制形式输出整数以带符号的十进制形式输出整数%u 以无符号的十进制形式输出整数以无符号的十进制形式输出整数%o 以八进制无符号形式输出整数以八进制无符号形式输出整数%x (或或X) 以十六进制无符号形式输出整数以十六进制无符号形式输出
7、整数%f 以小数形式输出浮点数,隐含输出以小数形式输出浮点数,隐含输出6位小数位小数%e(或或E) 以指数形式以指数形式 -m.ddddde+nn 输出浮点数输出浮点数%c 输出一个字符输出一个字符%s 输出字符串输出字符串% 输出百分号(输出百分号(%) 13例如,分析以下程序段的输出结果。例如,分析以下程序段的输出结果。int a=12,b=25;floatx=12.5;printf(“a=%d,b=%dnx=%fn”,a,b,x);printf(“Hello!”);输出结果:输出结果: a=12, b=25 x=12.500000 Hello!14格式转换说明符的修饰:格式转换说明符的修
8、饰:(1 1)% m .n type% m .n type其中:其中:m m 规定输出字段的最小宽度;规定输出字段的最小宽度;n n 规定输出最小有效位数。规定输出最小有效位数。例例1 1:printf(“%3d,%6d,%6.5dn”,1234,1234,1234);printf(“%3d,%6d,%6.5dn”,1234,1234,1234); 输出结果为:输出结果为:1234, 1234, 01234例例2:printf(“%10f,%10.2f,%.2fn”,123.456,123.456,123.4); 输出结果为:输出结果为:123.456000, 123.46,123.4015注
9、意注意: :如果在如果在“%”%”和和 m.nm.n 之间加一个之间加一个 0 0,则在规定字段宽,则在规定字段宽度度 内左边多余的空位以内左边多余的空位以 0 0 来填充,而不是空格。来填充,而不是空格。例例3:3: printf(“%04d,%010.2f,%010.3en”,125,12.3,123.5); 输出结果为:输出结果为:0125, 0000012.30, 001.24e+02(2) % l|htype(2) % l|htype l- l-代表输出长整型或双精度型数据的值。代表输出长整型或双精度型数据的值。 h-h-代表输出短整型数据的值。代表输出短整型数据的值。例如,例如,p
10、rintf(“%d,8ldn”,7000,70000l);printf(“%15.8lfn”,12.34567889);16思考:思考:printf(“%d,%u,%o,%xn”,-1,-1,-1,-1); 的输出结果?的输出结果?输出结果为:输出结果为:-1,65535,177777,ffff-1,65535,177777,ffff-1-1在计算机内存中的存储形式:在计算机内存中的存储形式:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1按二进制补码形式按二进制补码形式17二、字符输出函数二、字符输出函数使用使用格式格式:putchar( c )函数功能:向标准输出设备输出一个
11、字符,并返回输出字符函数功能:向标准输出设备输出一个字符,并返回输出字符 的的ASCIIASCII值。值。例如:例如: # include main( ) int i=97; int ch=a; putchar(i); putchar(n); putchar(ch);程序输出结果:程序输出结果:a aa a参数可以是参数可以是字符型常量字符型常量、变量变量或或0 0 255255的整型常量的整型常量、变量变量181 1. 格式输入函数格式输入函数 scanfscanf( ) ( ) 简介简介 用来按用户指定格式接收输入数据,是内存与显示器进行数据交换的主要手段。其一般调用形式为: scanfs