C++简答题复习.doc
《C++简答题复习.doc》由会员分享,可在线阅读,更多相关《C++简答题复习.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 概述1、简述C+的发展简况。答:C+语言是从C语言发展而来的,C 语言是一种编译型的面向过程的程序设计语言,它最早是从英国剑桥大学一个名叫Martin Richards的学者在60年代开发的BCPL( 即Basic Combind Programming Language)语言的基础之上发展而来的。BCPL语言是Martin Richards在开发系统软件时,作为描述性语言而使用的一种程序设计语言。1970年,美国Bell实验室的 Ken?Thompson在软件开发工作中,继承和发展了BCPL语言的许多特点,进一步提出了一种叫“B语言”的语言。随后,在美国Bell实验室实现的更新型的小
2、型机PDP-11的UNIX操作系统的研发工作中,于1972年推出了一种新型的程序语言 C语言,该语言一经推出就在国际上广泛流行。20世纪80年代,由于软件工程的需要,面向对象程序设计方法在软件设计领域引起了普遍的重视,AT&T Bell实验室的计算机科学家Bjarne Stroustrup结合流行的C语言的所有成分,开发出了面向对象的程序设计语言C+。2、C+语言有那些主要特点?答: C + 语言具有以下主要特点: (1) C+语言是一个中级的程序设计语言。 (2) C+是一个结构化的程序设计语言 。(3) C+是一种面向对象的程序设计语言。(4) C+语言是一个功能齐全的编程语言。(5) C
3、+语言是一种移植性很好的编程语言 。3、编写的C+语言的程序主要由那些基本组成部分构成?答:C+语言的程序主要由以下几个基本组成部分构成:(1) 预处理命令:C+语言提供了三类预处理命令:宏定义命令(define)、文件包含命令(include)、条件编译命令(ifelseendif),(2) 输入/输出语句(Input/Output语句,简称I/O语句):C+语言的程序中总是少不了输入和输出的语句,实现与程序内部的信息交流。(3) 函数(Function):C+的程序是由若干个文件组成的,每个文件又是由若干个函数组成,因此,可以认为C+的程序就是函数串,即由若干个函数组成,函数与函数之间是相
4、对的,并且是并行的,函数之间可以调用。(4) 语句(Statement):语句是组成程序的基本单元。每个函数都是由若干条语句组成的。(5) 变量(Variable):变量是通过说明语句来定义的,多数程序都需要说明变量和使用变量。(6)其他:除了以上讲述的5个部分以外,还有其他组成部分。例如,符号常量和注释信息等也是程序的一部分。C+程序中尽量把有些常量定义为符号常量,而在C+的程序中使用符号常量,该符号常量代表着某个确定的常量值。4、C+语言编写的程序代码有那些格式特点?答:C+语言编写的源代码程序的格式具有以下特点: (1)C+语言的关键字是小写字符构成的,习惯上也使用小写字母书写程序;(2
5、)大多数语句结尾必须用 ; 作为终止符, 否则C+不认为该语句的结束;(3)每个程序必须有一个且只能有一个主函数,其名称为main()的函数;(4)每个函数的函数体 (包括主函数和每个子函数) 必须用一对花括号和括起来;(5)一个较完整的程序文件大致含有: 包括文件程序段(一组#include语句)、函数说明部分、全局变量说明、主函数和若干个子函数组成。在主函数和子函数中又包括局部变量定义、库函数调用、流程控制语句、用户函数的调用语句等;(6)注释部分包含在/*和*/之间或/之后, 在编译时它将被C+编译器忽略; (7)像其它一些语言一样, C+的变量在使用之前必须先说明其数据类型, 未经说明
6、的变量不能使用。说明变量类型应在可执行语句前面, 如上例main()函数中的第一条语句就是变量说明语句, 它必须放在所用的执行语句前面。 (8)在C+语言中, 大小写字母是有区别的, 相同字母的大小写代表不同的变量; 5、 编写C+语言程序,在书写格式上应该遵从哪些基本原则?答:为了使程序结构更加清楚、易于阅读、维护和修改,在书写格式上应该遵从以下基本原则:(1)一般一行只写一条语句;(2)一条复杂语句采用多行,如分支语句和循环语句;(3)遇到嵌套语句应向后缩进, 必要时对程序增加适当的注释行。 6、什么叫关键字?什么叫标识符?答:关键字(Keyword)也叫保留字(Reserved Word
7、)。所谓关键字就是指已被C+语言本身使用, 不能作为其它用途使用的单词。标识符是用户为程序中各种需要命名的元素所起的名称。第二章 数据与运算1、什么数据 ?什么叫数据类型 ?答:数据是指能输入到计算机中,并能被计算机处理和加工的对象。数据类型是对系统中实体的一种抽象,它描述了某种实体的基本特性,不同类型数据的表示、所占存储空间的大小以及定义在其上的操作是不同的。2、C+语言有哪些基本数据类型?其值域是什么?类型名称长度(字节)值 域char1-128127或0255(使用/J编译选项)signed char1-128127unsigned char10255bool1非零(true), 零(f
8、alse)short(signed short)2-3276832767unsigned short20-65535int( signed int)4-21474836482147483647unisnged int404294967295long(signed long)4-21474836482147483647unisnged long404294967295float41.175494351e-383.402823466e+38(正数)double82.2250738585072014e-3081.7976931348623158e+308(正数)3、C+语言有哪些常量?请给出实例。答
9、:C+语言共有六种常量,分别如下:(1)整型常量整型常量通常简称为整数。C+语言的整数可以是十进制数、八进制数和十六进制数。例如,十进制的数值3356可以有下列三种不同的表示形式:十进制数 3356;八进制数 06434 ;十六进制数 0xd1c(2)浮点常量浮点常量又称为实数,一般含有小数部分。例如,-0.6523, .08765, 1234.0, 9.9999, 98., 5.544, 2355.876554都是一般形式的实数。(3)字符常量所谓字符常量是指一个单一字符, 其表示形式是由两个单引号包括的一个字符。例如, A, a, Q, 0, 9, +, :, ?, $ 都是字符常量。(4
10、)字符串常量所谓字符串常量是指用双引号括起来的一串字符来表示的数据下面给出几个字符串常量的例子:Hello!, A Graduate Student, 9, Bill Gates, 李四北京海淀学院路29号, 姓名:, guanjh123, (5)标识常量所谓标识常量是指用标识符代替常量使用的一种常量, 其名称通常是一个标识符。标识常量的一般说明形式为:#define 例如,#define MAX 50#define PI 3.1415926#define ERROR -1其中,MAX、PI以及ERROR都是标识常量, 它们代替的常量分别是50、3.1415926、和-1 。(6)换码序列所谓
11、换码序列是用反斜线后面跟有一个字符或者一个或不超过3个的数字来表示的控制代码的换码序列如下表所示, 它们的表示形式是在反斜线后面跟有一个小写英文字母。例如,a,, , 056, x05a4、 什么叫说明语句?怎样说明的变量为局部变量?怎样说明的变量为全局变量?答:一般来说,变量在使用以前,必须说明才能使用。用来说明已有类型的变量的语句称为变量说明语句。变量说明的一般形式是: ;在上面变量说明的式子里,之后有一个分号“;”意味着它是一个语句,该语句我们通常称为变量的说明语句。在函数体或程序段内说明的变量只能在定义它的函数体内或程序段内可以访问,这种变量通常称为局部变量;在函数体外说明的变量可以在
12、说明它的文件中所有函数里或程序段中访问,也可以通过extern被其它文件中的函数或程序段访问,这种变量通常称为全局变量。5、说明变量时有哪些存储类型?其含义是什么?答:C+语言支持四种存储类型:auto, register, static和extern。(1) auto称为自动型也称为堆栈型,用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。(2) register称为寄存器型,使用register关键词说明的变量主要目的是想将所说明的变量放入CPU的寄存器存储空间中,这样可以加快程序的运行速度。(3) static称为静态存
13、储类型,在C+语言中,既可以在函数体内,也可在函数体外说明static 存储类型的变量。在函数体内说明的static 存储类型的变量也是一种局部变量,与auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行静态变量就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。(4) extern称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。这种变量的
14、作用域是所有的函数和程序段,一般用于在函数之间传递数据。6、什么叫常量化变量?其作用是什么?所谓常量化变量是指将一个变量说明为一个常量。作用:当一个变量被说明为常量时,那么该变量在程序执行过程中其值是不能改变的。也就是说,不能再向常量化的变量再赋值。因此,常量化变量在说明时就必须赋给一个数值。常量化的变量基本上和常量一样。7、什么叫数组?说说short型的数组与char型的数组的异同点。答:所谓数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。数组中各元素的数据类型要求相同。数组可以是一维的,也可以是多维的。char型的数组由包含ASCII字符集中的字符(英文字母、数
15、字、标点符号以及某些特殊符号)的整数类型组成的数组。short型的数组是由short数据类型组成的数组。类型short (或short int)是一种短整数类型,它占用字节的长度大于类型char, 小于或等于类型int。8、什么叫表达式?什么叫表达式语句?答:所谓表达式是指由运算符、运算量和标点符号组成的有效序列,其目的是用来说明一个计算过程。表达式可以独立形成语句,该语句称为表达式语句9、什么叫左值?什么叫右值?答:所谓左值是指能够出现在赋值表达式左边的表达式。所谓右值是指只能出现在赋值表达式的右边的数值。第四章 指针1、什么叫内存单元的地址?什么叫指针?答:在计算机内部的存储器(简称内存)
16、中,每一个字节单元,都有一个编号,称为地址。内存单元的编号,称为内存单元的地址。在C+语言中,内存单元的地址称为指针。2、什么叫指针变量?什么叫指针的目标?答:专门用来存放地址的变量,称为指针变量(pointer variable)。指针指向的内存区域中的数据称为指针的目标。3、什么叫空指针?其作用是什么?答:所谓空指针就是指针变量的内容为零的状态。4、指针运算的实质是什么?答:指针运算是以指针变量所存放的地址量作为运算量而进行的运算。因此,指针运算的实质就是地址的计算。5、指针有哪些运算?请枚举这些计算。答:指针运算的种类是有限的,它只能进行算术运算、关系运算和赋值运算。6、什么叫数组的指针
17、?什么叫指针数组的指针?答:在C+语言中,数组的指针是指数组在内存中的起始地址。指针变量数组和普通的一般变量数组一样,编译系统在处理指针数组说明时, 按照指定的存储类型为它在内存中分配一定的连续存储空间,这时指针数组名就表示该指针数组的存储首地址,即指针数组的指针。7、什么叫二级指针变量?什么叫多级指针变量?答:对于指向处理数据的指针变量称为一级指针变量,简称一级指针。而把指向一级指针变量的指针变量称为二级指针变量,简称二级指针。我们把一个指向指针变量的指针变量,称为多级指针变量。8、new运算符的作用是什么?delete运算符的作用是什么?答:运算符new主要用于分配内存,并获得分配到的内存
18、的首地址,通常需要将其赋给相应数据类型的指针。如果程序中不再需要由new分配的内存空间时,用运算符delete释放这些空间。9、什么叫引用? 答:所谓引用是指给一个变量或一个数组起一个别名。使用引用进行运算的实质是操作原来的变量或数组本身的另一个使用名称。10、const型指针有几种形式?其作用是什么?答:const型指针主要有下面三种形式:( a ) 常量化指针目标表达式 :常量化指针目标是限制通过指针改变其目标的数值。( b ) 常量化指针变量 :常量化指针变量,使得的地址值不能修改。但可以通过*可以修改指针所指向变量的数值。 ( c ) 常量化指针变量及其目标表达式:常量化指针变量及其目
19、标表达式,使得既不可以修改的地址,也不可以通过*修改指针所指向变量的值。 11、什么叫void型指针?其作用是什么?void型的指针变量是一种不确定数据类型的指针变量,它可以通过强制类型转换让该变量指向任何数据类型的变量或数组。第五章 函数与宏1、 请给出函数概念的基本描述。答:函数就是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。2、 什么叫函数原型?答:函数原型是指由函数定义中抽取出来的能代表函数应用特征的部分,包括函数的数据类型、函数名称、形式参数说明。3、 什么叫函数的实参?什么叫函数的形参?答:实参是在调用函数过程中传递给被调用函数的参数;形参是被调用函
20、数接受调用函数传递过来的数据的参数。4、 请说出函数参数为一般变量的复制传递方式、地址传递方式和引用方式的异同点。答:复制传递方式是实参的数据拷贝给了形参变量,实参和形参是具有相同数据类型但存储空间是不同的两组空间。在复制传递方式下,被调用函数里对形参的操作不能改变实参的内容。地址传递方式和复制传递方式正好相反,用函数的参数本身传给被调用函数。被调用函数中对形参的操作将直接改变实参的值。调用函数将实参的地址传送给被调用函数,被调用函数对该地址的目标操作即对实参本身的操作。按地址传递,实参为变量的地址,而形参为同类型的指针。引用方式和地址传递方式的效果一样,但引用更直接、更方便。按引用传递,实参
21、为变量,形参为同类型的引用。采用引用方式实参和形参使用的是相同的内存空间,只是名称不同而已。5、 数组在函数间传递形式有哪些?并给以比较和解释。答:数组在函数间的传递形式有复制传递方式、地址传递方式、引用方式和全局数组传递方式。函数与函数之间数组的复制传递方式是调用函数将实参数组传递给被调用函数形参,形参接收是实参的地址。函数与函数之间数组的地址传递方式是将调用函数中的实参数组的起始地址传递给被调用函数的指针变量形参。被调用函数中对形参地址的目标操作,相当于对实参本身的操作,将直接改变实参数组的值。地址传递方式,实参应该为数组的指针,而形参应为同类型的指针变量。另外,数组的地址传递方式不仅要把
22、实参数组的指针作为参数传递给函数,同时还需要传递数组的长度。与引用方式不同的是被调用函数的形参应声明为数组同类型的指针变量。函数与函数之间数组的引用传递方式需将被调用函数的形参说明为数组的引用形式。在被调用函数中,对形参进行操作就是对实参数组的直接操作。数组的引用方式和地址传递方式的作用效果基本一样,但引用更直接、更方便。按引用方式传递数组,形参为实参同类型的数组引用。但引用数组名不是指针变量,不能作为左值。6、 什么叫函数指针?什么叫指针函数?答:函数指针是一个函数执行代码的起始地址。指针函数是指一个函数的返回值为地址量的函数。7、 什么叫内联函数?答:内联函数是类声明体里定义的函数或在类的
23、实现部分定义的、其前用inline修饰的函数;它将简单的函数(其内不能有循环语句和开关语句)内嵌到调用他的程序代码中,这样做的目的是为了节省了调用函数的开销。8、 什么叫函数重载?答:函数重载是指使用一个函数名称定义了多个完成不同功能的函数,这些函数的输入参数类型或个数不一样,相应的函数类型也有可能改变。9、 什么叫预编译语句?在C+程序的源代码中可以包括各种编译用的命令语句,这些语句都称为预编译语句。10、 什么叫宏?谈谈带参数宏与内联函数之间的异同点.答:宏是指定义一个标识符来代替一个字符序列。内联函数和宏都是在程序出现的地方展开,是在调用该函数的程序处或应用宏处将它展开。但内联函数可以多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 答题 复习
限制150内