版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基本数据类型与数值表达式一、知识要点计算机的基本功能是进行数据处理。在C++语言中,数据处理的基本对象是常量和变量。运算是对各种形式的数据进行处理。数据在内存中存放的情况由数据类型所决定。数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点:掌握常量和变量的概念。掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。掌握各种类型的变量说明及其初始化。掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。掌握运算符的优先级、左结合和右结合规则。掌握表达式求值时的自动转换和强制类型转换。掌握自加、自减运算的规则。掌握常用数学函数的功能。二、例题分析与解答选择题例题1:运算符+、=、*、>二中,优先级最高的运算符是()。+B.=C.*D.>=答案:C分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为二、>=、+、*。例题2:下列说法正确的是()。cout<<”\n”是一个语句,它能在屏幕上显示”\n”\68代表的是字符D。1E+5的写法正确,它表示余割整型常量。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%3C.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<b”值为()。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。填空题例题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。编程题例题12:编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。解:程序如下:#include<iostrean.h>voidmain(){doubler,h,area,volume;cout<<”请输入半径:”;cin>>r;cout<<”请输入高:”;cin>>h;area=3.14*r*r;volume=area*h;cout<<”底面积是:”<<area<<endl;cout<<”体积是:”<<volume<<endl;}三、习题分析与解答C++语言中有哪些数据类型?分别说明它们的类型关键字、取值范围、类型长度。答:C++语言中的数据类型有:整型(短整型,整型,长整型);字符型;逻辑型;枚举型;实型(单精度,双精度,长双精度);引用型(指针,引用);复合型(结构,联合);空类型。字符常量与字符串常量的区别是什么?答:字符常量与字符串常量的主要区别在于:(1)定界符不同。字符常量使用单引号,而字符串常量使用双引号。(2)长度不同。字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数。(3)存储要求不同。字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志’\0’。说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识符、保留字、运算符、标点、非法数据)?2518-3.6712.8“4”‘4’x1“x2”“1949.10”cinK_name3ab“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选择题(1)下列数据类型不是C++语言基本数据类型的是()。字符型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下列字符列中,可以作为“字符串常量”的是()。ABCB.〃xyz〃C.'uvw'D.'a'答案:B设变量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字符串”vm\x43\\\np\102q”的长度是()。A.8B.10C.17D.16答案:A在C++语言中,自定义的标识符()。A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写答案:D设有代码"inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是()。A.3B.0C.-40D.-12答案:C设a为5,执行下列代码后,b的值不为2的是()。A.b=a/2B.b=6-(—a)C.b=a%2D.b=a<3?3:2答案:C下面的()均是C语言的整型常量。A.0xffff和611B.01b和0xa1C.986.012和0667D.2e4和0x答案:A数学公式写成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)))答案:Dx为int类型,y为double类型,指出下列各表达式值的类型。1/3int(2)48Llong(3)5%3int(4)x*3/ydouble(5)‘x’+20int(6)(int)yinty!=10bool(8)x<1||x>10bool(9)x>10?x:sqrt(x)int或float(10)x&&ybooltruebool(12)(char)(x+10)char1.0/3float(14)sizeof(float)int(15)x,y,x+y,double说明:(9)题,如果x>10成立,表达式值的类型为int,如果x>10不成立,表达式值的类型为float°(15)题,为逗号表达式,x+y的值即为整个表达式的值,因而值的类型为doubleobool型在C++用int代替,true值为1,false值为0。写出下列算术表达式的值: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(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设程序中有说明语句inta=20;doublex=4.7;charr='a';试求出下列每个表达式的值(假定各表达式互不影响)。答案答案(1)a++20(2)++r981+a/3%43(4)10*sizeof(int)40char(a+20)((6)a==r||a==floor(x)0a/9.02.x=pow(3,5)273.char(a+20)(a/9.02.(9)x=(a++,r++)97.(10)ceil(x-0.5)5.(11)a=abs(a)%8-10-6(12)x=fabs(-27.2)+633.(13)floor(x+0.5)5.ceil((x-=0.5)-0.5)4.(13)floor(x+0.5)5.(16)floor(x+0.5)5.floor(x*1000+0.5)/10004.(16)floor(x+0.5)5.(17)floor(x*1000)/10004.(18)a+rand()%40某一个随机整数(19)a%=n%=2),n=55此题运行时要给n赋初值,n必须是整型奇数,n为整型偶数出错。(20)a+=a-=a*=a0,返回小于等于x的最大说明:函数ceil(x),返回大于等于x的最小整数;floor(x)整数;rand(),返回,返回小于等于x的最大设程序中有说明语句intx=20;floaty=4.7;charch=’k’;试求出下列每个表达式的值(假定各表达式互不影响)答案答案(1)x==00(2)x!=y1(3)x++>210(4)‘A’(5)ch!=01(6)x>0&&y>01(7)x>0&&11(8)y>0&&00(9)!(x||y)==!x&&!y0(10)x++!=20||y(11)!!ch==ch0(12)!(x&&y)==!x||!y1说明:C++语言提供了三种逻辑运算符:!,&&,||,其中!逻辑非的优先级最高,&&逻辑与次之,||逻辑或最低。!逻辑非是右结合性,&&逻辑与和||逻辑或是左结合性。四、习题选择题C++语言中的标识符只能右字母、数字和下划线三种字符组成,且第一个字符()。A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中任一中字符下面正确的字符常量是()。A.“C”B.'\\''C.'W'D.''如果说明语句:charc='\72';则变量c()。A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定表达式18/4*sqrt(4.0)/8值的数据类型为()。A.intB.floatC.doubleD.不确定关于逻辑运算符的说法正确的是()。A.它们都是双目运算符,优先级相同语句"inta=0,c=1,b;b=a&&c++;”执行后,c的值为2语句“inta=0,c=1,b;b=a||c++;”执行后,c的值为2语句“inta=1,c=1,b;b=a&&c++;”执行后,c的值为2设intm=7,n=12;则表达式为3的是()。A.n%=(m%=5)B.n%=(m-m%5)C.n%=m-m%5D.(n%=m)-(m%=5)数学公式y+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)))有如下程序段:inta=14,b=15,x;charc='A';x=(a&&b)&&(c<’B’);执行该程序后,x的值为()。A.tureB.flaseC.0D.1下面四个选项中,均是不合法的标识符的是()。A.BB.forC.cinD.ifB_11a0a_btempcout_a10intb-a设变量a是整型,b是实型,。是双精度型,则表达式10+‘a'+c*b值的数据类型为()。A.intB.floatC.doubleD.不确定以下叙述中不正确的是()。在C++程序中,name和NAME是两个不同的变量在C++程序中,逗号运算符的优先级最低若变量m,n为int型,则m=n后,n中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能诸如实型数值。sizeof(float)是()。A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式下面不正确的字符串常量是()。A.‘rst’B.“14‘14”C.“0”D.“”对代数式5ae/bc,下面不正确的C++语言表达式是()。A.a/b/c*e*5B.5*a*e/b/cC.5*a*e/b*cD.a*e/c/b*5下列运算符中优先级最高的是()。A.?:B.&&C.+D.!=设a是整型变量,则表达式(a=4*5,a*2),a+6的值是()。A.20B.26C.40D.46设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c<d)后n的值为()。A.1B.2C.3D.4用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))设intk=7,x=12;则能使值为3的表达式是。A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)设有语句:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。A.2.B.2.C.3.D.0.设有语句intx=3,y=4,z=5;则下面表达式中值为0的是()。A.'x'&&'y'B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)表达式18/4*sqrt(4.0)/8值的数据类型为()。A.intB.floatC.doubleD.不确定判断char型变量n是否为小写字母的正确表达式为()。A.’a’<=n<=’z’B.(n>=a)&&(n<=z)C.(’a’>=n)||(’z’<=n)D.(n〉='a')&&(n<='z‘)填空题“A”与‘A’的区别是:前者表示的,占用个内存空间,后者表示的是,占用个内存空间。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乳品干燥工复测能力考核试卷含答案
- 印花配色打样工操作知识竞赛考核试卷含答案
- 翻车机工岗前评优竞赛考核试卷含答案
- 信用分析师岗前实操知识能力考核试卷含答案
- 连铸工岗前进度管理考核试卷含答案
- 雷达装配工安全意识评优考核试卷含答案
- 再造烟叶设备操作工成果评优考核试卷含答案
- 房地产策划师班组安全测试考核试卷含答案
- 口腔修复体制作师创新意识知识考核试卷含答案
- 钢渣处理工岗前内部控制考核试卷含答案
- 2025年广东省普通高中学业水平合格性考试英语试题(原卷版)
- 生活中的安全课件带图文
- 数智化实验课程教学模式探索
- 年产50万吨碳酸钙项目可行性研究报告
- 电厂保温棉工程施工方案
- 学校意识形态工作总结工作会议记录
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- 医院合理检查培训
- 【《基于SLP和Flexsim的某生产车间设施布局与仿真分析》15000字(论文)】
- 奇妙的中医世界(给小朋友版)
- 高校图书馆员师德师风心得体会
评论
0/150
提交评论