第2章数据类型、运算符与表达式.ppt
《第2章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型、运算符与表达式.ppt(110页珍藏版)》请在三一文库上搜索。
1、,IT Education & Training,Neusoft Institute of Information,Date: August 24, 2019,办公室:C7座101 QQ:772896740 EMAIL: 课件下载网址:ftp:/ 数据类型及表达式,本章主要知识点,基本的数据类型 数据类型转换 常量和变量 C语言各种运算符和表达式,基本数据类型 深入理解变量,C语言的数据类型,单精度实型 (float),双精度实型 (double),整型 (int),字符型 (char),枚举类型,数组类型,结构体类型,共用体类型,实型,基本类型,构造类型,空类型 (void),指针类型,数据
2、类型,任务提出:,eg2_1:有如下任务,当某学生输入自己的学号和姓名及两门课程的成绩后,能够在控制台看到自己的总成绩。试编程解决该任务。,任务分析:,eg2_1程序中涉及到哪些类型的常量或变量? 需要调用哪些标准库函数?,任务解决:,/*功能:计算某位学生的总分*/ #include main() char no10,name10; int english_score,c_score; printf(“请输入你的学号:“); scanf(“%s“,no); printf(“请输入你的姓名:“); scanf(“%s“,name); printf(“请输入你的大学英语成绩:“); scanf(
3、“%d“, ,“数据类型”的意义: 定义了数据占用的内存空间大小 定义了数据在内存中的存储格式 决定了数据的运算规则(自身的行为) 为编译器提供了检查依据,数据类型的意义,数据类型是避免程序错误的初级(基本)手段,不是全部手段;,1.整型数据,2.实型数据,3.字符型数据,数据的存储格式、范围,整型数据分为一般整型(int)、短整型(short)和长整型(long),并且每一种类型又分为带符号(signed)和无符号(unsigned)两种类型 。整型数据的特性见下表:,整型数据分类及取值范围,eg2_2:观察以下程序的运行结果。 /*功能:观察溢出*/ #include main() sho
4、rt num=32768; printf(“%dn”,num); 运行结果如下图所示:,整型数据的取值范围实例,实型数据分为单精度实型(float)、双精度实型(double)和长双精度实型(long double)。具体情况见下表所示 :,1.7103081.710308,实型数据分类,字符型数据分为一般字符型(char)、带符号字符型(signed char)和无符号字符型(unsigned char)三种类型。具体情况见下表所示 :,字符型数据分类,(1)数据类型:C语言的合法数据类型。如例中的int、short、char、float、double等。 (2)变量名表:变量名是C语言合法
5、的标识符。变量名表可以包含多个变量名,彼此之间使用逗号分开,表示同时定义若干个具有相同数据类型的变量,如: float a,b;,1. 变量定义,变量定义一般格式: 数据类型 变量名表; 如:int a; 对变量定义说明如下:,变量是指在程序执行过程中其值可以被改变的量。变量定义的实质是按照变量说明的数据类型为变量分配相应空间的存储单元,在该存储单元中存放变量的值。 C语言中,变量使用时遵循“先定义,后使用”的原则。,变量,2.变量的命名,标识符 作用:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:
6、最长32个字符 命名原则: 见名知意 不宜混淆 如1与I, o与0,例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,M.D.John,3days,#33,char,$123,ab,Memory,Value(5),Name (a),Type (short),short a = 5 ; /* 申请空间并初始化 */,一个变量必然包含以下概念: 名字(变量名) 类型(变量占用空间) 值(变量的内容) 地址(变量在内存中所处的位置),字节,Address,3.
7、变量的存储模式,/*eg2_3功能:计算两个整数的和*/ #include main() int num1=2; int num2,sum; num2=3; sum=num1+num2; printf(“num1+num2=%4dn“,sum); ,4. 变量的初始化及赋值,初始化,赋值,模仿练习:,ex2_1:有如下任务,当某学生输入自己的学号和姓名及两门课程的成绩后,能够在控制台看到自己的平均成绩。试编程解决该任务。,讨论并总结,为什么要定义数据类型? 不同数据类型的区别是什么?,结论1定义数据类型的作用,定义了数据占用的内存空间大小 定义了数据在内存中的存储格式 决定了数据的运算规则(自
8、身的行为) 为编译器提供了检查依据,结论2不同数据类型的区别,内存空间大小不同 数据表示有效位数不同 数据表示范围不同 对应的运算和操作不同,第10次课,常量的定义和使用 认识符号常量,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 请点击: 实型常量 请点击: 字符常量 请点击: 字符串常量 请点击:,如 #define PRICE 30,定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量,/*计算消费总额*/ #define PRICE 30 main() int num,total; num=1
9、0; total=num*PRICE; printf(“total=%d“,total); ,运行结果:total=300,常量,/*eg2_4功能:计算并输出圆周率的和差积商*/ #define PI 3.14 #include main() printf(“%ft%ft%ft%fn“,PI+PI,PI-PI,PI*PI,PI/PI); ,三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff,例 12 与 12L,例 30000 为
10、int型 65536 为long int 型,整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量,问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10,整型常量(整常数),在C语言中,整型常量有十进制、八进制、十六进制三种进制表示方法,并且各种数制均可有正(+)负(-)之分,正数的“+”可省略。,/*eg2_5功能:输出某整数的各种进制值*/ #define NUM 20 #include main() printf(“%dt%ot%xn“,NUM,NUM,NUM); ,整型常量实例,表示形式: 十进制数形
11、式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5,实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,实型常量(实数或浮点数),第11次课,课后习题错误评讲 初步的调试技巧 常量练习,aaa,28,定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,
12、如 A65, a97, 048 , n10,如 a A ? n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,/*转义字符举例*/ main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); ,运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,例 main() printf(“Yb=n”); ,运行结果: 屏幕显示:= 打印机输出:,字符常量,/*eg2_6功能:输出某字符常量的
13、值*/ #include main() printf(“%ct%cn“,a,A); printf(“%dt%dn“,a,A); ,字符型常量实例,字符常量与字符串常量不同,定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,字符串常量,模仿练习,请找出一些常量中哪些是整数、字符、字符串。 0x34f 012 1010 a1 101 “ ” “a” 078 10 f,讨论并总结,使用符号常量的优势是什么? 字符串常量的存储特点?,第12次课,实践练习,作业每人必做,设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积
14、。用scanf输入数据,输出计算结果,输出时要有文字说明,取小数点后2位数字。 输入一个华氏温度,要求输出摄氏温度,取2位小数。公式为:c=5/9(F-32)。 输入一名学生的三科成绩(假设都是整型),请统计该学生的总分及平均分,并分析平均分的计算是否正确。,第13次课,数据类型间的转换 算术运算符及表达式,问题引入,1、如何输出一个指定字母的ASCII码值? 2、如何正确输出5/2的结果?,问题1求解,/*输出制定字母的ASCII码值*/ #include main() printf(“%ct%d“,a,a); ,问题2求解,/*输出5除2的结果*/ #include main() floa
15、t x=5.0; int y=2; float z=x/y; printf(“%f“,z); ,隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型,不同类型数据间的转换,char ch; int i; float f; double d;,例1,模仿练习,1.编写一个打印任意字母ASCII码值的程序。 2.用强制转换改写问题2。,一般形式:(类型名)(表达式) 例: (int)(x+y) (int)x+y (d
16、ouble)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,显式转换(强制转换),讨论并总结,不同的数据类型进行运算,运算规则是什么?,1.运算符,2.表达式,用运算符将操作对象连接起来、符合C语法规则的式子称为表达式。,运算符和表达式,运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型,学习运算符应注意,问题引入,如何编写一个能进行
17、五则混合运算的简易计算器程序? 功能包括求两个整数的和、差、积、商以及两数相除的余数,如何表示?,结论:运用算术运算符及表达式,基本算术运算符: + - * / % 结合方向:从左向右 优先级: - -* / % - + - (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,算术运算符和表达式,2,-2.5,1,-1,1,0,(),问题求解,#include /*和、差、积、商以及两数相除的余数*/ void main() int
18、 oper1=10,oper2=100,add,sub,mult,div,mod; /*操作数和存放结果的变量定义*/ add=oper1+oper2; /*两数和*/ sub=oper1-oper2; /*两数差*/ mult=oper1*oper2; /*两数积*/ div=oper1/oper2; /*两数商*/ mod=oper1%oper2; /*两数模*/ printf(“n两数和为%d,两数差为%d,两数积为%d,两数商为%d,两数模为%d”,add,sub,mult,div,mod); /*结果输出*/ ,模仿练习,1.输入两个整数,要求输出它们的和、差、积、商及余数。 2.输
19、入一名学生的三科成绩(假设都是实型),请统计该学生的总分及平均分。,第14次课,复习 赋值运算符及表达式 自增、自减运算符及表达式,简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量,复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: exp1 op= exp2 exp1 = exp1 op exp2,例 a=3; d=func(); c=d+2;,赋值运算符和表达式,结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
链接地址:https://www.31doc.com/p-3424386.html