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

下载本文档

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

文档简介

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

2、de int main ( ) float f,c; f=64.0; c=(5.0/9)*(f-32); printf(f=%fnc=%fn,f,c); return 0; 3.1顺序程序设计举例顺序程序设计举例#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.2 数据的表现形式及其运算数据的表现形式及其运算3.2.1 常量和变量常量和变量3.2

3、.2 数据类型数据类型3.2.3 整型数据整型数据3.2.4 字符型数据字符型数据3.2.5 浮点型数据浮点型数据3.2.6 怎样确定常量的类型怎样确定常量的类型3.2.7 运算符和表达式运算符和表达式3.2.1 常量和变量常量和变量1.常量常量:在程序运行过程中,其值在程序运行过程中,其值不能被改变的量不能被改变的量。 整型常量整型常量、实型常量实型常量、字符常量字符常量、字符串常量字符串常量。 符号常量符号常量:#define pi 3.1416 例例 常量与符号常量的使用常量与符号常量的使用#include #define price 30main ( ) int num, total;

4、 num=10; total=num * price; printf(total=%dn,total);3.2.1 常量和变量常量和变量2. 变量变量:在程序运行期间,变量的值是可以改在程序运行期间,变量的值是可以改变的变的。 变量必须变量必须先定义先定义,后使用后使用。 定义定义变量变量时指定该变量的时指定该变量的名字名字和和类型类型。 变量名变量名和和变量值变量值是是两个不同的概念两个不同的概念。 变量名实际上是以一个名字代表的一个变量名实际上是以一个名字代表的一个存储存储单元。单元。 从变量中取值,实际上是通过变量名找到相从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中

5、读取数据应的内存地址,从该存储单元中读取数据。3.常变量常变量:const int a=3;3.2.1 常量和变量常量和变量4.标识符标识符:有效字符序列,用来标识对象的名称,如:变量名、符号常量有效字符序列,用来标识对象的名称,如:变量名、符号常量名、名、 函数名、数组名、类型名等。函数名、数组名、类型名等。 命名规则命名规则 : 只能由只能由字母字母、数字数字和和下划线下划线3种字符组成种字符组成,且且第一个字符必第一个字符必须为字母或下划线须为字母或下划线。 合法的标识符:合法的标识符:如如sum,average, _total, class, day, basic, li_ling 不

6、合法的标识符不合法的标识符:m.d.john,¥,¥123,33,3d64,ab 注意注意: :1.1.区别大小写。区别大小写。 如如sumsum与与sumsum为不同的变量名为不同的变量名, ,但一般变量名用小写字母,符号常但一般变量名用小写字母,符号常量采用大写字母。量采用大写字母。2.2.标识符必须先定义后使用。标识符必须先定义后使用。 分配单元、分配单元、 确定类型、确定类型、 语法检查语法检查3.3.在一个程序单元中(分程序或函数中)不能重复定义。在一个程序单元中(分程序或函数中)不能重复定义。4.4.关键字关键字(p378 p378 附录附录c c)不能作为标识符。)不能作为标识符

7、。5.5.标识符长度无统一规定。标识符长度无统一规定。 tc tc识别前识别前8 8个字符个字符student_namestudent_name student_numberstudent_number只作为同一个只作为同一个变量。变量。6.6.按义取名。按义取名。3.2.2 数据类型数据类型 所谓所谓类型类型,就是对数据分配存储单元的安排,包括存储单,就是对数据分配存储单元的安排,包括存储单元的长度元的长度(占多少字节占多少字节)以及数据的存储形式以及数据的存储形式。 不同的类型分配不同的长度和存储形式不同的类型分配不同的长度和存储形式。3.2.3 整型数据整型数据1. 整型数据的分类整型数

8、据的分类 最基本的整型类型最基本的整型类型u基本整型基本整型(int型型):占占2个或个或4个字节个字节u短整型短整型(short int):vc+6.0中占中占2个字节个字节u长整型长整型(long int):vc+6.0中占中占4个字节个字节u双长整型双长整型(long long int):c99新增的新增的3.2.3 整型数据整型数据2. 整型变量的符号属性整型变量的符号属性u整型变量的值的范围包括负数到正数整型变量的值的范围包括负数到正数。u可以将变量定义为可以将变量定义为“无符号无符号”类型类型。u扩充的整形类型:扩充的整形类型:l有符号基本整型有符号基本整型 signed int;

9、l无符号基本整型无符号基本整型 unsigned int;l有符号短整型有符号短整型 signed short int;l无符号短整型无符号短整型 unsigned short int;l有符号长整型有符号长整型 signed long int;l无符号长整型无符号长整型 unsigned long intl有符号双长整型有符号双长整型 signed long long int; l无符号双长整型无符号双长整型 unsigned long long int整数类型的有关数据:整数类型的有关数据:类型类型 类型说明符类型说明符 长度长度 数的范围数的范围基本型基本型 intint 2 2字节字节

10、 -32768-327683276732767短整型短整型 short 2short 2字节字节 -2-215152 21515-1 -1 长整型长整型 long 4long 4字节字节 -2-231312 23131-1-1无符号整型无符号整型 unsigned 2unsigned 2字节字节 0 06553565535无符号短整型无符号短整型 unsigned short 2unsigned short 2字节字节 0 06553565535无符号长整型无符号长整型 unsigned long 4unsigned long 4字节字节 0 0(2 23232-1-1) 注:注:对应不同的机

11、器和编译系统,各类数据所占内存对应不同的机器和编译系统,各类数据所占内存字节数不尽相同字节数不尽相同, ,因此数值范围也不同。因此数值范围也不同。整型常量的三种表示形式整型常量的三种表示形式l十进制整数。十进制整数。 如:如:123, -456123, -456。l八进制整数。八进制整数。以以0 0开头的数是八进制数。开头的数是八进制数。 如:如:01230123表示八进制数表示八进制数123123,等于十进制数,等于十进制数83,-01183,-011表示八进制数表示八进制数-11,-11,即十进制数即十进制数-9-9。l十六进制整数。十六进制整数。以以0 x0 x开头的数是开头的数是161

12、6进制数。进制数。 如:如:0 x1230 x123,代表,代表1616进制数进制数123,123,等于十进制数等于十进制数 291291。 -0 x12-0 x12等于十进制数等于十进制数1010。整型数据在内存中的存放形式整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的,有符号数用补数据在内存中是以二进制形式存放的,有符号数用补码表示。码表示。 如如: : intint i,ji,j; ; i i=10;j=-10; =10;j=-10; 则:则:i i存储为:存储为:0000 0000 0000 10100000 0000 0000 1010 j j存储为:存储为:1111

13、1111 1111 01101111 1111 1111 0110整数整数13在内存中实际存放的情况在内存中实际存放的情况例例 整型变量的定义与使用整型变量的定义与使用 #include main ( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(a+u=%d,b+u=%dn,c,d);运行结果:运行结果:a+u=22b+u=-14例例 整型数据的溢出整型数据的溢出#include main() int a,b; a=32767; b=a+1; printf(%d,%dn,a,b);运行结果:运行结果:32767

14、,-3276832767,-32768运行结果分析:运行结果分析:l有符号整型变量的范有符号整型变量的范围为围为-32768-327683276732767,运运算结果超出此范围,算结果超出此范围,发发生生“溢出溢出”。l发生发生“溢出溢出”时,编时,编写的程序如果没有对此写的程序如果没有对此情况进行处理,则程序情况进行处理,则程序将根据错误的结果继续将根据错误的结果继续运行。运行。3.2.4 字符型数据字符型数据 字符是按其代码字符是按其代码(整数整数)形式存储的形式存储的 c99把字符型数据作为整数类型的一种把字符型数据作为整数类型的一种 字符型数据在使用上有自己的特点字符型数据在使用上有

15、自己的特点3.2.4 字符型数据字符型数据1.字符与字符代码字符与字符代码 大多数系统采用大多数系统采用ascii字符集字符集u字母:字母:a z,a zu数字:数字:09u专门符号:专门符号:29个:个:! ” # & ( ) *等等u空格符:空格符:空格、水平制表符、换行空格、水平制表符、换行等等u不能显示的字符:不能显示的字符:空字符、警告、退格、回车等空字符、警告、退格、回车等3.2.4 字符型数据字符型数据2.字符变量字符变量 用类型符用类型符char定义字符变量定义字符变量u char c = ?; 系统把系统把“?”的的ascii代码代码63赋给变量赋给变量cuprintf(”%

16、d %cn”,c,c);u输出结果是:输出结果是: 63 ?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 10

17、 0 0 0 0 0 0 1字符常量字符常量1 1、用单引号括起来的一个字符。、用单引号括起来的一个字符。 a a ?a a ?2 2、转义字符:以、转义字符:以“”开头的特殊字符。开头的特殊字符。 n n 换行换行 t t 水平制表水平制表 r r 回车回车 反斜杠反斜杠 dddddd dddddd 1 1到到3 3位八进制数字(位八进制数字(asciiascii码值)码值) xhhxhh hhhh表示表示1 1到到2 2位十六进制数字(位十六进制数字(asciiascii码值)码值) 见见p40 p40 表表3.13.1,p377 p377 附录附录b b。 字符数据在内存中的存储形式及其

18、使用方法字符数据在内存中的存储形式及其使用方法采用采用asciiascii编码存放(占一个字节)。编码存放(占一个字节)。 a 97d 61h 01100001 a 97d 61h 01100001 b 98d 62h 01100010 b 98d 62h 01100010在表示范围内可以作为整型数据使用。在表示范围内可以作为整型数据使用。例例 向字符变量赋以整数向字符变量赋以整数#include main() char c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);运行结果:运行结果: 97 98 97 983

19、.2.5 浮点型数据浮点型数据浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数。 float型型(单精度浮点型单精度浮点型)u编译系统为编译系统为float型变量分配型变量分配4个字节个字节u数值以规范化的二进制数指数形式存放数值以规范化的二进制数指数形式存放 参见教材参见教材图图3.11 double型型(双精度浮点型双精度浮点型)u编译系统为编译系统为double型变量分配型变量分配8个字节个字节u15位有效数字位有效数字 long double(长双精度长双精度)型型浮点型常量的表示方法浮点型常量的表示方法两种表两种表示形式示形式小数小数指数指数0.1230.12

20、33 3e-3e-3 注意注意: :字母字母e(e(或或e)e)之前必须有数字,且之前必须有数字,且e (e (或或e)e)后面后面的指数必须为整数。的指数必须为整数。浮点型常量的表示方法浮点型常量的表示方法 规范化的指数形式规范化的指数形式: 在字母在字母e e(或(或e e)之前的小数部分中,小数点左边)之前的小数部分中,小数点左边有且只能一位非零的数字。有且只能一位非零的数字。 例如例如: : 123.456 123.456可以表示为:可以表示为: 123.456e0, 12.3456e1, 123.456e0, 12.3456e1, 1.23456e2 1.23456e2, , 0.1

21、23456e3, 0.0123456e4, 0.00123456e 0.123456e3, 0.0123456e4, 0.00123456e 如果浮点数以指数形式输出,则输出规范化的指数形式。如果浮点数以指数形式输出,则输出规范化的指数形式。3.2.6 怎样确定常量的类型怎样确定常量的类型 字符常量字符常量:由单撇号括起来的单个字符或转义字符由单撇号括起来的单个字符或转义字符。 整型常量整型常量:不带小数点的数值不带小数点的数值,数字跟,数字跟l或或l表示长整型;表示长整型;跟跟u或或u表示无符号整型。表示无符号整型。u系统根据数值的大小确定系统根据数值的大小确定int型型还是还是long型型

22、等等 浮点型常量浮点型常量:凡以小数形式或指数形式出现的实数凡以小数形式或指数形式出现的实数uc编译系统把浮点型常量都按双精度处理编译系统把浮点型常量都按双精度处理(数字跟(数字跟f或或f表示单表示单精度浮点型精度浮点型)3.2.7 运算符和表达式运算符和表达式1.基本的算术运算符基本的算术运算符:+ :正号运算符正号运算符(单目运算符单目运算符) - :负号运算符负号运算符(单目运算符单目运算符)* :乘法运算符乘法运算符/ :除法运算符除法运算符% :求余运算符求余运算符+ :加法运算符加法运算符 - :减法运算符减法运算符3.2.7 运算符和表达式运算符和表达式说明说明 两个整数相除的结

23、果为整数两个整数相除的结果为整数u如如5/3的结果值为,舍去小数部分的结果值为,舍去小数部分u如果除数或被除数中有一个为负值,舍入方向不固定如果除数或被除数中有一个为负值,舍入方向不固定。例如,例如,-5/3,有的系统中得到的结果为,有的系统中得到的结果为-1,在有的,在有的系统中则得到结果为系统中则得到结果为-2uvc+采取采取“向零取整向零取整”的方法的方法 如如5/3=1,-5/3=-1,取整后向零靠拢,取整后向零靠拢 % 运算符要求参加运算的运算对象运算符要求参加运算的运算对象(即操作数即操作数)为整数,为整数,结果也是整数。如结果也是整数。如8%3,结果为,结果为2课堂练习课堂练习

24、4 / 3 = ?-4 / 3 = ?5 / 3 = ?-5 / 3 = ?4 % 3 = ?-4 % 3 = ?5 % 3 = ?-5 % 3 = ?3.2.7 运算符和表达式运算符和表达式2. 自增、自减运算符自增、自减运算符: 作用是使变量的值或减作用是使变量的值或减u+i,-i:在使用在使用i之前,先使之前,先使i的值加(减)的值加(减)1ui+,i-:在使用在使用i之后,使之后,使i的值加(减)的值加(减)1例如:例如: j=+i 如果运算之前如果运算之前i的值为的值为3,则运算后则运算后i的值为的值为4,j的值也为的值也为4。j=i+ 如果运算之前如果运算之前i的值为的值为3,则运

25、算后则运算后i的值为的值为4,j的值却为的值却为3注意注意: 1.自增、自减运算不能用于常量和表达式自增、自减运算不能用于常量和表达式3+,(a+b)+。2.右结合性右结合性 -i+ 相当于相当于-(i+)。3.2.7 运算符和表达式运算符和表达式3. 算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性: c 算术表达式算术表达式: 用算术运算符和圆括号将运算对象用算术运算符和圆括号将运算对象(也称操也称操作数作数)连接起来的、符合连接起来的、符合c语法规则的式子。语法规则的式子。 运算对象运算对象: 常量、变量、函数常量、变量、函数 等。等。 优先级优先级: 对于算术运算对

26、于算术运算, 必须掌握其优先级具体见必须掌握其优先级具体见p378(附录附录d) 4、结合性、结合性: 一个运算对象两边有两个优先级相同的运算符一个运算对象两边有两个优先级相同的运算符时,该运算对象先和左边的运算符结合称左结合性,如先时,该运算对象先和左边的运算符结合称左结合性,如先和右边的运算符结合称右结合性。和右边的运算符结合称右结合性。左右左右结合性结合性: a + a + b b + c; + c; a = a = b b = c; = c; 3.2.7 运算符和表达式运算符和表达式4.不同类型数据间的混合运算不同类型数据间的混合运算:(1)+、-、*、/ 运算的两个数中有一个数为运算

27、的两个数中有一个数为float或或double型,结果是型,结果是double型型。系统将系统将float型数据都先型数据都先转换为转换为double型,然后进行运算型,然后进行运算(2) 如果如果int型与型与float或或double型数据进行运算,先把型数据进行运算,先把int型和型和float型数据转换为型数据转换为double型,然后进行运算,结型,然后进行运算,结果是果是double型型(3)字符型数据与整型数据进行运算,就是把字符的字符型数据与整型数据进行运算,就是把字符的ascii代码与整型数据进行运算代码与整型数据进行运算 各类数值型数据间的混合运算各类数值型数据间的混合运算

28、 混合运算:混合运算:字符型字符型、整型和浮点型。在进行运、整型和浮点型。在进行运算时,不同类型的数据要先转换成同一类型算时,不同类型的数据要先转换成同一类型, ,然后然后进行运算(这种类型转换由系统自动进行的)。进行运算(这种类型转换由系统自动进行的)。 intint i; float f; double d; long e; i; float f; double d; long e; 10 + a + i * f - d / eintintdoubledoubledoubledoubledoubledoubledoubledouble3.2.7 运算符和表达式运算符和表达式 例例3.3 给

29、定一个大写字母,要求用小写字母输出。给定一个大写字母,要求用小写字母输出。 解题思路:解题思路:u关键是关键是找到大找到大、小写字母间小写字母间的的内在联系内在联系u同一个字母,用小写表示的字符的同一个字母,用小写表示的字符的ascii代码比用大代码比用大写表示的字符的写表示的字符的ascii代码大代码大323.2.7 运算符和表达式运算符和表达式#include int main ( ) char c1,c2; c1=a; c2=c1+32; printf(%cn,c2); printf(”%dn”,c2); return 0;3.2.7 运算符和表达式运算符和表达式#include int

30、 main ( ) 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) (

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

32、算符和表达式运算符和表达式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) 控制语句

33、控制语句: if、switch、for、while、dowhile、continue、break、return、goto等等(2) 函数调用语句函数调用语句(3) 表达式语句表达式语句(4) 空语句空语句(5) 复合语句复合语句3.3.2 最基本的语句最基本的语句-赋值语句赋值语句 在在c程序中,最常用的语句是:程序中,最常用的语句是:u赋值语句赋值语句u输入输出语句输入输出语句 其中最基本的是赋值语句其中最基本的是赋值语句3.3.2 最基本的语句最基本的语句-赋值语句赋值语句 例例3.4 给出三角形的三边长,求三角形面积。给出三角形的三边长,求三角形面积。 解题思路:解题思路:假设给定的三个

34、边符合构成三角形的条件假设给定的三个边符合构成三角形的条件 关键是找到求三角形面积的公式关键是找到求三角形面积的公式 公式为:公式为:其中其中s=(a+b+c)/2)()(csbsassarea#include #include int main ( ) double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%ftb=%ft%fn,a,b,c); printf(area=%fn,area); return 0; #include #include int

35、 main ( ) double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%ftb=%ft%fn,a,b,c); printf(area=%fn,area); return 0; 对边长对边长a、b、c赋值赋值计算计算s计算计算area。sqrt为数学函数,为数学函数,计算平方根计算平方根调用数学函数调用数学函数加此行加此行转义字符转义字符,使输出位置跳到下一使输出位置跳到下一个个tab位置位置 归纳归纳总结:总结:1.赋值运算符赋值运算符u“”是赋值运

36、算符是赋值运算符u作用是将一个数据赋给一个变量作用是将一个数据赋给一个变量u也可以将一个表达式的值赋给一个变量也可以将一个表达式的值赋给一个变量2.复合的赋值运算符复合的赋值运算符u在赋值符在赋值符“”之前加上其他运算符,可以构成复合的运算符之前加上其他运算符,可以构成复合的运算符u 等价于等价于 3.赋值表达式赋值表达式u一般形式为一般形式为: 变量变量 赋值运算符赋值运算符 表达式表达式u对赋值表达式求解的过程:对赋值表达式求解的过程:l求赋值运算符求赋值运算符右侧右侧的的“表达式表达式”的值的值l赋给赋值运算符赋给赋值运算符左侧左侧的变量的变量 归纳归纳总结:总结:4.赋值过程中的类型转

37、换赋值过程中的类型转换u两侧类型一致两侧类型一致时时,直接赋值,直接赋值u两侧类型不一致,但都是算术类型时,两侧类型不一致,但都是算术类型时,自动将右侧的自动将右侧的类型转换类型转换为为左侧类型后赋值左侧类型后赋值u定义变量时要防止数据溢出定义变量时要防止数据溢出5.赋值表达式和赋值语句赋值表达式和赋值语句u赋值表达式的末尾没有分号,而赋值语句有赋值表达式的末尾没有分号,而赋值语句有分号分号u一个表达式可以包含赋值表达式,但决不能包含赋值语句一个表达式可以包含赋值表达式,但决不能包含赋值语句6.变量赋初值变量赋初值int a=3,b=3,c;int a=3; 相当于相当于 int a; a=3

38、;3.4 数据的输入输出数据的输入输出3.4.1 输入输出举例输入输出举例3.4.2 有关数据输入输出的概念有关数据输入输出的概念3.4.3 用用printf函数输出数据函数输出数据3.4.4 用用scanf函数输入数据函数输入数据3.4.5 字符数据的输入输出字符数据的输入输出3.4.1 输入输出举例输入输出举例 例例3.5 求求 方程的根。方程的根。a、b、c由键盘由键盘输入输入, 设设 。解题思路:解题思路:首先要知道求方程式的根的方法。首先要知道求方程式的根的方法。由数学知识已知:由数学知识已知:如果如果 0,则一元二次方,则一元二次方程有两个实根程有两个实根:02cbxaxacb42

39、acb42aacbbx2421aacbbx2422abp2aacbq242若记若记qpx1qpx2#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;#include #include int main ( ) double a,b,c,disc,x1,x

40、2,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输入输入a,b,c的值的值取变量地址取变量地址输入输入3个个双精度型实数双精度型实数,将值赋给后面的变量将值赋给后面的变量输出输出实数实数,数据占,数据占7列,列,其中小数占其中小数占2列列3.4.2 有关数据输入输出的概念有关数据输入输出的概念 几乎每一个几乎每一

41、个c程序都包含输入输出程序都包含输入输出,输入输出是程序中最基本的操作输入输出是程序中最基本的操作之一之一。 (1) 所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的从计算机向输出设备从计算机向输出设备(如显示器、打印机等如显示器、打印机等)输出数据称为输出输出数据称为输出从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为输入输入 (2) 语言本身不提供输入输出语句语言本身不提供输入输出语句输入和输出操作是由输入和输出操作是由c标准函数库中的函数来实现的标准函数库中的函数来实现的printf和

42、和scanf不是语言的关键字,而只是库函数的名字不是语言的关键字,而只是库函数的名字putchar、getchar、puts、gets (3)在使用在使用输入输出输入输出函数时,要在程序文件的开头用预编译指令函数时,要在程序文件的开头用预编译指令 #include 或或 #include stdio.h3.4.3 用用printf函数输出数据函数输出数据1.printf函数的一般格式函数的一般格式printf(格式控制,输出表列)(格式控制,输出表列)例如:例如:printf(”i=%d,c=%cn”,i,c);格式声明格式声明普通字符普通字符可以是常量、变量或表达式可以是常量、变量或表达式3

43、.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符格式符。用来输出一个有符号的十进制整数。用来输出一个有符号的十进制整数l可以在格式声明中指定输出数据的域宽可以在格式声明中指定输出数据的域宽 printf(”%5d%5dn”,12,-345);l%d输出输出int型数据型数据l%ld输出输出long型数据型数据3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符格式符。用来输出一个字符。用来输出一个字符 char ch=a; printf(”%c”,ch); 或或 printf(”%5c”,ch);输出字符输出字符:a

44、3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符u格式符格式符。用来输出一个字符串。用来输出一个字符串 printf(”%s”,”china”); 输出字符串输出字符串:china3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符格式符。用来输出实数。用来输出实数(包括单双精度)(包括单双精度) ,以小数形式输出以小数形式输出不不指定数据宽度和小数位数,用指定数据宽度和小数位数,用%f 例例3.6 用用%f输出实数,只能得到位小数。输出实数,只能得到位小数。 double a=1.0; printf(”%fn”,a/3

45、);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符格式符。用来输出实数,以小数形式输出。用来输出实数,以小数形式输出 指定数据宽度和小数位数。用指定数据宽度和小数位数。用%m.nf printf(%20.15fn,1/3); printf(%.0fn”,10000/3.0);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符格式符。用来输出实数,以小数形式输出。用来输出实数,以小数形式输出 指定数据宽度和小数位数。用指定数据宽度和小数位数。用%m.nf float a; a=10000/3.0; print

46、f(%fn,a);3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符格式符。用来输出实数,以小数形式输出。用来输出实数,以小数形式输出 输出的数据向左对齐,用输出的数据向左对齐,用%-m.nf3.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符uf格式符格式符。用来输出实数,以小数形式输出。用来输出实数,以小数形式输出lfloat型数据只能保证型数据只能保证6位有效数字位有效数字ldouble型数据能保证型数据能保证15位有效数字位有效数字l计算机输出的数字计算机输出的数字不都不都是绝对精确有效的是绝对精确有效的3.4.3

47、 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符ue格式符格式符。指定以指数形式输出实数。指定以指数形式输出实数l%e,vc+给出小数位数为位给出小数位数为位 指数部分占指数部分占5列列 小数点前必须有而且只有小数点前必须有而且只有1位非零数字位非零数字 printf(”%e”,123.456); 输出:输出:1.234560 e+0023.4.3 用用printf函数输出数据函数输出数据2. 常用常用格式字符格式字符ue格式符格式符。指定以指数形式输出实数。指定以指数形式输出实数l%m.ne printf(”%13.2e”,123.456); 输出:输出: 1.23e

48、+002 (前面有前面有4个空格个空格) printf的格式控制的完整格式:的格式控制的完整格式: % - 0 m.n l或或h 格式字符格式字符 下面对组成格式说明的各项加以说明:下面对组成格式说明的各项加以说明:%:表示格式说明的:表示格式说明的起始符号起始符号,不可缺少不可缺少。-:有:有-表示表示左对齐输出左对齐输出,如省略表示右对齐输出。,如省略表示右对齐输出。0:有:有0表示指定表示指定空位填空位填0,如省略表示指定空位不填。如省略表示指定空位不填。m.n:m指域宽指域宽,即对应的输出项在输出设备上所占的,即对应的输出项在输出设备上所占的字符数。字符数。n指精度指精度。用于说明输出

49、的实型数的小数位数。未。用于说明输出的实型数的小数位数。未指定指定n时,隐含的精度为时,隐含的精度为n=6位。位。l或或h:l对整型指对整型指long型,对实型指型,对实型指double型。型。h用于用于将整型的格式字符修正为将整型的格式字符修正为short型。型。格式字符:格式字符:格式字符用以指定输出项的数据类型和格式字符用以指定输出项的数据类型和输出格式。输出格式。%d:以以带符号十进制带符号十进制形式输出形式输出整数整数。%o:以以无符号八进制无符号八进制形式输出形式输出整数整数。%x:以以无符号十六进制无符号十六进制形式输出形式输出整数整数。%u:以以无符号十进制无符号十进制形式输出

50、形式输出整数整数。%c:以字符形式输出,只输出一个以字符形式输出,只输出一个字符字符。%s:输出输出字符串字符串。%f:以以小数形式小数形式输出输出实数实数,隐含输出六位小数。,隐含输出六位小数。%e:以以指数形式指数形式输出输出实数实数。%g:选用选用%f或或%e格式中输出宽度较短的一种格式中输出宽度较短的一种格式,不输出无意义的格式,不输出无意义的0。说明说明除了除了x,e,g外,其他各式字符必须用外,其他各式字符必须用小写。小写。可以在可以在printf函数中的函数中的“格式控制格式控制”字字符串中包含转义字符。符串中包含转义字符。一个格式说明必须以一个格式说明必须以“%”开头,以开头,

51、以9个格式字符之一为结束,中间可以插入附个格式字符之一为结束,中间可以插入附加格式字符。加格式字符。如果需要输出如果需要输出%,则应该在格式控制字,则应该在格式控制字符串中用连续两个符串中用连续两个%表示。表示。例例 输出十进制整数。输出十进制整数。#include main( ) int a; a=1; printf(|%d|,a); printf(|%4d|,a); printf(|%.3d|,a);printf(|%4.3d|,a); printf(|%-4d|,a); printf(|%04d|,a); printf(|%+d|n,a); a=-12; printf(|%d|,a); printf(|%4d|,a); printf(|%.3d|,a);printf(|%4.3d|,a); printf(|%-4d|,a); printf(|%04d|,a); p

温馨提示

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

评论

0/150

提交评论