第2章 数据类型与运算符—补充案例
- 格式:doc
- 大小:302.00 KB
- 文档页数:19
第二章 数据类型、运算符和表达式 2.1 C的数据类型 在第一章中,我们已经看到程序中使用的各种变量都应预先加以定义,即先定义,后使用。对变量的定义可以包括三个方面: ·数据类型 ·存储类型 ·作用域 在本章中,我们只介绍数据类型的说明。其它说明在以后各章会陆续介绍。所谓数据类型是按被定义变量的性质、表示形式、占据存储空间的多少和构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。
1. 基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。他包括整型、字符型、实型(分为单精度型和双精度型)和枚举类型四种。
数据类型 图2-1 C语言的数据类型
基本类型 构造类整型(int) 字符型( char ) 实型(浮点型) 枚举类型( enum ) 数组 ( type[ ] ) 结构体( struct ) 共用体 ( union ) 单精度型( float ) 双精度型( double )
指针 ( type[] ) 空类型 ( void ) 2. 构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种: ·数组类型 ·结构体类型 ·共用体(联合)类型 3. 针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。 4. 类型:空类型void只能申明函数的返回值类型,不能申明变量。在调用函数值时,通常应向调用者返回某种类型的一个函数值,如果不需要有函数返回值,则在函数定义前面加上void表示空类型。在后面函数中还要详细介绍。 在本章中,我们主要介绍基本数据类型中的整型、浮点型和字符型。其余各种类型以后分别有章节介绍。
2.2 常量
在程序运行过程中,其值不能改变的量称为常量。如我们在数学里面的123,0,-45为整型常量,2.8,-0.56等称为实型常量,在C语言里,还有一种经常用到的常量如'a', 'x'等称为字符常量,"abc","123"等称为字符串常量。下面就各种常量作一些介绍。
博学谷——让IT教学更简单,让IT学习更有效 1 第2章 数据类型与运算符 案例2-1 什么是二进制 一、案例描述 1、 考核知识点 编号:00602001 名称:什么是二进制 2、 练习目标 了解二进制的表达形式 掌握二进制和十进制的互相转换 3、 需求分析 二进制是一种“逢二进一”的机制,它用0和1两个符号来描述。为了让初学者更好地掌握二进制,本案例将对0-9这十个数字分别用十进制和二进制打印出来。 4、 设计思路(实现原理) 1) 声明main()函数 2) 在main()函数中对0-9这十个数字分别用十进制和二进制打印
二、案例实现 编写程序,代码如下: 1 #include 2 #include 3 void main() 4 { 5 int num; 6 char s[16]; 7 printf(" -----------------\n"); 8 printf("| 十进制 | 二进制 |\n"); 9 printf("|-----------------|\n"); 10 for (num = 0; num <= 9; num++) 11 { 12 itoa(num, s, 2); 13 printf("| %d | %6s |\n", num, s); 14 } 15 printf(" -----------------\n"); 16 getchar(); 17 } 博学谷——让IT教学更简单,让IT学习更有效 2 运行结果如图2-1所示。
图2-1 运行结果 三、案例总结 1、从运行结果中可以看出,当用二进制表示十进制数字2时,由于二进制的数码只有0和1,所以根据“逢二进一”的规则,需要向高位进一位,表示为“10”。同理,使用二进制表示十进制数字4时,继续向高位进一位,表示为“100”。 2、需要注意的是,十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。
案例2-2 八进制与十六进制
一、案例描述 1、 考核知识点 编号:00602002 名称:八进制与十六进制 2、 练习目标 了解八进制和十六进制的表达方式 掌握十进制、八进制和十六进制的转换方式 3、 需求分析 八进制是一种“逢八进一”的进制,它由0~7八个符号来描述;十六进制是一种“逢十六进一”的进制,它由0~9、A~F十六个符号来描述。为了加深学员对八进制和十六进制的理解,本案例将用十进制、八进制、十六进制这三种格式分别打印0-32这33个数字。 4、 设计思路(实现原理) 1) 声明main()函数。 2) 在main()函数中用十进制、八进制、十六进制这三种格式分别打印0-32。 博学谷——让IT教学更简单,让IT学习更有效 3 二、案例实现 编写程序,代码如下: 1 #include 2 void main() 3 { 4 int num; 5 printf(" ----------------------------\n"); 6 printf("| 十进制 | 八进制 | 十六进制 |\n"); 7 printf("|----------------------------|\n"); 8 for (num = 0; num <= 32; num++) 9 { 10 printf("| %6d | %6o | %6x |\n", num, num, num); 11 } 12 printf(" ----------------------------\n"); 13 getchar(); 14 } 运行结果如图2-2所示。
图2-2 运行结果 博学谷——让IT教学更简单,让IT学习更有效
4 三、案例总结 从案例中可以看出,当使用八进制表示十进制数字8时,由于表示八进制的符号只有0~7,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为20。当使用十六进制表示十进制数字16时,由于表示十六进制的符号只有0~9、A~F,因此,根据逢“逢十六进一”的规则,需要向高位进一位,表示为10。同理,使用十六进制表示十进制数字32时,继续向高位进一位,表示为20。
案例2-3 进制转换与ASCII码表
一、案例描述 1、 考核知识点 编号:00602003 名称:进制转换与ASCII码表 2、 练习目标 了解进制转换和ASCII码 掌握常用进制间的进制转换和常见的ASCII码 3、 需求分析 在计算机中一个数值可以用不同的进制形式来表示,但不管是哪种进制形式来表示,数值本身是不会发生变化的。为了加深学员对进制转换的认识,本案例将分别用十进制、二进制、八进制、十六进制这四种格式打印0-32这33个数字。 4、 设计思路(实现原理) 1) 声明main()函数。 2) 在main()函数中用十进制、二进制、八进制、十六进制这四种格式打印0-32。
二、案例实现 编写程序,代码如下: 1 #include 2 #include 3 void main() 4 { 5 int num; 6 char s[16]; 7 printf(" ---------------------------------------\n"); 8 printf("| 十进制 | 二进制 | 八进制 | 十六进制 |\n"); 9 printf("|---------------------------------------|\n"); 10 for (num = 0; num <= 32; num++) 11 { 12 itoa(num, s, 2); 博学谷——让IT教学更简单,让IT学习更有效 5 13 printf("| %6d | %8s | %6o | %6x |\n", num, s, num, num); 14 } 15 printf(" ---------------------------------------\n"); 16 getchar(); 17 } 运行结果如图2-3所示。
图2-3 运行结果 三、案例总结 1、由于计算机中的数据都是以二进制的形式被存储,我们输入的数字,不管是十进制、八进制、十六进制,都将被转换为二进制。而我们打印数字时,不管是十进制、八进制还是十六进制,都是从二进制转换来的。 2、同样,计算机中的字符数据也是以二进制的形式存储,计算机使用特定的整数编码来表示对应的字符。我们通常使用的英文字符编码是 ASCII。 博学谷——让IT教学更简单,让IT学习更有效 6 案例2-4 常量与变量
一、案例描述 1、 考核知识点 编号:00602005 名称:常量与变量 2、 练习目标 了解常量与变量区别 掌握常量和变量的应用 3、 需求分析 程序将数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。为了让初学者更好地掌握变量,本案例将实现变量的定义和赋值。 4、 设计思路(实现原理) 1) 声明main()函数。 2) 在main()函数中,实现变量的定义和赋值。
二、案例实现 编写程序,代码如下: 1 #include 2 void main() 3 { 4 int x = 0, y; 5 y = x + 3; 6 printf("x = %d, y = %d\n", x, y); 7 getchar(); 8 } 运行结果如图2-4所示。
图2-4 运行结果 博学谷——让IT教学更简单,让IT学习更有效
7 三、案例总结 该案例中,第4行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值,变量x和y在内存中的状态如图2-5所示。
图2-5 x、y变量在内存中的状态 第5行代码的作用是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化,如图2-6所示。
图2-6 x、y变量在内存中的状态 案例2-5 变量的数据类型
一、案例描述 1、 考核知识点 编号:00602006 名称:变量的数据类型 2、 练习目标 了解有关C语言的基本知识 3、 需求分析 在应用程序中,由于数据存储时所需要的容量各不相同,因此,为了区分不同的数据,需要将数据划分为不同的数据类型。为了让初学者更好地掌握变量,本案例将针对六种基本数据类型,分别定义六个变量,并进行赋值操作。为了让初学者更好地掌握变量的数据类型,本案例将针对六种基本数据类型,分别定义六个变量,并进行赋值操作。 4、 设计思路(实现原理) 1) 声明main()函数。 2) 在main()函数中,针对六种基本数据类型,分别定义变量并赋值。 3) 打印变量的值。