第3章+最简单的C程序设计修正_第1页
第3章+最简单的C程序设计修正_第2页
第3章+最简单的C程序设计修正_第3页
第3章+最简单的C程序设计修正_第4页
第3章+最简单的C程序设计修正_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 顺序程序设计举例顺序程序设计举例3.2 数据的表现形式及其运算数据的表现形式及其运算3.3 C语句语句3.4 数据的输入输出数据的输入输出3.1顺序程序设计举例顺序程序设计举例 例例3.1 有人用温度计测量出用华氏法表有人用温度计测量出用华氏法表示的温度示的温度(如如 F,今要求把它转换为以,今要求把它转换为以摄氏法表示的温度摄氏法表示的温度(如如 C) 。解题思路:找到二者间的转换公式解题思路:找到二者间的转换公式)32(95fcf代表华氏温度代表华氏温度,c代表摄氏温度代表摄氏温度3.1顺序程序设计举例顺序程序设计举例算法:算法:输入输入f的值的值输出输出c的值的值)32(95fc

2、 例例3.1 有人用温度计测量出用华氏法表有人用温度计测量出用华氏法表示的温度示的温度(如如 F,今要求把它转换为以,今要求把它转换为以摄氏法表示的温度摄氏法表示的温度(如如 C) 。N-S图图3.1顺序程序设计举例顺序程序设计举例)32(95f#include int main ( ) float f,c; f=64.0; c=(5.0/9)*(f-32); printf(f=%fnc=%fn,f,c); return 0; 定义定义f和和c为单精度浮点型变量为单精度浮点型变量指定指定f的值的值计算计算c的值的值输出输出f和和c的的值值3.1顺序程序设计举例顺序程序设计举例 例例3.2 计算

3、存款利息。有计算存款利息。有1000元,想元,想存一年。有三种方法可选:存一年。有三种方法可选: (1)活期,年利率为活期,年利率为r1 (2)一年期定期,年利率为一年期定期,年利率为r2 (3)存两次半年定期,年利率为存两次半年定期,年利率为r3 请分别计算出一年后按三种方法所得到请分别计算出一年后按三种方法所得到的本息和。的本息和。3.1顺序程序设计举例顺序程序设计举例解题思路:确定计算本息和的公式。解题思路:确定计算本息和的公式。从数学知识可知:若存款额为从数学知识可知:若存款额为p0,则:,则:活期存款一年后本息和为:活期存款一年后本息和为: p1=p0(1+r1)一年期定期存款,一年

4、后本息和为:一年期定期存款,一年后本息和为: p2=p0(1+r2)两次半年定期存款,一年后本息和为:两次半年定期存款,一年后本息和为: ) 23+)(123+p0(1=p3rr3.1顺序程序设计举例顺序程序设计举例算法算法:输入输入p0,r1,r2,r3的值的值计算计算p1=p0(1+r1)计算计算p2=p0(1+r2)计算计算p3=p0(1+ )(1+ )输出输出p1,p2,p323r23r3.1顺序程序设计举例顺序程序设计举例#include int main ( ) float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p

5、1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%fn%fn%fn”,p1, p2, p3); return 0; 定义变量定义变量同时同时赋予初值赋予初值3.2 数据的表现形式及其运算数据的表现形式及其运算3.2.1 常量和变量常量和变量3.2.2 数据类型数据类型3.2.3 整型数据整型数据3.2.4 字符型数据字符型数据3.2.5 浮点型数据浮点型数据3.2.6 怎样确定常量的类型怎样确定常量的类型3.2.7 运算符和表达式运算符和表达式3.2.1 常量和变量常量和变量1.

6、常量常量:在程序运行过程中,其值在程序运行过程中,其值不能被改变的量不能被改变的量整型常量整型常量:如如1000,12345,0,-345 10进制进制 8进制进制16进制进制实型常量实型常量u十进制小数形式十进制小数形式:如如0.34 -56.79 0.0u指数形式指数形式:如如12.34e3 (代表代表12.34 103)9 9, 3.2.1 常量和变量常量和变量3.2.1 常量和变量常量和变量字符串常量:用双引号括起来的字符序列字符串常量:用双引号括起来的字符序列 实例:实例:”This is C string.This is C string.” ” ”a a” ” ” (1 1个个空

7、格)空格) ” (不含空格)不含空格) 串定界符:串定界符:双引号双引号 ” ”字符串长度:字符串中包含的字符数量。字符串长度:字符串中包含的字符数量。tNameAddressntNameAddressnC is very easy.C is very easy. a a 与与 字符字符a a 的区别的区别 He saidHe said ok.ok. nn3.2.1 常量和变量常量和变量3.2.1 常量和变量常量和变量2. 变量变量:在程序运行期间,变量的值是可以改变的在程序运行期间,变量的值是可以改变的变量必须变量必须先定义先定义,后使用后使用定义定义变量变量时指定该变量的时指定该变量的名字

8、名字和和类型类型变量名变量名和和变量值变量值是是两个不同的概念两个不同的概念变量名实际上是以一个名字代表的一个变量名实际上是以一个名字代表的一个存储地址存储地址从变量中取值,实际上是通过变量名找到相应的从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据内存地址,从该存储单元中读取数据3.2.1 常量和变量常量和变量3.常变量常变量:const int a=3;4.标识符标识符:一个对象的名字一个对象的名字语言规定标识符只能由语言规定标识符只能由字母字母、数字数字和和下划线下划线3种字符组成,且种字符组成,且第一个字符必须为字母或下划线第一个字符必须为字母或下划线合法的标

9、识符:合法的标识符:如如sum,average, _total, Class, day, BASIC, li_ling不合法的标识符不合法的标识符:M.D.John,¥,¥123,33,3D64,ab大小写字母是不同的字符大小写字母是不同的字符3.2.2 数据类型数据类型所谓所谓类型类型,就是对数据分配存储单元的安,就是对数据分配存储单元的安排,包括存储单元的长度排,包括存储单元的长度(占多少字节占多少字节)以以及数据的存储形式及数据的存储形式不同的类型分配不同的长度和存储形式不同的类型分配不同的长度和存储形式基本类型基本类型整型整型 intint实型实型( (浮点型浮点型) )字符型字符型

10、charchar枚举枚举 enumenum单精度单精度 floatfloat双精度双精度 doubledouble指针类型指针类型构造类型构造类型数组数组结构结构 structstruct共用体共用体 unionunion空类型空类型3.2.2 数据类型数据类型3.2.3 整型数据整型数据1. 整型数据的分类整型数据的分类最基本的整型类型最基本的整型类型u基本整型基本整型(int型型):占:占2个或个或4个字节个字节u短整型短整型(short int):VC+6.0中占中占2个字节个字节u长整型长整型(long int):VC+6.0中占中占4个字节个字节u双长整型双长整型(long long

11、 int):C99新增的新增的3.2.3 整型数据整型数据1. 整型数据的分类整型数据的分类2. 整型变量的符号属性整型变量的符号属性u整型变量的值的范围包括负数到正数整型变量的值的范围包括负数到正数u可以将变量定义为可以将变量定义为“无符号无符号”类型类型u扩充的整形类型:扩充的整形类型:3.2.3 整型数据整型数据扩充的整型类型:扩充的整型类型:有符号基本整型有符号基本整型 int;无符号基本整型无符号基本整型 unsigned int;有符号短整型有符号短整型 short int;无符号短整型无符号短整型 unsigned short int;有符号长整型有符号长整型 long int;

12、无符号长整型无符号长整型 unsigned long int有符号双长整型有符号双长整型 long long int; 无符号双长整型无符号双长整型 unsigned long long int 3.2.4 字符型数据字符型数据1.字符与字符代码字符与字符代码大多数系统采用大多数系统采用ASCII字符集字符集u字母:字母:A Z,a zu数字:数字:09u专门符号:专门符号:29个:个:! ” # & ( ) *等等u空格符:空格、水平制表符、换行空格符:空格、水平制表符、换行等等u不能显示的字符:空不能显示的字符:空(null)字符字符(以以0表表示示)、警告、警告(以以a表示表示)

13、、退格、退格(以以b表示表示)、回车、回车(以以r表示表示)等等3.2.4 字符型数据字符型数据字符字符1和整数和整数1是不同的概念是不同的概念:u字符字符1只是代表一个形状为只是代表一个形状为1的符号,在的符号,在需要时按原样输出,在内存中以需要时按原样输出,在内存中以ASCII码形码形式存储,占式存储,占1个字节个字节u整数整数1是以整数存储方式是以整数存储方式(二进制补码方式二进制补码方式)存储的,占存储的,占2个或个或4个字节个字节0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

14、0 0 0 0 0 0 0 13.2.5 浮点型数据浮点型数据浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数float型型(单精度浮点型单精度浮点型)4个字节个字节double型型(双精度浮点型双精度浮点型)u编译系统为编译系统为double型变量分配型变量分配8个字节个字节u15位有效数字位有效数字long double(长双精度长双精度)型型8或或16个字节个字节指数的符号位指数的符号位小数的符号位小数的符号位3.2.5 浮点型数据浮点型数据3.2.7 运算符和表达式运算符和表达式1.基本的算术运算符基本的算术运算符:+ :正号运算符正号运算符(单目运算符单目运算

15、符) - :负号运算符负号运算符(单目运算符单目运算符)* :乘法运算符乘法运算符/ :除法运算符除法运算符% :求余运算符求余运算符+ :加法运算符加法运算符 - :减法运算符减法运算符优先级:* / % 同级(高),+ - 同级(低) 例:2+3*4=2+(3*4)=141.1.参加运算的对象都是参加运算的对象都是intint型,结果截取为型,结果截取为intint型型 9%3 9%31%31%310%310%310%-310%-3-10%3-10%3-10%-3-10%-3= 3= 3= 3.3333= 3.66667= 0= 0.5= 6= 0= 0= 1 1= 1= 1= 1= -1

16、= -1= -1= -1注意:运算对象的数据类型对运算结果的影响注意:运算对象的数据类型对运算结果的影响 a+b如何表示数学表达式 - c+d (a+b)/(c+d)3.2.7 运算符和表达式运算符和表达式2. 自增、自减运算符自增、自减运算符:+ +和和 为单目运算,只能作用于变量为单目运算,只能作用于变量只能对只能对intint、charchar、longlong和和指针变量进行运算指针变量进行运算功能:功能:+x x=x+1 x x=x1 ( (前缀前缀) ) x+ x=x+1 x x=x1 ( (后缀后缀) )3.2.7 运算符和表达式运算符和表达式前缀与后缀的区别:前缀与后缀的区别:

17、 y=+x; x=x+1; y=x; x先加先加1再赋值再赋值 y=x+; y=x; x=x+1; x先赋值再加先赋值再加13.2.7 运算符和表达式运算符和表达式3.2.7 运算符和表达式运算符和表达式3.2.7 运算符和表达式运算符和表达式3. 算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性:用算术运算符和括号将运算对象(也称操作用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,数)连接起来的、符合语法规则的式子,称为算术表达式称为算术表达式 如:如:a+3、i*26运算对象包括常量、变量、函数等运算对象包括常量、变量、函数等语言规定了运算符的

18、优先级语言规定了运算符的优先级和和结合性结合性3.2.7 运算符和表达式运算符和表达式4.不同类型数据间的混合运算不同类型数据间的混合运算:(1)+、-、*、/ 运算的两个数中有一个数为运算的两个数中有一个数为float或或double型,结果是型,结果是double型型。系统将系统将float型数据都先转换为型数据都先转换为double型,然后进行运算型,然后进行运算(2) 如果如果int型与型与float或或double型数据进行运算,型数据进行运算,先把先把int型和型和float型数据转换为型数据转换为double型,然型,然后进行运算,结果是后进行运算,结果是double型型(3)字

19、符型数据与整型数据进行运算,就是把字符的字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算代码与整型数据进行运算类型转换规则类型转换规则 1 1、运算中将所有、运算中将所有charchar型数据都转换成型数据都转换成intint型,型,floatfloat型型转换成转换成doubledouble型。型。 2 2、低级类型服从高级类型,并进行相应的转换、低级类型服从高级类型,并进行相应的转换double double float floatlonglongunsignedunsignedintint char char 3 3、赋值运算以赋值运算符左边变量的类型为准,赋值

20、运算以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应的转换。型看齐,并进行相应的转换。3.2.7 运算符和表达式运算符和表达式 例例3.3 给定一个大写字母,要求用小写给定一个大写字母,要求用小写字母输出。字母输出。解题思路:解题思路:u关键是关键是找到大找到大、小写字母间小写字母间的的内在联系内在联系u同一个字母,用小写表示的字符的同一个字母,用小写表示的字符的ASCII代代码比用大写表示的字符的码比用大写表示的字符的ASCII代码大代码大323.2.7 运算符和表达式运算符和表达式#include int mai

21、n ( ) char c1,c2; c1=A; c2=c1+32; printf(%cn,c2); printf(”%dn”,c2); return 0;将字符将字符A的的ASCII代码代码65放到放到c1中中将将65+32的的结果结果放到放到c2中中用字符形式输出用字符形式输出用十进制形式输出用十进制形式输出3.2.7 运算符和表达式运算符和表达式5. 强制类型转换运算符强制类型转换运算符强制类型转换运算符强制类型转换运算符的的一般形式为一般形式为 (类型名)(表达式)(类型名)(表达式)u(double)a (将转换成(将转换成double类型)类型)u(int) (x+y) (将(将x+

22、y的值转换成的值转换成int型)型) u(float)(5%3)(将(将5%3的值转换成的值转换成float型)型)有两种类型转换有两种类型转换u系统自动进行的类型转换系统自动进行的类型转换u强制类型转换强制类型转换3.2.7 运算符和表达式运算符和表达式6.运算符运算符(1) 算术运算符算术运算符 (+ - * / % + -)(2) 关系运算符关系运算符 ( !)!)(3) 逻辑运算符逻辑运算符 (!(! |)(4) 位运算符位运算符 ( | )(5) 赋值运算符赋值运算符 (及其扩展赋值运算符)(及其扩展赋值运算符)(6) 条件运算符条件运算符 (?:)(?:)3.2.7 运算符和表达式

23、运算符和表达式6.运算符运算符(7) 逗号运算符逗号运算符 (,),)(8) 指针运算符指针运算符 (*和)和)(9) 求字节数运算符求字节数运算符 (sizeof)(10) 强制类型转换运算符强制类型转换运算符 ( (类型类型) )(11) 成员运算符成员运算符 (.-)(12) 下标运算符下标运算符 ( )(13) 其他其他 (如函数调用运算符()(如函数调用运算符()3.3 C语句语句3.3.1 C语句的作用和分类语句的作用和分类3.3.2 最基本的语句最基本的语句-赋值语句赋值语句3.3.1 C语句的作用和分类语句的作用和分类语句分为以下语句分为以下5类类:(1) 控制语句控制语句:

24、if、switch、for、while、dowhile、continue、break、return、goto等等(2) 函数调用语句函数调用语句(3) 表达式语句表达式语句(4) 空语句空语句(5) 复合语句复合语句#include main( ) /* * 简单程序实例简单程序实例 * */ / int a=10,b=20,c; if (ba) c=a+b; printf(”%dn”,c); else ; 控控制制语语句句表达式语句表达式语句复合语句复合语句函数调用语句函数调用语句空语句空语句说明语句说明语句注释语句注释语句C的语句以分号的语句以分号(;)结束结束3.3.2 最基本的语句最基

25、本的语句-赋值语句赋值语句在在C程序中,最常用的语句是:程序中,最常用的语句是:u赋值语句赋值语句u输入输出语句输入输出语句其中最基本的是赋值语句其中最基本的是赋值语句例例3.5 求求 方程的根。方程的根。a、b、c由键盘输入由键盘输入 设设 02cbxaxacb42解题思路:首先要知道求方程式的根解题思路:首先要知道求方程式的根的方法。的方法。由数学知识已知:如果由数学知识已知:如果 0,则一元二次方程有两个实根,则一元二次方程有两个实根:acb42aacbbx2421aacbbx2422abp2aacbq242若记若记qpx1qpx2#include #include int main (

26、 ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;程序中程序中调用数学函数调用数学函数sqrt归纳归纳总结:总结:1.赋值运算符赋值运算符u“”是赋值运算符是赋值运算符u作用是将一个数据赋给一个变量作用是将一个数据赋给一个变量u也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋

27、给一个变量ub=a;与;与a=b;不同;不同归纳归纳总结:总结:1.赋值运算符赋值运算符2.复合复合赋值运算:赋值运算:e1 op= e2 等于:等于:e1 = e1 op (e2)其中:其中:op为下列为下列10个运算符之一个运算符之一+ + * * / % / % | & | & e1为可以进行赋制操作的变量为可以进行赋制操作的变量e2为合法的表达式为合法的表达式 例:例:x += 2; x = x + 2; x * *= y+1; x = x * * ( y+1); 不等价不等价 x = x * * y+1; x = 2; x = x 2;归纳归纳总结:总结:1.赋值运算

28、符赋值运算符2.复合的赋值运算符复合的赋值运算符3.赋值过程中的类型转换赋值过程中的类型转换u两侧类型一致两侧类型一致时时,直接赋值,直接赋值u两侧类型不一致,但都是算术类型时,两侧类型不一致,但都是算术类型时,自动将自动将右侧的右侧的类型转换类型转换为左侧类型后赋值为左侧类型后赋值u定义变量时要防止数据溢出定义变量时要防止数据溢出归纳归纳总结:总结:1.赋值运算符赋值运算符2.复合的赋值运算符复合的赋值运算符3.赋值表达式赋值表达式4.赋值过程中的类型转换赋值过程中的类型转换5.赋值表达式和赋值语句赋值表达式和赋值语句u赋值表达式的末尾没有分号,而赋值语句有赋值表达式的末尾没有分号,而赋值语

29、句有分号分号归纳归纳总结:总结:1.赋值运算符赋值运算符2.复合的赋值运算符复合的赋值运算符3.赋值表达式赋值表达式4.赋值过程中的类型转换赋值过程中的类型转换5.赋值表达式和赋值语句赋值表达式和赋值语句6.变量赋初值变量赋初值int a=3,b=3,c;int a=3; 相当于相当于 int a; a=3;3.4 数据的输入输出数据的输入输出3.4.1 输入输出举例输入输出举例3.4.2 有关数据输入输出的概念有关数据输入输出的概念3.4.3 用用printf函数输出数据函数输出数据3.4.4 用用scanf函数输入数据函数输入数据3.4.5 字符数据的输入输出字符数据的输入输出3.4.1

30、输入输出举例输入输出举例例例3.5 求求 方程的根。方程的根。a、b、c由键盘输入由键盘输入 设设 02cbxaxacb423.4.1 输入输出举例输入输出举例解题思路:首先要知道求方程式的根解题思路:首先要知道求方程式的根的方法。的方法。由数学知识已知:如果由数学知识已知:如果 0,则一元二次方程有两个实根,则一元二次方程有两个实根:acb42aacbbx2421aacbbx2422abp2aacbq242若记若记qpx1qpx2#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a

31、,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;程序中程序中调用数学函数调用数学函数sqrt输入输入a,b,c的值的值#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(d

32、isc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;输入的是双输入的是双精度型实数精度型实数#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return

33、 0;要求输入要求输入3个实数个实数自动自动转成实数转成实数后赋给后赋给a,b,c#include #include int main ( ) double a,b,c,disc,x1,x2,p,q; scanf(%lf%lf%lf,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(x1=%7.2fnx2=%7.2fn,x1,x2); return 0;输出输出数据占数据占7列,其中小数占列,其中小数占2列列3.4.2 有关数据输入输出的概念有关数据

34、输入输出的概念几乎每一个几乎每一个C程序都包含输入输出程序都包含输入输出输入输出是程序中最基本的操作之一输入输出是程序中最基本的操作之一3.4.2 有关数据输入输出的概念有关数据输入输出的概念(1) 语言本身不提供输入输出语句语言本身不提供输入输出语句输入和输出操作是由输入和输出操作是由C标准函数库中的函标准函数库中的函数来实现的数来实现的printf和和scanf不是语言的关键字,而不是语言的关键字,而只是库函数的名字只是库函数的名字putchar、getchar、puts、gets3.4.2 有关数据输入输出的概念有关数据输入输出的概念(2)在使用在使用输入输出输入输出函数时,要在程序文件

35、函数时,要在程序文件的开头用预编译指令的开头用预编译指令#include 或或#include stdio.h3.4.3 用用printf函数输出数据函数输出数据1.printf函数的一般格式函数的一般格式printf(格式控制,输出表列)(格式控制,输出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);格式声明格式声明3.4.3 用用printf函数输出数据函数输出数据1.printf函数的一般格式函数的一般格式printf(格式控制,输出表列)(格式控制,输出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);普通字符普通字符3.4.3 用用printf函

36、数输出数据函数输出数据1.printf函数的一般格式函数的一般格式printf(格式控制,输出表列)(格式控制,输出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);可以是常量、变量或表达式可以是常量、变量或表达式3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符。用来输出一个有符号的十进制整数格式符。用来输出一个有符号的十进制整数l可以在格式声明中指定输出数据的域宽可以在格式声明中指定输出数据的域宽 printf(”%d%5dn”,12,-345);l%d输出输出int型数据型数据l%ld输出输出long型数据型数据3.4.3 用用p

37、rintf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符。用来输出一个字符格式符。用来输出一个字符 char ch=a; printf(”%c”,ch); 或或 printf(”%5c”,ch);输出字符输出字符:a3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符。用来输出一个字符串格式符。用来输出一个字符串 printf(”%s”,”CHINA”); 输出字符串输出字符串:CHINA3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符。用来输出实数,以小数形式输出格式符。用来输出实数,以小数形式

38、输出不不指定数据宽度和小数位数,用指定数据宽度和小数位数,用%f 例例3.6 用用%f输出实数,只能得到位小数。输出实数,只能得到位小数。 double a=1.0; printf(”%fn”,a/3);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符。用来输出实数,以小数形式输出格式符。用来输出实数,以小数形式输出 指定数据宽度和小数位数。用指定数据宽度和小数位数。用%m.nf printf(%20.15fn,10.0/3); printf(%.0fn”,10000/3.0);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字

39、符格式字符uf格式符。用来输出实数,以小数形式输出格式符。用来输出实数,以小数形式输出 指定数据宽度和小数位数。用指定数据宽度和小数位数。用%m.nf float a; a=10000/3.0; printf(%fn,a);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符。用来输出实数,以小数形式输出格式符。用来输出实数,以小数形式输出 输出的数据向左对齐,用输出的数据向左对齐,用%-m.nf3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符。用来输出实数,以小数形式输出格式符。用来输出实数,以小数形式输出l

40、float型数据只能保证型数据只能保证6位有效数字位有效数字ldouble型数据能保证型数据能保证15位有效数字位有效数字l计算机输出的数字计算机输出的数字不都不都是绝对精确有效的是绝对精确有效的3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符ue格式符。指定以指数形式输出实数格式符。指定以指数形式输出实数l%e,VC+给出小数位数为位给出小数位数为位 指数部分占指数部分占5列列 小数点前必须有而且只有小数点前必须有而且只有1位非零数字位非零数字 printf(”%e”,123.456); 输出:输出:1.234560 e+0023.4.3 用用printf函

41、数输出数据函数输出数据2. 常用常用格式字符格式字符ue格式符。指定以指数形式输出实数格式符。指定以指数形式输出实数l%m.ne printf(”%13.2e”,123.456); 输出:输出: 1.23e+002 (前面有前面有4个空格个空格)d,ix,Xoucse,Efg%十六进制无符号整数十六进制无符号整数不带符号十进制整数不带符号十进制整数十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e和f中较短一种百分号本身百分号本身int a=567;printf ( “%d”,a);int a=25

42、5;printf(“%x”,a);int a=65;printf(“%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(“%”);567ff101567AABC5.677890e+02567.789000567.789%说明说明格式字符要用小写格式字符要用小写格式字符与输出项个数应相同,按先后顺序一

43、一对应格式字符与输出项个数应相同,按先后顺序一一对应输出转换输出转换:格式字符与输出项类型不一致格式字符与输出项类型不一致,自动按指定格式输自动按指定格式输出出表格表格.n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)修饰符修饰符功功 能能m输出数据域宽输出数据域宽, ,数据长度数据长度m,m,左补空格左补空格; ;否则按实际输否则按实际输出出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐) )-指定在有符号数的正数前显示正号指定在有符号数的正数前显示正号(+)(+)+输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 00在八

44、进制和十六进制数前显示前导在八进制和十六进制数前显示前导0 0,0 x0 x#在在d,o,x,ud,o,x,u前,指定输出精度为前,指定输出精度为longlong型型在在e,f,ge,f,g前,指定输出精度为前,指定输出精度为doubledouble型型l附加格式说明符(修饰符)对字符串对字符串, ,指定实际输出位数指定实际输出位数格式格式: : scanfscanf(“(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中, ,并按回车键结束并按回车键结束返值:正常,返回输入数据个数

45、返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符& &格式字符格式字符:d,i,o,x,u,c,s,f,e:d,i,o,x,u,c,s,f,e例例 scanf(“%d”,&a); 输入:输入:10 则则 a=10例例 scanf(“%x”,&a); 输入:输入:11 则则 a=17格式输入函数格式输入函数附加格式说明符(修饰符)附加格式说明符(修饰符)l修饰修饰符符功功 能能hm*用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o,xd,o,x前,指定输入为前

46、,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为doubledouble型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入输入 19991015 则则1999yy, 10 mm, 15 dd一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c)

47、; printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 输入分隔符的指定 输入数据时,遇以下情况认为该数据结束:输入数据时,遇以下情况认为该数据结束:n

48、 遇空格、遇空格、TAB、或回车或回车n 遇宽度结束遇宽度结束n 遇非法输入遇非法输入如如 scanf(“%d%c%f”,&a,&b,&c); 若输入若输入1234a123o.26 则则 1234 a, a b, 123 c 输入函数留下的输入函数留下的“垃圾垃圾”:例例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10例例 int x; char ch; scanf(“%d”,&x); scanf(“%

49、c”,&ch); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10解决方法:解决方法:(1 1)用)用getchargetchar()()清除清除 (2) (2) 用格式串中空格或用格式串中空格或“% %* *c”c”来来“吃掉吃掉”例例 int x; char ch; scanf(“%d”,&x); scanf(“ %c”,&ch);或或 scanf(“%*c%c”,&ch); 或或getchar();Scanf(“%c”,&ch);说明: 用用“%c”格式符时,空格和转义字符作为有效字符格式符时,空格和转义字符作为有效字符输入输入如如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入若输入a b c 则则ac1, c2, b c33.4.5 字符数据的输入输出字符数据的输入输出1.用用putchar函数输出一个字符函数输出一个字符从计算机向显示器输出一个字符从计算机向显示器输出一个字符 putchar函数的一般形式为函数的一般形式为: putchar(c) 3.4.5 字符数据的输入输出字符数据的输入输出例例3.8 先后输出先后输出BOY三个字符。三个字符。 解题思路:解题思路:u定义定义3

温馨提示

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

评论

0/150

提交评论