基本数据类型与操作.ppt_第1页
基本数据类型与操作.ppt_第2页
基本数据类型与操作.ppt_第3页
基本数据类型与操作.ppt_第4页
基本数据类型与操作.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、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)。

2、无错时Output窗口:,建立程序:Build(F7)。无错时Output窗口:,执行程序:Execute(Ctrl+F5)。执行结果:,认识编译器和调试C程序的上机试验,1、上机学习使用 Visual Studio 编译环境:界 面、菜单列表及相应功能。 2、通过编辑输入简单C语言程序,建立、编译 并运行这些例题程序,以掌握C语言程序的 建立和运行过程。 3、了解和区分C语言程序的基本组成和结构, 认真领会程序的书写要求以写出层次清晰、 结构分明的C程序。,(二)基本数据类型与基本操作,1、数据类型概述 2、基本数据类型 3、运算符和表达式 4、数据类型转换 5、数据输入和输出, 数据以特定

3、的形式被储存和操作,不仅是操作的对象,而且是操作的结果。算法或程序本质上是描述数据的变化和流动。 特定形式的数据之间还存在某些联系。所谓数据结构指的是数据的组织形式,是相互之间存在一种或多种特定关系的数据元素的集合。 不同计算机语言定义和使用的数据结构是不同的,而采用数据结构的不同,也使解决问题的算法不同。程序=数据结构+算法。,2.1 数据类型概述,关于数据类型的理解 (1) 数据类型名称 (2) 数据类型占用的内存空间 (3) 数据类型所能表示的数据及其范围 (4) 数据类型所能允许的操作,C语言的数据类型,课本P43图3.4,数据类型 常量、变量,1 在程序中对用到的所有数据都必须指定其

4、数据类型, 即程序中任何一个数据都必须属于一种数据类型,而且遵循“先定义,后使用”的原则。 2 数据类型的作用: 确定数据分配内存空间大小、取值范围和允许的操作。 3 C语言数据分为常量和变量,分别属于前述数据类型。 在程序运行过程中,其值不能被改变的量称为常量; 而其值可以改变的量称为变量。 4 常量和变量都是运算量,即程序中参与运算的量, 是程序运算或处理的对象。函数也可以作为运算量。,C语言的标识符 标识符是程序语言里定义的作为名字的合法有效字符序列, 以表示程序中需定义的对象(数据类型、符号常量、变量、函 数等)名称。C语言标识符的命名规则是: 1) 只能由英文字母、数字和下划线三种字

5、符组成。 2) 必须以英文字母或下划线开头。 3) 长度有限,超过部分自动截断,一般取前8个字符为有效。 用户自定义标识符注意事项: 1) 大小写字母是不同,即区分字母的大小写。 2) 尽量不要以下划线开头,避免可能和系统定义名字冲突。 3) 标识符尽可能选取有意义的词汇,以便“见名知意”。 4) 一般情况下,符号常量用大写,变量名和函数名用小写。 5) 在易混淆地方,尽量避免用易认错的字符(0Oo,1Il,2Zz)。,C语言的关键字 C语言中用到一些英语单词,它们符合标识符的定义,但是 已为其规定了特殊的含义,不允许再有其它用途。称这些特定的 标识符为关键字或保留字。 C语言有下述关键字(P

6、378附录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

7、、unsigned、short、long 3) 存取修饰符:常数型(const)、暂态型(volatile) 用于控制对变量访问或修改的方式。其中,const型变量在 程序执行期间不可改变,volatile型变量的值可由程序中没 有明确指明的方式改变。 4) 存储类型符: extern、static、register、auto 根据变量存在时间(生存期):外部、静态、寄存器、自动。,2.2 基本数据类型,1、整型:表示整数 2、实型:表示实数 3、字符型:表示单个字符 4、字符串型:表示一串字符(字符型数组) 5、逻辑型:表示逻辑“真”或“假”(bool类型),基本数据类型的存储空间长度及取值

8、范围,注意:1. 长度是比特(位)数,8个比特是1个字节。 2. 存储长度和取值范围可能因具体机器和编译系统而异, 用运算符sizeof求字节数。,课本P45表3.2、 P49表3.3、 P50表3.4,变量的声明和赋值 1) 在程序中,数据及其存储空间被抽象为变量。变量名 实际是一个符号地址,对应程序在编译连接时由编译系统分配的一个内存地址,其中存放变量值。 2) 要引用(使用)一个变量,必须首先声明(定义)其唯一 数据类型,以申请开辟相应存储空间,而后才能使用。 3) 变量声明语句的一般形式是:type variable-list。 其中,type必须是有效的C数据类型,variable-

9、list 可由同类型的一个或多个变量名加上逗号分隔符组成。 4) 从运算器向变量名所代表的内存地址或存储单元传送 数据叫赋值,赋值用运算符“=”表示。允许声明时对变量进行赋初值(初始化)。,区别:变量名、变量占用的内存空间、变量的值,变量的完整定义,变量的完整定义方法如下: 存储类型 数据类型符 变量名列表; 变量有auto(自动),static(静态),extern(外部), Register(存储器)四种存储类型,当未指明存储类型时, 在函数内部申请的变量默认为auto型变量。 区别: 定义三个整型变量i,j,k: int i,j,k; 定义三个静态整型变量a,b,c: static in

10、t a,b,c;,区别:变量的赋值语句与赋值表达式,赋值语句的作用是计算表达式的值后送到变量中。格式: 变量名=表达式; “=”在这里表示赋值运算符,是把的值给。 区别:赋值语句是语句,有分号; 赋值表达式仅表示一个值,不是语句,不能有分号。,强调说明 1、在C语言中,在使用变量前必须先对其进行定义 (先定义后使用),以申请存储空间。变量名必须 符合标识符的命名规则。变量的数据类型决定了 变量占用的内存空间的大小。 2、变量值的改变可由赋值语句(表达式)、键盘输入 等实现。变量在任一时该只能保存一个值,而且 该值只与最后一次赋值有关(当前值)。 3、C语言规定:在函数体内部,只能在第一个可执

11、行语句前定义变量。因此,一般在函数开头声明 部分进行变量定义。,变量的作用域 变量在程序的何处说明对程序其他部分如何使用这个 变量影响较大。以变量说明的位置为基础,决定变量存在 的空间区域,称为变量的作用域规则。 C语言中,程序可在三个位置说明变量。第一是在所 有函数(包括main()函数)之外,叫全局变量,程序任何部 分都可以使用它;第二是在函数内,叫局部变量,仅本函 数内的语句可以使用它;第三是函数的形参说明部分,这 些参数除了接受传递到函数的实参信息外,其它功能与局 部变量一样。,关于变量的其它说明 1) 循环变量用简单写法,如 i, j, k 等 2) 变量名要有意义,见名知意:sco

12、re分数,age年龄 3) 变量名不要太长,书写麻烦,记忆麻烦 4) 不允许两个全局变量同名,否则编译程序时出错 5) 同一个函数内不能定义两个同名的局部变量,但不同函数内的局部变量可以重名,普通常量与符号常量 1) 常量可以是任何的基本数据类型,表示方法由其类型决定。 2) 普通(直接、字面)常量: 一般的常量。 如整数、实数、字符、转义字符、字符串等。 3) 符号常量:在程序中指定用标识符名字代表的常量。 符号常量有两种定义方法: a.宏常量,在程序文件首部定义:# define PI 3.1459 b.变量常量,按变量说明定义:const float PI=3.14159f; 使用符号常

13、量含义清楚,见名知意,且易修改,一改全 改。习惯上,符号常量名用大写(区别变量名用小写)。,普通常量的表示 1整型常量 整型常数可用以下3种表示形式: (1) 十进制整数:由09组成。 (2) 八进制整数:由07组成。 (3) 十六进制整数:由09,AF组成。 2实型常量:又称为浮点数 只能用十进制表示,有两种表示形式: (1) 小数形式:它由数字和小数点组成 注意:必须有小数点。 (2) 指数形式:以指数形式表示(指数须为整数) 注意:规范化的指数形式是在字母e或E之前 的小数点左边只有一位非零数字,而在字母 e或E之后为整数。如: 3.333333e-001。,3字符常量:用一对单撇号括起

14、来的一个字符(课本P377 ) 注意: 不能用双撇号代替单撇号。 4转义字符:将反斜杠后面字符转成别的意思(课本P40表3.1) (1) 用反斜杠开头后面跟一个字母代表一个特殊字符 (2) 用代表字符“”,用 和”代表字符单和双撇号 (3) 用后跟1到3个八进制数代表相应的ASCII的字符 (4) 用x后跟1到2个十六进制数代表相应的ASCII的字符 5字符串常量:用一对双撇号括起来的零个或多个字符序列 注意: 存储时要多占一个字节,用来存储结束标志0,字符类型数据的表示和存储形式 1、字符类型的数据在内存中以相应的ASCII代码存储。 2、字符数据可以等价为与其相应的ASCII码的整数, 可

15、以作为整数参与运算(取值范围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 i

16、nt 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

17、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/

18、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=

19、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和

20、十六进制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); put

21、char(getchar(); /输出输入的字符,2、printf函数(课本P68-75) 该函数是最常用的有格式的输出函数。用法如下: printf(“格式控制字符串”,输出表列); 注意: 1) “格式控制字符串”是用双撇号括起来的字符串,包括格式说明和普通字符。 2) 格式说明由“%”和格式字符组成,作用是将输出数据转换为指定的格式输出(提倡类型匹配一致,避免隐式转换),即说明对应输出项在输出时的位置宽度及相应的数据类型。 3) 普通字符是需要原样输出的字符,目的是提示说明,增加输出数据的可读性。 4) “输出表列”可以是表达式、变量、常量等列表(建议输出表列不要实现计算功能),每项之间

22、用逗号“,”隔开。 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”);,特别

温馨提示

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

评论

0/150

提交评论