当前位置:文档之家› 基本数据类型与数值表达式 (1)

基本数据类型与数值表达式 (1)

基本数据类型与数值表达式 (1)
基本数据类型与数值表达式 (1)

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

一、知识要点

计算机的基本功能是进行数据处理。在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

A.9 B.6 C.8 D.0

答案:D

分析:此题是考察“++”运算符、逗号运算符、条件运算符及它们运算优先级的综合题,根据这些运算符的运算规则,得出表达式的运算结果。

例题6:已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。

A.j=i+(++j) B.j=j+i++ C.j=++i+j D.j=j+++i

答案:C

分析:自增++、自减运算符在变量的前面或后面,其运算结果是不同的。若++或—在变量前,则先将变量的值加1(或减1)后,再将变量的值参与运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。自增++、自减运算符优先级高于算术运算符。

例题7:已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是()。

A.0 B.语法错 C.1 D.“假”

分析:根据C++语言中运算符优先级的高低,“!”运算符最高,关系运算符高于逻辑运算符。则上面的表达式转换为:1&&1&&1,结果为1。

答案:C。

2.填空题

例题8:如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为____。

答案:1

分析:%运算符是求余运算,得到的结果是相除后的余数。表达式转换为6%2+

(6+1)%2=0+7%2=1。

例题9:如果定义int a=2,b=3;float x=5.5,y=3.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_____。

答案:4.5

分析:不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换为另一种数据类型后再进行运算。对表达式,先求表达式的值,再转换值的类型,本题的运算结果为4.5。

例题10:设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。

答案:9

分析:逗号运算符是是将两个或多个表达式组合成一个表达式的运算符。求解时从左至右依次计算每个表达式的值,整个表达式的值就是最右边的表达式的值。本题的答案为9。

例题11:已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式

ch=’a’+’8’-‘4’的值为____。

答案:e

分析:C++语言中,对字符数据进行算术运算,实际上就是对字符的ASCII码进行运算。以字符形式输出时,再将ASCII码转换为相应的字符输出。本题表达式为ch=97+8-4=101,101相应的ASCII为字符e。

3.编程题

例题12:编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。

解:程序如下:

#include

void main()

{

double r, h, area, volume;

cout<<”请输入半径:”;

cin>>r;

cout<<”请输入高:”;

cin>>h;

area=3.14*r*r;

volume=area*h;

cout<<”底面积是: ”<

cout<<”体积是: ”<

}

三、习题分析与解答

1. C++语言中有哪些数据类型?分别说明它们的类型关键字、取值范围、类型长度。

答:C++语言中的数据类型有:整型(短整型,整型,长整型);字符型;逻辑型;枚举型;实型(单精度,双精度,长双精度);引用型(指针,引用);复合型(结构,联合);空类型。

2. 字符常量与字符串常量的区别是什么?

答:字符常量与字符串常量的主要区别在于:(1)定界符不同。字符常量使用单引号,而字符串常量使用双引号。(2)长度不同。字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数。(3)存储要求不同。字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志’\0’。

3.说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识符、保留字、运算符、标点、非法数据)?

25 18 -3.67 12.8 “4”‘4’

x1 “x2”“1949.10” cin K_name

3ab “float x ,y “ ; if +

“\n” ? ;“sy1.cpp”‘\32’ \’

答:数值常量有:25,18,-3.67, 12.8

字符常量有:‘4’,\’,‘\32’

字符串有:“4”,“x2”,“1949.10”,“sy1.cpp”, “\n”

保留字:cin ,int,endl,if

运算符:+

标点:?

非法数据:“float x ,y “ ; , 3ab

变量:x1,K_name

4.选择题

(1)下列数据类型不是C++语言基本数据类型的是()。

A.字符型

B.整型

C.实型

D.数组

答案:D

(2)在C++语言中,080是()。

A.八进制数

B.十进制数

C.十六进制数

D.非法数

答案:B

(3)下列字符列中,可作为C++语言程序自定义标识符是()。

A.switch

B.file

C.break

D.do

答案:B

(4) 运算符 +、<=、=、% 中,优先级最低的运算符是()。

A. +

B.<=

C.=

D.%

答案:C

(5) 下列字符列中,可以作为“字符串常量”的是()。

A. ABC

B.″xyz″

C.′uvw′

D. ′a′

答案:B

(6) 设变量m,n,a,b,c,d均为0,执行(m = a==b)||(n=c==d)后,m,n的值是()。

A.0,0

B. 0,1

C. 1,0

D. 1,1

答案:C

(7) 字符串”vm\x43\\\np\102q”的长度是()。

A. 8

B. 10

C. 17

D. 16

答案:A

(8)在C++语言中,自定义的标识符()。

A.能使用关键字并且不区分大小写

B.不能使用关键字并且不区分大小写

C.能使用关键字并且区分大小写

D.不能使用关键字并且区分大小写

答案:D

(9)设有代码“int a = 5;”,则执行了语句“a + = a - = a*a;”后,变量a的值是()。

A.3

B. 0

C. -40

D. –12

答案:C

(10)设a为5,执行下列代码后,b的值不为2的是()。

A. b = a/2

B. b = 6-(--a)

C. b = a%2

D. b = a < 3 ? 3: 2

答案:C

(11)下面的()均是C语言的整型常量。

A.0xffff 和 611

B.01b 和 0xa1

C.986.012 和 0667

D.2e4 和 0x

答案:A

(12)数学公式写成C表达式,下面的()是正确的。

A.sqrt (abs(pow(x, y) + exp(y)))

B.sqrt (abs(pow(y, x) + exp(y)))

C.sqrt (fabs(pow(x, y) + exp(y)))

D.sqrt (fabs(pow(y, x) + exp(y)))

答案:D

5.x为int类型,y为double类型,指出下列各表达式值的类型。

(1)1/3 int (2) 48L long

(3) 5 % 3 int (4) x*3/y double

(5) ‘x’+20 int (6) (int )y int

(7) y != 10 bool (8) x<1 || x>10 bool

(9) x>10 ? x : sqrt (x) int或float (10) x && y bool

(11) true bool (12) (char) (x+10) char

(13) 1.0 /3 float (14) sizeof (float) int

(15) x,y,x+y, double

说明:(9)题,如果x>10成立,表达式值的类型为int,如果x>10不成立,表达式值的类型为float。(15)题,为逗号表达式,x+y的值即为整个表达式的值,因而值的类型为double。bool型在C++用int代替,true值为1,false值为0。

6. 写出下列算术表达式的值:

(1) x+a%3*(int)(x+y)%2/4 x=2.5,a=7,y=4.7

答:上述表达式=2.5+1*(int)7.2%2/4 = 2.5+1*7%2/4 = 2.5

(2) (float)(a+b)/2+(int)x%(int)y a=2,b=3,x=3.5,y=2.5

答:上述表达式=(float)5/2+3%2 = 2.5+1 = 3.5

7.设程序中有说明语句

int a=20; double x=4.7; char r= ’a’;

试求出下列每个表达式的值(假定各表达式互不影响)。~

答案答案

(1)a++ 20 (2) ++r 98

(3) 1+a/3%4 3 (4) 10*sizeof( int ) 40

(5) char (a+20) ( (6)a= =r || a= =floor(x) 0

(7) a/9.0 2.222222 (8)x=pow(3,5) 273.000000

(9) x=(a++,r++) 97.000000 (10) ceil(x-0.5) 5.000000

(11) a=abs(a)%8-10 -6 (12)x=fabs(-27.2)+6 33.200000

(13)floor(x+0.5) 5.000000 (14) ceil((x-=0.5)-0.5) 4.000000

(15)floor(x*1000+0.5)/1000 4.700000 (16)floor(x+0.5) 5.000000

(17)floor(x*1000)/1000 4.700000 (18)a+rand()%40 某一个随机整数

(19) a % =n % = 2),n=5 5

此题运行时要给n赋初值, n必须是整型奇数,n为整型偶数出错。

(20) a + = a - = a * = a 0

说明:函数ceil(x),返回大于等于x的最小整数;floor(x),返回小于等于x的最大整数;rand(),返回0~32767之间的整数。

8.设程序中有说明语句

int x=20; float y=4.7; char ch = ’k’;

试求出下列每个表达式的值(假定各表达式互不影响)

答案答案

(1) x==0 0 (2) x!=y 1

(3) x++ >21 0 (4) ‘a’ == ‘A’ 0

(5) ch != 0 1 (6) x>0 && y>0 1

(7) x>0 && 1 1 (8) y>0 && 0 0

(9) !(x||y)==!x&&!y 0 (10) x++ !=20 || y 1

(11) !! ch==ch 0 (12) !(x&&y)==!x||!y 1

说明:C++语言提供了三种逻辑运算符:!,&&,||,其中!逻辑非的优先级最高,&&逻辑与次之,||逻辑或最低。!逻辑非是右结合性,&&逻辑与和||逻辑或是左结合性。

四、习题

1. 选择题

(1)C++语言中的标识符只能右字母、数字和下划线三种字符组成,且第一个字符()。

A.必须为字母 B.必须为下划线

C.必须为字母或下划线 D.可以是字母、数字和下划线中任一中字符

(2)下面正确的字符常量是()。

A.“C” B.‘\\’’ C.‘W’ D.‘’

(3)如果说明语句:char c=‘\72’;则变量c()。

A.包含1个字符 B.包含2 个字符

C.包含3个字符 D.说明不合法,c 的值不确定

(4)表达式18/4*sqrt(4.0)/8值的数据类型为()。

A.int B.float C.double D.不确定

(5)关于逻辑运算符的说法正确的是()。

A.它们都是双目运算符,优先级相同

B.语句“int a=0,c=1,b;b=a&&c++;”执行后,c 的值为2

C.语句“int a=0,c=1,b;b=a||c++;”执行后,c 的值为2

D.语句“int a=1,c=1,b;b=a&&c++;”执行后,c 的值为2

(6)设 int m=7,n=12;则表达式为3的是()。

A.n%=(m%=5) B.n%=(m-m%5)

C.n%=m-m%5 D.(n%=m)-(m%=5)

(7)数学公式y x+lny,正确的C++语言的表达式是()。

A.sqrt(fabs(pow(y,x)+log(y))) B.sqrt(fabs(pow(x,y)+log(y)))

C.sqrt(abs(pow(y,x)+log(y))) D.sqrt(abs(pow(x,y)+log(y)))

(8)有如下程序段:

int a=14,b=15,x;

char c=’A’;

x=(a&&b)&&(c<’B’);

执行该程序后,x的值为()。

A.ture B.flase C.0 D.1

(9)下面四个选项中,均是不合法的标识符的是()。

A.B B.for C.cin D.if

B_1 1a0 a_b temp

cout _a10 int b-a

(10)设变量a是整型,b是实型,c是双精度型,则表达式10+‘a’+c*b值的数据类型为()。

A.int B.float C.double D.不确定

(11)以下叙述中不正确的是()。

A.在C++程序中,name和NAME是两个不同的变量

B.在C++ 程序中,逗号运算符的优先级最低

C.若变量m,n为int型,则m=n后,n中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能诸如实型数值。

(12)sizeof(float)是()。

A.一个双精度型表达式 B.一个整型表达式

C.一种函数调用 D.一个不合法的表达式

(13)下面不正确的字符串常量是()。

A.‘rst’ B.“14‘14” C.“0” D.“”

(14)对代数式5ae/bc,下面不正确的C++语言表达式是()。

A.a/b/c*e*5 B.5*a*e/b/c C.5*a*e/b*c D.a*e/c/b*5

(15)下列运算符中优先级最高的是()。

A.?: B.&& C.+ D.!=

(16)设a是整型变量,则表达式(a=4*5,a*2),a+6的值是()。

A.20 B.26 C.40 D.46

(17)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c

A.1 B.2 C.3 D.4

(18)用C++的语言表达式表示 |x3+log10x|的正确是()。

A.fabs(x*3+log(x)) B.abs(pow(x,3)+log(x))

C.f abs(pow(x,3.0)+log(x)) D.abs(pow(x,3.0)+log(x))

(19)设int k=7,x=12;则能使值为3的表达式是_____。

A.x%=(k%=5) B.x%=(k-k%5)

C.x%=k-k%5 D.(x%=k)-(k%=5)

(20)设有语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。

A.2.500000 B.2.750000 C.3.500000 D.0.000000

(21)设有语句int x=3,y=4,z=5;则下面表达式中值为0的是()。

A.’x’&&’y’ B.x<=y

C.x||y+z&&y-z D.!((x

(22)表达式18/4*sqrt(4.0)/8值的数据类型为()。

A.int B.float C.double D.不确定

(23)判断char型变量n是否为小写字母的正确表达式为()。

A.’a’<= n <=’z’ B.(n>=a)&&(n<=z)

C.(’a’>=n)| |(’z’<=n) D.(n>=’a’)&&(n<=’z’)

2. 填空题

(1)“A”与‘A’的区别是:前者表示的是__________,占用______个内存空间,后者表示的是_________,占用_______个内存空间。

(2)表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_________。

(3)已知c的ASCII码为十进制数99,设k为字符型变量,则表达式k=‘c’+‘9’-‘8’的值为________。

(4)设有说明语句 int a=6;,则运算表达式a+=a-=a*a后,a的值为_______。

(5)C++表达式表达:y=ax2+bx+c_________________, 5x3+9xy/5-xy______________。

(6)设a、b、c都是int型变量,则运算表达式a=(b=4)+(c=2)后,a值为_____,b值为______,c值为______。

(7) C++语言中的标识符只能由三种字符组成,它们是________,_______和_______。

(8)有语句:char k=‘\010’;则变量k中包含的字符个数是_____。

(9)在C++语言中,表示逻辑“真”值用_____________。

(10)表达式pow(2.8,sqrt(double(x)))值的数据类型为_________。

(11)设m是一个三位数,从左到右用a、b、c表示各位是数字,则从左到右各个数字是cba的三位数的表达式是_________________________。

(12)设有语句int a=3,b=4,c=5;则表达式:!(a+b)+c-1&&b+c/2的值为______,表达式a | | b+c&& b = = c的值为______。

(13)请写出判断整型变量x为偶数且不小于100的表达式:______________________。

3. 编程题

(1)用C++语言写出下列要求的表达式:

①判断char型变量ch是否为大写字母。

②设y为int变量,判断y是否为奇数。

③设x、y、z都为int型变量,描述“x或y中有一个小于z”。

④设x、y、z都为int型变量,描述“x、y和 z中有两个为负数”。

(2)编写一个程序,从键盘输入两个整型的数,在屏幕上分别输出这两个数的和、差和积。

(3)编写一个程序,从键盘输入两个数,分别求出这两个数的平方和和立方和,在屏幕上予以输出。

(4)编写程序,从键盘输入某一字母的ASCII码,如:97(字母a),98(字母b),65(字母A)等,在屏幕上输出给字母。

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

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