基本数据类型、算符表达式
- 格式:doc
- 大小:225.00 KB
- 文档页数:22
数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
基本数据类型、运算符和表达式(总分:56.00,做题时间:90分钟)一、选择题(总题数:21,分数:42.00)1.阅读下面程序public static void main (String[] args)System.out.printIn (34+56-6);System.out.printIn (26*2-3);System.out.printIn (3*4/2);System.out.printIn (5/2);程序运行结果是______。
(分数:2.00)A.844962 √B.902562.5C.8423122D.6849142.5解析:[解析] 第一条输出语句中,+、-是同优先级的运算符,按照左结合的原则,表达式34+56-6的值应该是84。
第二条输出语句中,*的优先级高于-,先算26*2=52,再进行减法运算:52-3=49。
第三条输出语句中,+与/是同优先级的运算符,按照左结合可以得到3*4/2的值为6。
第四条输出语句中,两个整型数据做除法运算,其结果也应该为整型数据,所以结果是2,而不是2.5。
2.下列属于合法的Java标识符是______。
(分数:2.00)A."ABC"B.&5678C.+rriwoD.saler √解析:[解析] Java中所有的变量、常量、对象和类都用标识符命名,其命名规则为:(1)只能以字母、下画线、美元符($)作为首字符,不能用数字或其他符号(如*)作为标识符的首字符。
(2)标识符是区分大小写的。
只有D项是正确的。
3.阅读下面程序public class OperatorsAndExpressionsvoid equalsMethodl()String s1=new String("how are you");String s2=new String("how are you");System.out.printIn (s1==s2);public static void main (String args[])OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();//用于复合类型数据的"= ="运算符OperAndExp.equalsMethodl();程序运行结果是______。
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
基本数据类型、算符表达式
2
———————————————————————————————— 作者: ———————————————————————————————— 日期: 3
第二章 C语言的基本数据类型、运算符和表达式 2.1 数据类型的概念 数据类型是指数据的内在表现形式。通俗地说,我们把数据在加工计算中的特征称为数据的类型。数据类型包含两方面的含义:一是该类型数据可以取值的范围;二是在该范围内的数据可以进行的操作。例如,两个人的年龄可以进行加法、减法运算;两个人的工资也可以进行加法、减法运算。年龄和工资都具有一般数值的特点,在C语言中称为数值型,其中年龄是整数,所以称为整型;工资一般为实数,所称为实型。又如两个人的姓名是不能进行加法、减法运算的,这种数据具有文字的特征,在C语言中称为字符串。单个字符称为字符型数据。 在C语言中我们把整型和实型全称为“数值型”,把数值型和字符合称为“基本数据类型”。此外,C语言根据数据加工处理的特征,还设有其它复杂的数据类型,具体如图2.1.1所示。
整型 实型 字符型
图2.1.1 C语言的数据类型 其中“构造类型”是指由若干个相关的基本数据类型组合在一起形成的一种复杂的数据类型。例如,若干个人的年龄组合在一起,就是一个数组,若干个人的基本工资、职务工资、奖金组合在一起,也是一个数组。前者是由整型数据组成的一维数组,后者是由实型数据组成的二维数组。又如,一个人的姓名、年龄、基本工资也可以组合在一起,它们的数据类型不同,在C语言中称为“结构体类型”。如果有若干个数据不同时使用,我们也可以让它们占用相同的内存区域,以便节省内存,这些数据组合在一起就是“联合体类型”,联合体类型中的数据可以是同类型的,也可以是不同类型的。 指针型是一种简单的数据类型,它是用来表示内存地址的。指针类型的数据可以表示基本类型数据的地址,也可以表示结构类型数据的首地址和其中某个具体数据的地址,还可以
单精短整型 枚举数组型 结构体无符号基本数据空类指针构造 4
表示某指针的地址(称为指针的指针)。例如存放一个人年龄的内存的地址,存放某数组的首地址,存放某结构数据的首地址都可以用指针型数据来存放。设立指针型数据是为了方便C语言的动态处理。 如果某数据在程序运行中,只有固定的几个值,我们就可以把这几个值列出来,以后这个数据只能取确定的几个值中的某一个。这种数据在C语言中就叫做“枚举型”。 空类型是从语法完整性的角度给出的一个数据类型,表示该处不需要具体的数据值,因而没有数据类型。 每个数据都要在内存中(个别数据可能在寄存器中)分配若干个字节,用于存放该数据。不同类型的数据在内存中占用的字节数是不同的,因此C语言要求每使用一个数据之前,必须对数据的类型加以说明(常量不必事先说明),以便为其安排合适的内存。 C语言的基本数据类型有整型、实型和字符型,各类型的分类及表示方法见表2.1.1。
表2.1.1 C语言基本数据类型分类 类 型 表示方法 占位 值 域 整
型
基本整型 int 16 -215~(215-1) 短整型 short 16 -215~(215-1) 长整型 long 32 -231~(231-1) 无符号整型 unsigned 16 0~(216-1) 无符号短整型 unsigned short 16 0~(216-1) 无符号长整型 unsigned long 32 0~(232-1) 实 型 单精度实型 float 32 3.4E-38~3.4E+38 双精度实型 double 64 1.7E-308~1.7E+308 长双精度实型 long double 80 3.4E-4932~1.7E+4932 字 符 型
基本字符型 char void 8 -128~127
无符号字符型 unsigned char 8 0~255
本章主要介绍基本数据类型的数据特征、说明方法和使用,其它数据类型将在后续章节中逐步介绍。
2.2 常量、变量与标识符 2.2.1 常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型,如12、0、-3为整型常量,4.6、-1.23为实型常量,'a'、'd'等为字符常量。常量一般从其字面形式即可判别。也可以用一个标识符代表一个常量,如: [例2.2.1] #define PRICE 30 main ( ) { int num, total; num=10; total=num*PRICE; 5
printf(″total=%d″,total); } 程序中用#define命令行定义PRICE代表常量30,此后凡在此文件中出现的PRICE都代表30,可以和常量一样进行运算,程序运行结果为
total=300 有关#define命令行的详细用法参见后续章节。 这种用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。注意符号常量不同于变量,它的值在其作用域(在本例中为主函数)内不能改变,也不能再被赋值。如再用以下赋值语句给PRICE赋值: PRICE=40; 是错误的。 习惯上,符号常量多用大写,变量用小写,以示区别。
2.2.2 变量 其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念。 和其它高级语言一样,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。 C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。如下面是合法的标识符,也是合法的变量名。 Sum, average, class, day, month, student, _name, lotus1_2_3, basic. 下面是不合法的标识符和变量名: M.D.John, $123, x/y, #33, 3D64, a>b 注意,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。习惯上,变量名用小写字母表示,以增加可读性。 C语言中标识符的长度(字符个数)无统一规定,随系统而不同。许多系统(如IBM PC的MS C)取前8个字符,假如程序中出现的变量名长度大于8个字符,则只有前面8个字符有效,后面的不被识别。例如,有两上变量:student_name和student_number,由于二者的前8个字符相同,系统认为这两个变量是一回事而不加区别。可以将它们改为:stud_name和stud_num,以使之区别。因此,在写程序时应注意了解所用系统对标识符长度的规定,以免出现上面的混淆。 这种错误并不反映在编译过程中(即语法无错误),但运行结果显然不对。 在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符,如count, name, day, month, class, city, country等,除了数值计算程序外,一般不要用代数符号(如a、b、c、x1、y1等)作变量名,以增加程序的可读性。这是结构化程序的一个特征。本书在一些简单的举例中,为简单起见,仍用单字符的变量名(如a、b、c等),请读者注意不要在其它所有程序中都如此。 在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”,如例1.2.2、例1.2.3那样。这样做的目的是: 1.凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用的正确。例如,如果在定义部分写了 int student; 6
而在执行语句中错写成statent。如 statent=30; 在编译时检查出statent未经定义,不作为变量名,因此输出“变量statent未经说明”的信息,便于用户发现错误,避免变量名使用时出错。 2.每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。如指定a、b为int型,如果所用的IBM PC的Turbo C,则为a和b各分配两个字节,并按整数方式存储数据。 3.每一变量属于一个类型,就便于在编译时据此检查该变量所进行的运算是否合法。例如,整型变量a和b,可以进行求余运算: a%b %是“求余”(见 2.6节),得到a/b的整余数。如果将a、b指定为实型变量,则不允许进行“求余”运算,在编译时会指出有关“出错信息”。
2.2.3 标识符及其命名 在2.2.2中我们已经说明了标识符的使用,下面我们再对其总结如下: 标识符是一种特定的字符序列,用来标记:变量名、符号常量名、数组名、函数名、类型名、标号和文件名等。 1、所使用的字符 必须使用C符号集中的英文字母、数字和下划线。 2、长度 ANSI标准规定标识符长度可以是1~32个字符。但是,在PC机中,标识符长度只有前面8个字符有效,超过8个字符后的字符将被忽略。例如,filename1与filename2被认为是同一个标识符。 3、命名规则 标识符的命名,必须以英文字母或下划线开头,其后可以跟或不跟其它合乎规定的字符。C语言严格区分字母的大小写,例如: BIG、big、Big、Big等都是不同的标识符。 标识符本质上代表名字,因此命名要有意义。下面给出一些合法的与不合法的标识符名字。
正确 错误 sum 2a formula #abc al a+b a2 %x Wang_Ming Wang·Ming Y_M_D test!
1.2.4 关键字 关键字又叫保留字,是C编译系统预先定义的一些有特定含义的标识符。C语言将这些关键字定义成:存储类型符、数据类型符和语句定义符。它们只能按定义加以使用,而不能作常规的标识符使用。因此,在程序中选用变量名、函数名等标识符时,不能与关键字发生冲突。 ANSI的C标准总共规定了32个关键字,都是用小写字母组成的,如表2.2.1所示。