c语言第2章数据类型运算符和表达式

上传人:san****019 文档编号:70778706 上传时间:2019-01-18 格式:PPT 页数:65 大小:832.31KB
返回 下载 相关 举报
c语言第2章数据类型运算符和表达式_第1页
第1页 / 共65页
c语言第2章数据类型运算符和表达式_第2页
第2页 / 共65页
c语言第2章数据类型运算符和表达式_第3页
第3页 / 共65页
c语言第2章数据类型运算符和表达式_第4页
第4页 / 共65页
c语言第2章数据类型运算符和表达式_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《c语言第2章数据类型运算符和表达式》由会员分享,可在线阅读,更多相关《c语言第2章数据类型运算符和表达式(65页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型、运算符与表达式,林淑玲 ,C语言,知识目标:掌握C语言的数据类型;深刻理解常量与变量;深刻理解整型、实型和字符型数据常量和变量的表示方法;掌握赋值运算符和赋值表达式、变量的赋值方法;理解各种数据类型之间的混合运算。 能力目标:能正确定义“班级学生成绩管理系统”中的相关数据的类型。,第2章 数据类型、运算符与表达式,内容提要,基本数据类型; 常量和变量; 标识符命名; 常用运算符和表达式; 运算符的优先级与结合性,一个简单的C程序例子,#include /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a,

2、int b) return (a + b); /*主函数*/ main() int x, y, sum = 0; printf(“Input two integers:“); scanf(“%d%d“, /*输出x和y相加之和*/ ,简单的C语言程序总结,总结C程序: (1) C程序是由函数构成的。 这使得程序容易实现模块化。 (2) 一个函数由两部分组成: 函数的首部:例2.1中的Add函数首部 int Add(int a, int b) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分: int x, y, sum = 0

3、;可缺省 执行部分:由若干个语句组成。可缺省,简单的C语言程序总结,(3) C程序是由函数构成的。总是从main函数开始执行的,与main函数的位置无关。 (4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (5) 每个语句和数据声明的最后必须有一个分号。 (6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。 (7)可以用/* */进行注释。,源程序的结构特点,1.一个语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由多少个文件组成,都有一个且只能有一

4、个main函数,即主函数。 4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。 7.C语言程序中可加任意多的注释。通常情况下,“/”注释一行,“/* */”注释中间的所有内容。注释不参加编译,因此不进行错误查找处理。 8.用户定义的变量或函数等其他的量必须先定义后使用。,书写程序时应遵循的规则,C语言程序书写中应当注意的问题 (1) 用分号作为语句

5、的结束符,不可省略(即便是最后一个语句也不能省略)。 3种不能加分号的情况:预处理命令后、定义函数名称(函数头)后、花括号()之后。 (2) 第一行是预处理命令行,其中的指令必须以符号“#”开始,所指定的头文件也必须用引号或尖括号标识。 例如,#include “stdio.h“ 或 #include 。 (3) 主函数main()后的括号不能缺省。,书写程序时应遵循的规则,编码风格 1)源程序通常使用小写字母,只有符号常量或其他特殊用途的符号才大写。 2)C语言可以一个语句占一行,也可多个语句占一行。但后者不规范,所以并不提倡。 3)程序代码采用缩进格式。 4)建议同一层次的语句应左对齐。

6、5)用花括号对()表示各个结构层次的范围。它可以表示函数,也可以表示循环体等,书写程序时应遵循的规则,6)一个语句中不同成分之间应使用空格隔开。标识符、关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可以不再加空格来间隔。 7)程序中的空白行不影响程序的执行。可以为使程序清晰而添加空行,但不要在一个语句中间加空行。 8)建议使用注释语句,以增加程序的可读性。 9)程序块的分界符(即花括号“”和“”)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。,C程序常见符号分类,关键字(Keyword) 又称为保留字,C语言中预先规定的具有固定含义的一些单词 标识符(Identifie

7、r) 系统预定义标识符 用户自定义标识符 运算符(Operator) 34种,详见附录2 分隔符(Separator) 空格、回车/换行、逗号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块 “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable) 常量(Constant),任务1 “学生成绩管理系统”中相关数据设计,1任务情境 “学生成绩管理系统”中的数据有常量与变量、简单类型数据和复杂类型数据。这些变量有简单类型变量,还有一些复杂类型变量,如数组、结构体、共用体、指针类型等变量。 在这里我们只对“学生成绩管理系统”中的数据做一些简单的分析。“学生

8、成绩管理系统”中的学生信息主要有:学号、性别、年龄、三门功课成绩、总成绩和平均成绩,再加上一些与计算全班成绩有关的最高成绩、最低成绩等。如学号、性别这类数据只是起到描述一些基本信息的作用,通常情况下不进行算术运算;而年龄、三门功课成绩、总成绩和平均成绩以及最高成绩、最低成绩等这类数据有可能进行算术运算。所以针对这二类数据我们在定义数据类型时,要根据实际情况选择不同的数据类型。 下面我们通过相关理论的学习,掌握如何将“学生成绩管理系统”中的数据定义成C语言能够处理的数据。,2知识必备,数据类型 常量 变量,数据类型(Data Type),数据为什么要区分类型? 不同类型的数据代表不同的 数据表示

9、形式 合法的取值范围 占用内存空间大小 可参与的运算种类 从基本数据类型到抽象数据类型 无数据类型 基本数据类型 构造数据类型 抽象数据类型,数据类型(Data Type),标识符命名,变量名 函数名 由英文字母、数字和下划线组成,大小写敏感 不可以是数字开头 直观,见名知意,便于记忆和阅读 最好使用英文单词或其组合 切忌使用汉语拼音 下划线和大小写通常用来增强可读性 variablename variable_name VariableName, variableName 不允许使用关键字作为标识符的名字 int, float, for, while, if等 某些功能的变量采用习惯命名 如

10、:for语句所采用的循环变量习惯用i, j, k,Windows 风格,UNIX 风格,b, B, KB, MB, GB, TB,Megabyte(MB),中文叫法:兆 Kilobyte(KB),中文叫法: K Byte,中文叫法:字节 bit,中文叫法:位 Gigabyte(GB),中文叫法:G Terabyte(TB),中文叫法:T,1 TB = 1,024 GB,1 GB = 1,024 MB,1 MB = 1,024 KB,1 KB = 1,024 B,1 B = 8 b,b, B, KB, MB, GB, TB,一个位有多大? 只能是“0”或者“1”,这叫二进制 一个字节有多大? 保

11、存一个字符(英文字母、数字、符号) ASCII(美国标准信息交换码)编码 两个字节保存一个汉字 GB编码 可以表示数字0255,基本数据类型,int 整数,在目前绝大多数机器上占4个字节。TC2中是2个字节 float 单精度浮点数,一般是4个字节长 double 双精度浮点数,一般是8个字节长 char 字符,一般是1个字节长 用来表示256个ASCII字符,或者0255的整数,数据类型修饰符,short short int,短整数,一般2个字节长。通常简写为short long long int,长整数,一般是4个字节长。通常简写为long long double,长双精度(高精度)浮点数

12、,一般是10个字节长。 signed 用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0),假设编译系统为 int 型整数分配 2 个字节的存储空间,即 16 个二进制位中最高位是符号位,以 32767 为例,其在内存中的存储形式为:,有符号数与无符号数,若是无符号数,该数是 65535 ,若是有符号数,该数是 -1 。,-1 的原码,-1 的反码,-1 的反码加 1 后的结果,-1 的补码,TC2中int

13、的范围是-3276832767 如果我们给它一个小于-32768或者大于32767的数会如何呢? 现场演示,小蛇能吞下大象吗?,超出取值范围会怎样?,一台安装了Windows 95/98的机器,如果连续运行49.7天没有重新启动,可能死机 原因: Windows自启动时刻起,有一个计数器,记录系统已经运行了多少毫秒。这个计数器是个unsigned long 类型的变量 unsigned long 的最大值是:4294967295 一天有 24*60*60*1000 = 86400000毫秒 4294967295 / 86400000 = 49.71026961805 当49.7天的时候,此计数

14、器会溢出,引起死机,溢出(Overflow)造成的危害,如何选择恰当的数据类型?,具体问题具体分析,1 + 2 + 3 + 4 + ,1! + 2! + 3! + 4! + ,13 + 23 + 33 + 43 + ,使用变量要注意,不要对类型或变量所占的内存空间字节数想当然 用sizeof获得变量或者数据类型的长度 现场演示程序在Turbo C2.0和Visual C下的运行结果,注意!,#include main() printf(“Data type Number of bytesn“); printf(“- -n“); printf(“char %dn“, sizeof(char);

15、printf(“int %dn“, sizeof(int); printf(“short int %dn“, sizeof(short); printf(“long int %dn“, sizeof(long); printf(“float %dn“, sizeof(float); printf(“double %dn“, sizeof(double); ,变量,变量定义语句: 类型关键字 变量名1,变量名2,变量名3, 定义变量时初始化方式: 类型关键字 变量名1=常量1,变量名2 =常量2 ,,变量声明,使用变量的基本原则 变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义 声明

16、的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机 不被初始化的变量,其值为危险的随机数 char esc = a; int i = 1; int sum = 0; float eps = 1.0e-5;,实型数据在内存中的存储,1234.56=0.123456X104 =1.23456X103 =12345.6x10-1,N=S X r j,有效位数 (精度),取值范围,实型数据提供的有效数字位数,float型数据提供7位有效数字 double型数据提供16位有效数字 使用不当导致舍入误差,#include main() float a; double b; a = 123

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号