C笔试题目 带答案_第1页
C笔试题目 带答案_第2页
C笔试题目 带答案_第3页
C笔试题目 带答案_第4页
C笔试题目 带答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、姓名:DCCBB AADAD 一、选择题 (1*10=10)1如果派生类以 proctected 方式继承基类,则原基类的 protected 和 public 成员在派生类的访问性分别是:Apublic 和 publicCprotected 和 public时间:Bpublic 和 protected Dprotected 和 protected解析:通过 protected 方式继承基类后,原基类的私有成员不可访问,而 protected 和 public 成员均变成 protected 成员。答案:D2有如下头文件:int F1();static int F2();classs CApu

2、blic:int F3();static int F4();在所描述的函数中,具有隐含 this 指针的是: CA. F1B. F2C. F3D. F4本题考查的是 this 指针。this 指针式一个隐含的指针,它隐含于每个类的非静态成员函数中,它明 确地表示出了成员函数当前操作的数据所属的对象。 当对一个对象调用成员函数 时,编译程序先将对象的地址赋值给 this 指针,然后调用成员函数,每次成员 函数存取数据成员时,则隐含使用 this 指针。this 指针是指向对象本身的指针,它只存在于类的非静态成员中。f1 , f2调用约定调用。C 共有成员 保护成员不是成员函数,不存在隐含指针;

3、f4 为静态成员函数,也不含有 this 指针;含 有 this 指针的函数在调用时按 thiscall 故本题答案为 C。3. 派生类的成员函数不能访问基类的:A.共有成员和保护成员B.C私有成员D.本题考查的是继承的类型。类的继承方式有公有继承、 保护继承和私有继承三种方式。 对于公有继承基类中的成员访问属性不变, 对于保护和私有继承基类中的成员转换为相应的访问类型。 但是如果基类成员的访问属性为 private 的,则 不能被继承。故本题答案为 C。4按照“后进先出”原则组织数据的数据结构是BA.队列B.栈D.二叉树C.双向链表答案为Bo5.下列关于虚函数的说明中,正确的是: A.从虚基

4、类继承的函数都是虚函数 C.只能通过指针或者引用调用虚函数 数。答案为BoBB.虚函数不得是静态成员函数D.抽象类中的中的成员函数都是虚函6. 已知Value是个类,value是Value的一个对象。下列以非成员函数形式重 载的运算符函数原型中,正确的是:AB. Value operator+(ValueA. Value operator+(Value v, int i); v=value, int i);D. Value operator+(ValueC. Value operator+(Value v, int=0); v=value, int i=0);7. 有如下类的定义:Class

5、MyClass int value;public:MyClass(i nt n):value( n) int getValue() const return value; 则类Myclass的构造函数的个数是:AB.D.A. 1个C. 3个还有默认拷贝构造函数,应该选B&有如下类的定义:class Con sta nts public:static double Get Pl(void)return ;Con sta nts con sta nts;下列各组语句中,能输出的是:A.B.C.D.coutvvc on sta nts-Get Pl(); coutvv();和 coutvv();co

6、utvvc on sta nts-Get Pl();coutvv();和 coutvvConstants:GetPl();B和 coutvvConstants:GetPl();和 coutvvConstants-GetPl();9. 有如下程序:#i nclude using n ames pace std;class VACpublic:int f() con stretu rn 3; int f()return 5;int main()VAC v1; const VAC v2; cout()(); return 0;运行时的输出结果是:AA. 53B. 35C. 55D. 3310. 有如

7、下类声明:class Basep rotected:int amount;public:Base(i nt n = 0):am oun t( n) int getAm oun t() const retu rn amoun t; ;class Derived:p ublic Basep rotected:int value;public:Derived(i nt m, i nt n ):value(m),Base( n) int getData() const return value + amoun t;已知x是一个Derived对象,则下列表达式中正确的是:BA. + ();B. () +

8、 ();C. ()- ; D. + ;二、填空题(8*2=16)Dog sp eak Voice400_ 6 4 4 4 4 return *this1.下列中a的值是400.#define AAA 200#define BBB AAA+100 int a= BBB*22.以下为 Windows NT下的32位C+程序,请计算sizeof的值。 char str= char *p = str ;int n = 10;“Hello ”请计算sizeof (str )= sizeof ( p )= sizeof ( n )=5.4_4void Func ( char str100)补充完整下面的类

9、定义:class XCH char* a;public:XCH(char* aa)#in cludeusing n ames pace std; class An imal public:virtual char* getT yp e() const retur n Ani mal; virtual char* getVoice() const retur n Voice; ;class Dog:p ublic An imal public:char* getT yp e() const retur n Dog; char* getVoice() const return Woof;void

10、typ e(A ni mal& a) cout();void sp eak(A ni mal a) cout();int mai n()Dog d;t yp e(d);cout sp eak ;s peak(d);coute ndl; return 0;请写出下面程序的输出结果Dog sp eak Voice三、问答题(5*10+9+15=74)1.编写类String的拷贝构造函数和赋值函数(可以调用C+/C的字符串库函数)(15) 0已知类String的原型为:class String别用递归和循环求p ublic:2.Stri ng(co nst char *str = NULL);F(5

11、)(10) op ublic int R(i nt nu m)if(nu m=0)num=1;else if(num=1)num=1;elsenum=R( nu m-1)+R (n um-2);return num;p ublic int c(i nt num) int a = 1;int b = 1;int c = 0;for (i nt i = 0; i next=NULL) retur n head;p1=head; p2=p1-n ext; while( p2!=NULL) p3=p2-n ext; p2-n ext=p1; p1= p2;p2=p3;head-next=NULL;p1

12、=head;retur n head;4. 从冒泡排序、直接插入排序、二分插入排序和选择排序四种排序算法中,选 择其中一种算法,写出它的实现(10)#in cludeo #in cludeo #in cludeo #in cludeo void BubbleSort(i nt *L,i nt N)前后记录位置的增量是dk,而不是1;r0只是暂存单元,不是哨兵。当j=0时,插入位置已找到。 int i,j;for(i=dk+1;iv=N;+i)if(LivLi-dk) t-1对顺序表L作希尔排序。for(int k=0;kt;+k)ShellI nsert(L,N, dltak);.void f

13、(int i).;可以节省空间,避免不必要的内存分配。定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define 一样给出的是立即数,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。提高了效率。编译器通常不为普通 const常量分配存储空间,而是将它们保存在符号表中,这使得(6)const所以,(7) 它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。不能修改类的数据成员,不能在函数中调用其他不是const的函数.成员函数,这样做一般是用来避免代码重1) const对象调用的是const成员函数。2) 非const成员函数可以调用con st复,但引入了一个casting动作。(9)5.下面两个语句的执行效果相同吗为什么 语句 1:while

温馨提示

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

评论

0/150

提交评论