C++复习题(2).docx
《C++复习题(2).docx》由会员分享,可在线阅读,更多相关《C++复习题(2).docx(42页珍藏版)》请在三一办公上搜索。
1、C+复习题C+复习题 一、单选题 1C+语言对c语言做了很多改进,c+语言相对于C语言的最根本的变化是 A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念 2下列哪个是c+语言的有效标识符? A. -N01 B. No.1 C. 12345 D. int 3下面程序的运行结果为 #include void main for(int a=0,x=0;!x & a=10;a+) a+; coutaendl; A. 10 B. 11 C. 12 D. 0 4下列选项,不正确的是 A. for(int a=1;a=10;a+)
2、; B. int a=1;do a+: while(a=10) C. int a=1;while(a=10) a+; D. for(int a=1;a=10;a+)a+; 5下列程序的输出结果为 #include void main char *a=hello,the,world; char *pa=a; pa+; cout *pa endl; A. hello B. the C. world D. hellotheworld 6决定C+语言中函数的返回值类型的是 A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数
3、时所指定的数据类型 7下列程序的输出结果是 #include int min(int a,int B) if(aB) return a; else return B; return 0; 1 void main coutmin(1,min(2,3)= C. : D./ 18下面关于类和对象的描述中,错误的是( A ) 2 A. 类就是c语言中的结构体类型,对象就是C语言中的结构体变量 B. 类和对象之间的关系是抽象和具体的关系 C. 对象是类的实例,一个对象必须属于一个已知的类 D. 类是具有共同行为的若干对象的统一描述体 19下面关于break语句的描述中,不正确的是( D ) A. bre
4、ak可以用于循环体内 B. break语句可以在for循环语句中出现多次 C. break语句可以在switch语句中出现多次 D. break语句可用于if条件判断语句内 20下面关于数组的描述错误的是( D ) A. 在c+语言中数组的名字就是指向该数组第一个元素的指针 B. 长度为n的数组,下标的范围是0一n-l C. 数组的大小必须在编译时确定 D. 数组只能通过值参数和引用参数两种方式传递给函数 21下面程序错误的语句是( B ) #include void main int *p=new int1; p=9; cout *p endl; delete p; A. B. c. D.
5、22下面的哪个选项不能作为函数的返回类型?( C ) A. void B. int C. new D. long 23下列程序的输出结果为( D ) #include int func(int n) if(n1)return 1;else return n+func(n-1); return 0; void main coutfunc(5)endl; A. 0 B. 10 C. 15 D. 16 24在C+语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 25对类的构造函数和析构函数描述正确的是( A )
6、 A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 c. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 3 26下面对静态数据成员的描述中,正确的是(A) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 27如果类A被说明成类B的友元,则(D) A. 类A的成员即类B的成员 B. 类B的成员即类A的成员 C. 类A的成员函数不得访问类B的成员 D. 类B不一定是类A的友元 28下面关于虚函数的描述,错误的是
7、(B) A. 在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数 B. 基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 C. 虚函数可以是另一个类的友元函数,但不能是静态成员函数 D. 基类中说明的纯虚函数在其任何派生类中都必须实现 29下面程序的运行结果是( C ) #include void main int num=1; int &ref=num; ref=ref+2; coutnum; num=num+3; coutrefendl; A. 13 B. 16 C. 36 D. 33 30下面关于c+语言的描述错误的是( B ) A. C+语言支持数据封装 B
8、. C+语言中引入友元没有破坏封装性 C. C+语言允许函数名和运算符重载 D. C+语言支持动态联编 31下列程序的运行结果为( B ) #include void main int a=2; int b=a+1; cout a/bendl; A. 0.66667 B. 0 C. 0.7 D. 0.66666666 32设int a=1,b=2;,则(a+)+b和a+b这两个表达式的值分别为( A ) A. 3,3 B. 3,4 C. 4,3 D. 4,4 33下面程序的运行结果为( D ) #include void main char a=3; switch(a) 4 case3:cou
9、t3; case2:cout2;break; default:cout1; A. 3 B. 321 C. 31 D. 32 34存在定义int a10,x,*pa;,若pa=&a0,下列的哪个选项和其他3个选项不是等价的?( A ) A. x=*pa; B. x=*(a+1); C. x=*(pa+1); D. x=a1; 35下面程序的运行结果为 ( D ) #include void swap(int &a,int b) int temp; temp=a+; a=b;b=temp; void main int a=2,b=3;swap(a,b); cout a , b endl; A. 2
10、,3 B. 3,2 C. 2,2 D. 3,3 36下面关于C+语言变量的叙述错误的是( B ) A. 在C+语言中变量分为auto,static,extern和register四种存储类型 B. 自动变量和外部变量的作用域为整个程序 C. 内部静态变量的作用域是定义它的函数 D. 外部静态变量的作用域是定义它的文件 37为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( A ) A. public B. protected C. private D. static 38在C+语言程序中,对象之间的相互通信通过( C ) A. 继承实现 B. 调用成员函数实
11、现 C. 封装实现 D. 函数重载实现 39类的析构函数是在什么时候调用的?( C ) A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用 40通常拷贝构造函数的参数是( C ) A. 某个对象名 B. 某个对象的成员名 C. 某个对象的引用名 D. 某个对象的指针名 41在C+语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 42 5 试题内容:对于类定义, 下面正确的叙述是( C ) class A public: virtual void funcl void func2 ; class B:public A
12、 public: void funclcout”class B func 1”endl; viauM void func2cout”class B func 2”endl; ; A. A:func2和B:funcl都是虚函数 B. A:func2和B:funcl都不是虚函数 C. B:funcl是虚函数,而A:func2不是虚函数 D. B:funcl不是虚函数,而A:fune2是虚函数 43与语句coutendl;不等价的是( D ) A. coutn; B. cout12; C. coutxA; D. cout0; 44下面程序的运行结果是( C ) #include void main
13、int i=1; while(i=8) if(+i%3!=2) continue; else cout i; A. 25 B. 36 C. 258 D. 369 45已知有定义, 则下列选项错误的是( B ) const int D=5; int i=1; double f=0.32; char c=15; A. +i; B. D-; C. c+; D. -f 46下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是( B ) #include void main int i=0,j,k; doi+;k=316-13*i; while( ); j
14、=k/11; cout 316=13* i +11*SetNum(50) 4在面向对象方法中,类之间共享属性和操作的机制称为_。 正确答案:继承 5假设int a=1,b=2;则表达式a+-b的值为_。 正确答案:2 6通过使用new和delete两个运算符进行的分配为_分配。 正确答案:动态存储 7下面程序的运行结果为_。 #include void fun(int x=0,int y=0) coutxy; void main fun(5); 正确答案:50 8重载的运算符保持其原有的_、优先级和结合性不变。 正确答案:操作数个数 9cout.put(A);,还可以表示为_。 正确答案:co
15、ut A 10在C+中封装性、继承性和_是面向对象思想的主要特征。 正确答案:多态性 11下面程序的结果为_。 #include void main int a=1,b=2; bool c=1; 8 if(ab)| c) cout trueendl; else cout falseendl; 正确答案:true 12MFC框架程序是从_函数开始执行的。 正确答案:WinMain 13假定A为一个类,则语句A(A &p);为该类_函数的原型说明。 正确答案:拷贝构造 14派生类构造函数的执行顺序是先执行_的构造函数,再执行_的构造函数。 正确答案:基类、派生类 15派生类的成员一般分为两部分,一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习题
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3153708.html