基本数据类型与数值表达式 1.docx
- 文档编号:9119926
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:14
- 大小:23.72KB
基本数据类型与数值表达式 1.docx
《基本数据类型与数值表达式 1.docx》由会员分享,可在线阅读,更多相关《基本数据类型与数值表达式 1.docx(14页珍藏版)》请在冰豆网上搜索。
基本数据类型与数值表达式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.intB.int1C.name_1D.name0
答案:
A
分析:
根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。
例题4:
下面正确的为()。
A.4.1/2B.3.2%3
C.3/2==1结果为1D.7/2结果为3.5
答案:
A
分析:
%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。
例题5:
已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?
++d:
a
A.9B.6C.8D.0
答案:
D
分析:
此题是考察“++”运算符、逗号运算符、条件运算符及它们运算优先级的综合题,根据这些运算符的运算规则,得出表达式的运算结果。
例题6:
已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。
A.j=i+(++j)B.j=j+i++C.j=++i+jD.j=j+++i
答案:
C
分析:
自增++、自减运算符在变量的前面或后面,其运算结果是不同的。
若++或—在变量前,则先将变量的值加1(或减1)后,再将变量的值参与运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。
自增++、自减运算符优先级高于算术运算符。
例题7:
已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!
y)的值是()。
A.0B.语法错C.1D.“假”
分析:
根据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:
如果定义inta=2,b=3;floatx=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
voidmain()
{
doubler,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.说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识符、保留字、运算符、标点、非法数据)? 2518-3.6712.8“4”‘4’ x1“x2”“1949.10”cinK_name 3ab“floatx,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 运算符: + 标点: ? 非法数据: “floatx,y“;,3ab 变量: x1,K_name 4.选择题 (1)下列数据类型不是C++语言基本数据类型的是()。 A.字符型B.整型C.实型D.数组 答案: D (2)在C++语言中,080是()。 A.八进制数B.十进制数C.十六进制数D.非法数 答案: B (3)下列字符列中,可作为C++语言程序自定义标识符是()。 A.switchB.fileC.breakD.do 答案: B (4)运算符+、<=、=、%中,优先级最低的运算符是()。 A.+B.<=C.=D.% 答案: C (5)下列字符列中,可以作为“字符串常量”的是()。 A.ABCB.″xyz″C.′uvw′D.′a′ 答案: B (6)设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()。 A.0,0B.0,1C.1,0D.1,1 答案: C (7)字符串”vm\x43\\\np\102q”的长度是()。 A.8B.10C.17D.16 答案: A (8)在C++语言中,自定义的标识符()。 A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写 C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写 答案: D (9)设有代码“inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是()。 A.3B.0C.-40D.–12 答案: C (10)设a为5,执行下列代码后,b的值不为2的是()。 A.b=a/2B.b=6-(--a) C.b=a%2D.b=a<3? 3: 2 答案: C (11)下面的()均是C语言的整型常量。 A.0xffff和611B.01b和0xa1C.986.012和0667D.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/3int (2)48Llong (3)5%3int(4)x*3/ydouble (5)‘x’+20int(6)(int)yint (7)y! =10bool(8)x<1||x>10bool (9)x>10? x: sqrt(x)int或float(10)x&&ybool (11)truebool(12)(char)(x+10)char (13)1.0/3float(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/4x=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)ya=2,b=3,x=3.5,y=2.5 答: 上述表达式=(float)5/2+3%2=2.5+1=3.5 7.设程序中有说明语句 inta=20;doublex=4.7;charr=’a’; 试求出下列每个表达式的值(假定各表达式互不影响)。 ~ 答案答案 (1)a++20 (2)++r98 (3)1+a/3%43(4)10*sizeof(int)40 (5)char(a+20)((6)a==r||a==floor(x)0 (7)a/9.02.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)+633.200000 (13)floor(x+0.5)5.000000(14)ceil((x-=0.5)-0.5)4.000000 (15)floor(x*1000+0.5)/10004.700000(16)floor(x+0.5)5.000000 (17)floor(x*1000)/10004.700000(18)a+rand()%40某一个随机整数 (19)a%=n%=2),n=55 此题运行时要给n赋初值,n必须是整型奇数,n为整型偶数出错。 (20)a+=a-=a*=a0 说明: 函数ceil(x),返回大于等于x的最小整数;floor(x),返回小于等于x的最大整数;rand(),返回0~32767之间的整数。 8.设程序中有说明语句 intx=20;floaty=4.7;charch=’k’; 试求出下列每个表达式的值(假定各表达式互不影响) 答案答案 (1)x==00 (2)x! =y1 (3)x++>210(4)‘a’==‘A’0 (5)ch! =01(6)x>0&&y>01 (7)x>0&&11(8)y>0&&00 (9)! (x||y)==! x&&! y0(10)x++! =20||y1 (11)! ! ch==ch0(12)! (x&&y)==! x||! y1 说明: C++语言提供了三种逻辑运算符: ! ,&&,||,其中! 逻辑非的优先级最高,&&逻辑与次之,||逻辑或最低。 ! 逻辑非是右结合性,&&逻辑与和||逻辑或是左结合性。 四、习题 1.选择题 (1)C++语言中的标识符只能右字母、数字和下划线三种字符组成,且第一个字符()。 A.必须为字母B.必须为下划线 C.必须为字母或下划线D.可以是字母、数字和下划线中任一中字符 (2)下面正确的字符常量是()。 A.“C”B.‘\\’’C.‘W’D.‘’ (3)如果说明语句: charc=‘\72’;则变量c()。 A.包含1个字符B.包含2个字符 C.包含3个字符D.说明不合法,c的值不确定 (4)表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.intB.floatC.doubleD.不确定 (5)关于逻辑运算符的说法正确的是()。 A.它们都是双目运算符,优先级相同 B.语句“inta=0,c=1,b;b=a&&c++;”执行后,c的值为2 C.语句“inta=0,c=1,b;b=a||c++;”执行后,c的值为2 D.语句“inta=1,c=1,b;b=a&&c++;”执行后,c的值为2 (6)设intm=7,n=12;则表达式为3的是()。 A.n%=(m%=5)B.n%=(m-m%5) C.n%=m-m%5D.(n%=m)-(m%=5) (7)数学公式yx+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)有如下程序段: inta=14,b=15,x; charc=’A’; x=(a&&b)&&(c<’B’); 执行该程序后,x的值为()。 XX文库-让每个人平等地提升自我A.tureB.flaseC.0D.1 XX文库-让每个人平等地提升自我(9)下面四个选项中,均是不合法的标识符的是()。 XX文库-让每个人平等地提升自我A.BB.forC.cinD.if B_11a0a_btemp cout_a10intb-a (10)设变量a是整型,b是实型,c是双精度型,则表达式10+‘a’+c*b值的数据类型为()。 A.intB.floatC.doubleD.不确定 (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*5B.5*a*e/b/cC.5*a*e/b*cD.a*e/c/b*5 (15)下列运算符中优先级最高的是()。 A.? : B.&&C.+D.! = (16)设a是整型变量,则表达式(a=4*5,a*2),a+6的值是()。 A.20B.26C.40D.46 (17)设有: inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c A.1B.2C.3D.4 (18)用C++的语言表达式表示|x3+log10x|的正确是()。 A.fabs(x*3+log(x))B.abs(pow(x,3)+log(x)) C.fabs(pow(x,3.0)+log(x))D.abs(pow(x,3.0)+log(x)) (19)设intk=7,x=12;则能使值为3的表达式是_____。 A.x%=(k%=5)B.x%=(k-k%5) C.x%=k-k%5D.(x%=k)-(k%=5) (20)设有语句: inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。 A.2.500000B.2.750000C.3.500000D.0.000000 (21)设有语句intx=3,y=4,z=5;则下面表达式中值为0的是()。 A.’x’&&’y’B.x<=y C.x||y+z&&y-zD.! ((x z||1) (22)表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.intB.floatC.doubleD.不确定 (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)设有说明语句inta=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)有语句: chark=‘\010’;则变量k中包含的字符个数是_____。 (9)在C++语言中,表示逻辑“真”值用_____________。 (10)表达式pow(2.8,sqrt(double(x)))值的数据类型为_________。 (11)设m是一个三位数,从左到右用a、b、c表示各位是数字,则从左到右各个数字是cba的三位数的表达式是_________________________。 (12)设有语句inta=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)等,在屏幕上输出给字母。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本数据类型与数值表达式 基本 数据类型 数值 表达式