资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章 复习,C,语言程序的组成,C,语言程序的编辑运行和调试,函数的组成,头文件,变量和函数的说明,输入和输出函数,新词和关键字:,char,int,float,main,书写格式,头文件,函数和函数体,函数声明,格式符,转义字符,单精度和双精度,进制,编译、连接,运行,调试,可执行文件,,ANSI,,,C99,,,1,第二章,C,语言基本数据类型及表示方法,2,课前练习,练习,1,、下列程序的输出结果是什么?,#include stdio.h,main(),char s15;,int a=3;,float b=3.14962f;,double c=1.23456;,printf(Enter a string:);,gets(s);,printf(a=%d,s=%sn,a,s);,printf(a=%c,b=%fn,a,b);,printf(c=%.3lf b=%8.6fn,c,b);,printf(ok!);,练习,2,、写下第二章的看到的新词;,练习,3,、人口、体重,姓名,工资用什么数据类型表示好?,练习,4,、为什么要有这么多的数据类型?,3,第一节,C,语言数据类型,空类型,数据类型,构造数据类型,基本数据类型,指针类型,整型,字符型,实型(浮点型),单精度型,双精度型,数组,结构,联合,枚举,4,第二节 字符集及词法规则,一、字符集,字符是语言的最小构成单位,由一个语言使用的所有字符构成的集合称为该语言的字符集。,(,一,)ASCII,字符集,ASCII,字符集中列出了所有可以使用的字符,共,256,个,它具有以下特征:,每个字符都有一个唯一的次序值,即,ASCII,码。,数字字符,0,、,1,、,2,、,、,9,的,ASCII,码从,49,开始,按升序连续排列。,大写字母,A,、,B,、,C,、,、,Z,的,ASCII,码从,65,开始,按升序连续排列。,小写字母,a,、,b,、,c,、,、,z,的,ASCII,码从,97,开始,按升序连续排列。,5,转义字符,C,语言也经常使用转义字符,用于表示一些控制字符或其他字符集无法表示的字符。,转义字符由反斜杠跟上一个字符或数字组成,它把反斜杠后面的字符或数字转换成别的意义。虽然转义字符形式上由,多个字符组成,但它只代表一个字符,。,6,二、词法规则,在,C,语言中,单词一般被分成五类:标识符、关键字(保留字)、常量和字符串、运算符、其它分隔符。,(,一,),标识符,标识符用来标识或表示,程序、函数、数据类型、变量,等。,C,语言规定,标识符由字母、数字及下划线组成,必须以字母或下划线开头。,标识符所包含的字符个数不限,但一般不要超过,8,个字符,如果超过,8,个字符,系统只识别前,8,个字符,标识符的英文字母区分大小写。,7,例子,下面是合法的标识符:,sum,,,_total,Class,,,student_name,,,lotus_1_2_3,,,li_ling,下面是不合法的标识符:,M.D.john,,,$123,,,3a54,,,ab,C,语言中,标识符中的,字母区分大小写,。,例如,,Sum,和,sum,是两个不同的标识符。,用户自己定义标识符时,不能使用以下列出的关键字。,8,关键字,在,C,语言中,关键字是有特定含义和专门用途的标识符,C,语言中的关键字一共有,32,个:,auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while,9,特定字,特定字是,C,语言定义的一些作为指令的标识符,它们主要用在预处理命令中,习惯将它们看作是关键字。特定字主要有以下,7,个:,define,include,undef,ifdef,ifndef,endif,line,10,第三节 常量,在程序运行过程中,其值不能改变的量称为常量。,C,语言中,常量是有数据类型的,它的类型由书写格式决定。,10,、,017,、,0 x2f,是整型常量,,123.23,、,4.3e,2,是实型常量,,a,、,n,是字符常量,,“,12345”,、“,China”,是字符串常量。,11,一、整型常量,C,语言中的整型常量(整数)有十进制、八进制、十六进制,3,种表现形式。,十进制整数。由正、负号和数字,0,9,组成,但首位数字不能是,0,。如,123,、,0,、,12,等。,八进制整数。由正、负号和数字,0,7,组成,首位数字必须是,0,。如,0123,、,011,等。,十六进制整数。由正、负号和数字,0,9,、英文字符,a,f,或,A,F,组成,首位数字前必须有前缀,0 x,或,0X,.,。如,0 x12a,、,0X34D,等。,12,例,2.1,不同形式的整数的赋值和输出,main(),int a,b,c;,a=13;,b=013;,c=0 x13;,printf(%d,%d,%d n,a,b,c);,printf(%x,%x,%x n,a,b,c);,printf(%o,%o,%o n,a,b,c);,上机,验证,13,实型常量,实型常量又称为浮点数,可以用十进制浮点数表示法和科学计数法表示,与数学中实数的表示类似。,(一)点数表示法,例如,,3.14,、,0.0,(二)科学计数法,例如,,123e3,或,123E3,12310,3,e3,、,2.1e3.5,、,.e3,是非法的实数。,一个实数可以用科学计数法表示为多种指数形式。,例如:,123.456,123.456e0,12.3456e1,1.23456e2 ,规范化的指数形式,0.0123456e4,14,例,2.2,实型数据的输出,#include stdio.h,main(),float a=123.45f;,printf(%f n,a);,printf(%e n,a);,上机,验证,15,字符常量和字符串常量,(一)字符常量,字符常量是指单个字符,用一对单引号及其所括起的字符来表示。,例如,,A,、,a,、,1,、,&,是字符常量,它们分别表示字母,A,、,a,、数字字符,1,和符号,&,。每个字符在内存中占用一个字节,用于存储它的,ASCII,码。,所以,C,语言中的字符具有数值特征,可以像整数一样参加运算,例如,,A+1=66,,对应于字符,B,,因为字符,B,的,ASCII,码是,66,。,1,0,0,0,0,0,0,1,+1,1,0,0,0,0,0,1,0,16,(二)字符串常量,字符串常量是一对双引号括起来的字符序列。,“,How are you?”,、“,student”,、“,a”,、“,123.456”,注意,a,是字符常量,而“,a”,是字符串常量。,C,语言规定,在每一个字符串的结尾加一个,字符串结束标志,0,。,0,是一个“空操作字符”,它不引起任何控制动作,也不是一个可显示字符。,例如,:,字符串“,Student”,,存放在内存中是,S,t,u,d,e,n,t,0,17,四、符号常量,一个常量也可以用一个标识符来代表,称为符号常量。,例,2.3,输入球的半径,计算圆面积、球的表面积和体积。,#include,stdio.h,#define P 3.14,main(),double r,s1,s2,v;,/*,定义变量 *,/,scanf(%f,&r,);,s1=P*r*r;,s2=4.0*P*r*r;,v=4.0/3.0*P*r*r*r;,printf(s1=%7.4fn,s2=%7.4fn,v=%7.4fn,s1,s2,v);,18,课中练习,练习,1,、,P40,页,2.4,写出以下程序的运行结果,#include stdio.h,main(),char c1=a,c2=b,c3=c,c4=101,c5=116;,printf(a%d b%d t c%c t abcn,c1,c2,c3);,printf(t b%c%c,c4,c5);,练习,2,、,P40,页,2.4,写出以下程序的运行结果,#include stdio.h,main(),char c1,c2;,c1=97;c2=98;,printf(%c%c n,c1,c2);,printf(%d%dn,c1,c2);,19,第四节 变量及其类型说明,在程序运行过程中,其值可以改变的量称为变量。,一旦定义了某个变量,该变量表示的都将是同,一个内存位置,,程序员只需提供一个名字,就可在程序的其它部分引用该内存位置,直到释放该变量。,20,变量具有名字和数据类型两个基本属性,每一变量被指定为一确定数据类型,在编译时就能为其分配相应的存储单元。,如指定,a,、,b,为,int,型,编译系统将为,a,和,b,各分配两个字节,并按整数方式存储数据。,一个变量,在一个时刻只能存放一个值,。如果某一个变量在程序运行中数据发生变化,则现行值将取代原来的数据。,21,一、整型变量,1,、整型变量的存储,2,、整型变量的分类,表,2.2,整数类型,名称 类型名 数据长度 最小取值范围,有符号整型,int 16,位,32768,32767,(,215,2151,),无符号整型,unsigned int 16,位,0,65535,(,0,2161,),有符号短整型,short int 16,位,32768,32767,(,215,2151,),无符号短整型,unsigned shortint,16,位,0,65535,(,0,2161,),有符号长整型,long int 32,位,2147483648,2147483647,(,2,31,2,31,1,),无符号长整型,unsigned long int,32,位,0,4294967295,(,0,2,32,1,),22,3,、整型变量的定义,例,2.4,整型变量的定义与使用,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=%d n,c,d);,23,二、实型变量,单精度(,float,型),每个,float,型在内存中占用,4,个字节,它的有效数字一般有,7,8,位,取值范围约为,(10,-37,10,38,),。,单精度实型变量只能保证,8,位有效数字,有效数字,6,位,双精度(,double,型)两类。,double,型所占的存储空间是,float,型的两倍,即,8,个字节,它的有效数字一般有,15,16,位,取值范围约为,(10,-307,10,308,),。,24,#include stdio.h,main(),float a;double b;,a=1234567.89F;b=1234567.89;,a=a+10;b=b+10;,printf(%fn%fn,a,b);,25,三、字符型变量,字符型变量用来存储字符常量。它在定义时使用类型名,char,,,例如,:char c1,c2;,定义了两个字符变量,各可以放一个字符,因此可以用下面的语句对它们赋值:,c1=A;c2=#;,26,字符变量的特点,将一个字符常量赋予一个字符变量,实际上是把该字符的,ASCII,码存放到字符变量的存储单元中。,例如字符,A,的,ASCII,码是,65,,即将,65,以存储整数数据的方式进行存储。,字符型数据和整型数据之间就可以通用。既可以用一个字符对字符变量赋值,也可以用一个整数对字符变量赋值(此时整数的取值范围应是有效的,ASCII,码)。,同样,一个字符数据既可以以字符形式输出,也可以以整数形式(字符的,ASCII,码)输出。,对字符数据进行算术运算,相当于对它们的,
展开阅读全文