基本数据类型与操作.ppt

上传人:za****8 文档编号:14167424 上传时间:2020-07-08 格式:PPT 页数:79 大小:2.61MB
返回 下载 相关 举报
基本数据类型与操作.ppt_第1页
第1页 / 共79页
基本数据类型与操作.ppt_第2页
第2页 / 共79页
基本数据类型与操作.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
C语言程序设计,中山大学数学与计算科学学院,冯 伟,2011-09-27,ProgramT,C语言程序的建立和运行的基本过程 静态检查 目标程序 可执行程序 编辑 编译 连接 执行 结果 源程序 动态检查,有错,F.c,F.obj,F.exe,有错,有错,有错,(1)新建项目和程序(FileNew) (2)输入或编辑程序 (3)保存程序(FileSave Ctrl+S) (4)编译程序(BuildCompile Ctrl+F7) (5)建立程序(BuildBuild F7) (6)运行程序(BuildExecute Ctrl+F5),C程序上机过程,编译程序:Compile(Ctrl+F7)。无错时Output窗口:,建立程序:Build(F7)。无错时Output窗口:,执行程序:Execute(Ctrl+F5)。执行结果:,认识编译器和调试C程序的上机试验,1、上机学习使用 Visual Studio 编译环境:界 面、菜单列表及相应功能。 2、通过编辑输入简单C语言程序,建立、编译 并运行这些例题程序,以掌握C语言程序的 建立和运行过程。 3、了解和区分C语言程序的基本组成和结构, 认真领会程序的书写要求以写出层次清晰、 结构分明的C程序。,(二)基本数据类型与基本操作,1、数据类型概述 2、基本数据类型 3、运算符和表达式 4、数据类型转换 5、数据输入和输出, 数据以特定的形式被储存和操作,不仅是操作的对象,而且是操作的结果。算法或程序本质上是描述数据的变化和流动。 特定形式的数据之间还存在某些联系。所谓数据结构指的是数据的组织形式,是相互之间存在一种或多种特定关系的数据元素的集合。 不同计算机语言定义和使用的数据结构是不同的,而采用数据结构的不同,也使解决问题的算法不同。程序=数据结构+算法。,2.1 数据类型概述,关于数据类型的理解 (1) 数据类型名称 (2) 数据类型占用的内存空间 (3) 数据类型所能表示的数据及其范围 (4) 数据类型所能允许的操作,C语言的数据类型,课本P43图3.4,数据类型 常量、变量,1 在程序中对用到的所有数据都必须指定其数据类型, 即程序中任何一个数据都必须属于一种数据类型,而且遵循“先定义,后使用”的原则。 2 数据类型的作用: 确定数据分配内存空间大小、取值范围和允许的操作。 3 C语言数据分为常量和变量,分别属于前述数据类型。 在程序运行过程中,其值不能被改变的量称为常量; 而其值可以改变的量称为变量。 4 常量和变量都是运算量,即程序中参与运算的量, 是程序运算或处理的对象。函数也可以作为运算量。,C语言的标识符 标识符是程序语言里定义的作为名字的合法有效字符序列, 以表示程序中需定义的对象(数据类型、符号常量、变量、函 数等)名称。C语言标识符的命名规则是: 1) 只能由英文字母、数字和下划线三种字符组成。 2) 必须以英文字母或下划线开头。 3) 长度有限,超过部分自动截断,一般取前8个字符为有效。 用户自定义标识符注意事项: 1) 大小写字母是不同,即区分字母的大小写。 2) 尽量不要以下划线开头,避免可能和系统定义名字冲突。 3) 标识符尽可能选取有意义的词汇,以便“见名知意”。 4) 一般情况下,符号常量用大写,变量名和函数名用小写。 5) 在易混淆地方,尽量避免用易认错的字符(0Oo,1Il,2Zz)。,C语言的关键字 C语言中用到一些英语单词,它们符合标识符的定义,但是 已为其规定了特殊的含义,不允许再有其它用途。称这些特定的 标识符为关键字或保留字。 C语言有下述关键字(P378附录C): auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 注意:用户自定义的标识符不能是关键字和编译系统库函数名。,几个特殊关键字的说明 1) 空类型:void void类型一是表示函数无返回值;二是设置空指针。 2) 类型修饰符:signed、unsigned、short、long 3) 存取修饰符:常数型(const)、暂态型(volatile) 用于控制对变量访问或修改的方式。其中,const型变量在 程序执行期间不可改变,volatile型变量的值可由程序中没 有明确指明的方式改变。 4) 存储类型符: extern、static、register、auto 根据变量存在时间(生存期):外部、静态、寄存器、自动。,2.2 基本数据类型,1、整型:表示整数 2、实型:表示实数 3、字符型:表示单个字符 4、字符串型:表示一串字符(字符型数组) 5、逻辑型:表示逻辑“真”或“假”(bool类型),基本数据类型的存储空间长度及取值范围,注意:1. 长度是比特(位)数,8个比特是1个字节。 2. 存储长度和取值范围可能因具体机器和编译系统而异, 用运算符sizeof求字节数。,课本P45表3.2、 P49表3.3、 P50表3.4,变量的声明和赋值 1) 在程序中,数据及其存储空间被抽象为变量。变量名 实际是一个符号地址,对应程序在编译连接时由编译系统分配的一个内存地址,其中存放变量值。 2) 要引用(使用)一个变量,必须首先声明(定义)其唯一 数据类型,以申请开辟相应存储空间,而后才能使用。 3) 变量声明语句的一般形式是:type variable-list。 其中,type必须是有效的C数据类型,variable-list 可由同类型的一个或多个变量名加上逗号分隔符组成。 4) 从运算器向变量名所代表的内存地址或存储单元传送 数据叫赋值,赋值用运算符“=”表示。允许声明时对变量进行赋初值(初始化)。,区别:变量名、变量占用的内存空间、变量的值,变量的完整定义,变量的完整定义方法如下: 存储类型 数据类型符 变量名列表; 变量有auto(自动),static(静态),extern(外部), Register(存储器)四种存储类型,当未指明存储类型时, 在函数内部申请的变量默认为auto型变量。 区别: 定义三个整型变量i,j,k: int i,j,k; 定义三个静态整型变量a,b,c: static int a,b,c;,区别:变量的赋值语句与赋值表达式,赋值语句的作用是计算表达式的值后送到变量中。格式: 变量名=表达式; “=”在这里表示赋值运算符,是把的值给。 区别:赋值语句是语句,有分号; 赋值表达式仅表示一个值,不是语句,不能有分号。,强调说明 1、在C语言中,在使用变量前必须先对其进行定义 (先定义后使用),以申请存储空间。变量名必须 符合标识符的命名规则。变量的数据类型决定了 变量占用的内存空间的大小。 2、变量值的改变可由赋值语句(表达式)、键盘输入 等实现。变量在任一时该只能保存一个值,而且 该值只与最后一次赋值有关(当前值)。 3、C语言规定:在函数体内部,只能在第一个可执 行语句前定义变量。因此,一般在函数开头声明 部分进行变量定义。,变量的作用域 变量在程序的何处说明对程序其他部分如何使用这个 变量影响较大。以变量说明的位置为基础,决定变量存在 的空间区域,称为变量的作用域规则。 C语言中,程序可在三个位置说明变量。第一是在所 有函数(包括main()函数)之外,叫全局变量,程序任何部 分都可以使用它;第二是在函数内,叫局部变量,仅本函 数内的语句可以使用它;第三是函数的形参说明部分,这 些参数除了接受传递到函数的实参信息外,其它功能与局 部变量一样。,关于变量的其它说明 1) 循环变量用简单写法,如 i, j, k 等 2) 变量名要有意义,见名知意:score分数,age年龄 3) 变量名不要太长,书写麻烦,记忆麻烦 4) 不允许两个全局变量同名,否则编译程序时出错 5) 同一个函数内不能定义两个同名的局部变量,但不同函数内的局部变量可以重名,普通常量与符号常量 1) 常量可以是任何的基本数据类型,表示方法由其类型决定。 2) 普通(直接、字面)常量: 一般的常量。 如整数、实数、字符、转义字符、字符串等。 3) 符号常量:在程序中指定用标识符名字代表的常量。 符号常量有两种定义方法: a.宏常量,在程序文件首部定义:# define PI 3.1459 b.变量常量,按变量说明定义:const float PI=3.14159f; 使用符号常量含义清楚,见名知意,且易修改,一改全 改。习惯上,符号常量名用大写(区别变量名用小写)。,普通常量的表示 1整型常量 整型常数可用以下3种表示形式: (1) 十进制整数:由09组成。 (2) 八进制整数:由07组成。 (3) 十六进制整数:由09,AF组成。 2实型常量:又称为浮点数 只能用十进制表示,有两种表示形式: (1) 小数形式:它由数字和小数点组成 注意:必须有小数点。 (2) 指数形式:以指数形式表示(指数须为整数) 注意:规范化的指数形式是在字母e或E之前 的小数点左边只有一位非零数字,而在字母 e或E之后为整数。如: 3.333333e-001。,3字符常量:用一对单撇号括起来的一个字符(课本P377 ) 注意: 不能用双撇号代替单撇号。 4转义字符:将反斜杠后面字符转成别的意思(课本P40表3.1) (1) 用反斜杠开头后面跟一个字母代表一个特殊字符 (2) 用代表字符“”,用 和”代表字符单和双撇号 (3) 用后跟1到3个八进制数代表相应的ASCII的字符 (4) 用x后跟1到2个十六进制数代表相应的ASCII的字符 5字符串常量:用一对双撇号括起来的零个或多个字符序列 注意: 存储时要多占一个字节,用来存储结束标志0,字符类型数据的表示和存储形式 1、字符类型的数据在内存中以相应的ASCII代码存储。 2、字符数据可以等价为与其相应的ASCII码的整数, 可以作为整数参与运算(取值范围0255)。 字符串型与逻辑型 在C语言中无专门的字符串类型及逻辑型数据,但是 可以分别用字符型与数值型表示。 1、字符串型:用双撇号定界的一串符号。字符串型都以字符0结束,在C语言中用字符数组(指针)表示。 2、逻辑型:逻辑值常只有两个(真、假),在C语言中,用“非0”表示“真”,用0表示假。,01算术运算符 (+ - * / % + -) 02关系运算符 ( = | 则表达式(a5?b+c:b-c)的值为-1。 取地址运算符: num=10; total=num*PRICE; printf(total=%dn,total); ,# include const int PRICE=30; void main() int num,total; num=10; total=num*PRICE; printf(total=%dn,total); ,2. 实型数据的舍入误差和使用,# include void main() float a,b,pi,area; / double a,b,pi,area; a=123456.78900; b=a+0.0002; printf(%fn,a); printf(%fn,b); pi=3.14159; area=pi*10*10; printf(%fn,pi); printf(%fn,area); ,3个Warning 123456.789063 123456.789063 3.141590 314.158997,123456.789000 123456.789200 3.141590 314.159000,虽然允许隐式转换, 但提倡显式类型转换, 类型匹配,提高精度。,3. 提倡类型匹配,强制转换运算符,区别/和%运算符,# include void main() printf(%dn,5/3); printf(%dn,5%3); printf(%lfn,5.0/3); printf(%dn,(int)5.0/3); printf(%dn,(int)5.0%3); printf(%fn,(float)(5/3); printf(%fn,(float)(5%3); ,1 2 1.666667 1 2 1.000000 2.000000,4. 打 印 机 和 显 示 屏 结 果 理 解,# include void main() printf( ab ct derftgn); printf( ab ct den); printf( ab ct derftgn); printf(n); printf(htibbj kn); printf(htin); printf(htibbj kn); ,5. 字符和字符串的区别和使用,# include # include void main() char c1=a; / char c2=a; /错误!类型不匹配 char c3=a; printf(%dn,sizeof(char); / 1 printf(%dn,sizeof(c1); / 1 sizeof测试数据类型或变量字节数 printf(%dn,sizeof(c3); / 2 字符数组长度 printf(%dn,strlen(c3); / 1 strlen测试字符串长度 printf(%dn,strlen(101a,.00n); /8 ,6. 其它强调注意的问题,字符常量和整数的等价 常用字符与ACSII码对照表中,0255是十进制整数, 等价于对应的字符,可以混合运算。 注意:八进制ddd和十六进制xdd的表示形式。 如:八进制数101代表ASCII码(十进制数)为65的字符A。 (American Standard Code for Information Interchange) 逻辑运算符(! /没有参数 功能:得到从键盘上输入的一个字符。 用法: char ch; ch=getchar(); 格式:putchar(ch); 功能:在屏幕上显示一个字符,ch为字符型常量或变量, 包括控制字符或其他转义字符。 用法如: char a=A; putchar(a); putchar(n); putchar(101); putchar(015); putchar(012); putchar(getchar(); /输出输入的字符,2、printf函数(课本P68-75) 该函数是最常用的有格式的输出函数。用法如下: printf(“格式控制字符串”,输出表列); 注意: 1) “格式控制字符串”是用双撇号括起来的字符串,包括格式说明和普通字符。 2) 格式说明由“%”和格式字符组成,作用是将输出数据转换为指定的格式输出(提倡类型匹配一致,避免隐式转换),即说明对应输出项在输出时的位置宽度及相应的数据类型。 3) 普通字符是需要原样输出的字符,目的是提示说明,增加输出数据的可读性。 4) “输出表列”可以是表达式、变量、常量等列表(建议输出表列不要实现计算功能),每项之间用逗号“,”隔开。 5) 在使用时,建议严格按照格式要求,提倡个数对应、类型匹配,即格式符的个数应该与输出项的个数相同,并且对应的数据类型应该一致。,格式符,1、格式符的标准写法: %-m.n字母 关于附加格式字符或修饰符的说明: a) 正负号:用以指定输出项左右对齐方式,负号是左 对齐,缺省正号()为右对齐,剩余位置补空格。 b) 域宽及精度描述符m.n:m是最小域宽,即输出数 据所占最小位数(包括可能的小数点所占的一位),若超 出该位数,则按实际位数输出;n是精度,输出实数时 是小数位数,输出字符串时是自左端截取的字符个数。,2、常用格式符:,注意:输出实数时,若不指定精度,默认输出6位小数,但输出的数字并非都是有效数字,float和double型实数的有效位数分别是7位和16位,最后一位都采取4舍5入。规范化指数形式输出位数规定。,printf实例应用,printf(“a=%d,b=%d”,a,b);,printf(“Hello,Guys!n”);,特别建议: 格式符的使用比较复杂,建议,注意初学时不要花太多时间研究格式,先要学会基本输出格式。复杂格式以后逐步深入学习。,double pi=3.14159267; / 3.14159267f printf(%f,%8.4f,%3.3f,%.2fn,pi,pi,pi,pi); / 3.141593, 3.1416,3.142,3.14,2、scanf函数(课本P75-78) 该函数是标准输入函数,用法如下: scanf(“格式控制字符串”,内存地址表列); 注意: 1) “格式串”中“格式符”的含义与printf说明基本一致。 格式符的标准写法:%*m格式字符 2) “内存地址表列”指的是用逗号分隔的内存地址,可以 是变量地址或字符串的首地址, float c,d; scanf(%d%d%f%f,输入float型数据时,直接使用%f格式符。 输入double型数据时,则宜用%lf格式符。,课后的复习、上机实践、预习,(1) 结合课堂课件,仔细阅读和理解课本相关章节内容, 基本数据类型、运算符和表达式的理论细节和例题。 (2) 关于格式输入与输出,不必花太多精力一步到位掌 握每一个细节,建议:首先重点掌握最常用的一些 基本输入输出格式,其它部分可根据需要和理解的 深入,结合上机实验,逐步掌握。 (3) 关键是结合课件和课本内容,上机编写调试相关程 序,逐步加深理解语法点并掌握其应用。 (4) 尽可能完成课后每个练习题,并上机调试程序。,特 别 提 示 遇到问题时,仔细理解课件、演示程序、课本, 结合上机检验,然后请教他人或查阅其它资料。 强调上机实践,程序由简到繁,逐步扩充功能, 以检验和巩固语法知识,并不断积累编程经验。 自力更生为主,请教同学为辅,提倡多讨论。,师生共勉,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!