计算机程序设计A2ppt课件

上传人:s9****2 文档编号:570668964 上传时间:2024-08-05 格式:PPT 页数:70 大小:370.50KB
返回 下载 相关 举报
计算机程序设计A2ppt课件_第1页
第1页 / 共70页
计算机程序设计A2ppt课件_第2页
第2页 / 共70页
计算机程序设计A2ppt课件_第3页
第3页 / 共70页
计算机程序设计A2ppt课件_第4页
第4页 / 共70页
计算机程序设计A2ppt课件_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《计算机程序设计A2ppt课件》由会员分享,可在线阅读,更多相关《计算机程序设计A2ppt课件(70页珍藏版)》请在金锄头文库上搜索。

1、第二章 基本数据类型与常用库函数1.本章目的n熟熟练掌握掌握C语言的三种基本数据言的三种基本数据类型型n整型,整型,实型,字符型。型,字符型。n掌握常用的掌握常用的库函数的使用。函数的使用。22-1 C语言的字符集与标识符nC语言有自己的字符集与使用言有自己的字符集与使用约定;定;nC语言的基本言的基本词法法单位是位是单词;n主要有:主要有:标识符、运算符、常量、符、运算符、常量、标点符等。点符等。nC语言的字符集言的字符集n有大小写字母、数字、其它符号。有大小写字母、数字、其它符号。32-1 C语言的字符集与标识符n标识符符n标识符符实际上是一个名字。上是一个名字。n由系由系统指定并具有特定

2、的含指定并具有特定的含义的的标识符称符称为关关键字。字。n如如int、float、if、while、。n关关键字必字必须用小写字母表示,不能将关用小写字母表示,不能将关键字作一般用字作一般用户标识符使符使用。用。42-1 C语言的字符集与标识符n标识符符n由用由用户指定的指定的标识符称符称为用用户标识符。符。n如:如:变量名、数量名、数组名、名、。n用用户标识符命名符命名规则:是以字母或下划:是以字母或下划线开开头,由字母、数字、,由字母、数字、下划下划线组成的字符序列。成的字符序列。nC语言区分大小写字母。言区分大小写字母。请思考请思考:下面给出的名字中可作为用户标识符的有:下面给出的名字中

3、可作为用户标识符的有:IF 、 6r 、 _a34 、 bi 、 int 、 、 as$ 52-2 C语言的数据类型n数据数据类型型n数据是程序数据是程序处理的理的对象,数据能表示一定的象,数据能表示一定的实体并以特定的形式存体并以特定的形式存在。在。这种特定的形式即种特定的形式即“数据数据类型型”。n数据以不同的数据以不同的类型表示型表示时,其取,其取值范范围是不同的,就如是不同的,就如1升的瓶子只升的瓶子只能装能装1升的水,超出就会升的水,超出就会“溢出溢出”。nC语言提供了丰富的数据言提供了丰富的数据类型,以型,以满足存放各种数据的需要。足存放各种数据的需要。62-2 C语言的数据类型数

4、据数据类型型指指针类型型构造构造类型型基本基本类型型空空类型型 void整型整型 int(含枚(含枚举类型)型)实型(浮点型)型(浮点型)字符型字符型 char数数组结构体构体共用体共用体单精度精度 float 双精度双精度 double72-2 C语言的数据类型n整型、整型、 字符型、字符型、 实型数据又有常量和型数据又有常量和变量之分量之分.n本章将本章将详细介介绍基本基本类型型: 整型、整型、 字符型、字符型、 实型型 。82-3 常量和变量n常量和符号常量常量和符号常量n常量是指常量是指: 在程序运行在程序运行过程中程中, 其其值不能被改不能被改变的量的量.一般在程序中,一般在程序中,

5、常量以其常量以其值出出现在在语句中。句中。#include void main() float r, k, s ; r= 10.5 ; k= 2 * 3.1415926 * r ; s=3.1415926 *r * r ; printf( “周长是周长是= %f n” , k ) ; printf( “面积是面积是= %f n” , s ) ; n因此因此,以其以其值出出现在程序中在程序中常量,称之常量,称之为“字面常量字面常量”n对于整型,于整型,实型,字符型,它型,字符型,它们的常量形式不同。下面再的常量形式不同。下面再细述。述。92-3 常量和变量n常量和符号常量常量和符号常量n可以用符

6、合可以用符合C语言言规则的的标识符去代表一个常量,称符去代表一个常量,称为“符号常量符号常量”. n符号常量使用前要定符号常量使用前要定义:用:用编译预处理命令理命令 n#define 符号常量名符号常量名 表达式表达式n建建议符号常量用大写字母。符号常量用大写字母。#include # define PI 3.1415926void main() float r, k, s ; r= 10.5 ; k= 2 * PI * r ; s= PI *r * r ; printf( “周长是周长是= %f n” , k ) ; printf( “面积是面积是= %f n” , s ) ; 102-3

7、 常量和变量n变量量n变量是指量是指: 在程序运行在程序运行过程中程中, 其其值可以被改可以被改变的量的量.n变量一定是以名字出量一定是以名字出现在程序中,称在程序中,称为“变量名量名”。在程序运行。在程序运行过程中,是取程中,是取变量的量的值使用。使用。变量的量的值是是动态变化的。化的。n 一个一个变量要有一个名字及确定的数据量要有一个名字及确定的数据类型型, 在内存中占据一定的存在内存中占据一定的存贮单元元, 在在该单元中存放元中存放变量的量的值.112-3 常量和变量n变量量n变量使用前要定量使用前要定义,要定,要定义其名字、数据其名字、数据类型。型。n 定定义变量的量的语句的格式句的格

8、式: 数据数据类型名型名 名字列表名字列表 ; 如:如: int a,b,c ;n 建建议变量名用小写字母。量名用小写字母。#include #define PI 3.1415926void main() float r, k, s ; scanf(“%f”,&r); /* 2、3、 10.5*/ ; k= 2 * PI * r ; s= PI *r * r ; printf( “周长是周长是= %f n” , k ) ; printf( “面积是面积是= %f n” , s ) ; 12基本数据类型的常量和变量n整型数据整型数据n整型常量:整数,如:整型常量:整数,如:12 、 456 、

9、-123 ,C语言允言允许整数以三整数以三种数制形式种数制形式书写写n十十进制:由正、制:由正、负号和号和09数数码组成,第一个数成,第一个数码不能是不能是0n八八进制:由正、制:由正、负号和号和07数数码组成,第一个数成,第一个数码必必须是是0n十六十六进制:由正、制:由正、负号和数号和数码09、af、AF组成,且要有前成,且要有前缀0x0128 是十进制整型常量?是八进制整型常量?是十进制整型常量?是八进制整型常量? 0x1z5 是十六进制整型常量?是十六进制整型常量?456 -1230710 -01730x1c8 -0x7b13基本数据类型的常量和变量n整型数据整型数据n整型整型变量:整

10、型量:整型变量的量的值是整数。使用前要定是整数。使用前要定义n要定要定义:变量名、数据量名、数据类型。型。 n分分为基本整型、基本整型、长整型、短整型;根据有无符号,又可以分整型、短整型;根据有无符号,又可以分为有有符号整型和无符号整型;符号整型和无符号整型;n数数值范范围各有不同,占用不同大小的内存空各有不同,占用不同大小的内存空间;类别类别类型名类型名占用字节占用字节数数有符号短整型有符号短整型 short2无符号短整型无符号短整型unsigned short2有符号基本整型有符号基本整型 int4无符号基本整型无符号基本整型unsigned int4有符号有符号长整型整型 long4无符

11、号无符号长整型整型unsigned long414基本数据类型的常量和变量n整型数据整型数据n整型整型变量量n数数值范范围见p17的表的表2.1n有符号整型以有符号整型以补码形式存放;形式存放;n无符号整型以无符号数形式存放;无符号整型以无符号数形式存放;n我我们以短整型以短整型为例作解例作解释。15 1 1111111 11110111有符号整型在机器中用有符号整型在机器中用有符号整型在机器中用有符号整型在机器中用补码补码表示。表示。表示。表示。对对于于于于 short a=8,b=-8;short a=8,b=-8; 0 0000 1 0000 0 0000原码补码a=810=10002b

12、=- 810=-10002真值 1 1111111 11111000符号位:0正数 1负数符号位数值位正数的原码=正数的补码 负数的原码和补码按以下规则相互转换: 符号位不变,数值位各位取反,未位加1。16基本数据类型的常量和变量n整型数据整型数据n不同的系不同的系统,数据,数据类型所占用的存型所占用的存贮空空间长度是有区度是有区别的。以上是的。以上是VC环境下的境下的值nC语言提供了一个言提供了一个检测数据数据类型所占用的存型所占用的存贮空空间长度的运算符度的运算符“sizeof”。用法:。用法:sizeof( 数据数据类型名型名)sizeof( 变量名量名)n如,如,vc下下sizeof(

13、int)和和sizeof(short)为4、2;17基本数据类型的常量和变量n整型数据整型数据n整型整型整数:有一定的数整数:有一定的数值范范围;n超出范超出范围会出会出现溢出溢出现象象 ;#include void main() short a,b;a = 32767;b = a+1;printf( a = %d , b = %dn, a,b) ; 0111 1111 1111 1111 a+ 0000 0000 0000 0001 1_ 1000 0000 0000 0000 b输出:输出:a=32767 b=-3276818基本数据类型的常量和变量n整型数据整型数据n整型常量的整型常量的

14、类型型问题n在整型常量尾部加字符在整型常量尾部加字符L(或小写的或小写的l),则为long类型。型。n在整型常量尾部加字符在整型常量尾部加字符U(或小写的或小写的u),则为无符号无符号类型。型。n若尾部没有字符,若尾部没有字符,则根据大小决定。根据大小决定。19基本数据类型的常量和变量n实型数据型数据n实型常量:型常量:带小数的数小数的数值。623.5 、 -12.546;C语言允言允许实型型常量以十常量以十进制小数或指数二种形式制小数或指数二种形式书写。写。n小数形式小数形式: 由正由正负号、数字和小数点号、数字和小数点组成(一定要有小数点,而成(一定要有小数点,而且小数点的前或后至少一且小

15、数点的前或后至少一边要有数字)。要有数字)。 n如如 :12.034 、 .125 、 -123. 、 +45.56 20基本数据类型的常量和变量n实型数据型数据n实型常量型常量n指数形式指数形式: 由正由正负号、数字、小数点和指数符号号、数字、小数点和指数符号e(或或E)组成。在成。在e前面必前面必须有数据(称有数据(称为尾数,可以是整数或尾数,可以是整数或实数),数),e的后面必的后面必须跟一个用整数表示的指数(称跟一个用整数表示的指数(称为阶码)。)。n62.35e1 .6235E2n错误的:的:8.76e4.6 、 e221基本数据类型的常量和变量n实型数据型数据n实型型变量:量:实型

16、型变量的量的值是是实数。使用前要定数。使用前要定义n要定要定义:变量名、数据量名、数据类型。型。n有有32位位单精度(精度(float型)和型)和64位双精度(位双精度(double型)型) 两种两种nfloat型:型:6位有效数字;位有效数字;ndouble型:型:16位有效数字;位有效数字;22基本数据类型的常量和变量n实型数据型数据n实型数据的舍入型数据的舍入误差差#include void main() float a,b,c;a=12345.765e14 ; b=a+20 ; c = b-a;printf(a=%f, b=%f, c = %fn,a,b,c) ;n因此因此, 对二个二

17、个实型数据就不能型数据就不能进行相等或不相等的比行相等或不相等的比较.n不可做不可做(a=b吗?)的判断的判断,而要做而要做( a-b的的绝对值给定定误差差吗?)的判断的判断23基本数据类型的常量和变量n实型数据型数据n实型常量的型常量的类型型n实型常量没有型常量没有类型型, 但但许多多C编译系系统将将实型常量作型常量作为双精度来双精度来处理理.n可以在可以在实型常量的尾部加字母型常量的尾部加字母: F或或f ,则编译系系统按按单精度精度处理理. 24基本数据类型的常量和变量n字符型数据字符型数据n字符常量字符常量:用用单引号引号为分界符分界符, 内含内含单个字符的一种常量个字符的一种常量n例

18、如:例如: A 、 a 、 0 、 $nC语言允言允许用一种特殊形式的字符常量用一种特殊形式的字符常量,称称为: 转义字符字符, 转义字字符的形式是符的形式是: 以一个以一个 字符开字符开头的字符序列,来表示一个字符。(参的字符序列,来表示一个字符。(参见P19页表表2-3)例如例如: n 代表代表 : 换行换行 t 代表代表 : 横向跳格,跳到下一标准位置横向跳格,跳到下一标准位置 代表代表 : 反斜杠字符反斜杠字符141 代表代表 : 以八进制以八进制141为为ASCII码的字符码的字符a,在在 后后可跟可跟13位八进制数码位八进制数码,代表一个字符代表一个字符x61 代表代表 : 以十六

19、进制以十六进制61为为ASCII码的字符码的字符a ,在在 后可后可12位十六进制数码,代表一个字符位十六进制数码,代表一个字符 0 代表代表 : ASCII码值为码值为0的空字符的空字符25基本数据类型的常量和变量n字符型数据字符型数据n字符串常量字符串常量:是用一是用一对双引号作分界符的字符序列。双引号作分界符的字符序列。n例如:例如: “abcdefg” 、 “a”n字符串常量在内存的存字符串常量在内存的存贮形式:每个字符占一个字形式:每个字符占一个字节,并自,并自动在在串尾加一个串尾加一个0字符,作字符,作为串串结束束标记。请问请问: a 和和 “a”不同点是不同点是什么什么?请问:字

20、符串请问:字符串 “abctderftgn” 中有多少个字符?中有多少个字符? 字符串字符串 “ab97xyxagn” 中有多少个字符?中有多少个字符?那么:那么:字符串字符串 “ab123xytxa35fgn” 有多少字符呢?有多少字符呢?26基本数据类型的常量和变量n字符型数据字符型数据n字符字符变量量n数据数据类型名:型名:char;占用;占用1个字个字节空空间;以;以ASCII码存存储n例例2.1:输入一个字符,入一个字符,输出出该字符的字形及其字符的字形及其ASCII值。#include void main() char ch ;scanf(“%c”, &ch ) ;printf(

21、“%c的的ASCII值为值为%dn”, ch,ch) ;A A的的ASCII值为值为6527基本数据类型的常量和变量n字符型数据字符型数据nC语言允言允许字符数据和整型数据可以通用字符数据和整型数据可以通用,含,含义:n一个字符数据正常一个字符数据正常应以字符形式以字符形式输出,也可以以整数形式出,也可以以整数形式输出。出。反之,一个整数数据正常反之,一个整数数据正常应以整数形式以整数形式输出,也可以以字符形式出,也可以以字符形式输出。出。n一个字符一个字符变量量输入入时正常正常应赋以字符数据,也可以以字符数据,也可以赋以整数数据。以整数数据。反之,一个整数反之,一个整数变量量输入入时正常正常

22、应赋以整数数据,也可以以整数数据,也可以赋以字以字符数据。符数据。#include void main() char c1 ;c1=a;printf( c1=%cn, c1) ; printf( c1=%dn, c1) ;c1=97 ; printf( c1=%c, c1=%dn, c1, c1) ;#include void main() int a;a=97 ;printf( a=%d, a=%cn, a, a) ;a=a ;printf( a=%d, a=%cn, a, a) ;28基本数据类型的常量和变量n变量量赋初初值nC语言允言允许在定在定义变量的同量的同时,为变量量赋初初值.#i

23、nclude void main() int x, sum=0 ; /*为变量为变量sum赋以初值赋以初值0 ,但但x具有不确定值具有不确定值*/ double pi=3.14159 ; /*为变量为变量pi赋以初值赋以初值3.14159 */ char c1 =#, c2; /*为变量为变量c1赋初值赋初值#, 但但c2具有不确定值具有不确定值*/ int a=1, b=1, c=1; /*分别为分别为a,b,c赋初值赋初值1 ,不能写成,不能写成 int a=b=c=1; */292-4 数据的输入与输出函数n在在C语言中言中, 数据的数据的输入入输出是通出是通过调用用库函数函数实现n库函

24、数是函数是C系系统为了用了用户使用方便,已使用方便,已编写好的函数。在用写好的函数。在用户的程序的程序中,凡是要中,凡是要调用用库函数,只要在程序开函数,只要在程序开头,用用预编译命令把和命令把和库函数函数有关的有关的头文件包含到用文件包含到用户程序中来,即可使用程序中来,即可使用库函数。函数。n命令格式:命令格式:#include 常用输入输出库函数:常用输入输出库函数: #include 数学库函数数学库函数 : #include 字符串处理库函数字符串处理库函数 : #include 其它库函数其它库函数 : #include 例:求平方根值例:求平方根值.#include #inclu

25、de void main() float a, b;a = 1567;b=sqrt(a); printf(“%.4fn”, b);302-4 数据的输入与输出函数n学学习使用使用库函数函数n函数名函数名n函数功能函数功能n调用格式用格式n参数(参数(实参)参)n头文件文件.312-4 数据的输入与输出函数n单个字符数据的个字符数据的输入入输出出库函数函数n单个字符数据的个字符数据的输出函数:出函数:putchar()n常用的常用的调用格式用格式: putchar(字符数据字符数据) ;n函数功能函数功能: 把字符数据把字符数据输出到出到显示器上示器上. 输出出时,字符数据的分界字符数据的分界符

26、符 不不输出出.n参数:字符数据,可以是字符常量、参数:字符数据,可以是字符常量、变量、表达式,可以是整型量、表达式,可以是整型数据。数据。例例: 输出的结果输出的结果?#include void main() putchar(A); putchar(101); putchar(65); putchar(n); 例例: 输出的结果输出的结果?#include void main() char a=B, b=O, c=Y ; putchar(a); putchar(b); putchar(c);若要输出:若要输出: B O Y应该怎么修改?应该怎么修改?输出:输出:BOY322-4 数据的输入与

27、输出函数n单个字符数据的个字符数据的输入入输出出库函数函数n单个字符数据的个字符数据的输入函数:入函数:getchar()n常用的常用的调用格式用格式: 变量量getchar() ;n函数功能函数功能:等待用等待用户从从键盘输入一个字符入一个字符, 赋给变量量. 输入入时,字符字符数据的分界符不数据的分界符不输入入.n参数:无参数:无例例: 输出的结果输出的结果?#include void main() char c1, c2, c3; c1=getchar() ; c2=getchar() ; c3=getchar(); putchar(c1); putchar(c2); putchar(c

28、3); 输入:输入:a b c 输出:输出:a b ?1)如果运行上方程序后想得到)如果运行上方程序后想得到c1=a,c2=b,c3=c, 用户应如何输入?用户应如何输入?2)如果运行上方程序时,用户输入的数据仍然是:)如果运行上方程序时,用户输入的数据仍然是:a b c 又想使又想使c1=a,c2=b,c3=c, 应如何修改程序?应如何修改程序?332-4 数据的输入与输出函数n格式格式输入与入与输出出库函数(适用任意函数(适用任意类型数据)型数据)n格式格式输出函数出函数: printf()n调用格式用格式: printf(格式控制字符串格式控制字符串 , 表达式列表表达式列表 ) ;n功

29、能:按照格式控制字符串功能:按照格式控制字符串给定的定的输出格式,把表达式列表的各出格式,把表达式列表的各表达式的表达式的值在在显示器上示器上输出。(注意:从格式控制字符串的首字出。(注意:从格式控制字符串的首字符开始符开始输出,到格式控制字符串的尾部出,到格式控制字符串的尾部结束束输出。)出。)例如:例如:int a=5; float x=2.4; printf(“a=%d,x=%fn” , a, x);输出结果是:输出结果是:a=5,x=2.400000342-4 数据的输入与输出函数n格式格式输出函数出函数: printf()n参数:格式控制字符串参数:格式控制字符串 , 表达式列表表达

30、式列表 n表达式列表表达式列表 :是要是要输出的数据出的数据项表表, 各数据各数据项间用逗号分隔用逗号分隔. 数据数据项可以是可以是: 常量常量, 变量量, 表达式表达式n格式控制字符串格式控制字符串 : 是用双引号括起来的字符串是用双引号括起来的字符串.n例如例如: printf( “a=%d, x=%f” , a,x ) ;n表达式列表:表达式列表:输出的各出的各项;n我我们详细地来看一下格式控制字符串的使用。地来看一下格式控制字符串的使用。352-4 数据的输入与输出函数nprintf()格式控制字符串格式控制字符串 n格式控制字符串格式控制字符串中含二种信息中含二种信息:n格式格式说明

31、:由明:由%开开头,后跟格式后跟格式说明字符明字符组成成 ( 如如 %d、%f )。功能:以此格式功能:以此格式输出出“表达式列表表达式列表”中的中的对应数据数据项的的值.n普通字符普通字符 :除格式:除格式说明外的字符明外的字符. (如如a= 、, 、x= 、n)。这些字符将原封不些字符将原封不变的的输出出.n对printf函数,我函数,我们学学习的重点就在的重点就在“格式字符格式字符”上上36printf()格式控制字符ndn输出格式:按有符号基本整型的十出格式:按有符号基本整型的十进制真制真值的的实际长度度输出整型出整型数据数据n一般用于:一般用于:int 型数据的型数据的输出(出(ch

32、ar型)型)例例: int a=10 , b=20 ; char c=b ;printf( “ a=%d , b=%d , c=%d n” , a , b, c ) ;/* 输出为输出为: a=10,b=20,c=98 */int a=10 , b=20 ; printf( “ 两数之和两数之和: %d , 之差之差: %d n” , a+b , a-b ) ; /* 输出为输出为: 两数之和两数之和: 30 , 之差之差: -10 */37printf()格式控制字符ndn%md:m为一个具体的正整数一个具体的正整数n输出格式:按有符号基本整型的十出格式:按有符号基本整型的十进制真制真值输出

33、数据出数据, 输出的位出的位数数为m位位.n当数据的当数据的实际长度度 m时, m不起作用不起作用,按数据的按数据的实际长度度输出出.例例: int a=12345 , b=-1 ; printf( “ a=%4d , b=%4d n” , a , b) ; /* 输出为输出为: a=12345 , b= -1 */38printf()格式控制字符ndn%-md:m为一个具体的正整数一个具体的正整数n输出格式:按有符号基本整型的十出格式:按有符号基本整型的十进制真制真值输出数据出数据, 输出的位出的位数数为m位位.n当数据的当数据的实际长度度 m时, m不起作用不起作用,按数据的按数据的实际长

34、度度输出出.例例: int a=12, b= 3 ; printf( “ a=%-4d , b=%-4d结束结束 n” , a , b ) ; /* 输出为输出为: a=12 ,b=3 结束结束 */39printf()格式控制字符nldn输出格式:按有符号出格式:按有符号长整型的十整型的十进制真制真值的的实际长度度输出数据出数据.n用于用于long型数据的型数据的输出。出。n%mldn%-mld40printf()格式控制字符non输出格式:按无符号基本整型的八出格式:按无符号基本整型的八进制真制真值的的实际长度度输出整型出整型数据数据 (不不输出前出前缀0)n一般用于:一般用于: int、

35、short 型数据的型数据的输出出n不不论有无符号,都按无符号看待。有无符号,都按无符号看待。例例: 例例: 输出结果输出结果?int a=1, b= -1 ;printf( “ %d,%d,%o,%o n” ,a , b , a , b ) ;输出:输出:1,-1,1,3777777777741printf()格式控制字符n%x (或或%X)n输出格式:按无符号基本整型的十六出格式:按无符号基本整型的十六进制真制真值的的实际长度度输出整出整型数据型数据 (不不输出前出前缀0x)n一般用于:一般用于: int、short 型数据的型数据的输出出n不不论有无符号,都按无符号看待。有无符号,都按无

36、符号看待。例例: 例例: 输出结果输出结果?int a=1, b= -1 ;printf( “ %d,%d,%x,%x n” ,a , b , a , b ) ;输出:输出:1,-1,1,ffffffff42printf()格式控制字符n%un输出格式:按无符号基本整型的十出格式:按无符号基本整型的十进制真制真值的的实际长度度输出整型出整型数据数据 n一般用于:一般用于: int、short 型数据的型数据的输出出n不不论有无符号,都按无符号看待。有无符号,都按无符号看待。例例: 例例: 输出结果输出结果?int a=1, b= -1 ;printf( “ %d,%d,%u,%u n” ,a

37、, b , a , b ) ;输出:输出:1,-1,1,429496729543printf()格式控制字符n对于于%o、%x(%X)、%u也可以有:也可以有:n%mo , %mx , %mun%-mo , %-mx , %-mun%lo , %lx , %lun%mlo , %mlx , %mlun%-mlo , %-mlx , %-mlu44printf()格式控制字符ncn输出格式:按字符型的出格式:按字符型的ASCII码值对应的字符的字符输出出. 不不输出分界出分界符符 n一般用于:一般用于:char 型数据的型数据的输出(出(int型)型)n%mc,%-mc: m的作用同前的作用同前

38、.例例:写出输出结果写出输出结果? char c=$ ; printf( “%c%4c结束结束n”, c, c);例例: 写出输出结果写出输出结果? char c=A ; int a=66 ; printf( “ %c , %d , %c, %d n”, c, c, a, a ) ;输出:输出:$ $结束结束输出:输出:A,65,B,6645printf()格式控制字符n%sn输出格式:用来出格式:用来输出字符串出字符串. 不不输出分界符出分界符” ”n一般用于:一般用于:字符串数据字符串数据n%ms、%-ms: m的作用同前的作用同前.n%m.ns、%-m.ns:n的作用的作用: 只取串左端

39、只取串左端n个字符个字符输出出例例:输出结果输出结果? #include void main() printf(“开始开始%10s%-5s结束结束n”, “Windows”, “XP”); printf(“开始开始%10.3s%.3s%-5.3s结束结束n”,“Windows”, “Windows”, “XP”); 输出:输出:开始开始 WindowsXP 结束结束 开始开始 WinWinXP 结束结束 46printf()格式控制字符n%fn输出格式:出格式:以小数形式以小数形式输出出实型数据型数据,其中其中:整数部分全部如数整数部分全部如数输出并出并输出六位小数。出六位小数。n一般用于:一

40、般用于:float 和和double例例:输出结果输出结果? void main() float x=123.45212f; double y=1234.567898765 ; printf(x=%f, y=%f n, x,y) ;输出:输出:x=123.452118, y=1234.567899例例:输出结果输出结果? void main() float x=9876.5432157; double y=9876.54321 ; printf(“x=%f, y=%f n”, x,y) ;输出:输出:x=9876.542969, y=9876.54321047printf()格式控制字符n%f

41、n%mf,%-mf:m的作用同前的作用同前.n%m.nf、%-m.nf:n的作用的作用:指定指定输出出n位小数位小数n%e(或或%E):以指数形式:以指数形式输出出实型数据,其中型数据,其中:尾数以尾数以规格化形格化形式并式并输出六位小数,指数占出六位小数,指数占5位位( e占占1位指数符号占位指数符号占1位位,指数占指数占3 位位)n%m.ne、%-m.ne:m的作用同前的作用同前.n%g(或或%G):由系:由系统根据数根据数值的大小的大小,自自动选f或或e格式格式输出出.48printf()函数的使用n应注意:注意:n除除X, E, G外外,其它格式字符必其它格式字符必须用小写字母用小写字

42、母. 如如%d不能写成不能写成%D.n格式控制格式控制 : 是用双引号括起来的字符串是用双引号括起来的字符串.字符串中含二种信息字符串中含二种信息:n由由%开开头,后跟格式字符后跟格式字符组成成 ( 如如 %d ):格式:格式说明明n除格式除格式说明外的字符明外的字符.这些字符将原封不些字符将原封不变的的输出出.49printf()函数的使用n应注意:注意:n如果想如果想输出字符出字符 “%” , 则格式控制字符串中用格式控制字符串中用 “%” 表示表示.nprintf(“%f%”, 1.0/3); nprintf( )的格式控制串中的的格式控制串中的 “格式格式说明明”的个数一般来的个数一般

43、来说应和数据和数据项表中的数据个数相同表中的数据个数相同, 类型要一致型要一致. printf(“%c %f %d ”, c, f, s); printf(“%c %f ”, c, f , s); /*小于小于,不输出不输出s数据项数据项*/printf(“%c %f %d ”, c, f ); /*大于大于,随意输出第三项随意输出第三项*/printf(“%c %d ”, c, f );/如果如果f为实型为实型,输出为输出为对应整数对应整数502-4 数据的输入与输出函数n格式格式输入与入与输出出库函数(适用任意函数(适用任意类型数据)型数据)n格式格式输入入函数函数: scanf() n调

44、用格式用格式: scanf(格式控制字符串格式控制字符串 , 地址列表地址列表 ) ;n功能:按照格式控制字符串功能:按照格式控制字符串给定的定的输入格式,把入格式,把输入的数据存入入的数据存入对应的内存的内存单元。(注意:从格式控制字符串的首字符开始元。(注意:从格式控制字符串的首字符开始输入,入,到格式控制字符串的尾部到格式控制字符串的尾部结束束输入。)入。)512-4 数据的输入与输出函数n格式格式输入函数入函数: scanf()n参数:格式控制字符串参数:格式控制字符串 , 地址列表地址列表 n地址列表地址列表 :是要接受是要接受输入数据的入数据的变量的地址(或数量的地址(或数组的首地

45、址、的首地址、或数或数组元素的地址),元素的地址), 各地址各地址项间用逗号分隔用逗号分隔. n格式控制字符串格式控制字符串 : 是用双引号括起来的字符串是用双引号括起来的字符串.n例如例如: scanf( “a=%d, x=%f” , &a,&x ) ;n地址列表:用取地址运算符地址列表:用取地址运算符&得到得到变量地址;如量地址;如&a即得到即得到变量量a的内存地址;的内存地址;522-4 数据的输入与输出函数nscanf()格式控制字符串格式控制字符串 n格式控制字符串格式控制字符串中含二种信息中含二种信息:n格式格式说明:由明:由%开开头,后跟格式后跟格式说明字符明字符组成成 ( 如如

46、 %d、%f )。功能:功能:以此格式从以此格式从键盘输入数据中接收数据存放到入数据中接收数据存放到“地址列表地址列表”中的中的对应变量的内存量的内存单元中元中.n普通字符普通字符 :除格式:除格式说明外的字符明外的字符. (如如a= 、, 、x= 、n)。这些字符要原封不些字符要原封不变的的输入入.n对scanf函数,我函数,我们学学习的重点就在的重点就在“格式字符格式字符”上上53scanf()格式控制字符ndn输入入:按有符号基本整型的十:按有符号基本整型的十进制真制真值的的实际长度接受度接受输入的数入的数据据n一般用于:一般用于:int 型数据的型数据的输出(出(char型)型)例例:

47、 int a,b,c; scanf(“%d,%d,%d”, &a,&b,&c);若要使若要使a=10,b=20,c=-5用户的输入是用户的输入是: 10,20, -5 例例: int a,b,c; scanf(“%d%d%d”, &a,&b,&c);若要使若要使a=10,b=20,c=-5用户的输入是用户的输入是: 10 20 -5 也可以是:也可以是:10 20 -5 但不能是:但不能是:10,20, -5 54scanf()格式控制字符n注意注意n我我们把用把用户输入的数据称入的数据称为: 数据数据输入流入流 .n要求同学要求同学们掌握:掌握: (1) 能根据能根据scanf()语句指定的

48、格式句指定的格式, 组织数数据据输入流入流. (2) 也能从已也能从已给出的数据出的数据输入流中按格式控制串指定入流中按格式控制串指定的格式截取所需的数据的格式截取所需的数据.例例: int a,b,c;scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);若要使若要使a=10,b=20,c=-5用户的输入是用户的输入是: a=10,b=20,c= -5 不能:不能:10 20 -5 也不能:也不能: 10,20,-5 例例: int a,b,c; scanf(“%d%d%d”,&a,&b,&c);若用户的数据输入是若用户的数据输入是: 1020 -5请思考请思考: a,b,c各为

49、多少各为多少?55scanf()格式控制字符ndn%md:m为一个具体的正整数一个具体的正整数,按有符号基本整型的十按有符号基本整型的十进制真制真值输入数据入数据, 系系统自自动截取截取m位位.例例: int a,b,c; scanf(“%3d%3d%3d”,&a,&b,&c);若要使若要使a=100,b=200,c=-50用户的输入是用户的输入是: 100200-50 56scanf()格式控制字符n%ld:按有符号按有符号长整型的十整型的十进制真制真值的的实际长度度输入数据入数据入数据入数据, 用于用于long型数据型数据.n%o:按无符号基本整型的八按无符号基本整型的八进制形式的制形式的

50、实际长度度输入数据入数据,用于用于unsigned型数据型数据.n%x (或或X):按无符号基本整型的十六按无符号基本整型的十六进制形式的制形式的实际长度度输入数入数据据,用于用于unsigned型数据型数据.n%u:按无符号基本整型的十按无符号基本整型的十进制形式的制形式的实际长度度输入数据入数据,用于用于unsigned型数据型数据.57scanf()格式控制字符ncn输入入:用来用来输入入单个字符个字符,不不输入分界符入分界符 n一般用于:一般用于:char 型数据的型数据的输入入例例:char c1, c2 ; scanf(“%c%c”, &c1,&c2); 若要使若要使c1=a, c

51、2=A用户的输入是用户的输入是: aA 不能不能: aA 也不能也不能 :a A 58scanf()格式控制字符ns: 用来用来输入字符串数据。不入字符串数据。不输入入”n%f: 以小数形式或指数形式以小数形式或指数形式输入入单精度精度实型数据型数据n%lf: 以小数形式或指数形式以小数形式或指数形式输入双精度入双精度实型数据型数据n可加可加m修修饰,但不能用,但不能用m.n控制精度。控制精度。例:例: int a; float x; scanf(“%3d%f”,&a,&x);若用户输入若用户输入: -1234 56.78 , 则则a=-12 x=34.000000 例:例: int a; f

52、loat x; scanf(“%d%4f”,&a,&x);若用户输入若用户输入: -1234 56.78 , 则则a=-1234 x=56.7 而而scanf( “%7.2f”, &x); 是错误的!是错误的!59scanf()函数的使用n应注意:注意:nscanf() 函数中的函数中的 “格式控制串格式控制串”后面是后面是变量的地址量的地址,而不是而不是变量名量名. n“格式控制字符串格式控制字符串”中中,除了格式除了格式说明以外的其它普通字符明以外的其它普通字符, 在在输入数入数据据时,要原封不要原封不动地地输入入.n在用在用 “%c”格式格式输入字符入字符时,空格字符和空格字符和“转义字

53、符字符”都作都作为有效字有效字符符输入入. ( 注意注意:即从即从键盘不能不能输入入转义字符字符)例例: 执行语句执行语句 scanf(“%c%c%c”, &c1,&c2,&c3); 若输入数据流为若输入数据流为: a b c 则则:c1=a c2= c3=b若输入数据流为若输入数据流为: anbc 则则:c1=a c2= c3=n60scanf()函数的使用n应注意:注意:n在在输入数据入数据时,遇以下情况遇以下情况时认为该数据数据输入入结束束.n遇空格、或按回遇空格、或按回车、或按、或按“Tab”键.n按指定的按指定的宽度度结束束.n遇非法遇非法输入入.例例: 执行执行scanf(“%d%

54、c%f”, &a,&b,&c);若输入数据流为若输入数据流为:1234a123o.26 则则:a=1234 b= a c=123若输入数据流为若输入数据流为:1234 a1230.26 则则:a=1234 b= c=不确定不确定61scanf()函数的使用n应注意:注意:n输入数据入数据时不能不能规定精度定精度.n如果如果“格式控制字符串格式控制字符串”中中,在在%后有一个后有一个 “*”附加附加说明符明符, 则表表示本示本输入入项在在读入后不入后不赋给相相应的的变量量(即即该输入入项作作废). “*”称称为抑制字符抑制字符例例: 执行执行scanf(“%d%*d%d”, &a,&b);若输入

55、数据流为若输入数据流为:1234 56 478 则则:a=1234 b= 47862scanf()函数的使用n应注意:注意:n输入入缓冲区:冲区:scanf函数函数执行行时,并不是,并不是输完一个数据完一个数据项就被送入就被送入对应的的变量中,而是将量中,而是将输入的数据入的数据项先存放在内存先存放在内存缓冲区中,只有在冲区中,只有在按回按回车键之后,才按照格式控制字符串所之后,才按照格式控制字符串所给定的定的输入格式从入格式从缓冲区冲区依次依次读取数据,并存入地址列表所取数据,并存入地址列表所对应的的变量中。量中。例:例:#include void main() int i1, i2; fl

56、oat f1, f2; char c1; scanf(“%d%d%5f%c%5f”, &i1, &i2, &f1, &c1, &f2);printf(“i1=%d,i2=%d,f1=%.3f,f2=%.3f,c1=%cn”,i1,i2,f1,f2,c1); 思考思考: (1) 若输入为若输入为: 123 456 34.5656.789 , 输出输出?(2) 若输入为若输入为: 123 456 34.#56.789 , 输出输出?63程序举例n例:从例:从键盘输入一个大写字母入一个大写字母,要求要求输出出对应的小写字母。的小写字母。n解:由解:由题意并根据大小写字母的意并根据大小写字母的ASCI

57、I码值的关系,可知:的关系,可知:小写字母小写字母ASCII码值=对应大写字母大写字母ASCII码值+32n解解题步步骤(算法)(算法):输入入c1 (scanf););求求对应的小写字的小写字母存入母存入c2;输出出c1,c2(printf) ;#include void main() char c1, c2 ;scanf( “%c”, &c1 );c2=c1+32 ;printf(“c1=%c, c2=%c n”, c1, c2 ) ;65程序举例n例:从例:从键盘输入一个入一个0-9的数字字符的数字字符,要求要求输出出对应的数的数值. 程序程序如何修改如何修改? 解:由解:由题意并根据数

58、字字符的意并根据数字字符的ASCII码值与与对应数数值的关系,可知:的关系,可知: 数字字符数字字符对应数数值=其其ASCII码值48 解解题步步骤(算法)(算法):输入数字字符入数字字符c1 (scanf););求求对应的数的数值存入存入c2;输出出c1,c2(printf) ;#include void main() char c1, c2 ;scanf( “%c”, &c1 );c2=c1+32 ;printf(“c1=%c, c2=%c n”, c1, c2 ) ;662-5常用库函数nP34页n请记住有关的住有关的头文件名文件名n涉及数学涉及数学库函数用的函数用的头文件名:文件名:

59、math.hn涉及字符涉及字符库函数用的函数用的头文件名:文件名: ctype.hn。n会会查表,表,应用用库函数函数n函数原型:函数的函数原型:函数的调用用说明,参数、明,参数、结果等果等n如:如: double sqrt(double x)例:例:sqrt(56.78)结果:结果: 返回返回56.78的平方根值的平方根值67作业nP38页 1 4 5(2)(4)(5)(7)n一周后交作一周后交作业。68实验与答疑n实验时间n周次:周次:4,7,10,15,17,18;n时间:周五:周五3、4、5节n实验要求要求n参考参考实验指指导进行行预习,提前写好,提前写好实验报告(程序)。告(程序)。n实验完成后,完成后,补充上充上输入、入、输出等运行出等运行结果。果。69实验与答疑n实验中的中的问题n实验报告的内容告的内容n报告告标题:班:班级、学号等、学号等n实验目的、目的、实验内容内容n程序,程序,输入、入、输出;程序,出;程序,输入、入、输出;出;n思考思考题:不作要求的情况下,有:不作要求的情况下,有时间就做。就做。70

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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