小驴整理のC++复习提纲.docx_第1页
小驴整理のC++复习提纲.docx_第2页
小驴整理のC++复习提纲.docx_第3页
小驴整理のC++复习提纲.docx_第4页
小驴整理のC++复习提纲.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

C+复习提纲小驴吐血整理试卷用英文描述,两个软工班和国际班使用同一套试卷。考试题型:选择题:24分填空题:18分判断题:10分改错题:10分输出结果:28分编程题:10分要求:一、根据复习提纲认真复习,凡是复习提纲中涉及的内容一定要掌握。二、卷面不能留空。所有地方应根据自己的理解尽量作答。三、本次考试不需要大量编写源代码,但是有大量源代码需要读懂,请留意。C+语言中有哪些基本数据类型?int float double char bool long 我真的只能想到这些了。你萌不会用到longlong的。在32位平台上,每种数据类型的长度是多少?Int 4Double 8Long 4Float 4Char 1Bool 1sizeof运算符的作用是什么?返回一个对象或者类型所占内存的大小。为什么说它是一种编译时运算符?怎样使用它?他的值是在编译时计算的。是在编译时分配的内存空间。使用嘛。sizeof(balabala); 好吧。就这样。怎样定义数组?Type namesize; 这样应该能看懂吧。怎样为数组各分量设置初始值(注意0值和非0值)?E a5 = 1,2,3,4,5; 分别是1、2、3、4、5int a5 = 1; 全都是1当数组为全局变量时。会默认有初始值全为零的。怎样计算一维数组或多维数组分量的地址?almn 中aijk 的地址应该是 a000的地址+(数组类型所占的类型空间*(l*i+j*m+k)应该是吧。我自己算的 ()/。C+程序运行时,内存被划分成哪几个区域?每个区域存放一些什么内容? 1、栈区(stack) 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。 2、堆区(heap) 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由系统释放 4、文字常量区 常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区存放函数体的二进制代码。【源自度娘。2333333】怎样定义函数?返回类型 函数名(参数类型 参数名,参数类型 参数名);不造英文怎么写。就这样吧。什么是函数原型? 函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口【百度百科】。好吧。说白了我上面打那个就是函数原型。据说英文是这个function prototype大家凑活看吧。什么事函数签名?百度上说就是函数声明。也就是貌似跟函数原型是一个东西。算了。渣渣表示相信百度。还有。陈刚错别字。差评!什么是函数的形参?什么是实参?它们有什么区别和联系? 定义函数时的参数就是形参。用函数时的参数就是实参。说白了就是这样。区别就在上面吧。联系。形参和实参的类型要一致或含有隐式转换关系。注意一下指针做参数的时候。好多。懒得写了。想问就直接问我吧。()/函数参数的传递方式有哪两种?有哪些注意事项?明明是三种嘛!传值、传址、传引用好吧。传引用我们好像没学。不管他。传值就是参数为非指针类型。传值就是参数为指针类型。 好吧。就这样。感觉没太多注意的。具体参见上一问最后一句。什么是内联函数?什么是递归函数?怎样使用它们?内联函数就是在函数前面加一个 inline。比如 inline void swap(int *a,int *b);就是你敲代码的时候虽然敲成了一个函数。但编译的时候会把函数展开放到你调用函数的位置。因为函数的调用是需要时间的。这就是一个以空间换时间的坐法。(关于浪费空间请参见运行时内存区域第五条。)(好吧。我相信你萌理解不了这点时间能干啥。()/ .)什么是函数的返回值?什么函数一定要写return语句?什么函数可以不写? 就是。返回的值嘛。(这个都要解释的话裸考C+真的大丈夫么!)返回类型不是void的一定要写返。回。值。的。哟。返回类型是void的不能写返。回。值。的。哟。麻痹我又忍不住卖萌了。忘了是C+还是C的标准了。在VS2013里如果非void函数存在无return的运行可能是不能通过编译的。VS2013好赞啊!函数的返回值实际上被传递到哪里?据说是一个返回地址。地址嘛。就是一块内存区域。不过据说程序猿不需要太研究这个。如果谁会汇编语言的话。就给我讲讲吧23333当返回一个类对象时意味着什么?函数返回引用时应注意什么问题?意味着创建一个临时对象吧。其实想想嘛。你返回int的时候。Int难道不是一个类么。对吧注意。能不返回引用尽量不返回引用吧。后来找到了这个。“Effective C+ 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用”所以还是尽量不返回引用吧。什么是枚举数据类型?怎样定义和使用枚举常量?简单地说。如果一个变量只有有限的很少的(很多的话打起来好麻烦啊)值。就可以定义为枚举类型。然后。还是用代码说话吧。enum Animaldonkey,fox,bird,doggeAnimal _animal;_animal = fox;if (_animal = fox)cout”dingdingdingdingdingdingding.” = X可以写成的另外一种等价形式是什么? 4个字节。(*p).x。C+标准库中的I/O类怎样处理空白字符的输入输出?空白字符会直接通过cout输出。使用输入流读入时如果以空白字符开头。会忽略开头的所有的空白字符。并一直读到下一个空白字符结束。什么是C风格的字符串?怎样计算字符串的长度?字符串与字符数组之间是什么关系?C风格字符串是以空字符null结束的字符数组如char chr = c,+,+ ,/0 和string str =“C+”(字符串会在尾部自动补上一个空字符)转义字符算作长度1 如“c+n”长度为6。n 都是转义字符(换行、反斜杠、单引号)字符数组是字符串字面值的类型实质。字符串是经过封装的字符数组。什么是作用域指示符?它有哪些典型的用法?/明明是运算符好么!哪里是指示符!就是”:“。真心找不到什么具体的定义了。典型的用法有:加在变量名前访问全局变量。表示类的成员函数、变量表示命名空间的函数、变量什么是强制类型转换?基本数据类型之间的强制转换遵循什么规则?强制类型转换是把表达式的运算结果强制转换成说明符所表示的类型浮点-整形 舍弃浮点数部分保留整数部分。Char-int ASCII值Int-char 保留最高8位。Int-short int 保留最低16位类有哪几种访问权限?分别代表什么含义?默认的访问权限是什么?在设计类时,成员的访问权限的设定有何讲究?Public protect private三种。Private 只能由该类中的函数和友元类中的函数访问。Protect 只能由该类中的函数、友元类中的函数和子类中的函数访问。Public 能由只能由该类中的函数、友元类中的函数、子类中的函数和该类的对象访问。默认访问权限是private。出于对程序安全性的考虑。尽量降低成员的访问权限。为什么类定义后一定要加分号?为防止语法歧义。如struct/class aBalabala;Function();可以被理解为返回结构体/类a的函数。而同时在C中返回值为int的函数是可以不加int的。所以也可以理解为function为返回int的函数。C+继承与C。为了与C的语法兼容就保持了这个要求。什么是类的构造函数?怎样定义构造函数?什么时候执行构造函数?什么是默认构造函数?它起什么作用?构造函数是用在创建对象是初始化对象的特殊方法。类名()Balabala;构造函数不能有返回值。且与类名相同。构造函数在实例化对象时执行。默认构造函数就是在没有显式提供初始化式时调用的构造函数。作用是为对象分配内存空间。什么是类的拷贝构造函数?在哪几种典型的情况下,会发生拷贝构造函数的调用?怎样定义拷贝构造函数?拷贝构造函数是一种特殊的构造函数。用于完成一些基于同一类的对象的构建及初始化。使用拷贝构造函数的三种典型情况。1) 一个对象作为函数参数,以值传递的方式传入函数体;2) 一个对象作为函数返回值,以值传递的方式从函数返回;3) 一个对象用于给另外一个对象进行初始化(常称为赋值初始化);Eg. _Class(const _Class& c)A = c.A;什么是构造函数的初始化列表?在什么情况下必须使用初始化列表? 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表Eg.class apublic:int b,c;a(int _b,_c): b(_b),c(_c)成员常量、引用类型、没有默认构造函数的类类型必须使用初始化列表。怎样从基本数据类型转换成类类型?怎样从类类型转换成基本数据类型?在类类型中使用如A(const int &)的构造函数可以完成隐式转换。在类类型中使用如explicit A(const int &)的构造函数可以完成隐式转换。什么是友元?友元有哪两种具体形式?怎样定义友元?友元是一种定义在类外部的普通函数或类。他不是成员函数但可以访问类中的私有成员。友元有友元函数和友元类两种具体形式。Eg.friend void function();什么是运算符重载?有哪两种实现运算符重载的方法?掌握常用的运算符如+、-、*、/、和类型转换运算符重载的方法。运算符重载是对已有的运算符进行重新定义。赋予另一种功能。以适应不同的数据类型。运算符重载主要三种:通过普通函数重载、通过友元函数重载、通过类成员函数重载。一般不通过普通函数重载。具体实现参见上机实验作业1.2。生成的对象可以放在哪些存储区域内?不同存储区域内的对象的生成方式有什么不同? new 生成的对象放在堆中。直接定义的对象放在栈中。怎样动态申请空间和释放空间? delete与delete的区别是什么?如果用new在构造函数中申请空间,一般在什么地方用delete释放空间?主要方式为使用指针。详见C+上机实验作业5.2。delete无法回收数组的空间。如数组p10。使用delete p 的结果是只回收了p0也就是p的第一个对象。而使用delete p10则会回收p中所有对象的内存空间。在析。构。函。数。里。哟。什么是函数模板?什么是模板函数?怎样定义函数模板?什么是模板参数推导?什么是函数模板显式实例化函数模板是。建立一个通用函数。其函数类型和形参类型不指定。用一个虚拟的类型来代替。这个通用函数就是函数模板。模板函数是编译器生成的函数模板的重载。Eg.template ;T max(T a,T b)if (ab)return a;elsereturn b;就是调用函数模板是编译器会尝试推导预期的模板参数。什么是类模板?什么是模板类?怎样定义类模板?类模板是对一些仅仅成员数据类型不同给的类的抽象。模板类是类模板实例化的产物。Eg.Template Class aT b;a(T _b):b(_b);什么是虚函数?虚函数应该怎样调用才能实现动态联编?虚函数是在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。通过指针或引用调用成员函数。渣渣表示这个我也没看懂。仅仅抄袭度娘。各位学霸大神们加油!有哪些常用的输入、输

温馨提示

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

评论

0/150

提交评论