c++练习题(带答案)_第1页
c++练习题(带答案)_第2页
c++练习题(带答案)_第3页
c++练习题(带答案)_第4页
c++练习题(带答案)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、选择题汇编语言1. C+语言属于(C )。A)自然语言 B ) 机器语言 C )面向对象语言 D )2. 下面选项中不属于面向对象程序设计特征的是 (C) 。A)继承性 B )多态性 C )相似性D)封装性3. 下列情况中,哪一种情况不会调用拷贝构造函数 ( B )A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时4. 以下哪一关键字可用于重载函数的区分( C )A)externB) staticC) constD) virtual5. 下列有关数组的叙述中,正确

2、的是( B )A)C+中数组的存储方式为列优先存储B)数组名可以作为实参赋值给指针类型的形参C)数组下标索引从1开始,至数组长度 n结束D)数组指针的语法形式为:类型名 *数组名下标表达式;6. 下列有关继承和派生的叙述中,正确的是 ( C )A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现7. 若有下面的函数调用:fun(a+b, 3, max(n-1, b);其中实参的个数是( A )A) 3B) 4C) 5D) 68. 下列关于 thi

3、s 指针的说法正确的是( B )A)this 指针存在于每个函数之中B)在类的非静态函数中 this指针指向调用该函数的对象C)this 指针是指向虚函数表的指针D) this 指针是指向类的函数成员的指针9.10.11.在下列关于C+函数的叙述中,正确的是( C )12.A)每个函数至少要有一个参数C)函数在被调用之前必须先声明 列运算符中,不能重载的是 ( A) &B) !=C) .面程序的输出结果是( B ) #include using namespace std;int i = 0;int fun(int n)static int a = 2;a+;return a+n;void m

4、ain()int k = 5;int i = 2;k += fun(i);k += fun(i);cout k;A) 13B) 14C) 15面程序的输出结果是( C #include using namespace std;class Basepublic:virtual void f() cout void g() cout “ g0+”;class Derived : public Basepublic:void f() cout D) 16)“f0+ ” ; ; void g() cout f(); p-g(); A) f+g+B) f0+g+C) f+g0+D) f0+g0+13.

5、以下程序的输出结果是:( D )#include using namespace std;int fun(char *s) char *p=s;while (*p!=0) p+;return (p-s);void main()coutfun(abc)endl;A0B. 1 C. 2 D. 314. 有如下程序段:int i=1;while(1)i+;if (i=10) break;if(i%2=0) cout * ;执行这个程序段输出字符 *的个数是 (C)A. 10 B. 3 C. 4 D.515. 下列关于虚基类的描述中,错误的是( C)A. 使用虚基类可以消除由多继承产生的二义性B. 构

6、造派生类对象时,虚基类的构造函数只被调用一次C. 声明 class B:virtual public A说明类 B 为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数16. 有下类定义Class A Char *a;Public:A():a(0)A(char *aa) / 把 aa 所指字符串拷贝到 a 所指向的存储空间 A=;Strcpy(a,aa);A() delete a;正确的选择是( A)A. new charstrlen(aa)+1 B. charstrlen(aa)+1C. charstrlen(aa) D. new charsizeof(aa)-117. 有如下程序: #

7、include using namespace std; class Test public: Test() Test()cout#; ;int main()Test temp2, *pTemp2;return 0; 执行这个程序输出星号( #)的个数为( B )。A) 1 B )2 C )3 D )418. 友元运算符obj+被C+编译器解释为(D )。A. operator+(obj)B. operator+(obj,0)B. obj.operator+( ) D. obj.operator+(0)19. 下面程序的运行结果为 ( C ) #include class A int num;

8、 public: A(int i)num=i; A(A &a)num=a.num+; void print()coutNUM; ; void main() A a(1),b(a);a.print();b.print(); A.11 B.12 C.21 D.2220. 如果类 A 被说明成类 B 的友元,则 ( D ) A. 类 A 的成员即类 B 的成员B. 类 B 的成员即类 A 的成员C. 类A的成员函数不得访问类 B的成员D. 类 B 不一定是类 A 的友元21. 下面程序的运行结果是 ( C ) #include void main() int num=1; int &ref=num;

9、 ref=ref+2; coutNUM; num=num+3; coutREFENDL;A.13B.16C.36D.3322. 下列程序的运行结果为(C )#i ncludeint i=0;class Apublic:A()i+;void mai n() A a,b3,*c;c=b;coutlENDL;A.2B.3C.4D.523. 下列字符串中可以用C+语言标识符的是(A )A._1234B.foobarC. virtuaD.34var二填空题1. 在面向对象方法中,类之间共享属性和操作的机制称为继承2. C+中封装性、继承性和多态性是面向对象思想的主要特征。3. 下列for语句的循环次数为

10、5 。for(int a=0,b=1;b&a5;a+);4. C+程序是从 _main函数开始执行的。5. 派生类构造函数的执行顺序是先执行基类的构造函数,然后执行成员对象的构造函数,最后执行派生类的构造函数。6. C+语言的基本控制结构为顺序结构、选择结构和循环结构7. 函数重载要求重载的函数必须有和原函数一样的函数名8. 设置虚基类的目的是 解决二义性问题,通过用关键字_virtual表示虚基类。9. 语句cout n还可表示为coutENDL;10. 若已知a=10,b=20,则表达式!a1)#i nclude using n amespace std;in t f(in t);int mai n()int n ,s;coutn;s=f(n);coutThe result is se ndl; return 0;int f(int n)/递归法求立方和函数if (n=1) return 1;elsereturn (_ f(n-1)+n*n*n _);Destructor Base ”。Base” endl; 3.请将下列程序补充完整,使得输出结果为Destructor Derived #i nclude using n amespace std;class Basepub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论