第二章变量和数据类型.ppt

上传人:本田雅阁 文档编号:3444218 上传时间:2019-08-26 格式:PPT 页数:45 大小:2.56MB
返回 下载 相关 举报
第二章变量和数据类型.ppt_第1页
第1页 / 共45页
第二章变量和数据类型.ppt_第2页
第2页 / 共45页
第二章变量和数据类型.ppt_第3页
第3页 / 共45页
第二章变量和数据类型.ppt_第4页
第4页 / 共45页
第二章变量和数据类型.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第二章变量和数据类型.ppt》由会员分享,可在线阅读,更多相关《第二章变量和数据类型.ppt(45页珍藏版)》请在三一文库上搜索。

1、第1章内容回顾,程序是为执行一项任务而编写的有序指令集 算法是解决问题的具体方法和步骤 流程图是算法的图形化表现形式 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序,第2章,变量和数据类型,预习检查,在printf函数中%d打印什么类型的数据,%f呢?double型该用什么打印? 那么,如果真的想打印“%d”,该怎么办? 2+ 2=? 如何打印一个浮点数的整数部分 我想把%运算符用于浮点数,但程序无法通过编译。该怎么办?,本章目标,若a=3,h=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=

2、a,c2=b。想得到以下的输出格式和结果,请写出程序,包括定义变量类型和设计输出。要求输出的结果如下: 编写程序,用getchar函数读入两个字符给c1与c2,然后分别用putchar()函数和printf()函数输出这两个字符,并思考以下问题:(1)变量C1、C2应定义为字符型或整型?还是两者皆可?(2)、要求输出C1 、C2的值ASCII码,应如何处理?用putchar()函数还是printf()函数? 要求掌握: 字符变量的范围与整数的范围掌握 putchar()与printf()的用法 什么是字符的ASCII码值,本章结构,简介,变量和数据类型,类型转换,符号常量,基本数据类型,输入输

3、出函数,算术运算符,接收并显示字符,程序,指令,C语言中的基本元素之总体,量 标识符 关键字 运算符 分隔符 等,C语言中的基本元素之量,变量:是指没有固定的值,可以改变的数。 变量用于开放句子,表示尚未清楚的值(即变数),或一个可代入的值 变量能够作为某特定种类的值中任何一个的保留器。 变量通常用一个英文字母表示 常量:是指在程序运行过程中其值不能改变的量。 常量分为直接常量和符号常量。 一旦确定以后是不能改的,例如,计算圆面积的 C 语句: S3.14159*r*r; 中的 S 和 r 都是变量,其中,r 可以有不同的值,S 的值因 r 的值不同而不同。 3.14159是常量,C语言中的基

4、本元素之定义与声明变量,定义与声明变量: 数据类型 变量名;,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,数据类型,基本数据类型之整型,仅限于32位机!,基本数据类型之整型,定义: int page_number; long int

5、population; unsigned int age;,在同一语句中可以声明多个类型相同的变量: int page_number, copies = 0, paper_width;,C语言中的基本元素之改变变量,初始化: 定义时初始化变量 int before = 1; 定义后初始化变量 Int middle; middle = 0x4591; 通过运算赋值 int programmer = 1; programmer = (left + right)/2;,格式化输入scanf,int scanf( const char *format, . ); 是格式化输入函数,它从标准输入设备(键

6、盘) 读取输入的信息。,例:使用scanf函数输入数据。 #include int main() int a,b,c; scanf(“%d%d%d“, ,scanf(“%d“,格式化输入/输出函数之scanf,scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。,转换字符串,&符号(附在读取的每个变量上)用于指明变量在内存中的位置,变量的名称,格式化输出printf,int printf(const char *format,argument); 通过标准输出设备输出一组数据。,例:使用scanf函数输入数据。 #inc

7、lude int main() int a,b,c; printf(“请输入三个整数:”); scanf(“%d%d%d“, ,格式化输入/输出函数之printf,int visitor_count = 150; printf (“ %d“ , visitor_count);,printf,将一些信息按照指定的格式送到标准输出(显示器),“ %d“,visitor_count,将按指定的格式显示该变量的值,输入/输出函数 (printf/scanf) 用于接受和显示数据或信息,#include int main() int num; printf(“请输入一个数:“); scanf(“%d“,

8、 ,格式化输入scanf,转换字符串,转义序列,格式化输入/输出函数之printf,int visitor_count = 150; printf (“ %d“ , visitor_count);,输出结果:150,格式化输入/输出函数之printf,int salary = 5500; printf (“ %10d“ , salary);,输出结果: 5500,输出结果的左边显示了 6 个空格,“ %10d“,基本数据类型之浮点型,单精度浮点数:float (4) 双精度浮点数: double (8),7位有效数字,小数点默认6位 16位有效数字, 小数点默认6位,定义: float sel

9、ling_price; double pressure_level;,基本数据类型之浮点型,初始化: 定义时初始化变量 float before = 1f; double pressure_level = 6.98 ; 定义后初始化变量 double pressure_level; pressure_level =7.888; 通过运算赋值 Float programmer = 1; programmer = (left + right)/2.0;,内存,格式化输入/输出函数之scanf,float tax_rate; scanf (“ %f“ , ,tax_rate,在内存中分配一块 32

10、位存储空间 存储空间使用名称“tax_rate”标识,提示用户输入一个值 输入的值存储在变量中(因为 scanf 提供此变量的地址),12.234,一旦确定以后是不能改的,格式化输入/输出函数之printf,float circumference = 78.53; printf (“ %f“ , circumference);,输出结果:78.530000,默认情况下精确到六位小数,9.4786789;,9.478679,格式化输入/输出函数之printf,double mercury_level = 168.2251074; printf (“%7.2f“ , mercury_level);

11、,输出结果: 168.23,宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。,“ %7.2f“,精度(精确到小数点后多少位),格式化输入/输出函数之printf,float circumference = 78.53; printf (“ %f“ , circumference);,输出结果:78.530000,默认情况下精确到六位小数,9.4786789;,9.478679,格式化输入/输出函数之printf,double mercury_level = 168.2251074; printf (“%7.2f“ , mercury_level);,输出结果: 168.23,宽度,表示

12、所有的数字和小数点所占的位数。不够7位右对齐。,“ %7.2f“,精度(精确到小数点后多少位),字符型,字符变量是用来存放字符常量的,一个字符变量中只能存放一个字符. 占用1个字节。 系统并不是将字符本身的形状存入内存,而只是将字符的ASCII码存入内存 字符类型看作一种特别短的整数类型。允许参与算术运算 分为:有符号字符型: signed char, -128127 无符号字符型: unsigned char, 0-255 例如:char c = A;/字符A的ASCII代码为65 c = c + 2;/65+2 = 67字符C的ASCII码,基本数据类型之字符型, 5 p $,有效的字符型

13、值,“2“,2,正确,2 + 2 = 4,X,基本数据类型之字符,初始化: 定义时初始化变量 char c = a; Char ch = 65; 定义后初始化变量 Char ch; Ch = a; Ch = 65; 通过运算赋值 char ch = a ; ch = ch + 2;,内存,格式化输入/输出函数之scanf,Char ch1; Char ch2; scanf (“%c%c“ , ,ch1,ch2,格式化输入/输出函数之printf,char ch1 = 65; Char ch2 = A printf (“ ch1=%c, ch2=%c“ , ch1, ch2);,输出结果: ch

14、1=A, ch2 = A,基本数据类型之字符型,那么,怎么判断得到的字符是不是一个小写字母? 接下来,怎么知道他是26个字母中的第几个字母,他下一个字母又是什么? 最终,怎么得到这个字母的大写字母呢? 于是a+5,a+5与a + 5的区别。,常量的特点: 1.在程序中保持不变 2.在程序中,常量可以不经说明而直接使用 常量的分类: 1.直接常量:对应数据类型的常量 整形常量:12U、0L、-3 实型常量:4.6F、-1.23 字符常量:a、b 等 字符串常量 “Hello!” 2.标识符:用来标识变量名、符号常量名、函数名、 数组名、文件名的有效字符序列。 有时常量定义成宏的形式: #defi

15、ne 标识符 常量,C语言中的基本元素之常量,整型常量,整型常量: 1.十进制表示:除表示整数0外,不以0开头(以0开头的数字串会 被解释成八进制数)。负数在前面加负号-,后缀l或L表示长整型,u或U表示无符号数。 例:345 31684 0 -23456 459L 356l 56789u 567LU 2.八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7这八个数字。 例:045 -076 06745l 0177777u 3.十六进制表示:以0X或0x开头的连续数字和字母序列,序列中只能有0-9、A-F和 a-f这些数字和字母,字母a、b、c、d、e、f分别对应数字10、11、12

16、、13、14、15,大小写均可。 例:0x10 0X255 0xd4ef 0X6a7bL,实型常量,实型常量有两种表示形式: 1.小数形式。由数字和小数点组成,必须有小数点。 例:4.23、0.15、.56、78.、0.0 2.指数形式:以幂的形式表示,以字母e或E后跟一个以10为底的幂数。 (1)字母e或E之前必须要有数字。 (2)字母e或E后面的指数必须为整数,字母e或E的前后及数字之间不得有空格。 默认是double型,后缀为“f”或“F”即表示该数为float 型,后缀“l”或“L”表示long double型。 例:2.3e5 500e-2 .5E3 4.5e0 34.2f .5F

17、12.56L 2.5E3L,字符常量,字符常量 是用单引号()括起来的一个字符。 对于字符来说,x和X是两个不同的字符。 字符可以是字符集中任意字符。 如A、x、D、 ?、3、X等都是字符常量。,特殊的字符常量 转义字符是一种特殊的字符常量。 转义字符以反斜线“开头,后跟一个或几个字符。 转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符,转义字符,输出结果:,Name: Audrey Hepburn Movie: Roman Holiday,代码:,printf(“Name: Audrey Hepburn n Movie: Roman Holiday”);,转义序列允许在输出结果

18、中包括特殊字符,字符输入输出函数,getchar(),字符型数据,字符型数据,putchar(),字符输入输出函数之getchar(),char variablename; variablename = functionname;,getchar(),语法:,例如: char c; fflush(stdin); c=getchar();,#include int main() char a,b; printf(“ 请输入两个字符:n“); fflush(stdin); a=getchar(); fflush(stdin); b=getchar(); putchar(a); putchar(b)

19、; putchar(n); ,字符输入输出函数之示例,O,K,输出: 请输入两个字符: OK OK,类型转换,自动类型转换 原则:把表示范围小的类型的值转换到表示范围大的类型的值 强制类型转换 语法:(类型名) 变量或数值,强制类型转换运算符,自动类型转换 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。 具体规定如下: 1.实型赋予整型,舍去小数部分。 2.整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分,小数部分值为0。 3.字符型赋予整型,由于字符型为一个字节,而整型为4个字节,故将字符的ASCII码值放到整型量的低八位中,高八位

20、为0。整型赋予字符型,只把低八位赋予字符量。 原则:把表示范围小的类型的值转换到表示范围大的类型的值 short int long float double,强制类型转换运算符,强制类型转换: 形式: (类型名)操作数 说明: 1.强制类型转换不会改变操作数自身的类型,只是得到一个所需类型的中间量 2.多用于自动类型转换不能实现的目的 3.强制类型转换后,会影响C语言做类型检查 举例: int a = 5, b = 2; float c = (float)a/b;,本章总结,常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据 C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型 整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型,本章总结,单精度浮点型和双精度浮点型变量可以存储实数,但双精度型取值范围要比单精度型大的多 字符型变量可以存储单个字符,其值是该字符的ASCII 码 printf() 和 scanf() 函数属于格式输入输出函数 getchar() 和 putchar() 函数用来输入输出单个字符的函数,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1