资源描述
Body Text,Second Level,Third Level,Fourth Level,Fifth Level,Click to edit Master title style,Jilin University,长春信息技术职业学院,-C,语言程序设计,103,/100,第三章 基本程序语句,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,C,程序设计,第,3,章 基本程序语句,3.1 C,语言的数据类型简介,3.2,几个基本概念,3.3 C,语言的,3,种基本数据类型,3.4,基本运算符和表达式,3.5C,基本语句,3.6,数据的输出,3.7,数据的输入,3.8,简单程序设计举例,教学目标,第,3,章 基本程序语句,掌握,C,程序中标识符的命名规则,掌握常量、变量的定义,掌握,C,程序的基本数据类型,掌握,C,程序的基本运算符和表达式,掌握,C,程序的基本语句,掌握,C,程序的输入和输出,第,3,章 基本程序语句,重点,C,程序的数据类型,C,程序的运算符及使用,C,程序的基本语句,C,程序的输入、输出,难点,C,程序的运算符及输入、输出,3.1 C,语言的数据类型,数据类型,整型,字符型,实型(浮点型),枚举类型,单精度型,双精度型,基本类型,构造类型,指针类型,空类型,数组类型,结构体类型,共用体类型,3.2,几个基本概念,一、,标识符,C,语言规定标识符只能由字母、数字和下划线组成,且,第一个字符必须是字母或下划线。,注意:,1,、第一个字符必须为,字母或下划线,2,、,C,语言中大写字母和小写字母被认为是两个不同的字符,大写字母,A,与小写字母,a,则表示不同的标识符。,3,、在取名的时,一般采用“见名知义”的原则,标识符的分类:,3.2,几个基本概念,关键字,预定义标识符,用户标识符,标识符,3.2,几个基本概念,二、常量,常量是指在程序运行中,其数值不能被改变的量,直接常量:,50,100,4.6,a,符号常量:,使用标识符来代表常量,#define PI 3.1415926,常量,#,include ,main(),float l,s;,l =,2*,3.14,*6,;,s =,3.14,*6*6,;,printf(“l=%f,s=%f”,l,s);,例:求半径为6的圆的周长,面积是多少?,#define,PI,3.14,/*,定义符号常量*/,PI,PI,习惯上符号常量名用,大写,#define,PI,3.1415926,3.1415926,含义清晰,方便修改,方便录入,使用符号常量的优点:,3.2,几个基本概念,例:符号常量使用,#,include ,#define,PRICE,30,/*,定义符号常量*/,main(),float total Money,price;,/*,定义变量*/,int num,total;,num = 10;,total =num*,PRICE,;,printf(total=%d, total);,注意:不可以对符号常量进行赋值!,3.2,几个基本概念,3.2,几个基本概念,三、变量,变量是指以标识符为名字,其值可以改变的量,一个变量被赋予一个,变量名,,在内存中占据一定的,存储单元,。,(1)变量名要合法;,在程序设计中,变量的命名的要求:,(4)应避免过长和不便于书写的单词作为变量名;,(5),C,语言的数据类型、变量名与函数名 严格,区分大小写,;,(6),建议变量名称采用“,驼峰表示法,”。,(2),同一变量名,不可以重复,定义,;,(3),应“,见名知意,”;,注意:,C,语言要求所有的变量一定,先定义,后使用,3.2,几个基本概念,3.3 C,语言,3,种的数据类型,一、整型数据,1,、整型常量,即整常数,整型常量,分为三类,十进制整数:如123,八进制整数:以,数字0开头,的数,如0123,-011,十六进制整数:以,0x,开头,的数,如0,x123,-0x12,*,八进制的数码范围为,07,;,*,十六进制的数码除了数字,09,外,还使用英文字母,a f (,或,A F),表示,1015,。,如:,0x1e,注意!,018,3.3 C,语言,3,种的数据类型,2,、整型变量,3.3 C,语言,3,种的数据类型,如果将一个变量的数据类型定义成整型,则此变量就称为,整型变量,1.整型数据在内存中的存放形式,整型数据在内存中占用,2个,字节,数值是以补码表示的,3.3 C,语言,3,种的数据类型,例:整型数,10,的二进制存储形式,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,例:整型数,-10,的二进制存储形式,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,3.3 C,语言,3,种的数据类型,2.整型变量的分类,整型变量分为三类:,基本型,短整型,长整型,有符号,无符号,有符号,无符号,有符号,无符号,3.3 C,语言,3,种的数据类型,整型变量,基本型,int,unsigned int,短整型,short,unsigned short,长整型,long,unsigned long,所占位数,16,16,16,16,32,32,数的表示范围,-32768+32767(-2,15,2,15,-1),065535(02,16,-1),-32768+32767(-2,15,2,15,-1),065535(02,16,-1),-2147483648+2147483647,(-2,31,2,31,-1),04294967295(02,32,-1),3.整型变量的定义,3.3 C,语言,3,种的数据类型,语法: 数据类型 变量名;,main(),long s,;,/,指定,s,为长整型变量,int n,;,/,指定,n,为基本整型变量,short m,;,/,指定,m,为短整型变量,unsigned long k,;,/,指定,k,为无符号长整型变量,3.3 C,语言,3,种的数据类型,int,a;,a=1;,a=a+1;,变量的定义及使用,例:,a,1,2,注意:,对变量值的存取是通过,变量名,实现的,例,.,整型数据的溢出,main,int,a,b;,a=32767;,b=a+1;,printf(%d,%d,a,b);,运行结果为:,32767,-32768,3.3 C,语言,3,种的数据类型,注意:,在定义变量的类型时,不仅要考虑 数据类型的特点和数据范围,还要考虑 实际应用问题的需要。,4.,整型常量的类型,(1).一个整数,如果值在,-32768+32767,范围内,认为它是,int,型,可以赋值给,int,或,long int,型变量,(2).一个整数,如果值在,-2147483648+2147483647,范围内,认为它是,长,整,型,,可以赋值给,long int,型变量,3.3 C,语言,3,种的数据类型,3.3 C,语言,3,种的数据类型,(3).如果某一计算机系统的,C,版本,确定,short int,与,int,型数据在内存中占据的长度相同,则它的表数范围与,int,型相同。,(4).一个整常量后面加上一个字母,u,或,U,,,认为是,unsigned int,型,如12345,u,(5).在一个整常量后面加一个字母,l,或,L,,,则认为是,long int,型,常量,如123,L,3.3 C,语言,3,种的数据类型,二、实型数据,1,、实型常量,实数又称为,浮点数,,有两种表达方式:,(1),小数表示法,如:0.123、123.0,(2),科学记数法,如:123,e3,或123,E3、123E-2,注意,小数点不能单独出现;,0.,.0,.,e,或,E,的两边必须有数,且其后面必须为整数;,如:,6E0.2,e5,2,、实型变量,3.3 C,语言,3,种的数据类型,如果将一个变量的数据类型定义成实型,则此变量就称为,实型变量,(1).整型数据在内存中的存放形式,实型变量在内存中占用,4个,字节,+,.314159,1,数符,小数部分,指数部分,(2)实型变量分类,实型变量主要有三类,单精度实型变量,(float),双精度实型变量,(double),长双精度实型变量,(long double),3.3 C,语言,3,种的数据类型,实型变量,所占位数,有效数字,数值范围,单精度实型变量(,float),32位,67,-3.4,10,-37,3.410,38,双精度实型变量(,double),64位,1516,-1.7,10,-307,1.7,10,308,长双精度实型变量(,long double),128位,1819,-1.2,10,-4932,1.2,10,4932,3.3 C,语言,3,种的数据类型,实型变量的定义:类型说明符 变量名,float x,y;,(,指定,x、y,为单精度实数),double z;,(,指定,z,为双精度实数),long,double t;,(,指定,t,为长双精度实数,),3.3 C,语言,3,种的数据类型,例:,实型数据的舍入误差,main,float,a,b;,a=123456.789e5;,b=a+20;,printf(%f,b);,C,编译系统将,实型常量,作为,双精度来处理,如:,float f;,f=2.45678*4523.65,;,f=2.45678,f,*4523.65,F,;,3.3 C,语言,3,种的数据类型,(,3,)实型常量的类型,3.3 C,语言,3,种的数据类型,三、字符型数据,C,的字符常量是用,单引号,括起来的一个字符,如:,a、b、c、?。,注意:,不能用,来表示字符,,因为字 符,代表,转义字符,的开始。,1 、字符常量,字符形式,含 义,ASCII,代码,n,换行,将当前位置移到下一行的开始,10,t,移到下一个制表位(,tab,位,一个制表位为8个字符),9,b,退格,移到前一列,8,r,回车,回到本行起始字符位置,13,代表字符 ,92,代表字符 ,39,”,代表字符 ”,34,ddd,13位八进制数所代表的字符。如101表示,A,xhh,12位十六进制数所代表的字符。如,x41,表示,A,转义字符及其含义,3.3 C,语言,3,种的数据类型,3.3 C,语言,3,种的数据类型,例:转义字符的使用,#include main() printf(“ ab ct derftgn”);,2 、字符变量,3.3 C,语言,3,种的数据类型,如果将一个变量的数据类型定义成字符型,则此变量就称为,字符型变量,,在内存中占用,1个,字节,字符变量的定义:类型说明符 变量名,如:,char,c1;,c1=a;,注意:,字符型变量只能存放,1个字符,,而 不能存放,1个字符串,。,3.3 C,语言,3,种的数据类型,3、字符数据在内存中的存储形式,char,c1,c2; c1=a;c2=b;,c1,97,c2,98,0110001,0110010,将一个字符常量放到一个字符变量时,是将字符的相应,ASCII,码值放到存储单元中。,即:字符型数据是以,ASCII,码存储的。,3.3 C,语言,3,种的数据类型,main,char,c1,c2;,c1=97;,c2=98;,printf(%c %cn,c1,c2);,printf(%d %dn,c1,c2);,运行结果为:,a b,97 98,例:向字符变量赋以整数,结论:,字符型数据和整型数据是通用的,3.3 C,语言,3,种的数据类型,例:大小写字母的转换,main,char,c1,c2;,c1=a;,c2=b;,c1=c1-32;,c2=c2-32;,printf(%c %cn,c1,c2);,运行结果为:,A B,4 、字符串常量,3.3 C,语言,3,种的数据类型,字符串常量是用,双引号,括起来的字符序列(0,N,个字符)。,如:,How do you do.,,,a,,,123.45,都是字符串常量。,注意:,C,语言中,没有专门存放字符串常量的数据类型,,但可以用,字符数组,的形式存放。,字符串常量在内存中以每个字符的,ASCII,码,存放,并且在最后添加一个,字符串结束标记0,。,3.3 C,语言,3,种的数据类型,因此,字符,a,和字符串,a,的区别是:,字符,a,:,在内存中占,1字节,(值为97),a,0 1 1 0 0 0 0 1,a 0,0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0,字符串“,a”,:,在内存中占,2字节,(值为97和0),char c;,c = a;,注意:,不要将一个,字符串常量,赋给一个,字符变量,/* 字符,a,可以赋值给字符型变量,c */,/* 字符串“,a”,不能赋给字符变量 */,c = a;,3.3 C,语言,3,种的数据类型,3.3 C,语言,3,种的数据类型,四、,变量赋初值,程序设计中经常需要对一些变量预先设置,初始值,。,C,允许在定义变量的同时指定其初值,int a=1; float f=2.5;,double d=2.6; char c=a;,int a,b,c=7;,/*,指定,c,的初值为7,未指定,a、b,的初值 */,例如:,int a=8,b=8,c=8;,注意:,若要对多个变量指定相同的 初值,要分别进行初始化。,int a=b=c=8;,或者:,int a=8;,int b=8;,int c=8,;,3.3 C,语言,3,种的数据类型,3.4,基本运算符和表达式,40,+,=,2,42,算术运算符,+ - * / %,关系运算符 ,=,=,= !=,逻辑运算符 !,& ,位运算符, ,| &,赋值运算符,=,条件运算符 ?,:,逗号运算符 ,,指针运算符 * 和,&,求字节数运算符,sizeof,强制类型转换运算符,分量运算符, ,下标运算符, ,其它运算符号,函数调用运算符(),3.4,基本运算符和表达式,一、,C,运算符简介,按操作功能运算符大致可分为算术运算符、关系运算符、逻辑运算符、按位运算符以及其它运算符如赋值运算符、条件运算符、逗号运算符等。,表达式是由操作数和运算符组成的序列。,3.4,基本运算符和表达式,优先级,运 算 符,结合性,1,初等运算符 ( ) - .,左结合,2,单目运算符 ! + - - * &,sizeof (,类型),右结合,3,算术运算符 * / % + -,左结合,4,关系运算符 = = !=,左结合,5,逻辑运算符 & |,左结合,6,条件运算符 ? :,右结合,7,赋值运算符 = += -= *= /=,右结合,8,逗号运算符 ,左结合,运算符的优先级与结合性,优先级,高,低,C,语言中,常用的表达式有:,算术表达式,赋值表达式,关系表达式,逻辑表达式,强制类型转换表达式,逗号表达式,条件表达式,指针表达式等,3.4,基本运算符和表达式,3.4,基本运算符和表达式,二、基本的算术运算符,+,加法运算符,如1+5,正值运算符,如+1,-,减法运算符,如5-1,负值运算符,如-1,*,乘法运算符,如2*5,/,除法运算符,如5/2,%,模运算符(或称求余运算符),如8%3,3.4,基本运算符和表达式,算术表达式和运算符的优先级与结合性,算术表达式的结果:,参加运算的运算量是,整型,,结果为,整型,;,参加运算的运算量是,实型,,结果为,double,型。,用算术运算符和括号将运算对象连接起来、,符合,C,语法规则的式子是,算术表达式,3+5,a*b-c,优先级:,先乘除、后加减,结合性:,左结合,例:,计算:,21/5,?,结果:4,3.4,基本运算符和表达式,?,21.0/5,结果:4.2,3.4,基本运算符和表达式,自动类型的转换是由系统自动完成的,各类数值型数据间的混合运算,高,低,double,long,unsigned,int,char,short,float,例:,求解表达式:,1 +,a 1.3 * b,3.4,基本运算符和表达式,自增、自减运算符,自增运算符(+)和自减运算符(-)的作用是使变量的值增1或减1,例如:,a+,+a,b-,-b,3.4,基本运算符和表达式,当把自加的结果赋予另外一个变量时,+或-运算符放在变量的左面和右面的含义是不同的,int a=3,b;,b=a+;,结果,b=3,a=4,先使用后加,b=+a;,结果,b=4,a=4,先加后使用,自增、自减运算符,例:,int a=5,b=5,c,d;,c=-a; d=b-;,a=? b=? c=? d=?,(1)+和-运算符只能用于变量,不能用于常,量和表达式。,如:5+;,(2,)+和-的结合方向为“右结合”。,如:,-a+, -(a+),(,a+b)+;,#,define ONE 1,ONE+;,a+b+;,a+(b+);,3.4,基本运算符和表达式,三、赋值运算符,3.4,基本运算符和表达式,a=3;,(,常数3赋给变量,a,),a=b;,(,将一个变量,b,的值赋给,a),a=b+c+1;,(,表达式,b+c+1,的值赋给变量,a),赋值运算符使用赋值符号“=”,它的作用是将一个常量、变量或表达式的值赋给变量,如:,3.4,基本运算符和表达式,复合的赋值运算符,a =a + 3,x *= y + 8,x =x * (y + 8),a += 3,举例:,复合的赋值运算符是将其他运算符和赋值运算符结合在一起使用,实现运算、赋值功能的结合,+= *= /= %=,3.4,基本运算符和表达式,由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。,赋值表达式,赋值运算符为,右结合,,将其右侧表达式的值赋给左侧的变量,整个赋值表达式的值就是被赋值的变量的值,一般形式为:,变量 赋值运算符 表达式,例:,a=3;,a=b;,a=b+c+1;,赋值时的类型转换,如果赋值运算符两侧的数据类型不同时,在赋值时需要进行类型转换。,(1),float、double -,int,int a=6.5;,a,的值为6,(2),int -float double,a=6;,a,的值为6.000000,3.4,基本运算符和表达式,3.4,基本运算符和表达式,(5),int、float、double - char,截取整型、实型数据(整数部分)值,的低8位送到字符型变量。,(3),double - float,截取,double,型数据值的前7位有效数字,(4),char - int,字符型数据只占整型数据的低8位,3.4,基本运算符和表达式,赋值运算符右侧的表达式,不仅可以为算术表达式、,逻辑表达式,还可为赋值表达式、条件表达式等。,例5:,#,include ,main(),int a=2;,print(%d,a-=a+=a*a);,结果:0,如:,a=b=c=5,表达式值为5,,a、b、c,值均为5,a=5+(b=10),表达式值为15,,a,值为15,,b,值为10,3.4,基本运算符和表达式,习题一:,1、a=5+(b=6) a=,?,b=,?,2、a=(b=4)+(c=6) a=,?,b=,?,c=,?,3、a=(b=10)/(c=2) a=,?,b=,?,c=,?,4、,a,的初值为2 ,b,的初值为3,a+=3 a=,?,a+=b a=,?,a%=b+5 a=,?,3.4,基本运算符和表达式,四、关系运算符和关系表达式,1.关系运算符,小于,大于,=,大于或等于,= =,等于,!=,不等于,优先级相 同(高),优先级相 同(低),关系运算符的结合性:,自左至右,左结合,2,、关系表达式,3.4,基本运算符和表达式,用关系运算符将两个表达式连接起来的式子。,一般形式为:,表达式 关系运算符 表达式,(a+b) (b+c),(ab) (bc),(a&b) (a|b),(a=5) (b=6),a b,3,、关系表达式的值,3.4,基本运算符和表达式,是一个逻辑值,即真或假。,在,C,语言中,没有逻辑(布尔)型数据,所以使用,0,代表假,,1,代表真。,例: (,1,),a=3,a = = 5,(,2,),53,写出下列条件表达式的值:,a=3,b=2,c=1,1、 ab,结果?,2、(ab)=c,结果?,3、(b+c)y?x:y;,一般形式为:,表达式,1,?表达式,2,:表达式,3,max=xy?x:y;,表达式,1,为,真,是,表达式,2,的值,表达式,1,为,假,是,表达式,3,的值,表达式,1,取表达式,2,的值,入口点,a,成立,不成立,出口点,b,取表达式,3,的值,3.4,基本运算符和表达式,结合性,:自右至左;,y = x10 ? x/10 : x0 ? x: -x,;,等价于,:,y = x10 ? x/10 :(x0? x: -x),;,当,x,的值为,15,时,表达式的结果为:,1,当,x,的值为,5,时,表达式的结果为:,-5,3.4,基本运算符和表达式,七、逗号运算符和逗号表达式,一般形式为:,表达式1,表达式2,.,表达式,n,先求解,表达式1,的值,再求解,表达式2,的值整个逗号表达式的值是,表达式,n,的值,例1:,a=5;,a=a+5,a+9,整个表达式的值是19,3.4,基本运算符和表达式,例,main(),int a=3,b=4,c=5;,printf(%d,%d,%d,a,b,c);,printf(%d,%d,%d,(a,b,c),b,c);,结果:,3,4,5,5,4,5,3.4,基本运算符和表达式,八、强制类型转换运算符,在程序设计中,经常需要将某种数据类型强制转换成指定的类型,这时可以用,强制类型转换,来实现。,语法如下:,(数据类型)(变量或表达式);,3.4,基本运算符和表达式,例如:,int a=2,b=5;,float x=4.4;,则有: 表达式 结果,b/a 2,(float)b/a 2.5,(float)(b/a) 2.0,(int)x%a+x 4.4,(int)x%(a+x),不合法,强制类型转换时,得到所需类型的中间变量,而原来变量的类型不会改变。,注意:,3.5,C,基本语句,C,语句可以分为以下四大类,:,(1),简单语句(包括输入,/,输出语句,),(2),空语句,(3),复合语句,(4),流程控制语句,一、 简单语句,1,、表达式语句,由一个表达式加一个分号构成。,表达式,;,2,、函数调用语句,函数调用语句由一个函数调用加上分号“;”构成。,例:,printf(C Program.);,3.5,C,基本语句,3,、 空语句,只有分号“;”组成的语句称为空语句。,空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。,例:,for(i=1;i100000000;i+), ; ,可做延时使用,3.5,C,基本语句,4,、 复合语句,可以用,把一些语句括起来称为复合语句。,z,=x+y;,t=z/100;,printf(%f,t);,3.5,C,基本语句,(,1,)所谓输入输出是以计算机为主体而言的。,(,2,),C,语言本身不提供输入输出语句,输入和输出操作是由,C,函数库中的函数来实现的。,(,3,)使用系统库函数时,要用预编译命令“,#include”,将有关的“头文件”包含到用户源文件,3.6,数据的输入输出,一、字符数据的输入输出,1,、,putchar,函数,作用:向终端输出一个字符。一般形式:,putchar(c);,putchar(97);putchar(n);,putchar(a);,3.6,数据的输入输出,2,、,getchar,(),函数,作用:,是,从终端输入一个,字符。,一般形式:,getchar();,3.6,数据的输入输出,3.6,数据的输入输出,(3)使用本函数前必须包含文件“,stdio.h,”。,(1),getchar,(),函数只能接收,单个字符,,输入 数字也按字符处理。输入多于一个字符时,只接收第一个字符。,使用,getchar,(),函数应注意几个问题:,(2),该函数没有参数。,3.6,数据的输入输出,例:,#include,main(),char c1,c2;,c1=getchar();,c2=getchar();,putchar(c1);,putchar(c2);,printf(n);,3.6,数据的输入输出,这两个函数的原型在头文件“,stdio.h,”,中。 使用时必须包含该头文件。,格式输入,scanf,函数,格式输出,printf,函数,标准库函数,#,include ,二、 格式输入与输出,1,、,printf,函数(输出函数),3.6,数据的输入输出,一般形式:,printf,(,格式控制,输出表列,);,printf(a= %d , b= %d, a , b);,控制字符串,输出表列,非格式字符串,格式字符串,3.6,数据的输入输出,格式字符,(1),d,格式符,用来输出十进制整数,%d,,按十进制整形数据的实际长度输出。,%md,,,m,为指定的输出字段的宽度。,%ld,,输出长整型数。,o,格式符,以八进制整数形式输出。,x,格式符,以十六进制形式输出整数。,u,格式符,用来输出,unsigned,型数据,以十进制整数形式输出。,3.6,数据的输入输出,例:,a=123,b=12345;,printf(“%4d,%4d”,a,b);,例:,a=1235790,printf(“%-9d”,a);,例:,a=23,printf(“%d,%o”,a,a);,例:,a=23,printf(“%d,%o,%x”,a,a,a);,3.6,数据的输入输出,格式字符,(2),c,格式符,用来输出一个字符。,s,格式符,用来输出一个字符串,%s,%ms,,输出的字符占,m,列,%-ms,,如果串长小于,m,,在,m,列范围内,字符串向左靠,右补空格。,%m.ns,,输出占,m,列,但只取字符串中左端,n,个字符,左补空格。,%-m.ns,,,m,n,同上,右补空格。,3.6,数据的输入输出,例:,char c=a;,printf(“%c”,c);,printf(“%3c”,c);,例:,按指定格式输出字符串,#include,main(),printf(“%3s,%7.2s,%.4s,%-5.3sn”,”CHINA”,”CHINA”,”CHINA” ,”CHINA,);,3.6,数据的输入输出,格式字符,(3),f,格式符,用来输出实数,以小数形式输出,%f,,不指定字段的宽度。,%m.nf,,指定输出的数据共占,m,列,其总有,n,位小数。,%-m.nf,,输出的数值向左端靠,右端补空格。,3.6,数据的输入输出,#include ,main(),float x,y;,x=111111.111;y=222222.222;,printf(“%f”,x+y);,%f,不指定字段宽度,整数全部输出,并输,6,位小数,3.6,数据的输入输出,#include ,main(),float f=123.456;,printf(“%f %10f %10.2f %.2f %-10.2fn”,f,f,f,f,f);,格式字符,(4),3.6,数据的输入输出,e,格式符,以指数形式输出实数,%e,,不指定输出数据所占的宽度和数字部分的小数位数。,%m.ne,,和,%-m.ne,n,为输出的数据的小数部分的小数位数,又称尾数。,g,格式符,用来输出实数,根据数值的大小,自动选择,f,格式或,e,格式,输出占宽度较小的,3.6,数据的输入输出,使用,printf,函数要注意的问题:,(,1,)除,X,,,E,,,G,外,其他格式字符必须用小写字母,如,%d,不能写成,D,。,(,2,)可以在,printf,函数中的“格式控制”字符串内包含转义字符。,(,3,),d,、,o,、,x,、,u,、,c,、,s,、,f,、,e,、,g,等字符,如用在“,%”,后面就作为格式符号。,(,4,)如果想输出字符“,%”,,则应该在“格式控制”字符串中用连续两个,%,表示。,1,、,scanf,函数(输入函数),3.6,数据的输入输出,作用:,scanf,函数是格式输入函数,按指定格式从键盘上把数据输入到指定的变量之中。,一般形式:,scanf(,格式控制,地址表列,),scanf(“%d”,scanf(“%d,%d”,3.6,数据的输入输出,格式说明,格式字符,说明,d,i,用来输入有符号的十进制整数,u,用来输入无符号的十进制整数,o,用来输入无符号的八进制整数,x,X,用来输入无符号的十六进制整数,c,用来输入单个字符,s,用来输入字符串,f,用来输入实数,e,E,g,G,用来输入实数,使用,scanf,函数时应注意的问题(,1,),3.6,数据的输入输出,(,1,),scanf,函数中的“格式控制”后面应当是变量地址,而不是变量名。,(,2,)如果在“格式控制”字符串中除了格式说明以外还有其他的字符,则在输入这些字符时输入与这些字符相同的字符。,(,3,)在用“,%c”,各式输入字符时,空格字符和“转义字符”都作为有效字符输入。,3.6,数据的输入输出,使用,scanf,函数时应注意的问题(,2,),(,4,)在输入数据时,遇到下列情况是该数据认为结束。,遇空格,或按“回车”或“,tab”,键。,按指定的宽度结束。,遇非法字符。,%,与格式字符之间有*号时,相应列宽的数据会被禁止使用,3.6,数据的输入输出,例:,scanf(“%3d%3d”,例:,scanf(“%2d %*3d%2d”,例:,scanf(“%7.2f”,例:,scanf(“a=%d,b=%d”,3.7,程序举例,例,3.9,输入圆的半径,输出圆的周长和面积。,分析:,1.,定义实型变量,r,、,l,、,s,用于存放半径、周长、面积;,2.,调用输入函数,输入,r,:,3.,分别利用周长公式和面积公式求出,l,、,s,;,4.,调用输出函数输出,l,、,s,。,程序:,3.7,程序举例,#include ,void main(),float r,,,l,,,s,;,scanf(“ %f ”,,,&r),;,/*,输入一个浮点数据,存入地址,&r */,l = 2 * 3.14159 * r,;,/*,计算周长,赋值给,l */,s = 3.14159 *r * r,;,/*,计算面积,赋值给,s */,printf(“n l=%8.4f”,,,l),;,/*,周长占,8,个字符宽,,4,位小数*,/,printf(“n s=%8.4f”,,,s),;,/*,输出面积,数据共占,8,个字符宽,,4,位小数*,/,3.7,程序举例,例,3.11,从键盘输入一个学生三门课程的成绩,求其平均成绩并输出,保留一位小数。分析:,1,输入三门课程成绩存入变量,a,、,b,、,c,;,2,求平均成绩,aver=(a+b+c)/3,;,3,输出,aver,。,#include ,void main(),float a,b,c,aver,;,printf(“input a,b,c,:”,),;,scanf(“%f%f%f”,&a,&b,&c),;,aver=(a+b+c)/3,;,printf(“%.1f n”,,,aver),;,3.7,程序举例,程序:,感谢亲观看此幻灯片,此课件部分内容来源于网络,,如有侵权请及时联系我们删除,谢谢配合!,
展开阅读全文