C 面试题目(带答案).doc_第1页
C 面试题目(带答案).doc_第2页
C 面试题目(带答案).doc_第3页
C 面试题目(带答案).doc_第4页
C 面试题目(带答案).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1)#includestdafx.hclasshumanpublic: human() std:couthuman over. std:endl; voidDisp() std:couthuman disp . . std:endl; ;classman : publichumanpublic: man() std:coutman over.std:endl; voidDisp() std:coutman disp . Disp(); delete p;human disp .human over .2) 某32位系统下, C+程序,请计算sizeof的值(5分).charstr = “”;charsstr10;char *p = str ;int n = 10;请计算sizeof (str ) = ?(1)sizeof ( p ) = ?(2)sizeof ( n ) = ?(3)void Foo ( char str100)请计算sizeof( str ) = ?(4)void *p = malloc( 100 );请计算sizeof ( p ) = ?(5)sizeof(sstr) (6)17;4,4,4,4,103)分别给出BOOL,int,float,指针变量与“零值”比较的if 语句(假设变量名为var);If(!var);If(0 = var)或者 if(var=0)Const float ESPISON = 0.00001;If( var = -ESPISON) & (var = ESPISON)4)C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?int a = 5, b = 7, c;c = a+b; a=6;b=7;c=12;5)#includeclassAprivate:intn1;intn2;public:A(): n2(0), n1(n2 + 2) voidPrint() std:coutn1: n1, n2: n2接口继承以及纯虚函数)构成了功能复用的两种方式。3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。10:重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。重写:是指子类重新定义复类虚函数的方法。11:#define DOUBLE(x) x+x,i = 5*DOUBLE(5); i 是多少?30;12:编译运行下图中的C+代码,结果是什么?(A)编译错误;(B)编译成功,运行时程序崩溃;(C)编译运行正常,输出10。请选择正确答案并分析原因。#includeclass Aprivate: int value;public: A(int n) value = n; A(A other) value = other.value; void Print() std:cout value std:endl; ;int _tmain(intargc, _TCHAR* argv) A a = 10; A b = a; b.Print(); return 0;编译错误。在复制构造函数中传入的参数是A的一个实例。由于是传值,把形参拷贝到实参会调用复制构造函数。因此如果允许复制构造函数传值,那么会形成永无休止的递归并造成栈溢出。因此C+的标准不允许复制构造函数传值参数,而必须是传引用或者常量引用。在Visual Studio和GCC中,都将编译出错13:运行下图中代码,输出的结果是什么?这段代码有什么问题?#includeclass Apublic: A() std:coutA is created.std:endl; A() std:coutA is deleted.std:endl; ;class B : public Apublic: B() std:coutB is created.std:endl; B() std:coutB is deleted.next = NULL )return head;Node *p1 = head ;Node *p2 = p1-next ;Node *p3 = p2-next ;r /p1-next = NULL ;while ( p3 != NULL )p2-next = p1 ;p1 = p2 ;p2 = p3 ;p3 = p3-next ;p2-next = p1 ;head = p2 ;return head ;(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)Node * Merge(Node *head1 , Node *head2)if ( head1 = NULL)return head2 ;if ( head2 = NULL)return head1 ;Node *head = NULL ;Node *p1 = NULL;Node *p2 = NULL;if ( head1-data data )head = head1 ;p1 = head1-next;p2 = head2 ;elsehead = head2 ;p2 = head2-next ;p1 = head1 ;Node *pcurrent = head ;while ( p1 != NULL & p2 != NULL)if ( p1-data data )pcurrent-next = p1 ;pcurrent = p1 ;p1 = p1-next ;elsepcurren

温馨提示

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

评论

0/150

提交评论