当前位置:文档之家› 基本数据类型、算符表达式

基本数据类型、算符表达式

基本数据类型、算符表达式
基本数据类型、算符表达式

基本数据类型、算符表达式

————————————————————————————————作者:————————————————————————————————日期:

第二章 C 语言的基本数据类型、运算符和表达式

2.1 数据类型的概念

数据类型是指数据的内在表现形式。通俗地说,我们把数据在加工计算中的特征称为数据的类型。数据类型包含两方面的含义:一是该类型数据可以取值的范围;二是在该范围内的数据可以进行的操作。例如,两个人的年龄可以进行加法、减法运算;两个人的工资也可以进行加法、减法运算。年龄和工资都具有一般数值的特点,在C 语言中称为数值型,其中年龄是整数,所以称为整型;工资一般为实数,所称为实型。又如两个人的姓名是不能进行加法、减法运算的,这种数据具有文字的特征,在C 语言中称为字符串。单个字符称为字符型数据。

在C 语言中我们把整型和实型全称为“数值型”,把数值型和字符合称为“基本数据类型”。此外,C 语言根据数据加工处理的特征,还设有其它复杂的数据类型,具体如图2.1.1所示。

整型

实型

字符型

图2.1.1 C 语言的数据类型

其中“构造类型”是指由若干个相关的基本数据类型组合在一起形成的一种复杂的数据类型。例如,若干个人的年龄组合在一起,就是一个数组,若干个人的基本工资、职务工资、奖金组合在一起,也是一个数组。前者是由整型数据组成的一维数组,后者是由实型数据组成的二维数组。又如,一个人的姓名、年龄、基本工资也可以组合在一起,它们的数据类型不同,在C 语言中称为“结构体类型”。如果有若干个数据不同时使用,我们也可以让它们占用相同的内存区域,以便节省内存,这些数据组合在一起就是“联合体类型”,联合体类型中的数据可以是同类型的,也可以是不同类型的。

指针型是一种简单的数据类型,它是用来表示内存地址的。指针类型的数据可以表示基本类型数据的地址,也可以表示结构类型数据的首地址和其中某个具体数据的地址,还可以

单精

短整

枚举数组型 结构体

无符号基本

数据空类

指针构造

表示某指针的地址(称为指针的指针)。例如存放一个人年龄的内存的地址,存放某数组的首地址,存放某结构数据的首地址都可以用指针型数据来存放。设立指针型数据是为了方便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;

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;

而在执行语句中错写成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所示。

表2.2.1 ANSI C标准规定的32个关键字

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof while

do if static volstile

除此之外,有一些C语言版本(如Turbo C、Microsoft C等)还扩充了一些别的关键字,以便充分利用PC机80x86 CPU的存储结构,以及支持混合语言的程序设计和支持中断处理。表2.2.2列出了PC机上常用的扩充关键字。

表2.2.2 PC机上扩充的关键字

asm _cs_ ds es

ss cdecl far huge

interrupt neer pascal

最后我们要指出,C语言预处理中用的一些专用词:

define undef include ifdef endif line elif ifndef

虽然不属于关键字,但为了避免混乱,建议也把它们看成关键字,不要在程序中随便乱用。

2.3 常量的类型

C语言中的常量有下面几种:

2.3.1 整型常量

C语言的整型常量有三种表示形式:

(1)十进制形式,如23、0、—34。

(2)八进制形式(以0开头表示的数),如0123。

(3)十六进制形式(以0x开头表示的数):如0x123、0xa、0xb、0xd、0xe、0xf。

在整型常量后加I或L后缀,该常量被强制转换为long类型。类似地,后面加u或U 将常量强制转换为unsigned类型;且不论何种进制表示,只要其值大于65535,此常量加上U后缀就被强制转换为unsigned long类型。

注:同一常量可使用L或U后缀。

2.3.2 实型常量

C语言的实型常量有两种表示形式:

(1)十进制数形式:如0.12、23.3,注意必须有小数点。

(2)指数形式:如123e3或123E3都表示123*103。但应注意:字母e(或E)之前必须有数字且e或E后面指数必须为整数。如e3、2.le3.5、.E3等都是不合法的。

2.3.3 字符型常量

C语言的字符常量是用单引号(即撇号)括起来的一个字符,如′a′、′x′、′F′、′&′等是字符常量,但注意小写和大写是不同的。如′a′与′A′是不同的字符。

C语言还允许使用一种特殊形式的字符常量,就是以一个“\”开头的双字符,常用的特殊字符常量,见表2.3.1:

表2.3.1 特殊形式的字符常量

字符形式功能

字符

形式

功能

\n 回车换行\\ 反斜杠字符″\″

\t 横向跳格到下一个输出区\″双引号

\v 坚向跳格\a 响铃

\b 向左退一个字符\’单引号

\r 回车,光标到本行的行首\ddd 1到3位八进制数代表的字符

\f 走纸换页\xhh 1到2位十六进制数代表的字符

\?问号?

表中列出的字符又称为“转义字符”,意思是将反斜杠(\)后面的字符变成另外的意思。如′\n′中的′n′不代表字母“n”,而是“换行符”,′\0′或'\000′代表ASCII值为0的控制字符,“即空操作符”,它将用在字符串的未尾标记字符串的结束。

[例2.3.1] 对照表2.3.1分析下面程序将输出什么结果。

main( )

{

printf(″\″Hello!\″\n″);

printf(″We \bare″);

printf(″\t studing″);

printf(″C—languge.\nwhat are you″);

printf(″doing? \n″);

printf(″\101\102…\132 abc…ijk…z\n″);

printf(″\7\n″);

printf(″abcdefg\t \bhij \r \bk \tlmn \n″);

printf(″qrst\tuv\b\bwxyz\n″);

}

2.3.4 字符串常量

字符串常量是用一对双引号括起来的字符序列,如″CHINA″、″$123.45″、″A″、″a″、″how do you do″等。

[例2.3.2] 下面是屏幕输出字符串的两个程序,试分析它们的输出结果。

第一个程序:

main( )

{ printr(″* * * * * * * * * * * * * ** * * * * * *\n″);

printf(″ C语言程序设计\n″);

printr(″* * * * * * * * * * * * * * * * * * * *\n″);

}

第二个程序:

main( )

{ printf(″Let′s study C Language,\n″);

printf(″\n″);

printf(″BASIC Language\n″);}

不要将字符常量(如′a′)与字符串常量(如″a″)相混淆:C语言在处理字符串时自动在字符串的末尾加′\0′作为字符串的结束标志。所以,″a″包含两个字符′a′与′\0′。

2.4 变量的类型

2.4.1 变量的类型定义

C语言要求在使用变量前,必须先定义类型。其定义方法为:

类型标识符变量标识符表列;

其中“类型标识符”为基本类型标识符、构造类型、指针类型、空类型或者是用typedef 定义的所有有效的类型。“变量标识符表列”是一个或几个由逗号隔开的变量序列,最后是“;”。变量要先定义类型后使用,其优点是:①没事先给出类型说明的标识符不作变量使用;

②编译系统根据变量的类型说明对变量分配适当的存储单元;③系统根据变量的类型说明检查该变量所进行的运算是否合法(见算术运算符%)。

C语言的数据类型很丰富。先讨论基本类型的三种变量:

(1)整型变量

例如:

int x;定义x为整型变量,存储单元占2个字节

unsigned i,j,k; 定义i、j、k为无符号整型变量,存储单元均占2个字节。

unsigned long a,b,c,d;定义a、b、c、d为无符号长整型变量(各占4个字节)

[例2.4.1] 编一个程序,求88与8的和、差、积、商。

main( )

{ int a,b,sum,min,tim,sep;/* 整型变量说明*/

a=88;b=8;/* 赋值语句*/

sum=a+b;/* 加*/

min=a-b;/* 减*/

tim=a*b;/* 乘*/

sep=a/b;/* 除*/

printf(″%d+%d=%d\n″,a,b,sum); /* 显示运算结果 */

printf(″%d-%d=%d\n″,a,b,min);

printf(″%d*%d=%d\n″,a,b,tim);

printf(″%d/%d=%d\n″,a,b,sep);

}

(2) 实型变量

C语言的实型变量分为单精度(float)实型和双精度(double)实型两类。

例如:

float x,y;定义x、y为单精度实型变量(存储单位元各占4个字节),单精度实型变量提供7位有效数字。

double f,g,h;定义f、g、h为双精度实型变量(存储单元各占8个字节),双精度实型变量提供16位有效数字。

[例2.4.2] 输入圆柱体的底面半径与圆柱体的高,求圆柱体的底面周长、底面积、表面积、体积。

main( )

{ float p,r,h,l,s,sa,v;

p=3.1415;

printf(Pleace input radius r &.height h:\n″);

scanf(″%f%f″,&r,&h);

1=2 * p * r;

s=p * r * r;

sa=2 * s+1*h;

v=s * h;

printf(″The circumference of bottom face of cylinder:1=%6.2f\n″,1);

printf(″The area of bottom face of cylinder:s=%6.2f\n″,s);

printf(″The surface of cylinder:sa=%6.2f\n″,sa);

printf(″The volume of cylinder:v=%6.2f\n″,v);

}

(3) 字符型变量

例如:

char letter, digit;定义letter, digit 为字符型变量(存储单元各占1个字节)字符型变量中只能存放一个字符。

在C语言中,整型(大于等于0而小于等于255)与字符型数据可通用,它可以通过ASCII码进行转换。

[例2.4.3] 编写一个程序,将′A′赋给变量a,将′b′赋给变量b,将′5′赋给变量c,将69赋给变量d,并显示:

1.字符变量a、b、c的值。

2.字符变量a、b、c的ASCII码。

3.整型变量d的值作为ASCII码所对应的字符。

Main( )

{

char a,b,c;

int d;

a=′A′;b=′b′;c=′5′;d=69;

printf(″%c %c %c \n″,a,b,c);

printf(″%d %d %d \n″,a,b,c);

printf(″%c \n″,d);

}

C++习题第02章 基本数据类型、运算符与表达式

第02章基本数据类型、运算符与表达式 1. 选择题 (1)在32位机中,int型字宽为()字节。 A) 2 B) 4 C) 6 D) 8 (2)下列十六进制的整型常数表示中,错误的是()。 A) 0xad B) 0X11 C)0xA D) 4ex (3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是()。 A) 0 B) 1 C) 2 D) 3 (4)若有a=2,b=4,c=5,则条件表达式a>b?a:b>c?a:c的值为()。 A) 0 B) 2 C) 4 D) 5 (5)若有a=1,b=2,则表达式++a==b的值为()。 A) 0 B) 1 C) 2 D) 3 2.简答题 (1)指出下列数据中哪些可作为C++的合法常数? (a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″ (f) .55 (g) ’\\’ (h) 0XCD (i) 8E7 (j) π (2)指出下列符号中那些可作为C++的合法变量名? (a) ab_c (b) β (c) 3xyz (d) if (e) cin (f) a+b (g) NAME (h) x! (i) _temp (j) main (3)根据要求求解下列各表达式的值或问题。 (a) (int)3.5+2.5 (b) (float)(5/2)>2.4 (c) 21/2+(0xa&15) (d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少? (e) 设int a=1,b=2,c=3;,求表达式a

c++实验2 数据类型与表达式

实验2 数据类型与表达式 实验目的 ●掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值 的方法; ●懂得转义字符的使用; ●了解基本数据类型的字节宽度; ●进一步熟悉C++程序的编辑、编译、连接和运行的过程; ●掌握数据的输入输出的方法; ●掌握运算符的优先级和结合性,能够正确书写表达式; ●掌握不同的类型数据之间运算的类型转换规则,理解自动类型转换和会使用强制类型转 换。 实验内容: 1、基本数据类型的长度 验证你的C++编译环境中每个基本数据类型的长度(即在内存空间所占的字节个 数)。用sizeof运算符获取类型或数据的所占字节数。 # include using namespace std; int main() { cout << "字符'a' 所占字节数: " << sizeof('a') << endl; cout << "字符\"a\"所占字节数: " << sizeof("a") << endl; cout << "字符串\"China\" 所占字节数: " << sizeof("China") << endl; cout << "整型常量默认为int,int型所占字节数: " << sizeof(136) << endl; cout << "短整型short类型所占字节数: " << sizeof(short) << endl; cout << "实型常量.23456默认为double类型,double字节数:" << sizeof(1.23456) << endl; cout << "float型数据所占字节数:" << sizeof(float) << endl; cout << "double型数据所占字节数:" << sizeof(double) << endl; cout << "bool型数据所占的字节数:" << sizeof(bool) << endl; return 0; } 1)人工分析程序,写出应得结果,上机后将二者对照。 2)仿照上述程序输出基本数据类型char, short, int, long double, float, double,bool的数据类型长度。 3)为什么字符串长度比总字符个数还要多1? 2、先阅读下列程序,写出执行结果(有些程序可能存在错误,请调试、改正) (1) #include using namespace std; int main()

C语言试题:数据类型、运算符与表达式

3 数据类型、运算符与表达式 一、单项选择题 1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.0 分析:e 后面的指数必须为整数。 2、以下选项中,( D )是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" 分析:在C 语言中,’a ’表示字符常量,”a ”表示字符串。 3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。 A.原码 B.反码 C. ASCII 码 D. BCD 码 分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII 码放到储存单元中。 4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。 x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32. 5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。 6、若有代数式bc ae 3 ,则不正确的C 语言表达式是( C )。 A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 分析:C 选项表达的是3ace/b 。 7、表达式!x||a==b 等效于( D )。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) 分析:由符优先级先后顺序在!x||a==b 中应先算“||”再算“!”,最后算“==”。选项B 不影响运算顺序。 8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A )。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 分析:先算括号里面的,a 不大于b ,则m=0,c 不大于d ,则n=0. 9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 分析:从后往前算,a*=a 即a=a*a ,a=9;然后a-=a=9,a=a-9,=0;a+=0,a=a+a=0. 10、在以下一组运算符中,优先级最低的运算符是( D )。

基本数据类型和表达式

第一章 基本数据类型和表达式 C++数据类型 为什么要分数据类型 不同的数据类型存储格式不同。 不同的数据类型所实施的操作不同 C++数据类型 1、整形数据 各种整形数据的基本情况 数据类型 占用字节(跟编译器有关) 数据范围 short 2 bytes -32768~32767 unsigned short 2 bytes 0~65535 int 2bytes(16位机) 4 bytes(32位机) -32768~32767 -(231)~231-1 unsigned int 2bytes(16位机) 4bytes(32位机) 0~65535 0~232-1 long 4bytes -( 231)~231 -1 unsigned long 4 bytes 0~2 32 -1 整形常量 在整形常量后可加修饰符 l 或 L 表示长整型 基本类型 实型(浮点型) 双精度型( double)

十进制整数:以非零的数字开始 123//signed int 65000//unsigned int 123u//unsigned int 123L//singed long int 八进制整数:以零开始 0123=83//unsigned int 011L=9//unsigned long int 十六进制整数:以0X或0x开始 0x123=291//signed int 0X123u=291//unsigned int 整型变量 类型修饰符变量名[=表达式][,变量名[=表达式]] int x,y; int i=1,j=0; 2字符型数据 字符型数据的基本情况 字符类型: 在内部实现是个单字节长度的整型,因此常用字符型定义值较小的整数。 单引号括起来的一个字符 如’a’,’D’,’?’,’S’ 字符数据在内存中的存储形式 以ASCII码存储,占1字节,用7位 用于表示字符时存放的是字符的ASCII码值。 数据类型占用字节数据范围 char 1Byte -128~127 unsigned char 1Byte 0~255 转义字符 转义序列对应ASCII码值对应功能或字符转义序列对应ASCII码值对应功能或字符 \b 8 退格\’39 单引号 \f 12 换页\’’34 双引号 \n 10 换行\? 63 问好 \r 13 回车\ccc ccc为八进制值该值对应的字符 \t 9 水平制表\\xhh hh为十六进制值该值对应的字符

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

基本数据类型与数值表达式

基本数据类型与数值表达式 一、知识要点 计算机的基本功能是进行数据处理。在C++语言中,数据处理的基本对象是常量和变量。运算是对各种形式的数据进行处理。数据在内存中存放的情况由数据类型所决定。数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点: 1.掌握常量和变量的概念。 2.掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。 3.掌握各种类型的变量说明及其初始化。 4.掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。 5.掌握运算符的优先级、左结合和右结合规则。 6.掌握表达式求值时的自动转换和强制类型转换。 7.掌握自加、自减运算的规则。 8.掌握常用数学函数的功能。 二、例题分析与解答 1.选择题 例题1:运算符+、=、*、>=中,优先级最高的运算符是()。 A.+ B.= C.* D.>= 答案:C 分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。 例题2:下列说法正确的是()。 A.cout<<”\n”是一个语句,它能在屏幕上显示”\n” B.\68代表的是字符D。

C.1E+5的写法正确,它表示余割整型常量。 D.0x10相当于020。 答案:D 分析:分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制的16,相当于八进制的20。 例题3:下列不合法的变量名为()。 A.int B.int1 C.name_1 D.name0 答案:A 分析:根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。 例题4:下面正确的为()。 A.4.1/2 B.3.2%3 C.3/2==1 结果为1 D.7/2 结果为3.5 答案:A 分析:%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。 例题5:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a

数据类型及表达式练习题

数据类型及表达式习题 1.选择题 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 52 2.下列四组选项中,均不是C语言关键字的选项是( ) A) define IF type B) getc c har printf C) include case scanf D) while go pow 3.下列四组选项中,均是不合法的用户标识符的选项是( ) A) W P_0 do B) b-a goto int C) float la0 _A

D) -123 abc TEMP 4.下列四组选项中,均是合法转义字符的选项是( ) A) ‘\”’‘\\’‘\n’ B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’ D) ‘\\0’‘\101’‘xlf’ 5.下面正确的字符常量是( ) A) “c”B) ‘\’’C) ‘’D)‘K’ 6.以下叙述不正确的是( ) A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量 C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 7.以下叙述正确的是( ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,都能被准确无误地表示8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为( ) A) D B) 68 C) 不确定的值D) C 9.sizeof(float)是( ) A) 一个双精度型表达式B) 一个整型表达式 C)一种函数表达式D) 一个不合法的表达式

数据类型、运算表达式

第二章数据类型、运算符与表达式 【章节计划】 【目的要求】 1.了解程序设计概述及C语言的数据类型分类 2.理解变量和常量的相关概念及分类。 3.掌握在C语言中字符型数据的定义及使用,算术运算符 及表达式的使用。 4.掌握在C语言中的特有的运算和运算符的使用,赋值运 算符运算符及表达式的使用。 【教学重点】1、变量和常量的相关概念及分类。 2、C语言中字符型数据的定义及使用,算术运算符及表 达式的使用。 3. C语言中的特有的运算和运算符的使用。 【教学难点】1、C语言中的特有的运算和运算符的使用。 2、赋值运算符运算符及表达式的使用。 【教学内容】 2.1 程序设计概述 2.2 C语言的数据类型 2.3 常量和变量 2.4 整型数据 2.5 实型数据

2.6 字符型数据 2.7 算术运算与算术表达式 2.8 赋值运算与赋值表达式 2.9 C语言特有的运算和运算符 【学时分配】§2-1 ~§2-5 2学时 §2-6 ~§2-9 2学时 实验4学时 习题2学时 共计:10学时

第2章数据类型、运算符与表达式(第二讲) 【课题】:数据类型、运算符与表达式(一) 【目的与要求】:1.了解程序设计概述及C语言的数据类型分类, 2.理解变量和常量的相关概念及分类。 【教学重点】常量和变量数据类型的定义及使用 【教学难点】C语言整型、实型数据类型的定义方法 【教学方法】:引导讲解式 【教具】:电子课件、turboc2.0 【学时分配】:两学时 讲授90分钟 小结10分钟 【课型】:理论教学 【参考资料】谭浩强主编《C程序设计》,清华大学出版社,1999 徐建民主编《C语言程序设计》,电子工业出版社,2002 【后记】 【审批】

实验数据类型与表达式

实验 2 数据类型与表达式 实验目地 掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值地方法; 懂得转义字符地使用;了解基本数据类型地字节宽度;进一步熟悉C++程序地编辑、编译、连接和运行地过程;掌握数据地输入输出地方法; 掌握运算符地优先级和结合性,能够正确书写表达式;掌握不同地类型数据之间运算地类型转换规则,理解自动类型转换和会使用强制类型转换. 实验内容: 1、基本数据类型地长度 验证你地C++编译环境中每个基本数据类型地长度<即在内存空间所占地字节个 数) . 用sizeof 运算符获取类型或数据地所占字节数. b5E2RGbCAP # include usingnamespace std 。 int main(> { cout << " 字符'a' 所占字节数: " << sizeof ('a' > << endl 。 cout << "字符\"a\" 所占字节数:"<< sizeof("a"> << endl。 cout << " 字符串\"China\" 所占字节数: " << sizeof ("China" > << endl 。p1EanqFDPw cout << " 整型常量默认为int,int 型所占字节数: " << sizeof (136> << endl 。DXDiTa9E3d cout << "短整型short 类型所占字节数:"<< sizeof (short > << endl。RTCrpUDGiT cout << " 实型常量.23456 默认为double 类型,double 字节数:" << sizeof (1.23456> << endl 5PCzVD7HxA cout << "float 型数据所占字节数:" << sizeof (float > << endl 。 cout << "double 型数据所占字节数:" << sizeof (double > << endl 。jLBHrnAILg cout << "bool 型数据所占地字节数:" << sizeof (bool > << endl 。return 0 。 } 1)人工分析程序,写出应得结果,上机后将二者对照. 2)仿照上述程序输出基本数据类型char, short, int, long double, float, double, bool 地数据类型长度. xHAQX74J0X 3)为什么字符串长度比总字符个数还要多1? 2、先阅读下列程序,写出执行结果( 有些程序可能存在错误,请调试、改正> #include using namespace std

基本数据类型习题-答案

一、选择题 1、下列变量定义错误的是。 (D) A) int a; B) double b=; C) boolean b=true; D)float f=; 2、下列数据类型的精度由高到低的顺序是:(B) a)float,double,int,long b)double,float,int,byte c)byte,long,double,float d)double,int,float,long 3、执行完下列代码后, (A) int a=3; char b='5'; char c=(char)(a+b); c的值是? A)’8’ b)53 c)8 d)56 4、Unicode是一种_____________(C) A) 数据类型 B)java包 C)字符编码 D)java类 5、6+5%3+2的值是___________(D) A)2 B)1 C) 9 D)10 6、下面的逻辑表达式中合法的是__________(C) A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3) 7、java语言中,占用32位存储空间的是__________。(D) A)long,double B)long,float C)int,double D)int,float 8、假设int a=1,b=2,c=3,以下语句正确的是___________。(D) c=c/float(a2 C87L8.4f B) -20 C) 1,000 D) 4 5 6 13、以下选项中,合法的赋值语句是( )。(D) A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i ); 14、若所用变量都已正确定义,以下选项中,非法的表达式是( )。(C) A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32 15、若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。(A) A) 0 B) 4 C) 8 D) –4 16、下列程序段执行后t1的结果是( )。(B) int x1 = 9, x2 = 6, t1; t1 = x1 > x2 ? x1 : x2; A) 6 B) 9 C) 11 D) 3 17、对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是( )。(A) A) k = n / 10 % 10 B) k = ( n - n / 100 * 100 )%10 C) k = n % 10 D) k = n / 10

作业1-数据类型与表达式

一、判断题(每小题2分,共40分) 1.++和--运算符可以作用于常量。 2.整型数据和字符型数据的类型不同,它们之间不能进行运算。 3.变量的类型经过强制类型转换运算后其类型就改变了。 4.C++提供自增(++)和自减(--)运算符,可以将变量加1或减1。如果运算符放在变量前 面,则变量先加1(减1),然后在表达式中使用。如果运算符放在变量后面,则变量先加1(减1)然后在表达式中使用。 5.true值可以表示任何非0值,false值也可以表示0值。 6.表达式由常量、变量、运算符、函数、圆括号等按一定规则组成的式子。但单独的常量 或变量不是表达式。 7.实型数赋值给整型时,仅取整数部分赋值,当整数部分的值超出整型变量的范围时,产 生溢出,结果出错。 8.C++中逗号也是一种运算符,在所有运算符中优先级最低。 9.字符串常量:简称字符串,它们是用双引号括起来的字符序列,例如,“Hello,world! \n”。 10.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算 11.用const修饰的标识符称为符号常量因为符号常量同样需要系统为其分配内存,所以又 称为const变量符号常量在使用之前一定要先进行声明 12.C++语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许 把字符变量按整型量输出,也允许把整型量按字符量输出。 13.C++语言标识符是以字母或下划线下开头的,由字母,数字和下划线组成的字符串。 14.一个赋值表达式中使用多个赋值运算符可实现多个变量赋值的功能,如表达式(x=y =z=2)与操作序列(z=2;y=z;x=y;)是等价的。 15.变量是在程序的执行过程中其值可以改变的量。变量有数据类型和初值。变量在使用之 前必须首先声明其类型和名称。 16.字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的十进制ASCII码是 120,y的十进制ASCII码是121。 17.字符常量只能用单引号括起来,不能用双引号或其它括号。

基本数据类型、运算符和表达式

基本数据类型、运算符和表达式 (总分: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.84 49 6 2 √ B.90 25 6 2.5 C.84 23 12 2 D.68 49 14 2.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.&5678 C.+rriwo D.saler √

解析:[解析] Java中所有的变量、常量、对象和类都用标识符命名,其命名规则为:(1)只能以字母、下画线、美元符($)作为首字符,不能用数字或其他符号(如*)作为标识符的首字符。(2)标识符是区分大小写的。只有D项是正确的。 3.阅读下面程序 public class OperatorsAndExpressions void 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(); 程序运行结果是______。 (分数:2.00) A.== B.true C.false √ D.equal 解析:[解析] 本程序的运行结果应该是表达式s1=s2的结果。字符串对象s1和s2是复合数据类型,因而表达式s1=s2比较的是s1和s2是否是同一个对象。本题中s1和s2虽然有相同的值“how are you”,但它们是两个不同的对象,所以本题的结果是false。若要比较两个对象的值,可以调用equals()方法。4.下列代码中,将引起编译错误的行是______。 1) public class Exercise 2) public static void main (String args[]) 3)float f=0.0; 4) f+=1.0; 5) 6) (分数:2.00) A.第2行 B.第3行√ C.第4行 D.第6行 解析:[解析] float f=0.0;语句中,想要定义一个float型变量f,并且赋初值为0.0,但是数字后面没有跟任何字母,计算机默认为double类型,而从double类型不能自动转换为float,所以该语句将引起编译错误。 5.阅读下面程序 public class Test2 public static void main (String args[]) int a=10, b=4, C=20, d=6; System.out .printIn(a++*b+c*--d);

实验报告实验2 数据类型与表达式

实验报告_实验 2 数据类型与表达式(学生学号__姓名) 一、实验目的: 1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据; 2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用; 3、熟悉字符常量与一般常量的定义、使用; 4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果; 5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。 二、实验内容 1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。 回答下列问题: (1)sizeof运算符如何使用?它的操作数可以是类型关键字吗? 答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。可以。 (2)整数的占用长度与其数值大小有关吗? 答:有。 (3)字符串中’\’’、’\n’、’\t’的功能各是什么? 答:单引号,换行,水平制表。 (4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字 符? 答:1个字节;4个字节;结束符‘\0’。 (5)整数的存储形式是什么? 答:二进制补码。 2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。

回答下列问题: (1)字符数据在内存中是以什么方式存储的? 答: ASCII码。 (2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符” 方式输出字符? 答:能,整数:”%d”,字符:”%c”。 (3)大小写字母的ASCII有什么关系?(如:’G’与’g’) 答:ASCII码相差32。 (4)如何由’A’、’a’分别得到后续的大写字母、小写字母? 答:’A+1’,’a+1.’ (5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个 字符吗?若能,如何得到? 答:两个ASCII码绝对值相减,’a’-5,’a’+10. (6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’? 答:”C”字符串,’c’字符,能. 3、(基础题)符号常量与常变量(即用const关键字定义)的使用: 回答问题: (1)写出用符号常量定义PI的格式; #define PI 3.14 (2)写出用“常变量”方式定义PI值的语句。 Const float PI=3.14; 4、(基础题)运行下列程序,体会/、%运算符的用法: 回答下列问题: (1)运算符/的操作数有什么要求? 答:被除数不能为0. (2)如何利用%判定整数的奇偶性? 答:整数a,使a%2,若结果为0,则为偶数,反之则为奇数 5、(基础题)先分析下列代码,再运行,体会++、--运算符的用法。 并回答下列问题: 请比较++、--运算符的前缀式与后缀式的异同点。

(完整版)基本数据类型习题-答案

基本数据类型习题-答案 一、选择题 1、下列变量定义错误的是。(D) A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8; 2、下列数据类型的精度由高到低的顺序是:(B) a)float,double,int,long b)double,float,int,byte c)byte,long,double,float d)double,int,float,long 3、执行完下列代码后,(A) int a=3; char b='5'; char c=(char)(a+b); c的值是? A)’8’ b)53 c)8 d)56 4、Unicode是一种_____________(C) A) 数据类型B)java包C)字符编码D)java类 5、6+5%3+2的值是___________(D) A)2 B)1 C)9 D)10 6、下面的逻辑表达式中合法的是__________(C) A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3) 7、java语言中,占用32位存储空间的是__________。(D) A)long,double B)l ong,float C)i nt,double D)int,float 8、假设int a=1,b=2,c=3,以下语句正确的是___________。(D) A)c=c/float(a//b) b) c=c/((float a)/b) c) c=(float)c/(a/b) d) c= c/(int)(a/(float)b) 9、2|3&5的值是________________。(C) A)1 B)2 C)3 D)5 10、指出下列正确的语句:(D) A) byte i = 389; B) long lv = i*3+4.5; C) int x = 87L; D) long l = 10; 11、指出下列类型转换中正确的是______________。(A) A)int i=’A’ B)long L=8.4f C)int i=(boolean)8.9 D)int i=8.3 12、以下的选项中能正确表示Java语言中的一个整型常量的是( )。(C)

基本数据类型、算符表达式

基本数据类型、算符表达式

————————————————————————————————作者:————————————————————————————————日期:

第二章 C 语言的基本数据类型、运算符和表达式 2.1 数据类型的概念 数据类型是指数据的内在表现形式。通俗地说,我们把数据在加工计算中的特征称为数据的类型。数据类型包含两方面的含义:一是该类型数据可以取值的范围;二是在该范围内的数据可以进行的操作。例如,两个人的年龄可以进行加法、减法运算;两个人的工资也可以进行加法、减法运算。年龄和工资都具有一般数值的特点,在C 语言中称为数值型,其中年龄是整数,所以称为整型;工资一般为实数,所称为实型。又如两个人的姓名是不能进行加法、减法运算的,这种数据具有文字的特征,在C 语言中称为字符串。单个字符称为字符型数据。 在C 语言中我们把整型和实型全称为“数值型”,把数值型和字符合称为“基本数据类型”。此外,C 语言根据数据加工处理的特征,还设有其它复杂的数据类型,具体如图2.1.1所示。 整型 实型 字符型 图2.1.1 C 语言的数据类型 其中“构造类型”是指由若干个相关的基本数据类型组合在一起形成的一种复杂的数据类型。例如,若干个人的年龄组合在一起,就是一个数组,若干个人的基本工资、职务工资、奖金组合在一起,也是一个数组。前者是由整型数据组成的一维数组,后者是由实型数据组成的二维数组。又如,一个人的姓名、年龄、基本工资也可以组合在一起,它们的数据类型不同,在C 语言中称为“结构体类型”。如果有若干个数据不同时使用,我们也可以让它们占用相同的内存区域,以便节省内存,这些数据组合在一起就是“联合体类型”,联合体类型中的数据可以是同类型的,也可以是不同类型的。 指针型是一种简单的数据类型,它是用来表示内存地址的。指针类型的数据可以表示基本类型数据的地址,也可以表示结构类型数据的首地址和其中某个具体数据的地址,还可以 单精 短整 型 枚举数组型 结构体 无符号基本 数据空类 指针构造

第2章 基本数据类型、运算符与表达式

C++的特点:1.支持抽象数据类型 2.多态性,一个接口,多重算法,支持早期联编和滞后联编 3.继承性,保证了代码复用,支持分类的概念 一个c++程序由一个或多个函数构成,并且在这些函数中只有一个主函数main ,它是程序执行的入口。 C++程序严格区别字母的大小写。 第2章基本数据类型、运算符与表达式 【内容提要】 数据类型 变量与常量 运算符与表达式 简单输入与输出 【重点与难点】 2.1 数据类型 在C++程序里,每个名字都有一个与之相关联的类型,这个类型决定了可以对这个名字所指代的实体应用什么操作,并决定这些操作将如何做出解释。 图中Type 表示非控数据类型。 2.1.1 基本数据类型 逻辑型:又称布尔型,用关键字bool 表示。有两个值true 或false 。true 可以转换成整数1,false 可以转换成整数0。与此对应,整数也可以隐式的转换成bool 值:非0的整数转换成true,0转换成false 。 结构类型 struct 枚举类型 enum 数组类型 Type[] 布尔型 bool 指针类型 Type* 联合类型 union 类类型 class 整型 int 图2.1 C++的数据类型

字符型:用关键字char表示。取值包含具体实现所用的字符集里的一个字符。字符型数 据通常占用1个字节的存储空间。 整型:用关键字int表示。取值是计算机所能表示的所有整数。 浮点型:包括单精度型(float)和双精度型(double)。单精度型通常占用4个字节的存储 空间,双精度型通常占用8个字节的空间。 空类型:用关键字void表示。用于说明某个函数没有返回值。没有void类型的对象。 在基本的数据类型前可以添加修饰符,以改变基本类型的意义。 signed:有符号。 unsigned:无符号。 unsigned和signed只用于修饰char和int,且signed修饰词可以省略。当用unsigned 修饰词时,后面的类型说明符可以省略。对于有符号和无符号的整型数据,它们所占的存储空间的大小相同,但它们的表数范围却不相同(对字符型意义相同)。 short:短型。只用于修饰int,且用short修饰时,int可以省略。 long:长型。只用于修饰int和double。当用long修饰int时,int可以省略。 数据类型的描述确定了其内存所占空间的大小,也确定了其表示范围。用sizeof(数据类型)可以确定某数据类型的字节长度。请读者查看在你所用的机器上,下面类型的最大值和最小值是什么:char、short、int、long、float、double、long double 、unsigned。 2.1.2 复合数据类型 数组:由具有相同数据类型的元素组成的集合。 结构体:由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型 一般不同,并且在内存中分别占据不同的存储单元。 共用体:是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共 用同一段内存单元。 枚举:将变量的值一一列举出来,每个枚举成员(枚举符)都与一个整数相对应。按默 认方式,枚举符所赋的值从0开始递增。枚举的值也可以用整型的表达式赋值进行初始化。如果某个枚举中所有枚举符的值均非负,该枚举的表示范围是[0: 2K-1],其中2K 是能使所有枚举符位于此范围内的最小的2的幂;如果存在负的枚举符值,该枚举的取值范围就是[-2K:2K -1]。 指针类型:指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。 它在内存中占据一个存储单元。 类类型:类是体现面向对象程序设计的最基本特征,也是体现C++与C最大的不同之处。 类是一个数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。 2.2变量与常量 2.1.1 变量:指在运行期间其值可以改变的量。 变量有三个特征:变量类型、变量名、变量值。 命名:遵循标识符命名规则。 标识符是对实体定义的一种定义符,用来标识用户定义的常量名、变量名、函数名、文件名、数组名、和数据类型名和程序名等。只能由字母、数字和下划线组成,且以字母或下划线开头。命名时注意以下几点: 1. C++的关键字不能用作用户自定义的实体名; 2.以下划线开头的名字是保留给实现或者运行环境,用于特殊目的,在应用程序里不要采用这样的名字; 3.大写与小写字母是区分的; 4.见名知义。 5.维持统一的命名风格。 定义:

C语言_数据类型运算符及表达式_选择题

1、一个C语言的执行是从:() A) 本程序的主函数开始,到本程序的主函数结束 B) 本程序的第一个函数开始,到本程序的最后一个函数结束 C) 本程序的主函数开始,到本程序的最后一个函数结束 D) 本程序的第一个函数开始,到本程序的主函数结束 A 2. 以下叙述正确的是: A) 在C程序中,主函数必须位于程序的最前面 B) 在C程序中,一行只能写一条语句 C) C程序的基本结构是程序行 D) C语句是完成某种程序功能的最小单位 D 3. 在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是: A) char

相关主题
文本预览
相关文档 最新文档