文档介绍:****题 1 1-1 面向对象程序设计与面向过程程序设计相比有什么优点? 答: 优点有:(1) 写程序不再是从计算机的角度考虑问题, 而是站在人类思维的角度;(2 )程序的可拓展性比其他不是面向对象的好; (3 )能最大限度波爱护已有程序的代码。 1-2 简述 C++ 语言程序的特点。答: C++ 语言是在 C 语言的基础上发展而来,但它比 C 语言更容易学****和掌握, 它与 C 的最大区别是把函数放进了结构中, 并引入了新的关键词类。 C++ 完美的体现了面向对象的各种特性。 1-3 C++ 与C 语言的关系如何?它们的本质区别是什么? 答: C++ 语言是基于 C 语言的基础上发展起来的。它们的关系十分密切, 很多语句之间是通用的。它们的本质区别是 C 语言是面向过程的编程语言,而 C++ 是面向对象的编程语言。 1-3 组件编程有什么优点? 答: 组件编程的优点是它把对象技术应用于系统设计, 对面向对象的程序设计的实现过程做了进一步抽象。它强调真正的软件可重用性和高度的互操作性****题 2 2-1 结构与联合有何区别? 答: 联合是有别于以前任何一种数据类型的特殊数据类型, 它是多个成员的一个组合体, 但与结构体不同, 联合体的成员被分配在同一段内存空间中, 它们的开始地址相同, 使得同一段内存由不同的变量共享。 2-2 struct 和 class 区别是什么? 答: C++ 中, struct 和 class 基本是一直的, 唯一不同在于, struct 中缺省权限 public , clas s 缺省权限 private ,即在 struc t和 clas s 没有写 publi c 时, struct 默认为 public , class 默认为 private 。 2-3 什么是内联函数?内联函数的优点是什么? 答: C++ 提供一种提高效率的方法,即变异时将调用函数的代码直接嵌入到主函数中, 而不是将流程转出去, 这种嵌入到主函数的函数叫内联函数。使用内联函数可以节省运行时间,提高函数的执行效率。 2-4 什么是函数重载?编译系统如何区别同名函数的不同版本? 答: C++ 允许用同一函数名定义多个函数,这函数的参数个数和参数类型不同, 这就是函数的重载。在编译时, 编译系统会根据同名函数的参数不同等对名字做处理。 2-5 什么是“引用”?申明和使用“引用”要注意哪些? 答; 引用就是某一变量的一个别名,对引用的操作与对变量直接操作是完全一样。申明和使用引用要注意:(1 )不同有 NULL 引用,引用必须与合法的存储单元关联;(2 )引用被创建的同时,必须初始化; (3 )一旦引用被初始化,就不能改变引用关系,但指定对象其内容可以改变。 2—7 简述 C++ 函数 3 种调用的方式实现机制,特点及其实参,形参格式。答:在 C++ 中, 有按值传递, 地址传递, 引用传递 3 种的函数调用方式, 按值传递的过程为: 首先计算出实参表达式值, 给对应的形参变量分配一个存储空间, 该空间大小等于形参类型, 然后把求出的实参的值一一存入形参变量的存储空间中, 成为形参变量的初值。种种传递是把实参表达式的值传递给对应的形参变量, 使用这种方式, 调用函数不对实参进行操作。而抵制***是如果函数定义时将形参说明成指针,对这样的函数进行调用时需要指定地址形式的实参。 2-8 写出下面程序的输出 U nion { int i; char x[2]; }a; V oid main(0 { [0]=10; a. x[1]=1; printf( “%d ”,); } 答:输出是 266 2-10 写出下面程序的输出 struct A{ char t:4; C har k:4; Unsigned short i:8; U nsigned long m; };M ain(0 { struct A a; = ’b’; printf( “%x ”,); } 答:输出是 2****题 3 3-1 New delete 与 malloc free 的联系与区别是什么? 答; 在程序开发中的内存的动态分配与管理是一个让开发者头痛的问题,在 C 中,一般通过 malloc 和 free 来进行内存分配和回收,而在 C++ 中, new 和 delete 已经完全包含 malloc 和 free 的功能, 并且更为强大。它们的区别是 malloc 和 free 是库函数而不是运算符,不在编译器控制权限之内,而 new 和 delete 是运算符。 N ew 出来的指针式直接带类型信息,而 malloc 返回是 void 指针。 3-2 描述内存分配以及它们的区别。答:内存分配的“堆”和“栈”。主要区别是:(1 )管理方式和碎片问题: 对于栈