




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格。一、单选题(20题,每题2分)1、有变量int i = 0; int a = i+; int b=+a; int c = a+b; 请问表达式 a?b:c 的值是()A、0 B、1 C、2 D、32、32位环境下,int *p=new int10;请问sizeof(p)的值为()A、4 B、10 C、40 D、83、有语句char str = abcde;请问表达式sizeof(str)的值是() 后面还有0A、1 B、4 C、5 D、64、有函数int func(int i)的实现为()cpp view plaincopyprint?1. intfunc(inti)2. 3. if(i1)4. returni*func(i-1);5. else6. return1;7. int func(int i)if(i 1)return i*func(i-1);elsereturn 1;请问函数调用f(5)的返回值是多少()阶乘计算A、5 B、15 C、20 D、1205、请问以下说法,哪个是正确的()A、每个类都有一个无参数的构造函数B、每个类都有一个拷贝构造函数C、每个类能有多个构造函数D、每个类能有多个析构函数6、用class关键字定义的类,其成员默认的访问属性为()A、private B、protected C、public D、无定义7、类的成员有三种访问属性,分别是public、protected、private,子类能够访问的成员是()A、都能访问B、public和protectedC、public和privateD、protected和private8、请问对一个排好序的数组进行查找,时间复杂度为()A、O(n) B、O(lgn) C、O(nlgn) D、O(1)9、以下二叉树:后序遍历的结果是()A、丙乙丁甲戊己 B、甲乙丙丁戊己 C、丙丁乙己戊甲 D、丙丁己乙戊甲10、看以下代码:A *pa = new A10;delete pa;则类A的构造函数和析构函数分别执行了几次()A、1 1 B、10 10 C、1 10 D、10 111、看以下代码:cpp view plaincopyprint?1. classA2. 3. public:4. A();5. ;6. A:A()7. 8. printf(deleteA);9. 10. 11. classB:publicA12. 13. public:14. B();15. ;16. B:B()17. 18. printf(deleteB);19. class Apublic:A();A:A()printf(delete A );class B : public Apublic:B();B:B()printf(delete B );请问执行以下代码A *pa = new B();delete pa;输出的串是()AA、delete A B、delete B C、delete B delete A D、delete A delete B12、文件长度是一个大于0的整数,用变量unsigned file_length; 来表示,把文件分成块,每块的长度也是一个大于0的整数,用变量unsigned block_length; 来表示,则文件被分成的块数为()A、file_length/block_length B、file_length/block_length+1 C、(file_length+block_length-1)/block_length D、(file_length-1)/block_length+113、整数int i = 0xFE78DA45; int k = 0xAC3189B2;则ik的值为()A、0x524953f7 B、0xAC308800 C、0xFE79DBF7 D、0X000000114、看以下代码:cpp view plaincopyprint?1. classparent2. 3. public:4. virtualvoidoutput();5. ;6. voidparent:output()7. 8. printf(parent!);9. 10. 11. classson:publicparent12. 13. public:14. virtualvoidoutput();15. ;16. voidson:output()17. 18. printf(son!);19. class parentpublic:virtual void output();void parent:output()printf(parent!);class son : public parentpublic:virtual void output();void son:output()printf(son!);则以下程序段:son s;:memset(&s , 0 , sizeof(s);parent& p = s;p.output();执行结果是()A、parent! B、son! C、son!parent! D、没有输出结果,程序运行出错15、函数的局部变量所需存储空间,是在哪里分配的()A、进程的数据段 B、进程的栈上 C、进程的堆上 D、以上都可以16、以下STL的容器存放的数据,哪个肯定是排好序的()A、vector B、deque C、list D、map17、int a3=1,3,2,6,7,8,9;中a21的值是()A、3 B、6 C、2 D、718、以下关于头文件,说法正确的是()A、#include,编译器寻找头文件时,会从当前编译的源文件所在的目录去找B、#include“filename.h”,编译器寻找头文件时,会从通过编译选项指定的目录去找C、多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯D、在大型项目开发中,把所有自定义的数据类型、全局变量、函数声明都放在一个头文件中,各个源文件都只需要包含这个头文件即可,省去了要写很多#include语句的麻烦,是好的编程习惯。19、某棵完全二叉树上有699个节点,则该二叉树的叶子节点数为()A、349 B、350 C、188 D、187n0=n2+1;n=n0+n1+n2=n0+n1+n0-1=699由于完全二叉树中度为1的节点只有0个或1个两种情况,所以,将0或1带入上面公式,整理后得: n0=(n+1)/2或者n0=n/2; 看看n是否能被2整除,能则用n0=n/2。否则用n0=(n+1)/2 既叶子节点为n0=(n+1)/2=35020、在一个指向字符串的指针char *p_str,要把字符串中第4个字符的值改为a,正确的做法是()A、p_str3=a B、*(ptr+3)=a C、p_str4=a D、*(ptr+4)=a二、多选题(10题,每题3分,错选漏选都不得分)1、已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a、b、c、d、e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e出现了232次,对这5个字符使用哈夫曼(Huffman)算法进行编码,则以下哪些说法正确()A、使用哈夫曼算法编码后,用编码值来存储这段文本将花费最少的存储空间B、使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值是唯一确定的C、使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值可以有多套,但每个字符编码的位(bit)数是确定的D、b这个字符的哈夫曼编码值位数应该最短,d这个字符的哈夫曼编码值位数应该最长2、下列表达式中,不合法的是()已知:double d = 3.2; int n = 3;A、d2;B、d/nC、!d & (n-3)D、(d-0.2)|n3、下面描述正确的是()A、while循环语句的循环体至少执行1次B、do-while循环可以写成while循环的格式C、continue语句可以出现在各种循环体中D、break语句不可以出现在循环体内4、关于内联函数正确的是()A、类的私有成员函数不能作为内联函数B、在所有类说明中内部定义的成员函数都是内联函数C、类的保护成员函数不能作为内联函数D、使用内联函数的地方会在运行阶段用内联函数体替换掉5、下面模板声明中,哪些是非法的()A、templateclass C1;B、templateclass C2;C、templateclass C3;D、templateclass C4;6、在使用浏览器打开一个网页的过程中,浏览器会使用的网络协议包括()A、DNS B、TCP C、HTTP D、Telnet7、下面属于构造散列函数的方法是()A、直接定址法B、数字分析法C、乘余取整法D、平方取中法8、拷贝构造函数的特点是()A、该函数名同类名,也是一种构造函数,该函数返回自身引用B、该函数只有一个参数,必须是对某个对象的引用C、每个类都必须有一个拷贝初始化构造函数,如果类中没有说明拷贝构造函数,则编译器系统会自动生成一个缺省拷贝构造函数,作为该类的保护成员D、拷贝初始化构造函数的作用是将一个已知对象的数据成员值拷贝给正在创建的另一个同类的对象9、下列关于虚函数的说法正确的是()A、在构造函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效。B、在析构函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效。C、静态函数不可以是虚函数因为静态成员函数没有this,也就没有存放vptr的地方,同时其函数的指针存放也不同于一般的成员函数,其无法成为一个对象的虚函数的指针以实现由此带来的动态机制。静态是编译时期就必须确定的,虚函数是运行时期确定的。D、虚函数可以声明为inlineinline函数和virtual函数有着本质的区别,inline函数是在程序被编译时就展开,在函数调用处用整个函数体去替换,而virtual函数是在运行期才能够确定如何去调用的,因而inline函数体现的是一种编译期机制,virtual函数体现的是一种运行期机制。因此,内联函数是个静态行为,而虚函数是个动态行为,他们之间是有矛盾的。函数的inline属性是在编译时确定的, 然而,virtual的性质则是在运行时确定的,这两个不能同时存在,只能有一个选择,文件中声明inline关键字只是对编译器的建议,编译器是否采纳是编译器的事情。我并不否认虚函数也同样可以用inline来修饰,但你必须使用对象来调用,因为对象是没有所谓多态的,多态只面向行为或者方法,但是C+编译器,无法保证一个内联的虚函数只会被对象调用,所以一般来说,编译器将会忽略掉所有的虚函数的内联属性。相关知识点:什么函数不能声明为虚函数?一个类中将所有的成员函数都尽可能地设置为虚函数总是有益的。设置虚函数须注意:1:只有类的成员函数才能说明为虚函数;2:静态成员函数不能是虚函数;3:内联函数不能为虚函数;4:构造函数不能是虚函数;5:析构函数可以是虚函数,而且通常声明为虚函数。10、下列对函数double add(int a , int b)进行重载,正确的是()A、int add(int a ,int b ,int c)B、int add(double a , double b)C、double add(double a , double b)D、int add(int a , int b)三、填空题(15空,每空2分)1、以下代码是用来计算100以内的素数的个数,请把相应的空填上。cpp view plaincopyprint?1. structprime_number_node2. 3. intprime_number;4. prime_number_node*next;5. ;6. 7. intcalc_prime_number()8. 9. prime_number_node*list_head=newprime_number_node();10. list_head-next=NULL;11. list_head-prime_number=2;12. prime_number_node*list_tail=list_head;13. for(intnumber=3;numberprime_number;20. if(remainder=0)21. 22. /1 23. 24. else25. 26. /2 27. 28. 29. if(remainder!=0)30. 31. prime_number_node*new_node_ptr=newprime_number_node();32. new_node_ptr-prime_number=number;33. new_node_ptr-next=NULL;34. list_tail-next=new_node_ptr;35. /3 36. 37. 38. intresult=0;39. while(list_head!=NULL)40. 41. result+;42. prime_number_node*temp_ptr=list_head;43. list_head=list_head-next;44. /4 45. 46. returnresult;47. struct prime_number_nodeint prime_number;prime_number_node* next;int calc_prime_number()prime_number_node* list_head = new prime_number_node();list_head-next = NULL;list_head-prime_number = 2;prime_number_node* list_tail = list_head;for(int number = 3 ; number prime_number;if(remainder = 0)/1else/2if(remainder != 0)prime_number_node* new_node_ptr = new prime_number_node(); new_node_ptr-prime_number = number;new_node_ptr-next = NULL;list_tail-next = new_node_ptr;/3int result = 0;while(list_head != NULL)result+;prime_number_node* temp_ptr = list_head;list_head = list_head-next;/4return result;1、2、3、4四行代码依次为:break;cur_node_ptr = cur_node_ptr-next;list_tail = list_tail-next;delete temp_ptr;2、已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A=5,10,20,15,25,30,集合B=5,15,35,25,完成计算后A=10,20,30。链表结点的结构类型定义如下:cpp view plaincopyprint?1. structnode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐馆入股协议合同范本新版5篇
- 安全法培训建议课件
- 2025-2030工业污水处理膜技术迭代方向与工业园区改造需求评估报告
- 个人复工申请书防疫
- 2025年福建省福州市罗源县招聘教师40人考前自测高频考点模拟试题及一套答案详解
- 2025-2030工业机器人应用领域拓展与投资回报周期报告
- 2025-2030工业大数据技术应用现状及未来发展策略研究报告
- 2025-2030工业大数据分析平台功能完善度评估报告
- 办理装修申请书
- 邵阳健康码申请书
- GB/T 18103-2022实木复合地板
- GB/T 29084-2012航天器接地要求
- GB 31644-2018食品安全国家标准复合调味料
- 隧道开挖施工讲解课件
- 第三单元名著导读《朝花夕拾之二十四孝图》-部编版语文七年级上册
- 最新人教版四年级英语上册课件(完美版)Review of Unit 5
- 掌骨骨折查房课件
- 大学食堂装饰装修方案
- 工资结清证明(模板)
- 矿山档案(台帐) 表格参照模板参考范本
- 航运管理实务整套课件汇总完整版电子教案(全)
评论
0/150
提交评论