最简单的C程序设计-顺序程序设计.ppt

上传人:公**** 文档编号:571316853 上传时间:2024-08-10 格式:PPT 页数:64 大小:1.07MB
返回 下载 相关 举报
最简单的C程序设计-顺序程序设计.ppt_第1页
第1页 / 共64页
最简单的C程序设计-顺序程序设计.ppt_第2页
第2页 / 共64页
最简单的C程序设计-顺序程序设计.ppt_第3页
第3页 / 共64页
最简单的C程序设计-顺序程序设计.ppt_第4页
第4页 / 共64页
最简单的C程序设计-顺序程序设计.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《最简单的C程序设计-顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《最简单的C程序设计-顺序程序设计.ppt(64页珍藏版)》请在金锄头文库上搜索。

1、1C语言的数据类型语言的数据类型(Data Type) 字符型(字符型(字符型(字符型(charchar) 整型整型整型整型(short,int,long,unsigned(short,int,long,unsigned) 基本类型基本类型基本类型基本类型 数值类型数值类型数值类型数值类型 单精度型(单精度型(单精度型(单精度型(floatfloat) 实型实型实型实型 双精度型(双精度型(双精度型(双精度型(doubledouble) 枚举类型(枚举类型(枚举类型(枚举类型(enumenum) 数据类型数据类型数据类型数据类型 数组类型(数组类型(数组类型(数组类型( ) 构造类型构造类型构

2、造类型构造类型 结构体类型(结构体类型(结构体类型(结构体类型(structstruct) 共用体类型(共用体类型(共用体类型(共用体类型(unionunion) 指针类型(指针类型(指针类型(指针类型(* *) 空类型(空类型(空类型(空类型(voidvoid)2流程图流程图流程图是描述算法过程的一种图形方法。直观、形流程图是描述算法过程的一种图形方法。直观、形流程图是描述算法过程的一种图形方法。直观、形流程图是描述算法过程的一种图形方法。直观、形象、易于理解,美国国家标准化协会规定的流程图象、易于理解,美国国家标准化协会规定的流程图象、易于理解,美国国家标准化协会规定的流程图象、易于理解,

3、美国国家标准化协会规定的流程图表示的基本图形符号如下表示的基本图形符号如下表示的基本图形符号如下表示的基本图形符号如下: :开始或结束框开始或结束框 输入输出框输入输出框 条件判断框条件判断框 处理框处理框 流程线流程线3程序的三种基本结构程序的三种基本结构l l结构化程序设计的一个基本思想是结构化程序设计的一个基本思想是结构化程序设计的一个基本思想是结构化程序设计的一个基本思想是任何算法任何算法任何算法任何算法和程序都可以归结为三种基本结构:和程序都可以归结为三种基本结构:和程序都可以归结为三种基本结构:和程序都可以归结为三种基本结构:顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构

4、顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构以此三种基本结构,可以通过适当的组合、嵌套来以此三种基本结构,可以通过适当的组合、嵌套来以此三种基本结构,可以通过适当的组合、嵌套来以此三种基本结构,可以通过适当的组合、嵌套来构造出各种复杂的程序,并能保证结构清晰、可读构造出各种复杂的程序,并能保证结构清晰、可读构造出各种复杂的程序,并能保证结构清晰、可读构造出各种复杂的程序,并能保证结构清晰、可读性强。性强。性强。性强。4顺序结构顺序结构:顺序结构:顺序结构:顺序结构:自上向下,无分支,无转移自上向下,无分支,无转移自上向下,无分支,无转移自上向下,无分支,无转移顺序结构是最简单、常用

5、结构。算法的每一个操作顺序结构是最简单、常用结构。算法的每一个操作顺序结构是最简单、常用结构。算法的每一个操作顺序结构是最简单、常用结构。算法的每一个操作都是按从上到下的线性次序来执行的。都是按从上到下的线性次序来执行的。都是按从上到下的线性次序来执行的。都是按从上到下的线性次序来执行的。 顺序结构流程图顺序结构流程图 AB5选择结构选择结构选择结构选择结构:有分支,需条件判断:有分支,需条件判断:有分支,需条件判断:有分支,需条件判断选择结构又称为选择结构又称为选择结构又称为选择结构又称为分支结构分支结构分支结构分支结构,根据给出的条件,选择执行一,根据给出的条件,选择执行一,根据给出的条件

6、,选择执行一,根据给出的条件,选择执行一个分支。因此,在选择结构中,必然包含个分支。因此,在选择结构中,必然包含个分支。因此,在选择结构中,必然包含个分支。因此,在选择结构中,必然包含条件判断条件判断条件判断条件判断,它是,它是,它是,它是需要过一个条件判断的操作,来选择执行一个分支的算法需要过一个条件判断的操作,来选择执行一个分支的算法需要过一个条件判断的操作,来选择执行一个分支的算法需要过一个条件判断的操作,来选择执行一个分支的算法结构。结构。结构。结构。选择结构流程图选择结构流程图选择结构流程图选择结构流程图条件?条件?A AB B不成立不成立成立成立选择结构6循环结构循环结构:循环结构

7、:循环结构:循环结构: 有转移,某些语句可重复执行有转移,某些语句可重复执行有转移,某些语句可重复执行有转移,某些语句可重复执行循环结构又称重复执行结构,它根据给定的条件,判断是否循环结构又称重复执行结构,它根据给定的条件,判断是否循环结构又称重复执行结构,它根据给定的条件,判断是否循环结构又称重复执行结构,它根据给定的条件,判断是否重复执行重复执行重复执行重复执行某一组操作,有两种循环结构:某一组操作,有两种循环结构:某一组操作,有两种循环结构:某一组操作,有两种循环结构:1 1)当循环当循环当循环当循环:先判断条件先判断条件先判断条件先判断条件,若成立,若成立,若成立,若成立再执行循环的语

8、句再执行循环的语句再执行循环的语句再执行循环的语句,再返,再返,再返,再返回初始判断;若不成立则跳过循环语句。回初始判断;若不成立则跳过循环语句。回初始判断;若不成立则跳过循环语句。回初始判断;若不成立则跳过循环语句。循环结构流程图循环结构流程图 循环体语句循环体语句循环体语句循环体语句真真真真假假假假条件条件条件条件7循环结构流程图循环结构流程图循环结构流程图循环结构流程图循环体循环体TF条件?条件?2 2)直到循环:首先执行一组要循环的语句直到循环:首先执行一组要循环的语句直到循环:首先执行一组要循环的语句直到循环:首先执行一组要循环的语句,然后再判,然后再判,然后再判,然后再判断条件是否

9、成立,若成立就返回,重复执行这组循环体断条件是否成立,若成立就返回,重复执行这组循环体断条件是否成立,若成立就返回,重复执行这组循环体断条件是否成立,若成立就返回,重复执行这组循环体并继续判断条件;若不成立,则跳出此循环语句,向后并继续判断条件;若不成立,则跳出此循环语句,向后并继续判断条件;若不成立,则跳出此循环语句,向后并继续判断条件;若不成立,则跳出此循环语句,向后执行。执行。执行。执行。8C语句概述语句概述l l简单的简单的简单的简单的C C程序结构程序结构程序结构程序结构#include main() int num ; num=1; printf(“num is %d n”,num

10、);函函数数头头编译预处理编译预处理编译预处理编译预处理函数名函数名函数名函数名函函数数体体声明语句声明语句声明语句声明语句赋值语句赋值语句赋值语句赋值语句函数调用函数调用函数调用函数调用语句语句语句语句9C程序程序源程序文件源程序文件1源程序文件源程序文件2源程序文件源程序文件n预处理命令预处理命令函数函数n函数函数1数据声明数据声明函数首部函数首部函数体函数体数据声明数据声明执行语句执行语句C C程序结构图程序结构图程序结构图程序结构图10l lC C语句分为以下语句分为以下语句分为以下语句分为以下5 5类:类:类:类:C语句概述语句概述控制语句控制语句控制语句控制语句函数调用语句函数调用

11、语句函数调用语句函数调用语句表达式语句表达式语句表达式语句表达式语句空语句空语句空语句空语句复合语句复合语句复合语句复合语句5 5类类类类11C语句概述语句概述l l控制语句。完成一定的控制功能。控制语句。完成一定的控制功能。控制语句。完成一定的控制功能。控制语句。完成一定的控制功能。1 1 if() if() elseelse (条件语句,用来实现选择结构)(条件语句,用来实现选择结构)(条件语句,用来实现选择结构)(条件语句,用来实现选择结构)2 2 for()for() (循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构

12、) 3 3 while() while() (循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构)4 4 do do while(); while(); (循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构)(循环语句,用来实现循环结构)5 5 continue continue (结束本次循环)(结束本次循环)(结束本次循环)(结束本次循环)6 break 6 break (终止执行终止执行终止执行终止执行swtichswtich或循环语句)或循环语句)或循环语句)或循环语句)7 7 swi

13、tch() ( switch() (多分支选择结构)多分支选择结构)多分支选择结构)多分支选择结构)8 goto 8 goto 转向语句转向语句转向语句转向语句, ,现已基本不使用现已基本不使用现已基本不使用现已基本不使用9 9 return return (从函数返回语句)从函数返回语句)从函数返回语句)从函数返回语句)12C语句概述语句概述l l函数调用语句。函数调用语句。函数调用语句。函数调用语句。由一个函数调用加一个分号构由一个函数调用加一个分号构由一个函数调用加一个分号构由一个函数调用加一个分号构成一个语句。成一个语句。成一个语句。成一个语句。 printfprintf(This i

14、s a C statement.)(This is a C statement.); ; scanf scanf(%d%d,&a,&b)(%d%d,&a,&b); ;13C语句概述语句概述l l表达式语句。表达式语句。表达式语句。表达式语句。由一个由一个由一个由一个表达式表达式表达式表达式加加加加一个分号一个分号一个分号一个分号构成。构成。构成。构成。C C语言中有使用价值的表达式语句主要有语言中有使用价值的表达式语句主要有语言中有使用价值的表达式语句主要有语言中有使用价值的表达式语句主要有3 3种:种:种:种:(1)(1)赋值语句。赋值语句。赋值语句。赋值语句。 例如:例如:例如:例如: s

15、um=a+b; sum=a+b; (2)(2)自动增自动增自动增自动增1 1、减、减、减、减1 1运算符构成的表达式语句。例如:运算符构成的表达式语句。例如:运算符构成的表达式语句。例如:运算符构成的表达式语句。例如: i+;i+; i=i+1 i=i+1 (是表达式,不是语句)(是表达式,不是语句)(是表达式,不是语句)(是表达式,不是语句) i=i+1 i=i+1 ; ;(是语句)(是语句)(是语句)(是语句)(3)(3)逗号表达式语句。例:逗号表达式语句。例:逗号表达式语句。例:逗号表达式语句。例: x=1,y=2;x=1,y=2; 14C语句概述语句概述l l空语句。空语句。空语句。空

16、语句。只有一个分号的语句只有一个分号的语句只有一个分号的语句只有一个分号的语句 (什么也不做)。(什么也不做)。(什么也不做)。(什么也不做)。 一般和后面章节所讲循环语句结合使用起到延时一般和后面章节所讲循环语句结合使用起到延时一般和后面章节所讲循环语句结合使用起到延时一般和后面章节所讲循环语句结合使用起到延时作用。作用。作用。作用。15C语句概述语句概述l l复合语句。复合语句。复合语句。复合语句。用一对用一对用一对用一对 括起来的语句。括起来的语句。括起来的语句。括起来的语句。 例:例:例:例: z=x+y; z=x+y; t=z/100; t=z/100; printf(“%f”,t)

17、; printf(“%f”,t); 16赋值表达式和赋值语句赋值表达式和赋值语句赋值表达式赋值表达式赋值表达式赋值表达式赋值语句是由赋值表达式加上一个分号构成。赋值语句是由赋值表达式加上一个分号构成。赋值语句是由赋值表达式加上一个分号构成。赋值语句是由赋值表达式加上一个分号构成。例:例:例:例:a=100 a=100 赋值表达式赋值表达式赋值表达式赋值表达式 a=100; a=100; 赋值语句赋值语句赋值语句赋值语句1.1.赋值运算符赋值运算符赋值运算符赋值运算符l l“ “” ”是赋值运算符是赋值运算符是赋值运算符是赋值运算符l l作用是将一个数据赋给一个变量作用是将一个数据赋给一个变量作

18、用是将一个数据赋给一个变量作用是将一个数据赋给一个变量l l也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋给一个变量。 例如:例如:例如:例如:sum=a+bsum=a+b17赋值表达式和赋值语句赋值表达式和赋值语句2.2.复合的赋值运算符复合的赋值运算符复合的赋值运算符复合的赋值运算符在赋值符在赋值符在赋值符在赋值符“ “” ”之前加上其他运算符,可以构成复合的运算之前加上其他运算符,可以构成复合的运算之前加上其他运算符,可以构成复合的运算之前加上其他运算符,可以构成复合的运算符符符符l la a+ += =3

19、3 等价于等价于等价于等价于 a a= =a+3a+3l lx x* *= =y+8 y+8 等价于等价于等价于等价于 x=x*(y+8)x=x*(y+8)l lx x%= =3 3 等价于等价于等价于等价于 x=x%3 x=x%3 l lx x%= =y+3 y+3 等价于等价于等价于等价于 ? ?凡是二元运算符都可以与赋值符一起组合成复合赋值运算符凡是二元运算符都可以与赋值符一起组合成复合赋值运算符凡是二元运算符都可以与赋值符一起组合成复合赋值运算符凡是二元运算符都可以与赋值符一起组合成复合赋值运算符(+=+=、-=-=、* *= =、/=/=、%=%=等)等)等)等) 。183.3.赋值

20、表达式的写法赋值表达式的写法赋值表达式的写法赋值表达式的写法赋值表达式:赋值表达式:赋值表达式:赋值表达式:将一个变量和一个表达式连接起来的式子。将一个变量和一个表达式连接起来的式子。将一个变量和一个表达式连接起来的式子。将一个变量和一个表达式连接起来的式子。 例:例:例:例:a=5a=5赋值表达式求解的过程是:赋值表达式求解的过程是:赋值表达式求解的过程是:赋值表达式求解的过程是:先求赋值运算符右侧的表达式的先求赋值运算符右侧的表达式的先求赋值运算符右侧的表达式的先求赋值运算符右侧的表达式的值,然后赋给赋值符左侧的变量。值,然后赋给赋值符左侧的变量。值,然后赋给赋值符左侧的变量。值,然后赋给

21、赋值符左侧的变量。例如例如例如例如: : 赋值表达式赋值表达式赋值表达式赋值表达式“ “a=3*5a=3*5” ”的值为的值为的值为的值为1515,执行表达式后,变量,执行表达式后,变量,执行表达式后,变量,执行表达式后,变量a a的值也是的值也是的值也是的值也是1515。注意注意注意注意: :一个表达式应该有一个值。一个表达式应该有一个值。一个表达式应该有一个值。一个表达式应该有一个值。赋值表达式和赋值语句赋值表达式和赋值语句19注意:注意:注意:注意:左值左值左值左值 (lvalue) : (lvalue) : 赋值运算符左侧的标识符。赋值运算符左侧的标识符。赋值运算符左侧的标识符。赋值运

22、算符左侧的标识符。右值右值右值右值 (rvalue) :(rvalue) :出现在赋值运算符右侧的表达式出现在赋值运算符右侧的表达式出现在赋值运算符右侧的表达式出现在赋值运算符右侧的表达式 。 l l变量变量变量变量可以作为左值可以作为左值可以作为左值可以作为左值l l而而而而表达式表达式表达式表达式就不能作为左值就不能作为左值就不能作为左值就不能作为左值( (如如如如a+b)a+b)l l常量常量常量常量也不能作为左值也不能作为左值也不能作为左值也不能作为左值赋值表达式和赋值语句赋值表达式和赋值语句a=ba=5a=b+c203.3.赋值表达式的写法赋值表达式的写法赋值表达式的写法赋值表达式的

23、写法赋值表达式中的赋值表达式中的赋值表达式中的赋值表达式中的“ “表达式表达式表达式表达式” ”,又可以是一个赋值表达式。,又可以是一个赋值表达式。,又可以是一个赋值表达式。,又可以是一个赋值表达式。例如例如例如例如: : a=(b=5) a=(b=5) 分析分析分析分析: :括弧内的括弧内的括弧内的括弧内的b=5b=5是一个赋值表达式,它的值等于是一个赋值表达式,它的值等于是一个赋值表达式,它的值等于是一个赋值表达式,它的值等于5 5。执行表达式执行表达式执行表达式执行表达式a=(b=5)a=(b=5)相当于执行:相当于执行:相当于执行:相当于执行:b=5b=5和和和和a ab b两个赋值表

24、达式。两个赋值表达式。两个赋值表达式。两个赋值表达式。赋值表达式和赋值语句赋值表达式和赋值语句a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)自右向左自右向左自右向左自右向左213.3.赋值表达式的写法赋值表达式的写法赋值表达式的写法赋值表达式的写法赋值表达式可以包含复合的赋值运算符。赋值表达式可以包含复合的赋值运算符。赋值表达式可以包含复合的赋值运算符。赋值表达式可以包含复合的赋值运算符。例如:若例如:若例如:若例如:若a=12a=12, a+=a-=a*aa+=a-=a*a 结果是?结果是?结果是?结果是?l l另外,赋值表达式还可以出现在输出语句中,

25、另外,赋值表达式还可以出现在输出语句中,另外,赋值表达式还可以出现在输出语句中,另外,赋值表达式还可以出现在输出语句中,l lprintf(“%d”,a=b);printf(“%d”,a=b);l l若若若若b=3b=3时,结果?时,结果?时,结果?时,结果?赋值表达式和赋值语句赋值表达式和赋值语句22变量赋初值变量赋初值变量赋初值变量赋初值定义变量后,对变量初始化。定义变量后,对变量初始化。定义变量后,对变量初始化。定义变量后,对变量初始化。l lint int a=3; a=3; /* /*定义定义定义定义a a为整型变量,初值为为整型变量,初值为为整型变量,初值为为整型变量,初值为3*/

26、3*/l lfloat float f=3.56 f=3.56 /* /*定义定义定义定义f f为浮点型变量,初值为为浮点型变量,初值为为浮点型变量,初值为为浮点型变量,初值为3.56*/3.56*/l lcharchar c=a c=a /* /*定义定义定义定义c c为字符变量,初值为为字符变量,初值为为字符变量,初值为为字符变量,初值为 a */a */l lintint a,b,c=5; a,b,c=5; /* /*但只对但只对但只对但只对c c初始化为初始化为初始化为初始化为5 */5 */l lintint a=3,b=3,c=3; a=3,b=3,c=3;l lintint a=

27、3,b=3,c; a=3,b=3,c;l lintint a=3; a=3; / /相当于相当于相当于相当于 int a; a=3;int a; a=3;赋值表达式和赋值语句赋值表达式和赋值语句23(1) (1) 所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的l l从计算机向输出设备从计算机向输出设备从计算机向输出设备从计算机向输出设备( (如显示器、打印机等如显示器、打印机等如显示器、打印机等如显示器、打印机等) )输出数据称为输出数据称为输出数据称为输出数据称为输出输出输出输出。l l

28、从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为输入输入数据称为输入输入数据称为输入输入数据称为输入。(2) C(2) C语言本身不提供输入输出语句语言本身不提供输入输出语句语言本身不提供输入输出语句语言本身不提供输入输出语句l l输入和输出操作是由输入和输出操作是由输入和输出操作是由输入和输出操作是由C C标准函数库中的函数来实现的标准函数库中的函数来实现的标准函数库中的函数来实现的标准函数库中的函数来实现的。常用常用常用常用库函

29、数库函数库函数库函数: : printf printf 格式输出函数格式输出函数格式输出函数格式输出函数 scanf scanf 格式输入函数格式输入函数格式输入函数格式输入函数 putchar putchar 输出字符函数输出字符函数输出字符函数输出字符函数 getchar getchar 输入字符函数输入字符函数输入字符函数输入字符函数 puts puts 输出字符串函数输出字符串函数输出字符串函数输出字符串函数 gets gets 输入字符串函数输入字符串函数输入字符串函数输入字符串函数数据输入输出的概念及在数据输入输出的概念及在C语言中的实现语言中的实现24(3)(3)在使用系统库函数

30、时在使用系统库函数时在使用系统库函数时在使用系统库函数时, ,要用预编译命令要用预编译命令要用预编译命令要用预编译命令“ “#include#include” ”将有将有将有将有关关关关的的的的“ “头文件头文件头文件头文件” ”包括到用户源文件中。包括到用户源文件中。包括到用户源文件中。包括到用户源文件中。例如:在调用标准输入输出库函数时,文件开头应该有:例如:在调用标准输入输出库函数时,文件开头应该有:例如:在调用标准输入输出库函数时,文件开头应该有:例如:在调用标准输入输出库函数时,文件开头应该有:#include “stdio.h”#include “stdio.h”或:或:或:或:#

31、include #include 数据输入输出的概念及在数据输入输出的概念及在C语言中的实现语言中的实现头文件头文件stdiostdio是是是是standard input & outputstandard input & output的缩写的缩写的缩写的缩写25l l字符输出函数字符输出函数字符输出函数字符输出函数l lputchar ( putchar ( c c) )l l向显示器向显示器向显示器向显示器输出输出输出输出一个一个一个一个字符字符字符字符c c的值,的值,的值,的值,c c可以是字符变量或整可以是字符变量或整可以是字符变量或整可以是字符变量或整型变量型变量型变量型变量l l

32、字符输入函数字符输入函数字符输入函数字符输入函数l l getchar ( )getchar ( )l l无参数无参数无参数无参数l l向计算机输入一个字符向计算机输入一个字符向计算机输入一个字符向计算机输入一个字符,函数值为从输入设备接收的,函数值为从输入设备接收的,函数值为从输入设备接收的,函数值为从输入设备接收的字符字符字符字符字符数据的输入输出字符数据的输入输出26用用用用putcharputchar函数输出一个字符函数输出一个字符函数输出一个字符函数输出一个字符例例例例 先后输出先后输出先后输出先后输出BOYBOY三个三个三个三个单单单单字符。字符。字符。字符。 l l解题思路:解题

33、思路:解题思路:解题思路:l l定义定义定义定义3 3个字符变量,分别赋以初值个字符变量,分别赋以初值个字符变量,分别赋以初值个字符变量,分别赋以初值B B、OO、Y Yl l用用用用putcharputchar函数输出这函数输出这函数输出这函数输出这3 3个字符变量的值个字符变量的值个字符变量的值个字符变量的值字符数据的输入输出字符数据的输入输出27#include #include void main ( )void main ( ) char a=B,b=O,c=Y; char a=B,b=O,c=Y; putchar(a); putchar(a); putchar(b); putcha

34、r(b); putchar(c); putchar(c); putchar (n); putchar (n); / /向显示器输出字符向显示器输出字符向显示器输出字符向显示器输出字符BB / /向显示器输出向显示器输出向显示器输出向显示器输出换行换行换行换行符符符符 putchar(a);putchar(n);putchar(a);putchar(n);putchar(b);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);putchar(c);putchar(n);/ /向显示器输出字符向显示器输出字符向显示器输出字符向显示器输出字

35、符 OO/ /向显示器输出字符向显示器输出字符向显示器输出字符向显示器输出字符 YY28用用用用getchar()getchar()函数输入一个字符函数输入一个字符函数输入一个字符函数输入一个字符例例例例 输入单个字符。输入单个字符。输入单个字符。输入单个字符。#include#includevoid main()void main() char c; char c; c=getchar(); c=getchar(); /* /* 从键盘输入一个字符,送入字符变量从键盘输入一个字符,送入字符变量从键盘输入一个字符,送入字符变量从键盘输入一个字符,送入字符变量c */c */ putchar(c

36、); putchar(c); putchar(n); putchar(n); /* /* 换行换行换行换行* */ / 字符数据的输入输出字符数据的输入输出运行程序:运行程序:运行程序:运行程序:从键盘输入字符从键盘输入字符从键盘输入字符从键盘输入字符 a a ,按按按按EnterEnter键,字符才送入内键,字符才送入内键,字符才送入内键,字符才送入内存存存存, ,屏幕上将显示输出的字符屏幕上将显示输出的字符屏幕上将显示输出的字符屏幕上将显示输出的字符 aa29l l用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据l l用用用用scanfscanf函数输入数据

37、函数输入数据函数输入数据函数输入数据简单的格式输入与输出简单的格式输入与输出30用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据简单的格式输入与输出简单的格式输入与输出1.printf1.printf函数的一般格式函数的一般格式函数的一般格式函数的一般格式printfprintf(格式控制,输出表列)(格式控制,输出表列)(格式控制,输出表列)(格式控制,输出表列)例如:例如:例如:例如:printf(printf(”i=%d,c=%cn”i=%d,c=%cn”,i,c);,i,c);31用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输

38、出数据简单的格式输入与输出简单的格式输入与输出例如:例如:例如:例如:printf(”i=%d,c=%cn”,i,c);“ “格式控制格式控制格式控制格式控制” ”是用双撇号括起来的字符串,也称是用双撇号括起来的字符串,也称是用双撇号括起来的字符串,也称是用双撇号括起来的字符串,也称“ “转换控制字符转换控制字符转换控制字符转换控制字符串串串串” ”,它包括两种信息:,它包括两种信息:,它包括两种信息:,它包括两种信息:格式说明格式说明格式说明格式说明和和和和普通字符普通字符普通字符普通字符。1 1、格式说明格式说明格式说明格式说明:由:由:由:由“ “%” ”和格式字符组成,如和格式字符组成

39、,如和格式字符组成,如和格式字符组成,如%d%d, ,%f%f等。作用是等。作用是等。作用是等。作用是将输出的数据转换为指定的格式输出。将输出的数据转换为指定的格式输出。将输出的数据转换为指定的格式输出。将输出的数据转换为指定的格式输出。2 2、普通字符普通字符普通字符普通字符:需要原样输出的字符。:需要原样输出的字符。:需要原样输出的字符。:需要原样输出的字符。 例如前面例如前面例如前面例如前面printfprintf函数中双函数中双函数中双函数中双撇号内的字母、逗号、空格和换行符。撇号内的字母、逗号、空格和换行符。撇号内的字母、逗号、空格和换行符。撇号内的字母、逗号、空格和换行符。格式格式

40、格式格式说说说说明明明明普通字符普通字符普通字符普通字符32用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据 简单的格式输入与输出简单的格式输入与输出例如:例如:例如:例如:printf(”i=%d,c=%cn”,i,c);“ “输出表列输出表列输出表列输出表列” ”是需要输出的一些数据,可以是是需要输出的一些数据,可以是是需要输出的一些数据,可以是是需要输出的一些数据,可以是常量常量常量常量、变量变量变量变量或或或或表达式表达式表达式表达式。可以是常量、变量或表达式可以是常量、变量或表达式可以是常量、变量或表达式可以是常量、变量或表达式33用用用用printf

41、printf函数输出数据函数输出数据函数输出数据函数输出数据2.2.基本的格式字符基本的格式字符基本的格式字符基本的格式字符(1) (1) d d格式符格式符格式符格式符%d%d :输出一个有符号的十进制整数输出一个有符号的十进制整数输出一个有符号的十进制整数输出一个有符号的十进制整数。(2)(2) i i (integer)(integer)格式符格式符格式符格式符%i%i:作用与:作用与:作用与:作用与d d格式符相同。格式符相同。格式符相同。格式符相同。(3)(3) c c (character)(character)格式符格式符格式符格式符%c%c:输出一个字符。:输出一个字符。:输出

42、一个字符。:输出一个字符。例:例:例:例:char ch=a; printf(“%c”,ch);char ch=a; printf(“%c”,ch);注意:注意:注意:注意:一个在一个在一个在一个在02550255范围内的整数,也可以用范围内的整数,也可以用范围内的整数,也可以用范围内的整数,也可以用“ “%c”%c”使之按字符形使之按字符形使之按字符形使之按字符形式式式式输出;反之,一个字符数据也可以用整数形式输出。输出;反之,一个字符数据也可以用整数形式输出。输出;反之,一个字符数据也可以用整数形式输出。输出;反之,一个字符数据也可以用整数形式输出。简单的格式输入与输出简单的格式输入与输出

43、34用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据例例例例 字符数据的输出字符数据的输出字符数据的输出字符数据的输出#include#includevoid main()void main() char c=a; int i=97;char c=a; int i=97;printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i); 简单的格式输入与输出简单的格式输入与输出35用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数

44、据 (4)(4) s s格式符格式符格式符格式符%s%s:输出一个字符串。:输出一个字符串。:输出一个字符串。:输出一个字符串。例如:例如:例如:例如:printf(“%s”, “CHINA”);printf(“%s”, “CHINA”);(5) (5) f f格式符格式符格式符格式符%f%f:以小数形式输出实数(包括单双精度),不:以小数形式输出实数(包括单双精度),不:以小数形式输出实数(包括单双精度),不:以小数形式输出实数(包括单双精度),不指定字段宽度,整数部分全部输出,并输出指定字段宽度,整数部分全部输出,并输出指定字段宽度,整数部分全部输出,并输出指定字段宽度,整数部分全部输出,

45、并输出6 6位位位位小数。小数。小数。小数。举例:举例:举例:举例: printf(“%f”, 59.320);printf(“%f”, 59.320);输出结果:输出结果:输出结果:输出结果: 59.32000059.320000简单的格式输入与输出简单的格式输入与输出36用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据例例例例 输出实数时的有效位数输出实数时的有效位数输出实数时的有效位数输出实数时的有效位数#include#includevoid main()void main() floatfloat x,y; x,y; x=111111.111;y=22

46、2222.222x=111111.111;y=222222.222printf(“printf(“%f%fn”,x+y);n”,x+y); 简单的格式输入与输出简单的格式输入与输出37用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据例例例例 输出双精度时的有效位数输出双精度时的有效位数输出双精度时的有效位数输出双精度时的有效位数#include#includevoid main()void main() doubledouble x,y; x,y; x=11111111.11111111;x=11111111.11111111;y=22222222.222222

47、22;y=22222222.22222222;printf(“printf(“%f%fn”,x+y);n”,x+y); 简单的格式输入与输出简单的格式输入与输出38用用用用printfprintf函数输出数据函数输出数据函数输出数据函数输出数据 (6) (6) e e格式符。指定以格式符。指定以格式符。指定以格式符。指定以指数形式指数形式指数形式指数形式输出实数输出实数输出实数输出实数。l l%e%e,VC+VC+给出小数位数为给出小数位数为给出小数位数为给出小数位数为6 6位位位位,指数部分占指数部分占指数部分占指数部分占5 5列列列列小数点前必须有而且只有小数点前必须有而且只有小数点前必须

48、有而且只有小数点前必须有而且只有1 1位非零数字位非零数字位非零数字位非零数字。例如:例如:例如:例如: printf(”%e”,123.456);printf(”%e”,123.456); 输出:输出:输出:输出:1.1.234560e+002234560e+002简单的格式输入与输出简单的格式输入与输出39用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据1. scanf 1. scanf 函数的一般形式函数的一般形式函数的一般形式函数的一般形式scanfscanf(格式控制(格式控制(格式控制(格式控制 ,地址表列),地址表列),地址表列),地址表列)简单的格式

49、输入与输出简单的格式输入与输出含义同含义同含义同含义同printfprintf函数函数函数函数可以是变量的地址,可以是变量的地址,可以是变量的地址,可以是变量的地址,或字符串的首地址或字符串的首地址或字符串的首地址或字符串的首地址40用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据例例例例 scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据#include #include void main()void main() int a,b,c;int a,b,c;scanf(“%d%d%d”,scanf(“%d%d%d”,& &a,a,& &b,b,&

50、 &c);c);printf(“a=%d,b=%d,c=%d”, a,b,c);printf(“a=%d,b=%d,c=%d”, a,b,c); 简单的格式输入与输出简单的格式输入与输出3 4 53 4 5 (输入(输入(输入(输入a a、b b、c c的值,用一个空格间隔)的值,用一个空格间隔)的值,用一个空格间隔)的值,用一个空格间隔)3,4,53,4,5 错错错错a=3 b=4 c=5a=3 b=4 c=5 错错错错41用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据scanf(“%d%d%d”,scanf(“%d%d%d”,& &a,a,& &b,b,& &

51、c);c);%d%d%d%d%d%d表示表示表示表示按十进制整数形式按十进制整数形式按十进制整数形式按十进制整数形式输入输入输入输入3 3个数据。输入数据时,在两个数据。输入数据时,在两个数据。输入数据时,在两个数据。输入数据时,在两个数据之间以一个或多个空格间隔,也可以用个数据之间以一个或多个空格间隔,也可以用个数据之间以一个或多个空格间隔,也可以用个数据之间以一个或多个空格间隔,也可以用EnterEnter键、键、键、键、TabTab键间隔。键间隔。键间隔。键间隔。下面的输入均合法:下面的输入均合法:下面的输入均合法:下面的输入均合法: 3 3( (空格空格空格空格) )4 4 ( (空格

52、空格空格空格) ) ( (空格空格空格空格) ) 5 5 3 3 4 54 5 3(3(按按按按TabTab键键键键)4)4 5 5 说明:说明:说明:说明: & &是取地址运算符,是取地址运算符,是取地址运算符,是取地址运算符, & &a a指变量指变量指变量指变量a a在内存中的地址在内存中的地址在内存中的地址在内存中的地址作用:按地址存入作用:按地址存入作用:按地址存入作用:按地址存入a a、b b、c c的值。的值。的值。的值。简单的格式输入与输出简单的格式输入与输出42用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据2.2.格式说明格式说明格式说明格式说明

53、(1)scanf(1)scanf函数中的函数中的函数中的函数中的“ “格式控制格式控制格式控制格式控制” ”后面应当是后面应当是后面应当是后面应当是变量地址变量地址变量地址变量地址,而不,而不,而不,而不应应应应是变量名。是变量名。是变量名。是变量名。scanf(”%d%d%d”,a,b,c); scanf(”%d%d%d”,a,b,c); 错错错错scanf(”%d%d%d”,scanf(”%d%d%d”,& &a,a,& &b,b,& &c); c); 对对对对简单的格式输入与输出简单的格式输入与输出43用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据2.2.格

54、式说明格式说明格式说明格式说明(2)(2)如果在如果在如果在如果在“ “格式控制格式控制格式控制格式控制” ”字符串中除了格式说明以外还有其他字字符串中除了格式说明以外还有其他字字符串中除了格式说明以外还有其他字字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置输入与这些字符相同的字符。符,则在输入数据时在对应位置输入与这些字符相同的字符。符,则在输入数据时在对应位置输入与这些字符相同的字符。符,则在输入数据时在对应位置输入与这些字符相同的字符。scanf(a=%d,b=%d,c=%d,scanf(a=%d,b=%d,c=%d,& &a,a,& &b,b,& &c);c);1 3

55、21 3 2 a=1 b=3 c=2a=1 b=3 c=2 a=a=1 1, ,b=b=3 3, ,c=c=2 2 简单的格式输入与输出简单的格式输入与输出 对对对对 错错错错 错错错错44用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据2.2.格式说明格式说明格式说明格式说明(3)(3) 用用用用%c%c 格式输入字符,空格字符和转义字符都作为有效输格式输入字符,空格字符和转义字符都作为有效输格式输入字符,空格字符和转义字符都作为有效输格式输入字符,空格字符和转义字符都作为有效输入。例如:入。例如:入。例如:入。例如:scanf(”%c%c%c”,&c1,&c2,

56、&c3);scanf(”%c%c%c”,&c1,&c2,&c3);abcabc a b ca b c 简单的格式输入与输出简单的格式输入与输出 对对对对 错错错错45用用用用scanfscanf函数输入数据函数输入数据函数输入数据函数输入数据2.2.格式说明格式说明格式说明格式说明(4)(4) 在输入数值数据时,若遇到在输入数值数据时,若遇到在输入数值数据时,若遇到在输入数值数据时,若遇到空格空格空格空格、回车回车回车回车、TabTab键键键键或或或或非法输非法输非法输非法输入入入入,认为该数据结束。例如:,认为该数据结束。例如:,认为该数据结束。例如:,认为该数据结束。例如:scanf(”%

57、d%c%f”,&a,&b,&c );scanf(”%d%c%f”,&a,&b,&c );若输入若输入若输入若输入12341234a a123123o.26o.26 (5) unsigned(5) unsigned型变量所需的数据,可以用型变量所需的数据,可以用型变量所需的数据,可以用型变量所需的数据,可以用%u%u或或或或%d%d格式输入。格式输入。格式输入。格式输入。简单的格式输入与输出简单的格式输入与输出46输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (1) %(1) %mdmd。mm为输出数据的宽度。如果数据位数小于为输出数据的宽度。如果数据位数小于为输出数据的宽度

58、。如果数据位数小于为输出数据的宽度。如果数据位数小于mm,左端,左端,左端,左端补以空格;如果实际长度大于补以空格;如果实际长度大于补以空格;如果实际长度大于补以空格;如果实际长度大于mm,则按实际长度输出,同,则按实际长度输出,同,则按实际长度输出,同,则按实际长度输出,同%d%d一样。一样。一样。一样。 例例例例: : printf(“%4d,%4d” , a , b); printf(“%4d,%4d” , a , b); 若若若若a= 123a= 123,b=12345b=12345,则输出结果,则输出结果,则输出结果,则输出结果: (: (空格空格空格空格) 123) 123,123

59、4512345(2) %(2) %ldld,输出长整数类型(,输出长整数类型(,输出长整数类型(,输出长整数类型(longlong型)。型)。型)。型)。 %mldmld,以指定宽度,输出长整数类型(,以指定宽度,输出长整数类型(,以指定宽度,输出长整数类型(,以指定宽度,输出长整数类型(longlong型)。型)。型)。型)。 举例:举例:举例:举例:printf(“data=%8ld”, 12345);printf(“data=%8ld”, 12345); 输出结果:输出结果:输出结果:输出结果: data=(data=(空格空格空格空格)( )(空格空格空格空格)( )(空格空格空格空格

60、)12345)12345较复杂的输入与输出格式控制较复杂的输入与输出格式控制47输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (3) (3) %o%o。以八进制整数形式输出。输出的数值不带符号,符以八进制整数形式输出。输出的数值不带符号,符以八进制整数形式输出。输出的数值不带符号,符以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。号位也一起作为八进制数的一部分输出。号位也一起作为八进制数的一部分输出。号位也一起作为八进制数的一部分输出。例:例:例:例:int a= -1;int a= -1; printf(%d printf(%d,%o%o,

61、a a,a); a); -1 -1在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下: 11111111111111111111111111111111 输出为输出为输出为输出为: -1,177777: -1,177777 不会输出带负号的八进制整数。不会输出带负号的八进制整数。不会输出带负号的八进制整数。不会输出带负号的八进制整数。较复杂的输入与输出格式控制较复杂的输入与输出格式控制48输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (4) (

62、4) %x%x。以十六进制数形式输出整数。同样不会出现负的十以十六进制数形式输出整数。同样不会出现负的十以十六进制数形式输出整数。同样不会出现负的十以十六进制数形式输出整数。同样不会出现负的十六进制数。六进制数。六进制数。六进制数。例:例:例:例: int a= -1int a= -1; printf(“%x,%o,%d”,a,a,a)printf(“%x,%o,%d”,a,a,a); 输出结果为输出结果为输出结果为输出结果为: : ffff ffff,177777177777,-1-1可以用可以用可以用可以用“ “%lx%lx” ”输出长整型数,也可以输出长整型数,也可以输出长整型数,也可以

63、输出长整型数,也可以指定输出字段的宽度指定输出字段的宽度指定输出字段的宽度指定输出字段的宽度。例例例例: : “%12x” “%12x”较复杂的输入与输出格式控制较复杂的输入与输出格式控制49输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (5) (5) %u%u。用来输出用来输出用来输出用来输出unsignedunsigned型数据,以十进制整数形式输出。型数据,以十进制整数形式输出。型数据,以十进制整数形式输出。型数据,以十进制整数形式输出。 一个有符号整数(一个有符号整数(一个有符号整数(一个有符号整数(intint型)也可以用型)也可以用型)也可以用型)也可以用%u%

64、u格式输出格式输出格式输出格式输出; ; 一个一个一个一个unsignedunsigned型数据也可以用型数据也可以用型数据也可以用型数据也可以用%d%d格式输出格式输出格式输出格式输出; ; unsigned unsigned型数据也可用型数据也可用型数据也可用型数据也可用%o%o或或或或%x%x格式输出格式输出格式输出格式输出。(6) (6) %mc%mc:用来指定输出字符数据的宽度。:用来指定输出字符数据的宽度。:用来指定输出字符数据的宽度。:用来指定输出字符数据的宽度。例如:例如:例如:例如:c=a; printf(“%3c”,c);c=a; printf(“%3c”,c);较复杂的输

65、入与输出格式控制较复杂的输入与输出格式控制50输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (7) %(7) %msms,mm为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于mm,左端左端左端左端补以空格;如果长度大于补以空格;如果长度大于补以空格;如果长度大于补以空格;如果长度大于mm,则字符串全部输出,则字符串全部输出,则字符串全部输出,则字符串全部输出,同同同同%s%s一样。一样。一样。一样。 %-ms-ms,mm为输出数据的宽度。如果字符串有效长度小于为输

66、出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于mm,右端右端右端右端补以空格;如果长度大于补以空格;如果长度大于补以空格;如果长度大于补以空格;如果长度大于mm,则字符串全部输出,则字符串全部输出,则字符串全部输出,则字符串全部输出,同同同同%s %s 一样。一样。一样。一样。 %m.nm.ns s:输出共占:输出共占:输出共占:输出共占mm列,但只取字符串列,但只取字符串列,但只取字符串列,但只取字符串左端左端左端左端n n个字符。个字符。个字符。个字符。 这这这这n n个字符输出在个字符输出在个字符输出在个字符输出在mm

67、列的右侧,列的右侧,列的右侧,列的右侧,左端左端左端左端补空格。补空格。补空格。补空格。较复杂的输入与输出格式控制较复杂的输入与输出格式控制51输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制例例例例 字符串的输出字符串的输出字符串的输出字符串的输出#include #include void main ( ) void main ( ) printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA, CHINA,CHINA);printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA, CHINA,CHINA); 较复杂的输入与输

68、出格式控制较复杂的输入与输出格式控制52输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (8) (8) %m%m. .n nf f。指定输出的数据共占。指定输出的数据共占。指定输出的数据共占。指定输出的数据共占mm列,其中有列,其中有列,其中有列,其中有n n位小数。如位小数。如位小数。如位小数。如果数值长度小于果数值长度小于果数值长度小于果数值长度小于mm,则左端补空格。,则左端补空格。,则左端补空格。,则左端补空格。 %- -mm. .n nf f与与与与%m%m. .n nf f基本相同,只是使输出的数值向左端靠基本相同,只是使输出的数值向左端靠基本相同,只是使输出的数

69、值向左端靠基本相同,只是使输出的数值向左端靠齐,右端补空格。齐,右端补空格。齐,右端补空格。齐,右端补空格。较复杂的输入与输出格式控制较复杂的输入与输出格式控制53输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制例例例例 输出实数时,指定小数位数。输出实数时,指定小数位数。输出实数时,指定小数位数。输出实数时,指定小数位数。#include#includevoid main()void main() float float f=123.456;f=123.456; printf(%printf(%f_ _%10f_%10.2f_ _f_ _%10f_%10.2f_ _%.2f%

70、.2f_ _ _%- -10.2f10.2f nn , , f,f,f,f,f);f,f,f,f,f); 较复杂的输入与输出格式控制较复杂的输入与输出格式控制54输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制例例例例 求求求求3 3个圆的周长,输出结果时上下按小数点对齐,取个圆的周长,输出结果时上下按小数点对齐,取个圆的周长,输出结果时上下按小数点对齐,取个圆的周长,输出结果时上下按小数点对齐,取2 2位位位位小数。小数。小数。小数。#include#include #define#define PI 3.1415926 PI 3.1415926void main ( )vo

71、id main ( ) doubledouble r1=1.53,r2=21.83,r3=123.71,s1,s2,s3; r1=1.53,r2=21.83,r3=123.71,s1,s2,s3; s1=2.0*PI*r1; s1=2.0*PI*r1; s2=2.0*PI*r2; s2=2.0*PI*r2; s3=2.0*PI*r3; s3=2.0*PI*r3; printf(r1=%10.2fnr2=%10.2fnr3=%10.2fn, r1,r2,r3); printf(r1=%10.2fnr2=%10.2fnr3=%10.2fn, r1,r2,r3); 较复杂的输入与输出格式控制较复杂的

72、输入与输出格式控制定义变量定义变量定义变量定义变量同时同时同时同时赋予初值赋予初值赋予初值赋予初值55输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (9) (9) %m.ne%m.ne和和和和%-m.ne%-m.ne。mm、n n和和和和“ “-”-”字符的含义与前相同。字符的含义与前相同。字符的含义与前相同。字符的含义与前相同。此处此处此处此处n n指拟输出的数据的小数部分(又称尾数)的指拟输出的数据的小数部分(又称尾数)的指拟输出的数据的小数部分(又称尾数)的指拟输出的数据的小数部分(又称尾数)的小数位数小数位数小数位数小数位数。若若若若f=123.456f=123.4

73、56,则:,则:,则:,则:printf(%e_ _%10e_ _%10.2e _ _%.2e _ _%-10.2e,f,f,f,f,f); printf(%e_ _%10e_ _%10.2e _ _%.2e _ _%-10.2e,f,f,f,f,f); 输出如下:输出如下:输出如下:输出如下:1.234560e+002 _ _1.234560e+002 _ _ _1.23e+002 _ _ 1.234560e+002 _ _1.234560e+002 _ _ _1.23e+002 _ _ 13 13列列列列 1313列列列列 1010列列列列1.23e+002 _ _1.23e+002_1.

74、23e+002 _ _1.23e+002_ 9 9列列列列 1010列列列列较复杂的输入与输出格式控制较复杂的输入与输出格式控制56输出数据输出数据输出数据输出数据格式控制格式控制格式控制格式控制 (10) (10) %g%g。用来输出实数。它根据数值的大小,自动选。用来输出实数。它根据数值的大小,自动选。用来输出实数。它根据数值的大小,自动选。用来输出实数。它根据数值的大小,自动选f f格格格格式或式或式或式或e e格式(选择输出时占宽度较小的一种),且不输出格式(选择输出时占宽度较小的一种),且不输出格式(选择输出时占宽度较小的一种),且不输出格式(选择输出时占宽度较小的一种),且不输出无

75、意义的零。无意义的零。无意义的零。无意义的零。例例例例: : 若若若若f=123.468f=123.468,则,则,则,则printf(“%f_ _%e_ _%g”,f,f,f);printf(“%f_ _%e_ _%g”,f,f,f);输出如下:输出如下:输出如下:输出如下:123.468000 _ _1.234680e+002 _ _123.468 123.468000 _ _1.234680e+002 _ _123.468 10 10列列列列 1313列列列列 1010列列列列较复杂的输入与输出格式控制较复杂的输入与输出格式控制57输出数据输出数据输出数据输出数据格式控制格式控制格式控制

76、格式控制 printfprintf函数的说明:函数的说明:函数的说明:函数的说明:l l除了除了除了除了X X,E E,GG外,其他各式字符必须用外,其他各式字符必须用外,其他各式字符必须用外,其他各式字符必须用小写小写小写小写。l l可以在可以在可以在可以在printfprintf函数中的函数中的函数中的函数中的“ “格式控制格式控制格式控制格式控制” ”字符串中包含转义字符。字符串中包含转义字符。字符串中包含转义字符。字符串中包含转义字符。l l一个格式说明必须以一个格式说明必须以一个格式说明必须以一个格式说明必须以“ “%” ”开头,以开头,以开头,以开头,以d,o,x,u,c,s,f,

77、e,gd,o,x,u,c,s,f,e,g格式字格式字格式字格式字符之一为结束,中间可以插入附加格式字符。符之一为结束,中间可以插入附加格式字符。符之一为结束,中间可以插入附加格式字符。符之一为结束,中间可以插入附加格式字符。l l想输出想输出想输出想输出%,则应该在格式控制字符串中用连续两个,则应该在格式控制字符串中用连续两个,则应该在格式控制字符串中用连续两个,则应该在格式控制字符串中用连续两个%表示表示表示表示 printf(“%fprintf(“%f%”,1.0/3);”,1.0/3); 输出输出输出输出:0.333333:0.333333%较复杂的输入与输出格式控制较复杂的输入与输出格

78、式控制58顺序结构程序设计举例顺序结构程序设计举例例例例例 输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。假设:假设:假设:假设:三个边长三个边长三个边长三个边长a a,b b,c c能构成三角形。能构成三角形。能构成三角形。能构成三角形。已知面积公式:已知面积公式:已知面积公式:已知面积公式:area=area=s=(a+b+c)*0.5s=(a+b+c)*0.559开始开始开始开始输入数据输入数据输入数据输入数据计算计算计算计算s s计算面积计算面积计算面积计算面积输出结果输出结果输出结果输出结果结束

79、结束结束结束float a,b,c,s,area scanf(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0area=sqrt(s*(s-a)*(s-b)*(s-c)printf60#include#include#include#includevoid main()void main() floatfloat a,b,c,s,area; a,b,c,s,area;scanfscanf(“%f,%f,%f”,&a,&b,&c);(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0;s=(a+b+c)/2.0;area=area=sqrtsqrt(s*(s

80、-a)*(s-b)*(s-c);(s*(s-a)*(s-b)*(s-c);printfprintf(“a=%fnb=%fnc=%fnarea=%fn”,a,b,c,area);(“a=%fnb=%fnc=%fnarea=%fn”,a,b,c,area); 运行情况:运行情况:运行情况:运行情况:3 3 3 3,4 4 4 4,6 6 6 6数学函数库数学函数库因为要用到其因为要用到其中的中的sqrt函数函数61例例例例 从键盘输入一个大写字母,要求改用小写字母输出。从键盘输入一个大写字母,要求改用小写字母输出。从键盘输入一个大写字母,要求改用小写字母输出。从键盘输入一个大写字母,要求改用小写字

81、母输出。#include #include void main()void main() char c1,c2; char c1,c2; c1=getchar(); c1=getchar(); printf(%c,%dn,c1,c1); printf(%c,%dn,c1,c1); c2=c1+32; c2=c1+32; printf(%c,%dn,c2,c2); printf(%c,%dn,c2,c2); 顺序结构程序设计举例顺序结构程序设计举例62顺序结构程序设计举例顺序结构程序设计举例例例例例 求求求求axax2 2+bx+c=0+bx+c=0方程的根。方程的根。方程的根。方程的根。a a

82、,b b,c c由键盘输入,设由键盘输入,设由键盘输入,设由键盘输入,设 00。众所周知,一元二次方程式的根为众所周知,一元二次方程式的根为众所周知,一元二次方程式的根为众所周知,一元二次方程式的根为: : x1= , x2= x1= , x2= 可以将上面的分式分为两项:可以将上面的分式分为两项:可以将上面的分式分为两项:可以将上面的分式分为两项:x1=p+qx1=p+q, x2=p-qx2=p-q63#include #include #include #include void main ( ) void main ( ) floatfloat a,b,c,disc,x1,x2,p,q;

83、 a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f, scanf(a=%f,b=%f,c=%f,& &a,a,& &b,b,& &c);c); disc=b*b-4*a*c; disc=b*b-4*a*c; p=-b/(2*a); p=-b/(2*a); q=sqrt(disc)/(2*a); q=sqrt(disc)/(2*a); x1=p+q;x2=p-q; x1=p+q;x2=p-q; printf(x1=%5.2fnx2=%5.2fn,x1,x2); printf(x1=%5.2fnx2=%5.2fn,x1,x2); 64课后习题课后习题用下面的用下

84、面的用下面的用下面的scanfscanf函数输入数据,使函数输入数据,使函数输入数据,使函数输入数据,使a=3a=3,b=7, x=8.5, y=71.82,b=7, x=8.5, y=71.82, c1=A, c2=a c1=A, c2=a。问在键盘上如何输入?。问在键盘上如何输入?。问在键盘上如何输入?。问在键盘上如何输入?#include #include void main()void main() int a,b; int a,b; float x,y; float x,y; char c1,c2; char c1,c2; scanf(a=%d b=%d,&a,&b); scanf(a=%d b=%d,&a,&b); scanf(%f %e,&x,&y); scanf(%f %e,&x,&y); scanf(%c %c,&c1,&c2); scanf(%c %c,&c1,&c2); printf(a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%cn,a,b,x,y,c1,c2); printf(a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%cn,a,b,x,y,c1,c2);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号