您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 北航2014c++程序设计复习题2附答案
北航《C++程序设计》复习题二一、单项选择题1、下列关于模板的说法正确的是______。()A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数2、关于异常和C++提供的异常处理机制,不正确的说法是______。()A.若程序员预见到程序的异常,则一定可以通过修改程序代码来避免异常出现B.使用dynamecast操作符可能会发生异常C.异常可以用catch捕获处理D.异常可以是对象,也可以是普通函数3、I/O类库的根基类是______。()A.istreamB.ostreamC.iosD.fstream4、在C++语言中,下列变量命名正确的是______。()A.char89_name;B.boolis-loan;C.intclass;D.int_abc;5、当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的______。()A.public成员B.友元C.protected成员D.private成员6、设有函数原型voidfun3(int&);下面选项中,正确的调用是______。()A.intb=100;fun3(b);B.intx=2.17;fun3(&x);C.inta=15;fun3(a*3.14);D.fun3(256);7、设inta=10,b=11,c=12;,表达式(a+b)c&&b==c的值是______。()A.2B.1C.0D.-28、下面有关new和delete操作符的说法中,不正确的是______。()A.使用new操作符,可以动态分配全局堆中的内存资源B.若P的类型已由A强制转换为void*,那么执行语句deleteP*时,类A的析构函数不会被调用C.实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中D.执行语句A*P=newA[100]时,类A的构造函数只会被调用一次9、C++语言是从早期的C语言逐渐发展演变来的,与C语言相比,它在求解问题方法上进行最大改进的是______。()A.面向过程学习中心:______________姓名:______________座位号:学号:身份证号:______________B.面向对象C.安全性D.复用性10、以下不属于类存取权限是______。()A.publicB.staticC.protectedD.private11、执行下面语句后,a和b的值分别为______。()inta=5,b=3,t;int&ra=a;int&rb=b;t=ra;ra=rb;rb=t;A.3和3B.3和5C.5和5D.5和312、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是______。A、公有类型B、私有类型C、保护类型D、友元类型13、设有定义intx;floatv;,则10+x+v值的数据类型是______。()A.intB.doubleC.floatD.不确定14、关于静态数据成员,下面说法错误的是______。A、使用静态数据成员,实际上是为了消除全局变量B、可以使用“对象名.静态成员”或者“类名::静态成员”来访问静态数据成员C、静态数据成员只能在静态成员函数中引用D、所有对象的静态数据成员占用同一内存单元15、引入虚析构函数的作用是______。()A.为了实现析构函数的重载B.为了实现类的多态性C.防止造成内存泄漏D.提高程序执行效率16、关于异常和C++提供的异常处理机制,不正确的说法是______。A、若程序员预见到程序的异常,则一定可以通过修改程序代码来避免异常出现B、使用dynamic_cast操作符可能会发生异常C、异常可以用catch捕获处理D、异常可以是对象,也可以是普通函数17、在类定义的外部,可以被访问的成员有______。()A.所有类成员B.private或protected的类成员C.public的类成员D.public或private的类成员18、基本类型到用户定义类型的转换通过______实现。A、强制转换B、用户自定义类型的构造函数C、基本类型的转换函数D、无法实现19、下面对静态数据成员的描述中,正确的是______。()A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象调用20、假定要对类AB定义“+”操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()。A、ABoperator+(AB&a,AB&b)B、ABoperator+(ABa)C、operator+(ABa)D、AB&operator+()二、填空题21、假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为__________。22、算术表达式“xy2/3a+4b-1”对应的C++表达式为。23、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为_______________。24、执行“coutchar('A'+2)endl;”语句后得到的输出结果为。25、数据定义为全局变量,破坏了数据的封装性,较好的解决办法是将所要共享的数据定义为类的_______________。26、for(intx=0,y=0;!x&&y=5;y++)语句执行循环_________次。27、友元的正确使用能提高程序的______________,但破坏了类的封装性和数据的隐蔽性。28、开发一个C++语言程序的步骤通常包括编辑、、链接、运行和调试。29、含有纯虚函数的类称为______________。30、在面向对象方法中,类之间共享属性和操作的机制称为。三、程序分析题31、下列程序的运行结果是________i=4j=1______________。#includeiostream.hvoidmain(){inti=0,j=5;do{i++;j--;if(i3)break;}while(j0);couti=i'\t'j=jendl;}32、下列程序的运行结果是___________DestructorB!7DestructorA!6DestructorB!0DestructorA!5___________。#includeiostream.hclassA{inta;public:A(intaa=0){a=aa;}~A(){coutDestructorA!aendl;}};classB:publicA{intb;public:B(intaa=0,intbb=0):A(aa){b=bb;}~B(){coutDestructorB!bendl;}};voidmain(){Bx(5),y(6,7);}33、下列程序的运行结果是________x=16______________。#includeiostream.hvoidmain(){inti,j,x=0;for(i=0;i=3;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++;}x++;}coutx=xendl;}四、编程题34、编程::输入三个数,按从小到大的顺序输出。#includeiostream.hvoidmain(){inti,k,a[10],b,max;for(i=0;i=9;i++){cina[i];if(a[i]0){cout非法输入停止输入endl;break;}}for(k=0;k=9;k++){for(i=0;i=8-k;i++){b=a[i+1];if(a[i]=a[i+1]){a[i+1]=a[i];a[i]=b;}}}cout最大值为a[k-1]endl;cout最小值为a[0]endl;for(i=0;i=9;i++)couta[i]endl;}35、编程:输入一个三位整数,将它反向输出。#includeiostreamusingnamespacestd;密封线intmain(){coutInputanumber(100x999)endl;intx;cinx;if(x100||x999){coutInputwrong!\n;return0;}coutx%10(x/100)%10x/100endl;return0;}北航《C++程序设计》复习题二答案一、单项选择题12345678910DACDAACDBB11121314151617181920BDCCCACBAB二、填空题21、考核知识点:对象数组的构造函数22、考核知识点:算术运算符及优先级23、考核知识点:静态数据成员24、考核知识点:字符常量以及类型的显示转换25、考核知识点:静态成员26、考核知识点:for循环27、考核知识点:友元28、考核知识点:程序的开发步骤29、考核知识点:抽象类30、考核知识点:继承三、程序分析题31、考核知识点:do…while语句,break语句32、考核知识点:派生类中析构函数的调用33、考核知识点:for循环的嵌套,continue语句四、编程题34、编程:输入三个数,按从小到大的顺序输出。考核知识点:if选择结构,最重要的是排序的思想。35、编程:输入一个三位整数,将它反向输出。考核知识点:利用算术运算符取一个整数各位上的数值。学习中心:______________姓名:______________座位号:学号:身份证号:______________
本文标题:北航2014c++程序设计复习题2附答案
链接地址:https://www.777doc.com/doc-2624463 .html