Autodesk的C++笔试题,看你能答出多少

zyhtz 2007-07-03 04:41:09
太多了,详细请参考www.findgs.com
一、技术题

1. 在类的普通成员函数中调用虚函数,情况是怎么样的?(对象、引用、指针)

2. 关于成员变量初始化顺序,几个有依赖关系的成员变量要初始化,让写出构造函数。

3. 写一个双链表。

4. 写个is-a和has-a。

5. struct vs. class.

6. 称8个小球的问题

7. stl 里面vector的实现(内部空间的申请与分配)

8. struct /class的区别

9. 为什么要用struct //成员的默认属性不同,用struct的话,主要是作为数据的集合。

10. 怎样使一个class不能被实例化 //1,构造函数私有化,2,抽象类

11. 私有继承和public继承的区别。 //is-a has-a

12. void *p的问题 //不能++

13. 引用和指针的区别与联系。引用是否可以更改

14. windows编程基础,线程与进程的区别

15. com+是否熟悉

16. 简述一下hash算法

17. 一个32位的数据,怎样找到最左边的一个1?// n位的2进制数据怎样找罪左边的1,如果是在最左位,这个数是负数,否则的话,左移一位,看是否变成负数,这是O(n)的算法,O(n/2)的算法:二分方式查找

18. 一个4*4的格子,填入1~15 然后给个目标状态,怎样去搜索。

19. 给你100万个数据,数据的值在0~65535之间 用最快的速度排序

20. 如果我们的一个软件产品,用户回复说:运行速度很慢,你怎么处理?

21. 八皇后问题,详述解法

22. kmp快速匹配算法 ---不算轻松的搞定

23. 无向图中两点间最短路问题 ---伟大的迪杰克斯拉算法

24. 空间中任意给两个向量,求角平分线

25. 什么是平衡树
26. 哈夫曼编码问题

27. 有向图求环

28. .给n个点,求凸包问题

29. 四则运算(给一个前缀表达式,然后求解;给一个中缀表达式)

30. STL中container有哪些?

31. map中的数据存储方式是什么?

32. map和hashmap有什么区别?

33. hashmap是标准库中的吗?

34. vector中的erase方法跟algorithm的remove有什么区别?

35. object是什么?

36. C++中如何阻止一个类被实例化?

37. 一般在什么时候构造函数被声明成private呢?//比如要阻止编译器生成默认的copy constructor

38. 什么时候编译器会生成默认的copy constructor呢?

39. 如果你已经写了一个构造函数,编译器还会生成copy constructor吗?

40. 为什么说如果一个类作为基类,则它的析构函数要声明成virtual的?

41. inline的函数和#define有什么区别?什么时候会真的被inline,什么时候不会呢?

42. 如果把一个类的成员函数写在类的声明中是什么意思?

43. public继承和private继承有什么架构上的区别?//public是is-a的关系,private是has-a的关系

44. 在多继承的时候,如果一个类继承同时继承自class A和class B,而class A和B中都有一个函数叫foo(),如何明确的在子类中指出override哪个父类的foo()?

45. 虚拟继承的语法是什么?

46. 部分模版特例化和全部模版特例化有什么区别?

47. 编一个函数,使一个单项链表转置。

48. 拆解一个整数,比如4,可以拆解成4=3+1;4=2+2;4=2+1+1;4=1+1+1+1

49. 不用库函数,实现strcpy或者memcpy等函数

50. 内联函数的作用和缺点

51. 指针和引用的区别

52. 友元的意义

53. 虚函数的意义

54. Overload, Overwrite, Override 各自的特点和意义

55. 头文件中的ifndef/define/endif 干什么用?//防止该头文件被重复引用。

56. 2#i nclude <filename.h> 和#i nclude “filename.h” 有什么区别?

57. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?//C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字与C 语言的不同。C++提供了C 连接交换指定符号extern“C”来解决名字匹配问题
58. 一个类有基类、内部有一个其他类的成员对象,构造函数的执行顺序是怎样的?//先执行基类的(如果基类当中有虚基类,要先执行虚基类的,其他基类则按照声明派生类时的顺序依次执行),再执行成员对象的,最后执行自己的。

59. 请描述一个你熟悉的设计模式

60. 在UML 中,聚合(aggregation)和组合(composition)有什么区别?

61. C#和C++除了语法上的差别以外,有什么不同的地方?

(1) c#有垃圾自动回收机制,程序员不用担心对象的回收。(2)c#严禁使用指针,只能处理对象。如果希望使用指针,则仅可在unsafe 程序块中能使用指针。(3)c#只能单继承。(4)必须通过类名访问静态成员。不能像C++中那样,通过对象访问静态成员。(5)在子类中覆盖父类的虚函数时必须用关键字override,覆盖父类的方法要用关键字new

62. New delete与malloc free 的区别

63. #define DOUBLE(x) x+x,i = 5*DOUBLE(10);i是多少?正确的声明是什么?

64. 有哪几种情况只能用intialization list 而不能用assignment?

当类中含有const、reference 成员变量;基类的构造函数都需要参数;类中含有其他类的成员对象,而该类的构造函数都需要参数。

65. C++是不是类型安全的?//不是。两个不同类型的指针之间可以强制转换。C#是类型安全的。

66. main 函数执行以前,还会执行什么代码?//全局对象的构造函数会在main 函数之前执行。

67. 描述内存分配方式以及它们的区别。//(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

68. 比较一下C++中static_cast 和 dynamic_cast 的区别。

69. 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。

70. 已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,要求用递归方法进行。

太多了,详细请参考www.findgs.com
...全文
5180 79 打赏 收藏 转发到动态 举报
写回复
用AI写文章
79 条回复
切换为时间正序
请发表友善的回复…
发表回复
bytetao 2007-08-06
  • 打赏
  • 举报
回复
mark
haohuilai 2007-08-06
  • 打赏
  • 举报
回复
mark
wangyi010704327 2007-08-06
  • 打赏
  • 举报
回复
1.根据this指针,查看虚表,调用虚函数,就是一般的多态;
2.声明的顺序,如果有依赖关系,要特别注意声明的顺序;
3.略,STL中的双链表是一个环,额外附加一个接点连接头尾;
4.公有继承和私有继承的问题;
5.默认访问权限不同,struct公有,class私有;
6.略;
7.类模板的使用,注意默认初始大小以及重新分配时增长大小,还有它的一些
特定函数要实现,预留容量和尺寸;
8.默认访问权限不同,struct公有,class私有;
9.成员的默认属性不同,用struct的话,主要是作为数据的集合。
10.1,构造函数私有化,2,抽象类;其实还可以延伸到怎么构造在栈等;
11.is-a has-a
12. 只能做有限的操作,所有与具体类型有关的操作都不能够做,
比如不能++,因为不知道每次前进多少;
13.有时引用可以看成是typename * const p, 比较简单,不说了;
14. 不说了
15. 不熟悉;
16. 一次探测,平方探测,双hash,注意它主要负责快速查找元素,其内部元素
是没有排序的;可以与map,set对比
17.略;
18.略;
19.开始用快速排序,当元素个数小于16后改为插入排序,为了防止快排退化,可以
设置一个阀值,当大于此值后改为堆排序(哈哈,借鉴STL中sort())
20.查出问题瓶颈,重点解决(牢记80,20法则);
21.略;
22.kmp不知道是什么;
23.迪杰克斯拉,还看见过一个K什么的,忘了;
24.略;
25.平均操作O(log(n));AVL,红黑等;
26.最常用的深度最小;
27.略;
28.略;
29.略;
30.vector,list,stack,deque,queue,map,set,hashmap,hashset
31.红黑树
32.实现方式不同,map排序,hashmap没排序;
33.不是
34.erase定制的,remove是泛化了的,可能效率差点(这个太细了)
35.对象
36.汗,重复了
37.阻止编译器生成默认的copy constructor
38."需要"的时候,有的时候编译器是不合成的,尽管有显示的拷贝赋值
式子,什么时候需要呢,当含有成员,而该成员有编译器合成的或手工写
的copy constructor时候.
....................................
....................................
SJcinux 2007-08-06
  • 打赏
  • 举报
回复
English is weak!
Go on studying english
ajou 2007-07-26
  • 打赏
  • 举报
回复
mark
roboo007 2007-07-23
  • 打赏
  • 举报
回复
有人出份答案吗?

期待高手回答
ctsstccts 2007-07-22
  • 打赏
  • 举报
回复
autodesk,我的梦!!!
wengch 2007-07-22
  • 打赏
  • 举报
回复
多是基础知识
tmhlcwp 2007-07-21
  • 打赏
  • 举报
回复
MARK
天一 2007-07-18
  • 打赏
  • 举报
回复
mark
vcnewer 2007-07-18
  • 打赏
  • 举报
回复
ghao0 2007-07-18
  • 打赏
  • 举报
回复
上面我是乱盖的,
不过autodesk的产品好像有 ACAD和3DMAX等图形处理软件
ghao0 2007-07-18
  • 打赏
  • 举报
回复
CAD知道吗?
ACAD = autodesk CAD
做鸡真好吃 2007-07-18
  • 打赏
  • 举报
回复
再问,autodesk是什么?
做鸡真好吃 2007-07-18
  • 打赏
  • 举报
回复
需要答案~
唐石山 2007-07-18
  • 打赏
  • 举报
回复
mark it
晕了晕了 2007-07-18
  • 打赏
  • 举报
回复
mark
Y神圣 2007-07-17
  • 打赏
  • 举报
回复
mark
sjjf 2007-07-17
  • 打赏
  • 举报
回复
这么多题目阿?
belly78 2007-07-17
  • 打赏
  • 举报
回复
....GOD
加载更多回复(59)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧