《C++语言基础教程》吕凤翥习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大家注意了,这是清华大学出版社的吕凤翥第二版配套答案!第一章习题一、选择填空1.下列各种高级语言中,()是面向对象的程序设计语言。A.BASIC;B.PASCAL;C.C++D.Ada2.下列各种高级语言中,()是最早提出了对象的概念。A.Algol60;B.Simula67;C.Smalltalk;D.C++3.下述面向对象抽象的原理中,()是不对的。A.数据抽象;B.行为共享;C.进化;D.兼容;4.()不是面向对象系统所包含的要数。A.重载;B.对象;C.类;D.继承;5.关于C++与C语言的关系的描述中,()是错误的。A.C语言是C++的一个子集;B.C语言与C++是兼容的;C.C++对C语言进行了一些改进;D.C++和C语言都是面向对象的;6.下面关于对象概念的描述中,()是错误的。A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的;7.下面关于类概念的描述中,()是错误的。A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板;D.类就是C语言中的结构类型;8.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,即从面向过程变成为面向对象。A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;9.按照标识符的要求,()符号不能组成标识符。A.连接符;B.下划线;C.大小写字母;D.数字字符;10.下列符号中,()不可作为分隔符。A.,;B.:;C.?;D.;二、判断下列描述的正确性,对者划√,错者划×。1.C++引进了引用的概念,对编程带来了很多方便。√2.C++允许使用友元,但是友元会破坏封装性。√3.C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。×4.C++中为了减轻使用者的负担,与C语言相比较C++中减少了一些运算符。×5.C++程序中,每条语句结束时都加一个分号(;)。√6.C++中标识符内的大小写字母是没有区别的。×7.C++中不允许使用宏定义的方法定义符号常量,只能用关键字const来定义符号常量。×8.在编写C++程序时,一定要注意采用人们习惯使用的书写格式,否则将会降低其可读性。√9.C++是一种以编译方式实现的高级语言。√10.在C++编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。√11.预处理过程是一般编译过程之后连接过程之前进行的。×12.源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息。×三、分析下列程序的输出结果1.#includeiostream.hvoidmain(){coutBeiJing;coutShangHai\n;coutTianJingendl;}1.BeiJjingShangHaiTianJing2.#includeiostream.hvoidmain(){inta,b;coutinputa,b:;cinab;couta=a,b=bendl;couta-b=a-b\n;}假定,输入如下两个数据:852.Inputa,b:85A=8,b=5A-b=33.#includeiostream.hvoidmain(){charc=’m’;intd=5;coutd=d:;coutc=c\n;}D=5,c=m四、编译下列程序,改正所出现的各种错误信息,并分析输出结果:1、main(){coutThisisastring!;}1.#includeiostream.hvoidmain(){cout”Thisisastring!”;}输出结果:Thisisastring!2、#includeiostream.hvoidmain(){cinx;intp=x*x;coutp=p\n;}#includeiostream.hvoidmain(){intx;cinx;intp=x*x;cout”p=”p”\n”;}输出结果:3p=93、#includeiostream.hvoidmain(){inti,j;i=5;intk=i+j;couti+j=k\n;}#includeiostream.hvoidmain(){inti,j;i=5;j=3;intk=i+j;cout”i+j=”k”\n”;}输出结果:I+j=8五、通过对第四题中三个程序的所出现问题的修改,回答下列问题:1.从对第四题1题的修改中,总结出编程时应注意哪三个问题?2.C++程序中所出现的变量是否都必须先说明才能引用?3.使用cout和运算符输出字符串时应注意什么问题?4.有些变量虽然说明了但是没有赋值,这时能否使用?5.一个程序编译通过了并且运行后得到了输出结果,这个结果是否一定是正确的?第二章习题一、选择填空1、在16位机中,int型字宽为()字节。A.2;B。4;C。6;D82、类型修饰符unsigned修饰()类型是错误的。A.char;B.int;C.longint;Dfloat3、下列十六进制的整型数常数表示中,()是错误的。A.0xaf;B.0X1b;C.2fx;D.0xAE4、下列double型常量表示中,()是错误的。A.E15;B..35;C.3E5;D.3E-55、下列字符常量表示中,()是错误的。A.‘\105’;B.‘*’;C.‘\4f’;D.‘\a’6、下列字符串常量表示中,()是错误的。A.\yes\or\No\;B.\’OK!\’;C.abcd\n;D.ABC\07、下列变量名中,()是合法的。A.CHINA;B.byte-size;C.double;D.A+a8、在inta[5]={1,3,5};中,数组元素a[1]的值是()。A.1;B.0;C.3;D.29、在intb[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是()。A.0;B.5;C.6;D.210、下列给字符数组进行初始化中,()是正确的。A.chars1[]=abcd;B.chars2[3]=xyz;C.chars3[][3]={‘a’,’x’,’y’};D.chars4[2[3]={xyz,mnp};11、在inta=3,*p=&a;中,*p的值是()。A.变量a的地址值;B.无意义;C.变量p的地址值;D.312、对于int*pa[5];的描述,()是正确的。A.pa是一个指向数组的指针,所指向的数组是5个int型元素;B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;C.pa[5]表示某个数组的第5个元素的值;D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;13、下列关于指针的运算中,()是非法的。A.两个指针在一定条件下,可以进行相等或不等的运算;B.可以用一个空指针赋值给某个指针;C.一个指针可以加上两个整数之差;D.两个指针在一定条件下,可以相加。14、指针可以用来表示数组元素,下列表示中()是错误的。已知:inta[3][7];A.*(a+1)[5];B.*(*a+3);C.*(*(a+1));D.*(&a[0][0]+2)15、下列表示引用的方法中,()是正确的。已知:intm=10;A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m16、下列各运算符中,()可以作用于浮点数。A.++;B.%;C.;D.&17、下列各运算符中,()不能作用于浮点数。A./;B.&&;C.!;D.~18、下列各运算符中,()优先级最高。A.+(双目);B.*(单目);C.=;D.*=19、下列各运算符中,()优先级最低。A.?:;B.|;C.||;D.!=20、下列各运算符中,()结合性从左到右。A.三目;B.赋值;C.比较;D.单目21、下列表达式中,()是非法的。已知:inta=5;floatb=5.5;A.a%3+b;B.b*b&&++a;C.(ab)+(int(b)%2);D.---a+b22、下列表达式中,()是合法的。已知:doublem=3.2;intn=3;A.m2;B.(m+n)|nC.!m*=n;D.m=5,n=3.1,m+n23、下列关于类型转换的描述中,()是错误的。A.在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型;B.逗号表达式的类型是最后一个表达式的类型;C.赋值表达式的类型是左值的类型;D.在由底向高的类型转换中是保值映射。24、下列各表达式中,()有二义性。已知:inta(5);b(6);A.a+b3;B.++a+b++;C.b+(a=3);D.(a=3)-a++二、判断下列描述是否正确,对者划√,错者划×。1、任何字符常量与一个任意大小的整型数进行加减都是有意义的。×2、转义序列表示法只能表示字符不能表示数字。√3、在命名标识符中,大小写字母是不加区别的。×4、C++的程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。√5、C++中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的。√6、数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。×7、枚举变量的取值受到该枚举变量所对应的枚举表中的枚举符的局限。√8、指针是用来存放某种变量的地址值的变量。这种变量的地址值也可以存放在某个变量中,存放某个指针的地址值的变量称为指向指针的指针,即二级指针。√9、引用是用来给某个变量以别名的变量。,对引用的操作,实质上就是对被引用的变量的操作。√10、运算符的优先级和结合性可以确定表达式的计算顺序。√11、在说明语句中,的值和的值是相等的。√12、已知:表达式具有两用性。×13、移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补0;×14、某个变量的类型高是指该变量被存放在内存中的高地址处。×15、隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。×16、类型定义是用来定义一些C++中所没有的新的类型。×三、计算下列各表达式的值(下列各表达式是相互独立的,不考虑前面对后面的影响。)1、已知:unsignedintx=015,y=0x2b;A.x|y;B.x^y;C.x&y;D.~x+~y;E.x=3;F.y=4.2、已知:inti(10),j(5);A.++i-j--;B.i=i*=j;C.i=3/2*(j=3-2);D.~i^j;E.i&j|1;F.i+i&0xff.3、已知:inta(5),b(3);计算下列表达式得值以及a和b的值。A.!a&&b++;B.a||b+4&&a*b;C.a=1,b=2,ab?++a:++b;D.++b,a=10,a+5;E.a+=b%=a+b;F.a!=b2=a+1.4、已知:intd(5),*pd=&d,&rd=d;A.d+-rd;B.*pd*rd;C.++*pd-rd;D.++rd-d.ABCDEF4738942949672381042ABCDEF6501-16120ABCDEF0,5,31,5,33,1,315,10,48,8,31,5,35、已知:’1’的ASCII码的值为49。A.3+21+1;B.2*9|31;C.5%-3*2/6-3;D.8==3=2&5;E.!(‘3’’5’)||26;F.6=3+2-(‘0’-7).四、按下列要求编写程序1.从键盘上输入两个int型数,比较其大小,并输出显示其中小的。2.从键盘上输入一个int型数,一个浮点型数比较其大小,并输出其中大的。3.输入一摄氏温度,编程输出华氏温度。已知:华氏温度转换为摄氏温度的计算公式如下:C=(F-32)*5/9其中,F表示华氏温度,C表示摄氏温度。#includ

1 / 142
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功