ITAT第五届C语言培训讲义二

   第二讲 基本数据类型   
     
 
    引 言

  一、教学目的
  通过介绍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基本数据类型
类型名称存储空间取值范围实例
int整型2个字节介于-32768~32767的整数int i,j;
float单精度浮点型4个字节实数,有效位数6~7位float x;
double双精度浮点型8个字节实数,有效位数15~16位double y;
char字符型1个字节ASCII码字符,或-128~127的整数char c;

  注:char型变量只能存放一个字符,汉字或字符串的存储需要用字符数组实现。

  二、变量的赋值
  变量需要预置一个值,即赋值。赋值操作通过赋值符号“=”把右边的值赋给左边的变量:
      变量名=表达式;
  例如 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型三种类型,区别在于它们的最高位是否作为符号位。unsigned 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个学生的姓名、学号、英语、数学、计算机成绩,输出这两个学生的姓名、学号和平均分。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值