收藏 分销(赏)

C语言数据描述和C程序设计初步.pptx

上传人:天**** 文档编号:9854164 上传时间:2025-04-10 格式:PPTX 页数:62 大小:236.93KB 下载积分:14 金币
下载 相关 举报
C语言数据描述和C程序设计初步.pptx_第1页
第1页 / 共62页
C语言数据描述和C程序设计初步.pptx_第2页
第2页 / 共62页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,课程介绍,课时:,理论,40,学时,实验,32,学时,考试:,笔试,70,实验,25,(,5,个实验),出勤,5,第,1,页,/,共,62,页,课程介绍,为什么要学习,程序设计技术,?,计算机的应用已经渗透到各行各业,要发挥计算机的强大功能,离不开程序设计技术。,怎样才能学好,程序设计技术,?,勤动手,多上机。,第,2,页,/,共,62,页,程序设计技术,C,语言数据描述和,C,程序设计初步,结构化程序设计基础和,C,语言的控制结构,数组及其应用,函数与,C,程序结构,指针与函数,指针与数组,字符串及其应用,结构体类型和联合体类型,C,语言的文件处理及其应用,位运算与枚举类型,第,3,页,/,共,62,页,第一章,C,语言数据描述和,C,程序设计初步,C,程序的基本结构,C,语言的基本数据类型,基本运算符和表达式,不同类型数据混合运算及数据转换,C,程序设计初步,第,4,页,/,共,62,页,1.1.1 C,源程序的组成成分,#include,/*,头文件声明*函数头*,/,void main(),/*,定义主函数且无返回值*,/,float ave,x,y,z;/*,定义变量*,/,scanf(,“,%f,%f,%f,”,/,*,调用,scanf,函数接受数据,*,/,ave=(x+y+z)/3;/*,计算平均值*,/,printf(,“,%f,”,ave);/*,调用,printf,函数输出结果*,/,说明:,1.,程序由预处理命令和至少一个函数组成,但必须而且只有一个主函数,函数名必须是,main,。,2.,函数由函数头和函数体组成。函数体总是从花括号,“,”,开始。以反花括号,“,”,结束。,第,5,页,/,共,62,页,3,函数体由语句组成。,每一个分号,“,;,”,就代表一条语句的结束。,4,以,/*,开头到*,/,结束的部分叫注释行。即注解。不是语句,可以在程序中的任何位置,结尾不要分号,“,;,”,,不引起计算机任何动作。,5,语句由,C,语言规定的符号组成,结尾一定是分号,“,;,”,不同的语句引起不同的计算机动作,是计算机执行程序的最小单位。,6,当程序由多个函数组成时,除主函数,main,外,其他的函数叫子函数。,例,1-1,C,语言源程序的组成成分和基本结构,1.1.1 C,源程序的组成成分,第,6,页,/,共,62,页,用,C,言符号书写的程序称为源程序,,高级语言,源程序必须被转为机器语言程序才能被执行。,1.1.1 C,源程序的组成成分,源文件,。,。,目标文件,。,。,。,执行文件,。,。,。,。,其它目标,文件,/,库,。,。,连接,程序,编译,程序,图,1.1 C,程序的处理过程,第,7,页,/,共,62,页,1.1.2 C,语言的基本元素,1,C,语言的字符集,小写英文字母,a b c,z,大写英文字母,A B C,Z,数字,0 1 2 3,9,特殊字符,+=-_()*:,“,/?,不可印出字符空格、换行、制表符等,2,标识符,标识符是给程序中处理的数据对象(如变量、常量、函数、数据类型等)取的,名字,.,第,8,页,/,共,62,页,1.1.2 C,语言的基本元素,标识符,取名规则,组成标识符的字符为字母、数字和下划线,标识符中第一个字符必须是字母或下划线,多数,C,编译系统在构成标识符时都要区分字母的大小写,即,abc,和,Abc,是不相同的标识符,构成标识符的字符个数(标识符长度)与所使用的环境相关,保留字,操作系统或编译系统或其他系统已经用了的名字,例如,double else enum extern float forgotoif_Imaginary,*,inline,*,intlong registerrestrict,*,用户标识符,用户自己取的名字,第,9,页,/,共,62,页,1.1.2 C,语言的基本元素,程序员(用户)在程序中自定义标识符时,除了避免使用保留字和必须遵守标识符的命名规则外,还需要注意以下两个方面:一是要将标识符取得既有意义,又便于阅读;二是要注意避免含义上或书写时引起混淆。例如,下面是一些合法用户自定义标识符的例子:,a b1file_name_buf,下面是不合法的用户自定义标识符例子及错误原因:,123abc/*,不能以数字开头*,/,float/*,与系统保留字同名*,/,up.to/*,标识符中出现了非法字符,“,.,”,*/,zhang san/*,标识符中间出现了非法字符空格*,/,第,10,页,/,共,62,页,1.1.2 C,语言的基本元素,3,函数,函数是构成程序的基本模块,每个函数具有相对独立的功能,函数有三种:主函数(即,main(),函数)、,C,语言编译系统提供的标准库函数和用户自定义的函数,主函数是,C,程序执行的,入口,,即程序总是从主函数中的第一条可执行的语句开始执行;一般情况下也是程序执行的,出口,标准库函数是语言处理系统提供的常用功能的处理程序代码,需要时使用预处理语句将其包含到程序中。,用户自定义函数即程序员根据所设计应用程序的功能自己编写的函数,。,第,11,页,/,共,62,页,1.1.2 C,语言的基本元素,4,C,程序书写的基本要点,C,程序习惯上使用小写英文字母。为了清晰起见,在,C,程序中往往使用大写英文母来表示宏定义或其它具有特殊意义的标识符。,C,程序中不强调程序行的概念。一行中可以有多条语句,一个语句也可以写在多行上,但语句与语句之间要用分号(;)分隔。,C,程序为了增强程序的可读性,可以使用适量的空格、空行和适当的行间缩进结构。,第,12,页,/,共,62,页,第一章,C,语言数据描述和,C,程序设计初步,C,程序的基本结构,C,语言的基本数据类型,基本运算符和表达式,不同类型数据混合运算及数据转换,C,程序设计初步,第,13,页,/,共,62,页,1.2 C,语言的基本数据类型,数据和数据类型,在,C,语言源程序中能直接书写的、需要被处理的符号只有数和字符两种,这种符号称为,C,语言的,数据,。,计算机程序只能处理已经存入计算机系统,内存的数据,,任何需要用计算机程序处理的信息都需要被转换为内存中的数据才能被处理。,计算机系统的内存是按字节编址的,在内存里存放一个数据所需要的内存字节数称为一个数据所需要的,内存空间,,程序中不同的数据在系统内存中所要求的存储空间大小也不一样,因而在程序设计中需要区分所处理数据的,数据类型,。,第,14,页,/,共,62,页,1.2 C,语言的基本数据类型,C,语言提供的数据类,:,数据类型,第,15,页,/,共,62,页,1.2 C,语言的基本数据类型,常量和变量,C,源程序中直接书写的数据称为,常量,,存放一个数据所需要的内存空间称为,变量,内存空间中存放的数据内容称为,变量值,。,常量数据在源程序中给定后,在程序的整个执行过程中,保持不变,。而变量在程序的执行过程中是一个其值可以被程序修改的量。,是一个,变化的量,。,第,16,页,/,共,62,页,1.2,.1 C,语言的整型数据类型,整型量,1,整型常量,C,语言源程序能直接书写的整型常量可以有三种形式:,十进制整数。如,888,、,-123,、,0,等。,八进制整数。以,0,开头的整数是八进制整型常量,如,0777,、,-011,等。,十六进制整数。以,0 x,开头的整数是十六进制整型常量,如,0 x123,、,0 xff,等。,在字长为,16,位计算机系统中,整型数据表示的范围为,-32768,32767,(,-2,15,2,15,-1,);在字长为,32,位的计算机系统中,则表示的数据范围为,-2,31,2,31,-1,。,第,17,页,/,共,62,页,1.2,.1 C,语言的整型数据类型,2,整型变量,存放整型数据的内存空间称为整型变量,,C,语言提供了基本整型、短整型、长整型和无符号整型四种大小不同的单位空间来存放整形数据。,类型名,意 义,字节数,精度范围,short,短整型,2 -32767,32768,int,基本整型,4,-,2147483647,2147483648,long,长整型,4 -,2147483647L,2147483648L,unsigned short,无符号短整型,2 0,65535,unsigned int,无符号基本整型,4 0,4294967295U,Unsigned long,无符号长整型,4 0,4294967295UL,第,18,页,/,共,62,页,1.2,.1 C,语言的整型数据类型,3.,变量定义,整型变量定义的一般形式为:,类型名,;,该语句的功能是:指定具有,类型名定义的多个内存空间,,取名为变量列表中的标识符(变量名),数量与变量列表中变量名的个数一致。,例如:,int x1,x2;,(定义变量,x1,,,x2,为整型变量),longx,y;,(定义变量,x,,,y,为长整型变量),unsigned c,d;,(定义变量,c,,,d,为无符号整型变量),例,1-2,整型变量的定义和输出示例。,第,19,页,/,共,62,页,1.2.2 C,语言的实型数据类型,实型量,1,实型常量,在,C,语言源程序中能直接书写的实型数,称为实型常量。实型数在,C,语言中又称为浮点数,实型常数有两种表示形式:,实数形式:实数形式由数字和小数点组成。,如:,888.88,,,0.88,等。,指数形式:数据由数字,0,9,、小数点和表示阶码的标志,“,e,”,或,“,E,”,组成,其组成形式一般为:,整数部分,.,小数部分,E,指数部分,如,123e5,表示,12310,5,,,123e-5,表示,12310,-5,。,第,20,页,/,共,62,页,1.2.2 C,语言的实型数据类型,在使用实型数的指数表示形式时应该注意下面两点,:,指数部分只能是整数而不能用实数表示,如,123E1.5,是错误的表示方法。,字母,“,e,”,或,“,E,”,之前的尾数部分不能省略,如,10,-8,不能只写为,E-8,,而应该写成为,1E-8,(或者,1e-8,),.,第,21,页,/,共,62,页,1.2.2 C,语言的实型数据类型,2,实型变量,C,源程序文件中存放实型数据的数据对象称为实型变量。,C,语言中的实型变量按其表示的数据范围不同和精度不同分为单精度型和双精度型,其类型名分别为,float,和,double,。,第,22,页,/,共,62,页,1.2.2 C,语言的实型数据类型,3.,变量定义,定义实型变量的一般形式为:,类型名,;,功能意义与整形变量定义相同,例如:,float x,y;,(定义变量,x,,,y,为单精度实型变量),double z;,(定义变量,z,为双精度实型变量),例,1-3,实型变量的定义和输出示例。,类型名,意 义,字节数,精度范围,float,单精度实型,4,1.175494e-038,3.402823e+038,double,双精度实型,8,2.225074e-308,1.797693e+308,第,23,页,/,共,62,页,1.2.3 C,语言的字符型数据类型,字符量,在,C,语言源程序中直接书写的、需要被处理的字符就是字符常量。,同样,用于存放这个字符的内存空间就是字符变量,。,1.,字符常量,普通字符,:普通字符是由单引号括起来的一个可打印字符,如,a,、,?,、,A,等。,转义字符,:转义字符是由反斜杠,开头的字符序列,此时反斜杠字符后面的字符或字符序列不表示自己本身的含义而转变为表示另外的特定意义。,第,24,页,/,共,62,页,1.2.3 C,语言的字符型数据类型,2,字符变量,字符类型变量用以存储和表示一个字符,占用一个字节。字符型变量的定义形式如下:,char;,例如:,char ch;,(定义变量,ch,为字符型变量),在,C,语言中,字符型变量和整型变量是兼容的,,系统中存储的是对应字符的,ASCII,码值,因此在,C,语言中字符数据和整数之间可以通用,即字符型数据可以与整型数据一起参与运算,但在使用时要注意其表示的合理范围,(0,255,范围内的整数,),第,25,页,/,共,62,页,1.2.3 C,语言的字符型数据类型,例如,若有,C,语句序列:,char ch;ch=,A,;ch=ch+1;,,则执行该语句序列后,ch,的内容是字符,B,。,例,1-4,字符变量的定义和输出示例。,3,字符串常量,C,语言中,字符串常量是用双引号括起来的由,0,个字符或若干个字符构成的字符序列,例如,“,This is a string constant,”,。其中,双引号只是作为定界符使用,并不是字符串中的字符。,存储字符串常量时分配一段连续的存储单元用于依次存放字符串中的每一个字符,然后在字符串的最后一个字符后添加转义字符,0,表示字符串的结尾,所以其需要的空间长度是串中字符存储所需要的长度再加一个字节。,第,26,页,/,共,62,页,1.2.3 C,语言的字符型数据类型,4,符号常量,在,C,语言中,除了可以具体的各种类型常量外,还可以可以用符号代替常量,用以代替常量的符号称为符号常量(或称为宏常量)。符号常量在使用之前也必须预先定义。其定义的格式为:,#define,标识符 被替代的常量,例如:,#define PI 3.1415926,#define EOF-1,#define precision 1e-8,第,27,页,/,共,62,页,1.2.4,变量的初始化,变量的初始化指的是为变量,第一次赋值,。,在,C,语言中变量初始化的方法有两种,一是在程序的执行过程中通过赋值运算符实现赋值;二是在定义变量的同时为变量赋初值。,C,语言中,定义变量的同时对其初始化的一般形式为:,=;,例如,int a,x1=100;,long b,x2=100L;,float c,x3=100.30;,double x4=100.5;,char ch=,A,;,第,28,页,/,共,62,页,第一章,C,语言数据描述和,C,程序设计初步,C,程序的基本结构,C,语言的基本数据类型,基本运算符和表达式,不同类型数据混合运算及数据转换,C,程序设计初步,第,29,页,/,共,62,页,1.3,基本运算符和表达式,在完成数据存入内存后,需要对这些数据做相关的处理或运算,以得到我们所需要的结果。,C,语言提供了多种运算符号,通过由这些运算符组合成表达式和表达式语句对数据进行处理。这些运算符是,C,语言规定的。各个运算符有各自的意义。,1,算术运算符,2,关系运算符,3,逻辑运算符,4,赋值运算符,5,条件运算符,6,位运算符,7,逗号运算符,8,指针运算符,9.,其它运算符,第,30,页,/,共,62,页,1.3,基本运算符和表达式,一些运算符只需要一个运算对象(操作数),这种运算符称为单目运算符;另外一些运算符需要两个运算对象,这些运算符称为双目运算符;还有比较特殊的运算符需要三个运算对象,称这种运算符为三目运算符。,运算符的优先级和结合性,优先级表明计算顺序,计算的先后关系,结合性表明计值方向。左结合(从左到右)和右结合(从右到左)。,第,31,页,/,共,62,页,1.3.1,算术运算符和算术表达式,C,语言提供了加,减、乘、除和求模,五种算术运算符,对应的符号分别是:,+,、,-,、*、,/,和,%,。这些运算符都需要两个运算对象,称为两目运算符。而且是从左到右的运算顺序,称为左结合性。除求模运算符外,满足数据的正、负符号规则。例如:,3+2,结果为,5,,,3*(-5),结果为,15.,当两个整数相除时,得到的结果仍然是整数。既取整运算。例如:,7/5,结果为,1,,,-7/5,结果为,-1,,,3/5,结果为,0.,求模运算就是求余数,参加求模运算的两个对象必须都是整型对象,运算结果的符号与第一个运算对象相同。例如:,7%5,结果为,2,,,-7%5,结果为,-2,,,7%,(,-5,),=2,。,第,32,页,/,共,62,页,1.3.1,算术运算符和算术表达式,由算术运算符和括号将运算对象连接起来的、符合,C,语言语法规则的算术表达形式称为,C,语言的算术表达式。运算对象包括常量、变量、函数、表达式等,值得注意的是单个的常量、变量或函数名本身也是表达式。,如:,a*b/c-1.5+,a,是一个合法的表达式。而表达式,a+b-2.3%6,就不是一个合法的,C,语言表达式。,优先级高,(,),函数,+,、,-,*,、,/,、,%,+,、,-,优先级低,例,1-5,算术运算符使用示例,。,第,33,页,/,共,62,页,1.3.2,赋值运算符和赋值表达式,C,语言规定符号,“,=,”,为赋值运算符,由,“,=,”,连接的表达式称为赋值表达式。赋值表达式的书写格式为赋值运算符左边只能是一个变量,右边是一个表达式,格式如下:变量名,=,表达式,其意义为:将赋值运算符右边的表达式的值存入左边变量名所指定的单位内存空间中,替换掉以前的值。或简述为将表达式的值赋给变量。,例如,a=10,的意义是将整型数,10,赋给变量,a,作为其值;,y=x+110,的意义是先计算,x+110,的值,然后将它赋给变量,y,作为其值。,第,34,页,/,共,62,页,1.3.2,赋值运算符和赋值表达式,当赋值运算符两边的数据对象类型不一致时,在赋值时要进行数据类型的转换。转换的基本规则是以赋值运算符左边变量的数据类型为准。例如有如下程序段:,int a;,float x=10.5f,y=10.6f;,a=x+y;,执行这段程序时,首先计算出算术表达式,x+y,的值为:,21.1,,然后将该值用截取法取整得到,21,后再赋值给左边的整型变量,a,,使得,a,的值为整数,21,。,第,35,页,/,共,62,页,1.3.2,赋值运算符和赋值表达式,C,语言程序中,能执行操作运算的只有语句。表达式的功能只能在语句里才能被实现。而单独的表达式是不合法和不被执行的。,赋值语句由赋值表达式加上,C,语句结尾符号分号,“,;,”,构成,其一般形式为:,;,或 变量名,=,表达式;,例如:,a=x+y,是赋值表达式,而,a=x+y;,则是赋值语句,注意:,1.,赋值运算符的左边必须为变量,不能为常量或表达式。,2.,赋值运算符的优先级低于逻辑运算符、关系运算符、算术 运算符。其结合性为从右至左(即:右结合性)。,3,.,在,C,语言中,赋值表达式可以作为一个对象出现在另外的表达式中。,例,1-6,赋值运算符和赋值表达式使用示例。,第,36,页,/,共,62,页,1.3.3,自反运算符,复合赋值符,:凡是双目运算符都可以与赋值运算符一起组成复合赋值符,其结合性为右结合性。这些复合赋值符共有,10,个,它们是:,+=,、,-=,、*,=,、,/=,、,%=,、,=,、,&=,、,=,、,|=,自反运算符,:赋值运算符,“,=,”,的左边加上算术运算符之一而构成的运算符,称为自反运算符。它有两种运算,即算术运算和赋值。是一种,“,复合运算符,”,。,第,37,页,/,共,62,页,1.3.3,自反运算符,例如:,a+=5,相当于,a=a+5,x*=y+1,相当于,x=x*(y+1)x%=y-5,相当于,x=x%(y-5),注意:,自反运算符的结合性为右结合性,自反运算符 的优先级和赋值运算符一致。,例,1-7,自反运算符使用示例。,例,1-8,自反运算符的结合性示例。,第,38,页,/,共,62,页,1.3.4,自增、自减运算符,自增运算符,“,+,”,和,自减运算符,“,-,”,是两个单目运算符,其功能是将运算对象的值增加或减少一个该对象的单位值。,自增运算符和自减运算符都可以作用于,整型变量、实型变量,或者,字符型变量,。,自增运算符和自减运算符不能作用于常量数据或者表达式。例如下面的语句序列存在着错误:,int a=100;,-(a+100);/*,试图对表达式,a+100,施加自减 运算*,/,300+;/*,试图对整型常数,300,施加自增运算*,/,第,39,页,/,共,62,页,1.3.4,自增、自减运算符,自增、自减运算符的前缀形式,前缀形式即自增、自减运算符(,+,、,-,)出现在变量的左侧,如:,+i,、,-i,。自增、自减运算符的前缀形式对变量实施的运算是,“,先增,/,减值后引用,”,。,自增、自减运算符的后缀形式,后缀形式即自增、自减运算符(,+,、,-,)出现在变量的右侧,如:,i+,、,i-,。自增、自减运算符的后缀形式对变量实施的运算是,“,先引用后增,/,减值,”,。,例,1-9,自增、自减运算符使用示例。,第,40,页,/,共,62,页,1.3.5,逗号运算符和逗号表达式,逗号运算符,是,C,语言中提供的一种特殊运算符。逗号运算符用于将两个以上的表达式连接成一个逗号表达式。逗号表达式的一般形式为:,,,,,,,逗号运算符是,C,语言所有运算符中级别最低的运算符,其结合性为左结合性。逗号表达式在求值时,按从左到右的顺序分别计算各表达式的值,用最后一个表达式的值和数据类型来表示整个逗号表达式的值和数据类型。,例如,逗号表达式,a=1,b=a-4,c=b+2;,等价于以下,3,个有序语句:,a=1,;,b=a-4,;,c=b+2;,例,1-10,逗号运算符和逗号表达式使用示例。,需要注意的是,在,C,程序中并不是任何地方出现的逗号都是逗号运算符,逗号在许多地方也作为分隔符用以分隔若干个对象。,第,41,页,/,共,62,页,1.3.6 sizeof,运算符,sizeof,运算符是,C,语言特有的一个运算符,运算符使用形式为:,sizeof,(,),其中,数据对象既可以是某个具体的变量名,也可以是某种数据类型的常量,还可以是某种数据类型的名字,甚至于还可以是一个合法的,C,表达式。,sizeof,运算符的功能是返回其所测试的数据对象所占存储单元的字节数。,例,1-11,sizeof,运算符使用示例。,例,1-12,sizeof,运算符使用示例。,第,42,页,/,共,62,页,1.3.7,运算符优先级别和结合性规则,将表达式中的各种运算符运算的先后顺序规定为,15,个由低到高的优先级别,同时还为运算符规定了结合性。,在表达式求值时,若运算对象两边的运算符优先级不同,按优先级别从高到低运算。若运算对象两边的运算符优先级相同,则按其结合规则处理,,对于表达式而言同级运算并不是都遵从从左到右的原则。,C,运算符有两种结合性,即左结合性和右结合性。,例,1-13,右结合性运算符使用示例。,第,43,页,/,共,62,页,第一章,C,语言数据描述和,C,程序设计初步,C,程序的基本结构,C,语言的基本数据类型,基本运算符和表达式,不同类型数据混合运算及数据转换,C,程序设计初步,第,44,页,/,共,62,页,1.4,不同类型数据混合运算及数据转换,不同数据类型隐式转换,隐式转换是系统的自动转换,数据类型转换的原则是向表达数据能力更强的方向转换。即当在表达式运算过程中出现了不同数据类型的数据进行混合运算时,系统先自动按图,1.4,所示的规则将参加运算的数据对象转换成同一类型的数据再进行运算。,例,1-14,表达式混合运算中的,自动数据类型转换示例。,高,double,float,long,unsigned,低,int,short,char,图,1.4,系统自动数据类型转换规则,第,45,页,/,共,62,页,1.4,不同类型数据混合运算及数据转换,不同数据类型显式转换,在,C,程序设计中,如果有需要可以对数据进行显式类型转换。显式转换又称为强制类型转换。显式类型转换的一般形式是:(类型名)(,),float x=2.5;,int a=10,m,n,;,m=a+(int)x;,n=a+(int)(x+1.8);,特别注意,:,类型转换只对标注强制转换这一次起作用,在程序的其余地方,变量还保留其原有的值。,例,1-15,表达式混合运算中的强制数据类型转换示例,。,第,46,页,/,共,62,页,第一章,C,语言数据描述和,C,程序设计初步,C,程序的基本结构,C,语言的基本数据类型,基本运算符和表达式,不同类型数据混合运算及数据转换,C,程序设计初步,1.5 C,程序设计初步,1.5.1,算法基本概念及算法描述,1.5.2,C,语句概述,语句按其功能可以分为两大类:,表达式语句、流程控制语句。,表达式语句,赋值语句,赋值语句由赋值表达式接一个分号组成。,例如,y=x+1;,函数调用语句,函数调用语句由函数调用表达式后接一个分号组成。,例如,printf(,“,Hello,World!n,”,);,空语句,空语句只由一个分号组成,它不进行任何操作(或者称之为进行空操作)。,1.5.2,C,语句概述,流程控制语句,条件语句,if.else.,循环语句,for while do.while,提前结束本次循环语句,continue,循环或多分支终止语句,break,无条件转移语句,goto,返回语句,return,复合表达式语句,C,语言允许把一组语句括在花括号之中构成一个语句块,称之为复合语句。,例如,:,char ch;ch=getchar();putchar(ch);,1.5.3 C,程序的输出,最基本的输出函数,C,语言中没有提供输入和输出语句,其所有的输入输出均通过调用标准库函数来实现。,C,语言中的,I/O,类标准库函数的声明包含在头文件,stdio.h,中,所以在,C,程序源文件中开始位置应该加上如下包含编译预处理命令:,#include stdio.h,或,#include,1,格式化输出函数,printf,C,语言中的格式化标准输出函数为,printf,函数,函数调用的一般格式为:,printf(,“,格式控制字符串,”,输出表列,);,1.5.3 C,程序的输出,最基本的输出函数,函数的功能是:按,“,格式控制字符串,”,的要求向标准系统输出设备(显示器)输出一个或多个任意类型的数据。,其中的输出表列由一到若干个输出表达式组成,两个输出表达式项之间用逗号分隔。格式控制字符串则由普通字符和格式控制项组成。,普通字符,在格式控制字符串中,普通字符在输出时照原样输出,所谓原样输出指的是在给定的位置输出给定的字符。,1.5.3 C,程序的输出,最基本的输出函数,格式控制项,在格式化输出函数的格式控制字符串中,格式控制项与输出表列中的输出表项一一对应,用于规定或说明输出表项的输出格式。在格式控制项中,百分号(,%,)是格式控制项的引导符号,一个格式控制项以,%,开始到格式控制字符结束,中间含有若干个可选项。格式控制项的一般形式为:,%-0*m.n l/h,1.5.3 C,程序的输出,最基本的输出函数,控制字符,控 制 字 符 意 义,d,以十进制形式输出带符号整数,(,正数不输出符号,),o,以八进制形式输出无符号整数,(,不输出前缀,O),x,以十六进制形式输出无符号整数,(,不输出前缀,OX),u,以十进制形式输出无符号整数,f,以小数形式输出单、双精度实数,e,以指数形式输出单、双精度实数,g,以,%f,或,%e,中较短的输出宽度输出单、双精度实数,c,输出单个字符,s,输出字符串,1.5.3 C,程序的输出,最基本的输出函数,2,字符输出函数,putchar,字符输出标准库函数,putchar,的调用形式:,putchar(,输出对象,),;,其中,:,输出对象可以是字符常量,(,包括转义字符,),、字符变以及整型常量、整型变量等可以转换为字符数据的对象。,函数的功能是将用输出对象表示的单个字符输出到标准输出设备(屏幕)上。,例如:,putchar(A),;,/*,输出大写字母,A*/,putchar(,n,),;,/*,换行*,/,例,1-18,字符数据输出示例。,1.5.4 C,程序的输入,-,最基本的输入函数,1,格式化输入函数,scanf,C,语言中的格式化标准输入函数为,scanf,,函数调用的一般格式为:,scanf(,“,格式控制字符串,”,地址表列,);,函数的功能是:按,“,格式控制字符串,”,的格式要求,从标准系统输入设备(键盘)上输入一个或多个指定类型的数据到由地址列表指定始地址的内存单元中。,地址列表中的每一项为一个地址量,其形式是在一般变量之前加取地址运算符,&,。例如:设有变量,x,,则,&x,表示变量,x,的地址。,1.5.4 C,程序的输入,-,最基本的输入函数,格式控制字符串中的普通字符,在格式控制字符串中,如果有普通字符存在,则在执行输入时需要照原样输入,即在指定的位置输入指定的字符。例如:,scanf(,“,a=%d,”,scanf(,“,%d,%d,”,格式控制字符串中的格式控制项,在格式化输入函数中,格式控制项与地址列表中的地址表项一一对应,用以指定对应项输入数据的输入格式。,输入数据的格式控制项一般形式为:,%*m l/h,1.5.4 C,程序的输入,-,最基本的输入函数,格式控制字符用于规定对应数据项的输入格式,控制字符,控 制 字 符 意 义,d,以十进制形式输入带符号整数,(,正数不输入符号,),o,以八进制形式输入无符号整数,(,不输入前缀,O),x,以十六进制形式输入无符号整数,(,不输入前缀,X),f,以小数形式输入单、双精度实数,e,以指数形式输入单、双精度实数,c,输入单个字符,s,输入字符串,1.5.4 C,程序的输入,-,最基本的输入函数,如果在格式控制字符串中的两个格式控制项之间插入了一个或若干个普通字符,在前面已经提到这些字符是格式控制字符串中的普通字符,严格按原样照输入。,例如有语句序列:,int a,b;,scanf(,“,%d,%d,”,scanf(,“,%d#%d,”,若仍然要求执行完格式化输入函数调用语句后变量,a,的值为,10,、变量,b,的值为,20,,则对于输入函数调用语句,scanf(,“,%d,%d,”,,输入流只能是:,10,20,而对语句,scanf(,“,%d#%d,”,,输入流只能是:,10#20,1.5.4 C,程序的输入,-,最基本的输入函数,关于输入流结束时的换行符问题,例,1-19,关于输入流结束换行符的引例。,scanf(%d,/*,要求输入数据,100*/,scanf(%c,/*,要求输入字符,A*/,当第一个输入函数调用语句,scanf(,“,%d,”,输入数据,100,后需要按回车键表示输入结束,但下一个输入函数调用语句,scanf(,“,%c,”,却将该回车键作为自己的输入数据接收,因而出现程序运行得到错误结果。,避免输入换行符输入流应为:,100A,为防止这种情况,有多种方法解决。只要避开输入数据后的间隔符不会误作为后面的字符输入就可以了。比如:,scanf(%c,/*,要求输入字符,A*/,scanf(%d,/*,要求输入数据,100*/,1.5.4 C,程序的输入,-,最基本的输入函数,字符输入函数,getchar,字符输入标准库函数,getchar,的调用形式:,getchar(),;,函数的功能是:从标准输入设备上读入一个字符,将这个字符作为函数的返回值并回显在屏幕上。可以用字符型或整型变量接收通过,getchar,函数读入的字符,其一般形式为:,char c;,c=getchar();/*,从键盘上读入一个字符并将其存放到字符型变量,c,中*,/,1.5.5,常用数学类标准库函数的使用,必须包含预处理命令,#include,求绝对值函数,求余数,三角函数,指数类、对数类和平方根,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服