第二讲第二章数据类型和变量.docx
《第二讲第二章数据类型和变量.docx》由会员分享,可在线阅读,更多相关《第二讲第二章数据类型和变量.docx(12页珍藏版)》请在冰点文库上搜索。
第二讲第二章数据类型和变量
第二讲内容
1.基本概念。
2.基本数据类型。
3.变量。
4.标识符。
5.数据类型强制转换。
数据类型和表达式
一.基本概念
1.变量:
在程序运行过程中,值可以改变的量。
2.常量:
在程序运行过程中,值不会被改变的量。
变量必须先定义后使用。
例1:
#include”stdio.h”
main()
{
intr;
floats;
r=10;
s=3.14*r*r;
printf(“s=%f”,s);
}
二.基本数据类型:
1.整型(整数类型)
(1)整数常量:
有八进制,十进制,十六进制三种。
八进制形式:
(0~7)必须以0开头。
如:
012
十进制形式:
(0~9)与数学整数表达一致。
如:
12
十六进制形式:
(0~9,a~f或A~F)必须以0x或0X开头。
如:
0x120X12
注意:
C语言中没有二进制整数。
(2)整型变量:
整数:
int在计算机中内存里占2个字节,数据格式:
%d表示范围:
-32768~32767
长整数:
long在计算机内存里占4个字节,数据格式:
%ld表示范围:
-21亿~21亿
区别:
如15即是整数又是长整数,15L表示15是长整数。
例2:
#include”stdio.h”
main()
{
inta,b,c;
a=15;
b=011;
c=0x2a;
printf(“%d,%d,%d”,a,b,c);
}
输出结果:
15,9,42
2.实型(实数类型)
(1)实型常量:
只能以十进制形式表示。
一般形式:
十进制的小数,必须有小数点。
如:
2.30.52.0
指数形式:
如:
2.5*1062.5e6或2.5E6
-3.2*10-7-3.2e-7或-3.2E-7
注意:
E(e)前面必须有数字,后面必须是整数。
如2.5E3.5//非法。
(2)实型变量:
单精度浮点小数:
float在计算机内存里占4个字节的存储空间,7位有效,数据格式:
%f可以精确到小数点后6~7位。
双精度浮点小数:
double在计算机内存里占8个字节的存储空间,15位有效,数据格式:
%lf可以精确到小数点后16~17位
如:
floata;
a=3.141592678………//只能保留小数点后6到7位,其余舍去。
3.字符型
(1)字符常量:
用单引号引起来的一个字符。
如:
‘a’‘2’与2不一样。
‘2’按字符处理。
2按数据处理。
(2)字符变量:
字符型:
char在计算机内存里占一个字节的存储空间。
数据形式:
%c
如:
chara;
a=‘a’
注意:
字符型数据没有范围,也没有精确度。
总结:
基本数据类型:
intlongfloatdoublechar
补充:
字符
1.定义:
用单引号‘’引起来的。
2储存:
字符在计算机内存里占一个字节,存储时存放的是它所对应的ASCII码。
(附录八)意思是说字符具有双重功能,可以当字符用,也可以当整数用,当字符用时是字符本身,当做整数用时是它所对应的ASCII码。
3.记忆:
’A’==65‘a’==97
‘Z’==90‘z’==122
‘0’==48‘9’==57
例:
#include”stdio.h”
main()
{
printf(“%d,%c,%d,%c”,’A’,’A’,’0’,’0’);
}
输出结果:
65,A,48,0
4、字符数据的输入与输出函数。
字符输入函数:
getchar();getch():
功能:
从键盘输入一个字符。
通常把输入的字符赋予一个字符变量,构成赋值语句。
例子:
charc;
c=getchar();或c=getch();
区别:
输入字符后屏幕不变,按回车才改变,
输入后直接输出结果。
字符输出函数:
putchar();putch();
功能:
向显示器输出一个字符,
形式:
putchar(字符变量);putch(字符变量)
例:
编写程序输入大写字母输出小写字母
#include”stdio.h”
main()
{
charch;
scanf(“%c”,&ch);
ch+=32;
printf(“%c”,ch);
}
#include”stdio.h”
main()
{
charch;
ch=getchar();
ch+=32;
printf(“%c”,ch);
}
#include”stdio.h”
main()
{
charch;
ch=getchar();
ch+=32;
putchar(ch);
}
5.字符串常量:
用双引号“”引起的一串字符。
(1)储存:
字符串常量占的内存字节数等于字符串中字节数加1,在增加的一个字节中存放字符\0这是字符串结束的标志。
c
h
i
n
a
\0
如:
“china”在内存中所占的字节为:
注1:
字符常量占一个字节的内存空间。
可以把一个字符常量
赋予一个字符变量,但不能把一个字符串常量赋予一个
字符变量。
如:
chara;
a=‘A’
a=“AB”//不允许
注2:
字符常量‘c’和字符串常量“c”虽然都只有一个字符,
但在内存中的情况是不同的。
c
‘c’在内存中占一个字节,表示为:
c
\0
“c”在内存中占两个字节,表示为:
注3.在C语言中没有相应的字符串变量,但是可以用字符
数组来存放字符串常量。
6.符号常量:
用一个标识符来表示一个常量。
(1)形式:
#define标识符常量
(2)功能:
把该标识符定义为常量。
一经定义,以后程序中所有该标识符都代表该常量。
(3)意义:
含义清楚,一改全改。
(4)习惯:
符号常量的标识符用大写字母。
例:
求圆的面积和周长。
#include“stdio.h”
main()
{
floatr,l,s;
r=10;
l=2*3.14*r;
s=3.14*r*r;
printf(“l=%f,s=%f”,l,s);
}
三.变量
1.变量使用:
先定义后使用
定义放在程序的最开始。
2.变量定义:
数据类型变量名
数据类型:
intlongfloatdoublechar
变量名:
命名规则:
字母,数字和下划线任意组合且第一个为字母或下划线。
例:
下面的变量名是否合法
john.smith不合法
_5_5合法
5_5不合法
a-b不合法
a$b不合法
注意:
变量名应该为有意义的名。
最大值:
max最小值:
min求和:
sum或s平均值:
aver
3.变量理解:
inta;定义a是整数型变量。
floatmax,min;定义max,min是实数型变量。
4.变量赋值:
3种赋值方法。
赋值语句。
输入函数scanf()。
初始化。
在定义时进行赋值。
注意:
=读做赋值号。
==读作等于号。
inta;
a=6;
floatmax,min;
max=4.6;
min=0.2;
注意:
初始化时不能连等。
floatmax,min;
max=4.6;
min=4.6;
floatmax,min;
max=4.6;
min=4.6;
四标识符:
1.定义:
用来标识变量名,符号常量名,函数名,数组名,文件名等的字符序列称为标识符。
简单的说标识就是一个名字
2.命名规则:
字母,数字和下划线任意组合且第一个为字母或下划线。
五.数据类型转换
1、数据类型自动转换
(1)自动转换:
发生在不同数据类型的量进行混合运算时,由编译系统自动完成。
(2)规则:
若参与运算的量的类型不同,则先转换成同一类型,在进行运算。
转换按数据长度增加的方向进行,以保证精度不降低
(3)转换方向:
charintlongfloatdouble
例子:
5.0/2==2.500000
2、数据类型强制转换
(1)形式:
(数据类型)(表达式)
(2)功能:
把表达式的运算结果强制转换成数据类型所表示的类型。
(3)数据类型:
intlongfloatdoublechar
例1.(int)(2.4+3.5)==5
(int)(3.7)==3等价于(int)3.7==3
(float)(2+3)==5.000000
(float)(3)==3.000000等价于
(float)3==3.000000
例2.(int)((double)(5/2)+2.5)
=(int)((double)
(2)+2.5)
=(int)(2.000000+2.5)
=4
注意:
数据类型和表达式都必须加括号(单个变量括号可省略)。