C语言21基本数据类型.ppt_第1页
C语言21基本数据类型.ppt_第2页
C语言21基本数据类型.ppt_第3页
C语言21基本数据类型.ppt_第4页
C语言21基本数据类型.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 数据类型,第2次课,主要内容,一、变量及常量 二、C语言基本数据类型 三、程序中的运算 四、数据的控制台输入和输出(2.4) 实验要求,一、常量与变量,#include stdio.h #define PI 3.14159 main() float r; float area; r = 2; area=PI * r* r; printf(area=%fn,area); , if(sex=f |sex=F ) if(age=55) printf(She is retire.n); else printf(She is working.n); ,程序中处理的数据有不同的类型,数据表达的方式

2、可以有常量,可以有变量,实数,字符及字符串,/* 示例ch3_001: 变量 */ #include stdio.h main() int r; float area; r = 2; area=3.14159 * r* r; r = 4; area=3.14159 * r* r; printf(area=%fn,area); ,一、常量与变量,r,area,2,1、变量 程序中值可以改变的量,/* 示例2: 直接常量 */ #include stdio.h #include conio.h main() int r; float area; r = 2; area=3.14159 * r* r

3、; r = 4; area=3.14159 * r* r; printf(area=%fn,area); getch(); ,一、常量与变量,直接常量,二、常量:程序中固定不变的数据,一、常量与变量,常量的类型: 整型: 实型 字符型 字符串型,/* ch3_002.c 整型常量 */ #include stdio.h“ void main() int a,b,c; a=11; b=011; c=0 x11; printf(a=%d,b=%d,c=%dn,a,b,c); ,%d代表输出的格式是十进制整数形式,一、常量与变量,常量的类型: 整型: 实型 字符型 字符串型,/* ch3_003.c

4、 实型常量 */ #include stdio.h“ void main() float x,y,z; x=12.342; y= 1.234e-5; z= -12E-2; printf(a=%f,b=%f,c=%fn,x,y,z); ,%f代表输出的格式是浮点形式,默认小数点尾数6位,一、常量与变量,常量的类型: 整型: 实型 字符型 字符串型,/* ch3_004.c 字符型常量 */ #include stdio.h” void main() char c1,c2; c1 = a ; c2 = a-32; printf(c1=%c,c2=%cn,c1,c2); ,%c代表输出的格式是字符形

5、式,printf(c1=%d,c2=%dn,c1,c2);,字符常量以单引号定界!,表示以十进制整数形式输出对应字符的ASCII值,一、常量与变量,常量的类型: 整型: 实型 字符型 字符串型,/* ch3_005.c 字符串常量 */ #include stdio.h” void main() printf( Turbo C ); ,字符串常量以双引号定界!,一、常量与变量,编译程序在每个字符串的后面自动加上0以示结束。 字符串”Visual C+”共有11个字符,除本身10个(空格也算一个)外,还加上0。 “x” 与 x的不同点: “x”在存储的时候会占2个字节 x只由1个字节,一、常量与

6、变量,C语言中没有字符串变量类型 字符型数据只能存储于字符型变量中,例如,char max=”How are you doing!”,这样的语句使用是错误的。 如果要存储字符串数据的话,那么只能以字符数组或指针形式实现。,一、常量与变量,特殊的字符常量,转义字符:反斜线后面跟一个字符或一个代码值表示,一、常量与变量,转义字符举例(ch3_006.c) #include stdio.h” void main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C); ,运行结果:(

7、屏幕显示) A B C I say:”How are you?” C Program Turbo C,ch3_007.c #include stdio.h” void main() printf(“Yb=n”); ,运行结果: 屏幕显示:= 打印机输出:,二、数据类型,/*ch3_008 数据类型举例.c*/ #include stdio.h” void main() int num=0; float score=95; char grade; if (score=90) grade=A; printf(score=%f,grade=%cn,score,grade); ,1.数据类型反映了数据

8、内在的一些属性。 2. 数据类型决定: 1). 数据占内存字节数 2). 数据取值范围 3). 其上可进行的操作(运算),数据类型一览表,C语言提供了丰富的数据类型,其主要包括,二、数据类型,基本类型所占存储空间字节数及数据范围,二、数据类型,数据类型int、float、char和double可以带有各种修饰前缀。,修饰符可以与基本类型相组合,结果如下表:,二、数据类型,注意:不同系统及不同版本的C,在各种类型长度上有差异!,二、数据类型,/*ch3_009数据溢出的错误*/ #include stdio.h void main() int a; a=3400000000; printf(a=

9、%dn,a); ,超过了整数的范围 上溢出,由于不同数据类型所占据的存储空间不同,在定义变量的类型时应充分考虑变量的取值范围。例如,整型(int)类型的变量取值范围为-232 232-1。如果在运算中,数值超出这个范围则称为溢出,大于232-1称为上溢,小于-232称为下溢,二、数据类型,请大家分析,以下程序输出结果正确么?,#include stdio.h void main() short int a; a=32768; printf(a=%dn,a); ,#include stdio.h void main() unsigned short int a; a=32768; printf(

10、a=%dn,a); ,/*ch3_009数据溢出的错误*/,三、程序中的运算,运算符与表达式 1.算术运算符 2.赋值运算符 3 .关系运算符 4 .逻辑运算符 5. 条件运算符 6 .逗号运算符 运算中的类型转换,三、程序中的运算,运算符与表达式 1. 算术运算符 双目(二元)运算符+ - * / % 单目(一元)运算符+ - + - 改变优先级(),注意:/的两个操作数如果为同种类型,结果也是同样的类型,1/2=等于? %只能用于两个整数之间! 10%3结果为1,例ch3_010.c 算术运算示例,三、程序中的运算,求余运算符“%”要求左操作数和右操作数都是整数,运算结果是两个操作数相除的

11、余数。,求余运算符“%”,三、程序中的运算,单目运算符+ - 例ch3_011.c 示例+ -,注意:1. +和只能作用于变量,不能用于常量及表达式! 2. + -若为后缀,则先计算,后自加(减); + -若为前缀,则先自加(减),后计算,练习: j=3,i=2; k=+j/i+;,/j=4 , i=3,K=2,案例ch3_012,三、程序中的运算,示例ch3_013单目运算+ -,三、程序中的运算,运算符与表达式 1. 算术运算符 2. 赋值运算符 3 .关系运算符 4 .逻辑运算符 5. 条件运算符 6 .逗号运算符 运算中的类型转换,注意:赋值号左边只能是变量名,不能是常量、表达式。,三

12、、程序中的运算,2. 赋值运算符 简单赋值运算 = 复合赋值运算符+=,-+,*=,/=,%=, i+=3; j+=i; printf(j=%dn,j); ,i+=3相当于i=i+3 j+=i 相当于j=j+i;,思考: int j=3,i=2,k=1; k-=j-=i; 运算之后 i,j,k,2 1 0,三、程序中的运算,例ch3_016:复合赋值运算示例,三、程序中的运算,运算符与表达式 1. 算术运算符 2. 赋值运算符 3 .关系运算符 4 .逻辑运算符 5. 条件运算符 6 .逗号运算符 运算过程中的类型转换,运算过程中的类型转换,在表达式中进行运算时,通常会将不同类型的数据混合使用

13、,此时就会关系到类型转化的问题。 一般转换规则:“短” ”长“ “长” ”短“则会截断,丢失精度 即: 由占存储空间少的数据类型向占存储空间多的数据类型转换。,运算过程中的类型转换,类型转换: 第一类:自动转换(隐式转换),char c; c= a-32;,隐式转换1:运算转换,,int a=5,b=3; float c; c= a%b;,隐式转换2:赋值转换,int a=5,b=3; printf(“%fn”,a-b);,隐式转换3:输出转换,运算过程中的类型转换,float a=5,b=3; int c; c= (int) a%(int)b;,强制类型转换,一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6,int a=5,b=3; float c; c= (float) a/b;,强制类型转换 程序设计中有时需要将表达式的值转换为某一特定类型时, 自动转换不一定能产生正确的结果。,运算过程中的类型转换,Ch3_017强制类型转换,运算过程中的类型转换,请大家分析下面程序中所包含的类型转换: #include stdio.h void main() f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论