ITAT第五届C语言培训讲义二
2009-07-26 09:07
260 查看
第二讲 基本数据类型 | ||||||||||||||||||||||||||
引 言 一、教学目的 通过介绍C语言的数据类型和存储特点,要求了解C语言数值数据和文字数据的表示方法,掌握C语言基本数据类型的存储格式,掌握变量的定义和赋值,了解数据运算中类型的自动转换和强制转换。 二、知识要点 1.C语言的数据类型 数据类型分类 2.数值数据的表示 (1)整数数据的表示和存储形式 (2)浮点小数的表示和存储形式 3.文字数据的表示 (1)单个字符的表示和存储形式 (2)字符串的表示和存储形式 4.变量的定义和赋值 (1)变量的命名 (2)变量的定义 (3)变量的赋值 5.C语言类型修饰符 (1)long型修饰符的意义 (2)unsigned型修饰符的意义 6.表达式中数据类型转换 (1)自动类型转换 (2)强制类型转换 三、边用边学 §2.1 C语言的数据类型 C语言提供的数据类型分类如下: §2.2 数值数据的表示 C语言中使用的数值数据有两种:整数和浮点小数。 一、整数 整数可以用十进制数、八进制数和十六进制数形式表示。除符号外,如果整数的第一位数字是0时为八进制数,前两位数字为0x时为十六进制数,其余的形式为十进制数。 一般整数的存储空间为2个字节,取值范围一般为 ,即-32768~32767。如果超过这个范围,只有使用占4个字节的长整型数,即在整数后面加上一个字母L(大小写均可),此时取值范围可以扩大到 ,即-2147483648~2147483647。 二、浮点小数 C语言中的浮点小数描述的是实数,可以采用十进制小数形式或者指数形式表示。 十进制小数形式:包含整数部分、小数点和小数部分。其中小数点不能省略。 指数形式:包含尾数部分、字母E或e和阶码。例如 2.78E12。注意尾数部分不能省、阶码必须是整数。 浮点小数一般为单精度浮点类型,占用4个字节,有效位数6~7位,如果需要精度特别高,可以采用双精度浮点类型,有效位数可以达到16~17位。 §2.3 文字数据的表示 C语言把文字数据分为两种类型:单个字符和字符串。 一、单个字符 单个字符的表现形式是由单引号括起来的一个字符,例如:’a’。 其中单引号、双引号和反斜杠的表现形式比较特殊,分别是’/’’、’/”’、‘//’。 在C语言中转义字符被认为是具有特殊意义的单个字符,例如’/n’,代表一个换行符。 单个字符在内存中只占用1个字节,其存储的内容为该字符在ASCII码表中对应的数值。 二、字符串 字符串是由双引号括起来的字符序列,例如:“this is a program.”、“Hello!”、“I like C”。 字符串中的字符按照从左到右的顺序,依次存储在一段连续的空间里,其中每一个字符占用一个字节,其内容为该字符在ASCII码表(见附录)中对应的数值。需要注意的是C语言的字符串在实际存储时,将自动在字符串尾部加了一个结束标志‘/0’(其ASCII码值为0)。 §2.4 变量的定义和赋值 C语言中的数据有两种基本形式:常量和变量。C语言中所有的变量在使用前必须先定义,说明变量类型。 一、变量的定义 变量定义的形式如下: 类型标识符 变量名; 变量在定义时要注意以下几个问题: 1.变量的命名要符合C语言规定的标识符的命名规则,即只能由字母、数字和下划线组成,首字母必须为字母或下划线。此外C语言中规定的有特殊用途的关键字,例如int、float、if等,不能作为变量名称。 C语言中大小写是敏感的。但是习惯上,C中的变量一般用小写字母表示。 2.变量的数据类型决定了它的存储类型,即该变量占用的存储空间。所以定义变量类型,就是为了给该变量分配存储空间,以便存放数据。 基本的变量类型及其存储空间见表2.1: 表2.1 C基本数据类型
二、变量的赋值 变量需要预置一个值,即赋值。赋值操作通过赋值符号“=”把右边的值赋给左边的变量: 变量名=表达式; 例如 x=3;a=a+1;f=3*4+2; 其中需要注意的是: 1.数学中的“=”符号不同于C语言中的赋值符号“=”。 2.如果赋值时两侧类型不一致时,系统将会作如下处理: 将实数赋给一个整型变量时,系统自动舍弃小数部分。 将整数赋给一个浮点型变量时,系统将保持数值不变并且以浮点小数形式存储到变量中。 当字符型数据赋给一个整型变量时,不同的系统实现的情况不同,一般当该字符的ASCII值小于127时,系统将整型变量的高字节置0、低字节存放该字符的ASCII值。 变量在定义的同时也可以赋初值,称作变量的初始化。 3.字符型变量的值可以是字符型数据、介于-128~127的整数或者转义字符。 §2.5 C语言类型修饰符 基本类型可以带修饰性前缀,即类型修饰符,扩大C语言基本数据类型的使用范围。C语言共有4种类型修饰符: long 长型 short 短型 signed 有符号型 unsigned 无符号型 short型和long型用于整型和字符型,其中long型还可以用于双精度型。short型不常用,对于不同机型取值范围不同,这里不再介绍。long int(简写为long)型的存储长度为4个字节,范围 ,用于存储整数超过int型取值范围的情况。long double 型存储长度16个字节,约24位有效数字,取值范围超过double型。 有符号型signed和无符号型unsigned适用于char型、int型和long型三种类型,区别在于它们的最高位是否作为符号位。un 95d7 signed char型取值范围0~255 ,unsigned int(简写为unsigned)型取值范围0~65535 ,unsigned long型取值范围 。 §2.6 表达式中数据类型转换 C语言中不同的数据类型的取值范围不同,在进行混合运算时结果会如何呢? 一、自动类型转换 C语言规定,不同类型的数据在参加运算前会自动转换成相同类型,再进行运算。转换的规则是: 如果运算的数据有float型或double型,自动转换成double型再运算,结果为double型。如果运算的数据中无float型或double型,但是有long型,数据自动转换成long 型再运算,结果为long型。其余情况为int型。 二、强制类型转换 在C语言中也可以使用强制类型转换符,强迫表达式的值转换为某一特定类型。强制类型转换形式为: (类型)表达式 强制类型转换最主要的的用途一是满足一些运算对类型的特殊要求,例如求余运算符“%”,要求运算符两侧的数据为整型,(int)2.5%3二是防止丢失整数除法中的小数部分。 作业与上机练习 1.编程输出字符0、9、A、Z、a、z的ACSII码的十进制、八进制和十六进制的表示形式。 2.参考例L2_6.C编写一个程序,从键盘输入字符(例如’1’),转换成十进制数(即1),并输出。 提示:“1”的ASCII码为十进制数49,将其减去一个数等于十进制1即可。 3.已知a=3,b=2,c=2.5,计算(float)(a+b)/3+(int)c的值。 4.编写一个程序输出5!、10!的结果。 5.参考例L2_8.C编写一个程序,输入2个学生的姓名、学号、英语、数学、计算机成绩,输出这两个学生的姓名、学号和平均分。 |
相关文章推荐
- 第五届ITAT C语言预赛试题五点我想不到的
- 第五届ITAT C语言复赛试题A卷
- ITAT第五届C语言初赛试题(附参考答案)
- ITAT第五届C语言初赛试题(附答案)
- 米斯特白帽培训讲义(v2)信息收集
- 培训讲义--开发规范(01_02)
- C语言培训_006
- RAD Studio10免费培训之Android Service新特性——讲义及范例程序下载
- RAD Studio 10 免费培训之支持 NoSQL 的 MongoDB——讲义及范例程序下载
- 米斯特白帽培训讲义(v2)漏洞篇 文件上传
- 米斯特白帽培训讲义 漏洞篇 逻辑漏洞
- 2015年下半年真题强化班二:软考办出题全部来自于指定教程一句话,而不是培训讲义
- 第五届蓝桥杯大赛个人赛省赛(软件类)真题 C语言B组 1
- 米斯特白帽培训讲义 漏洞篇 SQL 注入
- 流程图培训讲义
- (转)流程图培训讲义
- 【C语言疯狂讲义】(七)C语言进制转换
- 【达内C++学习培训学习笔记系列】C语言之二scanf和选择语句
- C语言培训-07
- SQL Server 2008 R2培训讲义