最简单的C程序设计-顺序程序设计.ppt_第1页
最简单的C程序设计-顺序程序设计.ppt_第2页
最简单的C程序设计-顺序程序设计.ppt_第3页
最简单的C程序设计-顺序程序设计.ppt_第4页
最简单的C程序设计-顺序程序设计.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 C C语言的数据类型语言的数据类型(Data Type(Data Type) 字符型(字符型(charchar) 整型整型(short,int,long,unsigned(short,int,long,unsigned) 基本类型基本类型 数值类型数值类型 单精度型(单精度型(floatfloat) 实型实型 双精度型(双精度型(doubledouble) 枚举类型(枚举类型(enumenum) 数据类型数据类型 数组类型(数组类型( ) 构造类型构造类型 结构体类型(结构体类型(structstruct) 共用体类型(共用体类型(unionunion) 指针类型(指针类型(* *) 空类型(空类型(voidvoid) 2 流程图流程图 流程图是描述算法过程的一种图形方法。直观、形流程图是描述算法过程的一种图形方法。直观、形 象、易于理解,美国国家标准化协会规定的流程图象、易于理解,美国国家标准化协会规定的流程图 表示的基本图形符号如下表示的基本图形符号如下: : 开始或结束框 输入输出框 条件判断框 处理框 流程线 3 程序的三种基本结构程序的三种基本结构 l l 结构化程序设计的一个基本思想是结构化程序设计的一个基本思想是任何算法任何算法 和程序都可以归结为三种基本结构:和程序都可以归结为三种基本结构: 顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构 以此三种基本结构,可以通过适当的组合、嵌套来以此三种基本结构,可以通过适当的组合、嵌套来 构造出各种复杂的程序,并能保证结构清晰、可读构造出各种复杂的程序,并能保证结构清晰、可读 性强。性强。 4 顺序结构顺序结构 顺序结构:顺序结构:自上向下,无分支,无转移自上向下,无分支,无转移 顺序结构是最简单、常用结构。算法的每一个操作顺序结构是最简单、常用结构。算法的每一个操作 都是按从上到下的线性次序来执行的。都是按从上到下的线性次序来执行的。 顺序结构流程图 A B 5 选择结构选择结构:有分支,需条件判断:有分支,需条件判断 选择结构又称为选择结构又称为分支结构分支结构,根据给出的条件,选择执行一,根据给出的条件,选择执行一 个分支。因此,在选择结构中,必然包含个分支。因此,在选择结构中,必然包含条件判断条件判断,它是,它是 需要过一个条件判断的操作,来选择执行一个分支的算法需要过一个条件判断的操作,来选择执行一个分支的算法 结构。结构。 选择结构流程图选择结构流程图 条件? AB 不成立成立 选择结构选择结构 6 循环结构循环结构 循环结构:循环结构: 有转移,某些语句可重复执行有转移,某些语句可重复执行 循环结构又称重复执行结构,它根据给定的条件,判断是否循环结构又称重复执行结构,它根据给定的条件,判断是否 重复执行重复执行某一组操作,有两种循环结构:某一组操作,有两种循环结构: 1 1)当循环当循环:先判断条件先判断条件,若成立,若成立再执行循环的语句再执行循环的语句,再返,再返 回初始判断;若不成立则跳过循环语句。回初始判断;若不成立则跳过循环语句。 循环结构流程图 循环体语句循环体语句 真真 假假 条件条件 7 循环结构流程图循环结构流程图 循环体 T F 条件? 2 2)直到循环:首先执行一组要循环的语句直到循环:首先执行一组要循环的语句,然后再判,然后再判 断条件是否成立,若成立就返回,重复执行这组循环体断条件是否成立,若成立就返回,重复执行这组循环体 并继续判断条件;若不成立,则跳出此循环语句,向后并继续判断条件;若不成立,则跳出此循环语句,向后 执行。执行。 8 C C语句概述语句概述 l l 简单的简单的C C程序结构程序结构 #include main() int num ; num=1; printf(“num is %d n”,num); 函 数 头 编译预处理编译预处理 函数名函数名 函 数 体 声明语句声明语句 赋值语句赋值语句 函数调用函数调用 语句语句 9 C程序 源程序文件1源程序文件2源程序文件n 预处理命令函数n函数1数据声明 函数首部函数体 数据声明执行语句 C C程序结构图程序结构图 10 l l C C语句分为以下语句分为以下5 5类:类: C C语句概述语句概述 控制语句控制语句 函数调用语句函数调用语句 表达式语句表达式语句 空语句空语句 复合语句复合语句 5 5类类 11 C C语句概述语句概述 l l 控制语句。完成一定的控制功能。控制语句。完成一定的控制功能。 1 1 if() if() elseelse (条件语句,用来实现选择结构)(条件语句,用来实现选择结构) 2 2 for()for() (循环语句,用来实现循环结构)(循环语句,用来实现循环结构) 3 3 while() while() (循环语句,用来实现循环结构)(循环语句,用来实现循环结构) 4 4 do do while(); while(); (循环语句,用来实现循环结构)(循环语句,用来实现循环结构) 5 5 continue continue (结束本次循环)(结束本次循环) 6 break 6 break (终止执行终止执行swtichswtich或循环语句)或循环语句) 7 7 switch() ( switch() (多分支选择结构)多分支选择结构) 8 goto 8 goto 转向语句转向语句, ,现已基本不使用现已基本不使用 9 9 return return (从函数返回语句)从函数返回语句) 12 C C语句概述语句概述 l l 函数调用语句。函数调用语句。由一个函数调用加一个分号构由一个函数调用加一个分号构 成一个语句。成一个语句。 printfprintf(“This is a C statement.“)(“This is a C statement.“); ; scanf scanf(“%d%d“, ; 13 C C语句概述语句概述 l l 表达式语句。表达式语句。由一个由一个表达式表达式加加一个分号一个分号构成。构成。 C C语言中有使用价值的表达式语句主要有语言中有使用价值的表达式语句主要有3 3种:种: (1)(1)赋值语句。赋值语句。 例如:例如: sum=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; 14 C C语句概述语句概述 l l 空语句。空语句。只有一个分号的语句只有一个分号的语句 (什么也不做)。(什么也不做)。 一般和后面章节所讲循环语句结合使用起到延时一般和后面章节所讲循环语句结合使用起到延时 作用。作用。 15 C C语句概述语句概述 l l 复合语句。复合语句。用一对用一对 括起来的语句。括起来的语句。 例:例: z=x+y; z=x+y; t=z/100; t=z/100; printf(“%f”,t); printf(“%f”,t); 16 赋值表达式和赋值语句赋值表达式和赋值语句 赋值表达式赋值表达式 赋值语句是由赋值表达式加上一个分号构成。赋值语句是由赋值表达式加上一个分号构成。 例:例:a=100 a=100 赋值表达式赋值表达式 a=100; a=100; 赋值语句赋值语句 1.1.赋值运算符赋值运算符 l l “ “” ”是赋值运算符是赋值运算符 l l 作用是将一个数据赋给一个变量作用是将一个数据赋给一个变量 l l 也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋给一个变量。 例如:例如:sum=a+bsum=a+b 17 赋值表达式和赋值语句赋值表达式和赋值语句 2.2.复合的赋值运算符复合的赋值运算符 在赋值符在赋值符“ “” ”之前加上其他运算符,可以构成复合的运算符之前加上其他运算符,可以构成复合的运算符 l l a a+ += =3 3 等价于等价于 a a= =a+3a+3 l l x x* *= =y+8 y+8 等价于等价于 x=x*(y+8)x=x*(y+8) l l x x%= =3 3 等价于等价于 x=x%3 x=x%3 l l x x%= =y+3 y+3 等价于等价于 ? ? 凡是二元运算符都可以与赋值符一起组合成复合赋值运算符凡是二元运算符都可以与赋值符一起组合成复合赋值运算符 (+=+=、-=-=、* *= =、/=/=、%=%=等)等) 。 18 3.3.赋值表达式的写法赋值表达式的写法 赋值表达式:赋值表达式:将一个变量和一个表达式连接起来的式子。将一个变量和一个表达式连接起来的式子。 例:例:a=5a=5 赋值表达式求解的过程是:赋值表达式求解的过程是:先求赋值运算符右侧的表达式的先求赋值运算符右侧的表达式的 值,然后赋给赋值符左侧的变量。值,然后赋给赋值符左侧的变量。 例如例如: : 赋值表达式赋值表达式“ “a=3*5a=3*5” ”的值为的值为1515,执行表达式后,变量,执行表达式后,变量a a 的值也是的值也是1515。 注意注意: :一个表达式应该有一个值。一个表达式应该有一个值。 赋值表达式和赋值语句赋值表达式和赋值语句 19 注意:注意: 左值左值 (lvalue) : (lvalue) : 赋值运算符左侧的标识符。赋值运算符左侧的标识符。 右值右值 (rvalue) :(rvalue) :出现在赋值运算符右侧的表达式出现在赋值运算符右侧的表达式 。 l l 变量变量可以作为左值可以作为左值 l l 而而表达式表达式就不能作为左值就不能作为左值( (如如a+b)a+b) l l 常量常量也不能作为左值也不能作为左值 赋值表达式和赋值语句赋值表达式和赋值语句 a=b a=5 a=b+c 20 3.3.赋值表达式的写法赋值表达式的写法 赋值表达式中的赋值表达式中的“ “表达式表达式” ”,又可以是一个赋值表达式。,又可以是一个赋值表达式。 例如例如: : a=(b=5) a=(b=5) 分析分析: : 括弧内的括弧内的b=5b=5是一个赋值表达式,它的值等于是一个赋值表达式,它的值等于5 5。 执行表达式执行表达式a=(b=5)a=(b=5)相当于执行:相当于执行: b=5b=5和和a ab b两个赋值表达式。两个赋值表达式。 赋值表达式和赋值语句赋值表达式和赋值语句 a=b=c=5 a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) 自右向左自右向左 21 3.3.赋值表达式的写法赋值表达式的写法 赋值表达式可以包含复合的赋值运算符。赋值表达式可以包含复合的赋值运算符。 例如:若例如:若a=12a=12, a+=a-=a*aa+=a-=a*a 结果是?结果是? l l 另外,赋值表达式还可以出现在输出语句中,另外,赋值表达式还可以出现在输出语句中, l l printf(“%d”,a=b);printf(“%d”,a=b); l l 若若b=3b=3时,结果?时,结果? 赋值表达式和赋值语句赋值表达式和赋值语句 22 变量赋初值变量赋初值 定义变量后,对变量初始化。定义变量后,对变量初始化。 l l int int a=3; a=3; /* /*定义定义a a为整型变量,初值为为整型变量,初值为3*/3*/ l l float float f=3.56 f=3.56 /* /*定义定义f f为浮点型变量,初值为为浮点型变量,初值为3.56*/3.56*/ l l charchar c=a c=a /* /*定义定义c c为字符变量,初值为为字符变量,初值为 a */a */ l l intint a,b,c=5; a,b,c=5; /* /*但只对但只对c c初始化为初始化为5 */5 */ l l intint a=3,b=3,c=3; a=3,b=3,c=3; l l intint a=3,b=3,c; a=3,b=3,c; l l intint a=3; a=3; / /相当于相当于 int a; a=3;int a; a=3; 赋值表达式和赋值语句赋值表达式和赋值语句 23 (1) (1) 所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的 l l 从计算机向输出设备从计算机向输出设备( (如显示器、打印机等如显示器、打印机等) )输出数据称为输出数据称为 输出输出。 l l 从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机 输入数据称为输入输入数据称为输入。 (2) C(2) C语言本身不提供输入输出语句语言本身不提供输入输出语句 l l 输入和输出操作是由输入和输出操作是由C C标准函数库中的函数来实现的标准函数库中的函数来实现的。 常用常用库函数库函数: : printf printf 格式输出函数格式输出函数 scanf scanf 格式输入函数格式输入函数 putchar putchar 输出字符函数输出字符函数 getchar getchar 输入字符函数输入字符函数 puts puts 输出字符串函数输出字符串函数 gets gets 输入字符串函数输入字符串函数 数据输入输出的概念及在数据输入输出的概念及在C C语言中的实现语言中的实现 24 (3)(3)在使用系统库函数时在使用系统库函数时, ,要用预编译命令要用预编译命令“ “#include#include” ”将有关将有关 的的“ “头文件头文件” ”包括到用户源文件中。包括到用户源文件中。 例如:在调用标准输入输出库函数时,文件开头应该有:例如:在调用标准输入输出库函数时,文件开头应该有: #include “stdio.h”#include “stdio.h” 或:或: #include #include 数据输入输出的概念及在数据输入输出的概念及在C C语言中的实现语言中的实现 头文件 stdiostdio是是standard input char a=B,b=O,c=Y; putchar(a); putchar(a); putchar(b); putchar(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); / /向显示器输出字符向显示器输出字符 OO / /向显示器输出字符向显示器输出字符 YY 28 用用getchar()getchar()函数输入一个字符函数输入一个字符 例例 输入单个字符。输入单个字符。 #include#include void main()void main() char c; char c; c=getchar(); c=getchar(); /* /* 从键盘输入一个字符,送入字符变量从键盘输入一个字符,送入字符变量c */c */ putchar(c); putchar(c); putchar(n); putchar(n); /* /* 换行换行* */ / 字符数据的输入输出字符数据的输入输出 运行程序:运行程序: 从键盘输入字符从键盘输入字符 a a ,按按EnterEnter键,字符才送入内存键,字符才送入内存, ,屏屏 幕上将显示输出的字符幕上将显示输出的字符 aa 29 l l 用用printfprintf函数输出数据函数输出数据 l l 用用scanfscanf函数输入数据函数输入数据 简单的格式输入与输出简单的格式输入与输出 30 用用printfprintf函数输出数据函数输出数据 简单的格式输入与输出简单的格式输入与输出 1.printf1.printf函数的一般格式函数的一般格式 printfprintf(格式控制,输出表列)(格式控制,输出表列) 例如:例如: printf(printf(”i=%d,c=%cn”i=%d,c=%cn”,i,c);,i,c); 31 用用printfprintf函数输出数据函数输出数据 简单的格式输入与输出简单的格式输入与输出 例如:例如: printf(printf(”i=%d,c=%cn”i=%d,c=%cn”,i,c);,i,c); “ “格式控制格式控制” ”是用双撇号括起来的字符串,也称是用双撇号括起来的字符串,也称“ “转换控制字符串转换控制字符串 ” ”,它包括两种信息:,它包括两种信息:格式说明格式说明和和普通字符普通字符。 1 1、格式说明格式说明:由:由“ “%” ”和格式字符组成,如和格式字符组成,如%d%d, ,%f%f等。作用是将等。作用是将 输出的数据转换为指定的格式输出。输出的数据转换为指定的格式输出。 2 2、普通字符普通字符:需要原样输出的字符。:需要原样输出的字符。 例如前面例如前面printfprintf函数中双函数中双 撇号内的字母、逗号、空格和换行符。撇号内的字母、逗号、空格和换行符。 格式格式说说明明 普通字符普通字符 32 用用printfprintf函数输出数据函数输出数据 简单的格式输入与输出简单的格式输入与输出 例如:例如: printf(printf(”i=%d,c=%cn”i=%d,c=%cn”,i,c);,i,c); “ “输出表列输出表列” ”是需要输出的一些数据,可以是是需要输出的一些数据,可以是常量常量、 变量变量或或表达式表达式。 可以是常量、变量或表达式可以是常量、变量或表达式 33 用用printfprintf函数输出数据函数输出数据 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:输出一个字符。:输出一个字符。 例:例: char ch=a; printf(“%c”,ch);char ch=a; printf(“%c”,ch); 注意:注意: 一个在一个在02550255范围内的整数,也可以用范围内的整数,也可以用“ “%c”%c”使之按字符形式使之按字符形式 输出;反之,一个字符数据也可以用整数形式输出。输出;反之,一个字符数据也可以用整数形式输出。 简单的格式输入与输出简单的格式输入与输出 34 用用printfprintf函数输出数据函数输出数据 例例 字符数据的输出字符数据的输出 #include#include void 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函数输出数据函数输出数据 (4)(4) s s格式符格式符%s%s:输出一个字符串。:输出一个字符串。 例如:例如:printf(“%s”, “CHINA”);printf(“%s”, “CHINA”); (5) (5) f f格式符格式符%f%f:以小数形式输出实数(包括单双精度),不:以小数形式输出实数(包括单双精度),不 指定字段宽度,整数部分全部输出,并输出指定字段宽度,整数部分全部输出,并输出6 6位位小数。小数。 举例:举例: printf(“%f”, 59.320);printf(“%f”, 59.320); 输出结果:输出结果: 59.32000059.320000 简单的格式输入与输出简单的格式输入与输出 36 用用printfprintf函数输出数据函数输出数据 例例 输出实数时的有效位数输出实数时的有效位数 #include#include void main()void main() floatfloat x,y; x,y; x=111111.111;y=222222.222x=111111.111;y=222222.222 printf(“printf(“%f%fn”,x+y);n”,x+y); 简单的格式输入与输出简单的格式输入与输出 37 用用printfprintf函数输出数据函数输出数据 例例 输出双精度时的有效位数输出双精度时的有效位数 #include#include void main()void main() doubledouble x,y; x,y; x=11111111.11111111;x=11111111.11111111; y=22222222.22222222;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列列 小数点前必须有而且只有小数点前必须有而且只有1 1位非零数字位非零数字。 例如:例如: printf(”%e”,123.456);printf(”%e”,123.456); 输出:输出:1.1.234560e+002234560e+002 简单的格式输入与输出简单的格式输入与输出 39 用用scanfscanf函数输入数据函数输入数据 1. scanf 1. scanf 函数的一般形式函数的一般形式 scanfscanf(格式控制(格式控制 ,地址表列),地址表列) 简单的格式输入与输出简单的格式输入与输出 含义同含义同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”,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”,c); %d%d%d%d%d%d表示表示按十进制整数形式按十进制整数形式输入输入3 3个数据。输入数据时,在两个数据。输入数据时,在两 个数据之间以一个或多个空格间隔,也可以用个数据之间以一个或多个空格间隔,也可以用EnterEnter键、键、TabTab键间隔。键间隔。 下面的输入均合法:下面的输入均合法: 3 3( (空格空格) )4 4 ( (空格空格) ) ( (空格空格) ) 5 5 3 3 4 54 5 3(3(按按TabTab键键)4)4 5 5 说明:说明: scanf(”%d%d%d”,a,b,c); 错错 scanf(”%d%d%d”,scanf(”%d%d%d”, c); 对对 简单的格式输入与输出简单的格式输入与输出 43 用用scanfscanf函数输入数据函数输入数据 2.2.格式说明格式说明 (2)(2)如果在如果在“ “格式控制格式控制” ”字符串中除了格式说明以外还有其他字字符串中除了格式说明以外还有其他字 符,则在输入数据时在对应位置输入与这些字符相同的字符。符,则在输入数据时在对应位置输入与这些字符相同的字符。 scanf(“a=%d,b=%d,c=%d“,scanf(“a=%d,b=%d,c=%d“,c); 1 3 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”,scanf(”%c%c%c”, abcabc a b ca b c 简单的格式输入与输出简单的格式输入与输出 对对 错错 45 用用scanfscanf函数输入数据函数输入数据 2.2.格式说明格式说明 (4)(4) 在输入数值数据时,若遇到在输入数值数据时,若遇到空格空格、回车回车、TabTab键键或或非法输非法输 入入,认为该数据结束。例如:,认为该数据结束。例如: scanf(”%d%c%f”,scanf(”%d%c%f”, 若输入若输入 12341234a a123123o.26o.26 (5) unsigned(5) unsigned型变量所需的数据,可以用型变量所需的数据,可以用%u%u或或%d%d格式输入。格式输入。 简单的格式输入与输出简单的格式输入与输出 46 输出数据输出数据格式控制格式控制 (1) %(1) %mdmd。mm为输出数据的宽度。如果数据位数小于为输出数据的宽度。如果数据位数小于mm,左端,左端 补以空格;如果实际长度大于补以空格;如果实际长度大于mm,则按实际长度输出,同,则按实际长度输出,同 %d%d一样。一样。 例例: : printf(“%4d,%4d” , a , b); printf(“%4d,%4d” , a , b); 若若a= 123a= 123,b=12345b=12345,则输出结果,则输出结果: (: (空格空格) 123) 123,1234512345 (2) %(2) %ldld,输出长整数类型(,输出长整数类型(longlong型)。型)。 %mldmld,以指定宽度,输出长整数类型(,以指定宽度,输出长整数类型(longlong型)。型)。 举例:举例:printf(“data=%8ld”, 12345);printf(“data=%8ld”, 12345); 输出结果:输出结果: data=(data=(空格空格)( )(空格空格)( )(空格空格)12345)12345 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 47 输出数据输出数据格式控制格式控制 (3) (3) %o%o。以八进制整数形式输出。输出的数值不带符号,符以八进制整数形式输出。输出的数值不带符号,符 号位也一起作为八进制数的一部分输出。号位也一起作为八进制数的一部分输出。 例:例:int a= -1;int a= -1; printf(“%d printf(“%d,%o“%o“,a a,a); a); -1 -1在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下: 11111111111111111111111111111111 输出为输出为: -1,177777: -1,177777 不会输出带负号的八进制整数。不会输出带负号的八进制整数。 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 48 输出数据输出数据格式控制格式控制 (4) (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” ”输出长整型数,也可以输出长整型数,也可以指定输出字段的宽度指定输出字段的宽度。 例例: : “%12x” “%12x” 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 49 输出数据输出数据格式控制格式控制 (5) (5) %u%u。用来输出用来输出unsignedunsigned型数据,以十进制整数形式输出。型数据,以十进制整数形式输出。 一个有符号整数(一个有符号整数(intint型)也可以用型)也可以用%u%u格式输出格式输出; ; 一个一个unsignedunsigned型数据也可以用型数据也可以用%d%d格式输出格式输出; ; unsigned unsigned型数据也可用型数据也可用%o%o或或%x%x格式输出格式输出。 (6) (6) %mc%mc:用来指定输出字符数据的宽度。:用来指定输出字符数据的宽度。 例如:例如:c=a; printf(“%3c”,c);c=a; printf(“%3c”,c); 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 50 输出数据输出数据格式控制格式控制 (7) %(7) %msms,mm为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于 mm,左端左端补以空格;如果长度大于补以空格;如果长度大于mm,则字符串全部输出,则字符串全部输出, 同同%s%s一样。一样。 %-ms-ms,mm为输出数据的宽度。如果字符串有效长度小于为输出数据的宽度。如果字符串有效长度小于 mm,右端右端补以空格;如果长度大于补以空格;如果长度大于mm,则字符串全部输出,则字符串全部输出, 同同%s %s 一样。一样。 %m.nm.ns s:输出共占:输出共占mm列,但只取字符串列,但只取字符串左端左端n n个字符。个字符。 这这n n个字符输出在个字符输出在mm列的右侧,列的右侧,左端左端补空格。补空格。 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 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“); 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 52 输出数据输出数据格式控制格式控制 (8) (8) %m%m. .n nf f。指定输出的数据共占。指定输出的数据共占mm列,其中有列,其中有n n位小数。如位小数。如 果数值长度小于果数值长度小于mm,则左端补空格。,则左端补空格。 %- -mm. .n nf f与与%m%m. .n nf f基本相同,只是使输出的数值向左端靠基本相同,只是使输出的数值向左端靠 齐,右端补空格。齐,右端补空格。 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 53 输出数据输出数据格式控制格式控制 例例 输出实数时,指定小数位数。输出实数时,指定小数位数。 #include#include void main()void main() float float f=123.456;f=123.456; printf(“%printf(“%f_ _%10f_%10.2f_ _f_ _%10f_%10.2f_ _%.2f%.2f_ _ _%- -10.2f10.2f n“n“ , , f,f,f,f,f);f,f,f,f,f); 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 54 输出数据输出数据格式控制格式控制 例例 求求3 3个圆的周长,输出结果时上下按小数点对齐,取个圆的周长,输出结果时上下按小数点对齐,取2 2位位 小数。小数。 #include#include #define#define PI 3.1415926 PI 3.1415926 void main ( )void 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); 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 定义变量定义变量同时同时赋予初值赋予初值 55 输出数据输出数据格式控制格式控制 (9) (9) %m.ne%m.ne和和%-m.ne%-m.ne。mm、n n和和“ “-”-”字符的含义与前相同。字符的含义与前相同。 此处此处n n指拟输出的数据的小数部分(又称尾数)的指拟输出的数据的小数部分(又称尾数)的小数位数小数位数。 若若f=123.456f=123.456,则:,则: 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.23e+002 _ _1.23e+002_ 9 9列列 1010列列 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 56 输出数据输出数据格式控制格式控制 (10) (10) %g%g。用来输出实数。它根据数值的大小,自动选。用来输出实数。它根据数值的大小,自动选f f格格 式或式或e e格式(选择输出时占宽度较小的一种),且不输出格式(选择输出时占宽度较小的一种),且不输出 无意义的零。无意义的零。 例例: : 若若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 输出数据输出数据格式控制格式控制 printfprintf函数的说明:函数的说明: l l 除了除了X X,E E,GG外,其他各式字符必须用外,其他各式字符必须用小写小写。 l l 可以在可以在printfprintf函数中的函数中的“ “格式控制格式控制” ”字符串中包含转义字符。字符串中包含转义字符。 l l 一个格式说明必须以一个格式说明必须以“ “%” ”开头,以开头,以d,o,x,u,c,s,f,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% 较复杂的输入与输出格式控制较复杂的输入与输出格式控制 58 顺序结构程序设计举例顺序结构程序设计举例 例例 输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。 假设:假设: 三个边长三个边长a a,b b,c c能构成三角形。能构成三角形。 已知面积公式:已知面积公式: area=area= s=(a+b+c)*0.5s=(a+b+c)*0.5 59 开始开始 输入数据输入数据 计算计算s s 计算面积计算面积 输出结果输出结果 结束结束 float a,b,c,s,area scanf(“%f,%f,%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论