C++试卷1.doc_第1页
C++试卷1.doc_第2页
C++试卷1.doc_第3页
C++试卷1.doc_第4页
C++试卷1.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

试卷1一、单项选择1、C+程序的执行步骤:用C+语言编写 “源程序”(source program)。C+的源程序是以.cpp作为后缀的(cpp是c plus plus 的缩写)。对源程序进行编译。为了使计算机能执行高级语言源程序,必须先用一种称为“编译器(complier)”的软件(也称编译程序或编译系统),把源程序翻译成二进制形式的“目标程序(object program)”。编译是以源程序文件为单位分别编译的。目标程序一般以.obj或.o作为后缀(object 的缩写)。编译的作用是对源程序进行词法检查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示所有的编译出错信息。一般编译系统给出的出错信息分为两种:一种是错误(error);一种是警告(warning)。用系统提供的“连接程序(linker)”将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,其后缀是.exe,可以直接执行。运行程序 运行最终形成的可执行的二进制文件(.exe文件),得到运行结果。分析运行结果如果运行结果不正确,应检查程序或算法是否有问题。2、所谓标识符,实际上是一个字符序列,常用它来标记常量、变量、数据类型、函数及程序的名字等。在C+中标识符必须符合以下规定:(1) 以字母或下划线开头 (2) 后跟由字母、数字、下划线组成的字符序列(也可以是空串) (3) 大小写字母含义不同,例如Name和name是不同的标识符;(4) 标识符的长度根据机器的要求而改变,但是不要太长或者太短;(5) 定义标识符时,尽量做到“见名知义”,以增加程序的可读性。C+中的标识符可分为三类:(1) 关键字(共48个,见书P8)。关键字有专门的含义,不得赋予其他含义。 (2) 特定字(7个)。特定字是具有特定含义的标识符,它们主要用在C+的预处理程序中,因此人们习惯上也把它们看成是关键字,不作一般标识符使用。它们是:define include under ifdef ifndef endif line。(3) 一般标识符。这是用户自定义的标识符,通常根据标志内容的含义用英文或汉语拼音来表示,也可以按习惯符号来表示。3、赋值运算符和所有符合赋值运算符的优先级相同,结合性为“自右向左”。为便于记忆,可以这样理解: a+= b (其中a为变量,b为表达式) a+= b (将有下划线的“a+”移到“=”右侧) a = a + b (在“=”左侧补上变量名a) 注意,如果b是包含若干项的表达式,则相当于它有括号。如 x %= y+3 x %= (y+3) x = x%(y+3)(不要错认为x=x%y+3)所以a+=a*a 等价于 a=a+(a*a)=12+(12*12)=1564、逗号表达式的一般形式为:表达式1,表达式逗号2; 表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,表达式n它的值为表达式n的值。(a,b)实际上是一个逗号表达式,整个逗号表达式的值是b,所以cout0&x0且x=10时,结果为真,而当x10时结果为假。A 等价于x10时结果为真 7、for(表达式1;表达式2;表达式3) 语句 它的执行过程如下:(1) 先求解表达式1。 (2) 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。(3) 求解表达式3。 (4) 转回上面第(2)步骤继续执行。(5) 循环结束,执行for语句下面的一个语句。本题中:循环初值i=0,终值i=n-1 所以共执行n次8、while语句:先判断条件表达式,后执行语句。do-while语句:先执行一次指定的语句(即循环体),然后判别条件表达式。9、一维数组的定义方式:数据类型 数组名常量表达式; 其中:数组名定名规则和变量名相同,遵循标识符命名规则,方括号括中必须是常量表达式,不能包含变量。常量表达式的值表示元素的个数,即数组长度。最小下标是0,最大下标是“常量表达式的结果-1”。相同类型的数组可在同一语句行中定义,数组之间用逗号分隔符分开定义数组时对数组进行初始化,格式:数据类型 数组名下标=常量表达式表其中: 可以对数组中的一部分元素赋初值,对于整型数组而言,未赋值的部分是0。对于字符数组而言,未赋值的部分是0。 当给全部数组元素赋初值时,可不指定数组长度,但是方括号 不能省。 若定义数组时不赋初值,则必须指定数组长度。 不允许数组定义的元素个数少于初值个数。10、一维字符数组的定义格式:char 数组名 数组长度;一维字符数组的初始化有两种方法:方法 ,可以在定义的同时:char c10=I, ,a,m,h,a,p,p,y;注意:如果花括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符0。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度,此时字符数组中没有0。方法,在定义的同时用字符串常量来初始化字符数组:char str=I am happy; 或 char str=I am happy;此时str中最后一个元素为0。11、一个C+程序文件可以包含若干个函数,无论把一个程序划分为多少个程序模块,至少也要编写一个main函数。程序总是从main函数开始执行的,是程序执行的入口。在程序运行过程中,由主函数调用其他函数,其他函数也可以互相调用。函数有返回值时,凡是允许表达式出现的地方都可以调用该函数。函数不需要返回值时,函数的返回值类型可以说明为void型,它表示“无类型”或“空类型”。无返回值的函数不需要使用return语句。一个C+程序由若干个函数组成,这些函数可以都在一个程序文件中,也可以分散在多个程序文件中。根据函数能否被其它源文件调用,可将函数分为:内部函数和外部函数。只能被本文件中的其它函数调用的函数称为内部函数(静态函数),定义内部函数需要在函数定义前面冠以static说明。在函数定义的最左端冠以extern说明符的函数,称为外部函数,表示此函数可被其他文件调用。12、C+不允许函数嵌套定义,但允许函数的嵌套调用。在一个函数中容许使用一个或多个return语句,执行到哪一个return语句,哪一个return语句起作用。此外,当同时出现多个return语句时,程序执行到第一个return语句就立即返回调用函数。函数内部定义的变量是局部变量,不同函数中可以使用同名的变量,它们代表不同的对象,互不干扰。13、C+允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同。这就是函数的重载(function overloading)。即对一个函数名重新赋予它新的含义,使一个函数名可以多用。14、所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。15、函数原型声明的两种方式: 函数类型 函数名(参数类型1,参数类型2); 函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2);对无参函数的声明,参数类型可用void来表示;无返回值的函数,函数类型用void表示。S16、goodp017、实参和形参均由数组名充当,传递的是数组的起始地址。18、一般情况下,在函数调用时形参从实参那里取得值,因此实参的个数应与形参相同。有时多次调用同一函数时用同样的实参,C+提供简单的处理办法,给形参一个默认值,这样形参就不必一定要从实参取值了。如果有多个形参,可以使每个形参有一个默认值,也可以只对一部分形参指定默认值,另一部分形参不指定默认值。实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数必须放在形参表列中的最右端,否则出错。当一个函数既有定义又有声明时(函数的定义在函数调用之后),形参的默认值必须在声明中指定,而不能放在定义中指定。只有当函数没有声明时,才可在函数定义中指定形参的默认值(函数的定义在函数调用之前)。19、字符串连接函数:strcat(字符数组名1,字符数组名2或字符串常量)功能:将字符数组2或字符串常量的内容连接到字符数组1的后面,并在最后加入一个0,且将结果存放在字符数组1中,函数调用后的返回值,就是第一个字符数组的地址。字符串复制函数:strcpy(字符数组名1,字符数组名2或字符串常量)功能:将字符数组2或字符串常量的内容复制到第一个参数所指的字符数组中(将字符数组1中的相应字符覆盖)。字符串比较函数:strcmp(字符串名1,字符串名2)注意:字符串名可以是字符数组名或字符串常量。功能:将两个字符串的对应字符自左至右逐个进行比较(按ASCII码制大小),直到出现不同字符或遇到0字符为止 。比较结果由函数值带回。当字符串中对应字符全部相等,且同时遇到0字符时,才认为两个字符串相等,否则以第一个不相同的字符的比较结果作为整个字符串的比较结果。(1) 如果字符串1=字符串2,函数值为0 (2) 如果字符串1字符串2,函数值为一正整数 (3) 如果字符串1字符串2,函数值为一负整数 字符串长度函数:strlen(字符数组或字符串)功能:测试字符数组中字符串的长度,不包括0在内。20、宏定义属于预处理命令。在对源程序进行正式编译之前进行。21、指针变量的定义的一般形式:基类型 *指针变量名列表;不能用一个整数给一个指针变量赋初值,而需要使用取地址运算符“&”,将被指向的变量的地址赋值给指针变量。指针变量取地址的一般形式为:指针变量名=&被指向的变量名22、对于指向数组的指针变量,在定义指针变量时可以给它赋初值 : int *p=&a0; 或 int *p=a; 都表示将指针变量p指向数组中的第一个元素。数组名a代表数组的首地址。如果p的初值为&a0,则(1) p+i和a+i: ai的地址,或者说,它们指向a数组的第i+1个元素。(2) *(p+i)或*(a+i):是p+i或a+i所指向的数组元素,即ai。(3) pi与*(p+i):指向数组元素的指针变量也可以带下标,如pi与*(p+i)等价引用一个数组元素,可用以下方法: (1) 下标法,如ai,pi形式;(2) 指针法,如*(a+i)或*(p+i):其中a是数组名,p是指向数组元素的指针变量。如果已使p的值为a,则*(p+i)就是ai。23、使用指针表达式访问字符串,char *str=I love jinan!; cout strendl; 等价于cout I love jinan!endl; 而cout*str 输出的是I 24、所谓多态性(polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。25、 面向对象分析(object oriented analysis,OOA) 面向对象设计(object oriented design,OOD)面向对象编程(object oriented programming,OOP) 面向对象测试(object oriented test,OOT)面向对象维护(object oriented soft maintenance,OOSM)26、一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数。二者至少包含其一。成员函数是用来对数据成员进行操作的27、类的成员函数与一般函数的区别是: 属于一个类的成员,出现在类体中。它可以被指定为private(私有的)、public(公用的)或protected(受保护的)28、“.”是一个“成员运算符”,把对象和成员连接起来。例如:stud1.setdata()表示调用对象stud1的setdata成员函数。29、在类外定义成员函数,必须在函数名前写作用域限定符“”。如:void student display( )表示在类student外定义的成员函数, void display( )则为普通函数二、填空题1、函数定义包含“函数首部(函数头)和函数体”两部分无参函数的定义格式:类型标识符 函数名(void) 声明部分 语句(执行部分) 有参函数的的定义格式:类型标识符 函数名(形式参数表列) 声明部分 语句(执行部分) 2、函数不需要返回值时,函数的返回值类型可以说明为void型,它表示“无类型”或“空类型”。3、y*=x+ 等价于 y=y*(x+) 等价于y=y*x; x=x+1;6、此题答案应该是:11。注意:若题目问:字符串“students.n”的长度是多少,则回答可见的字符个数(即不包括0,长度为11);若题目问:字符串 “students.n”在内存中占多少个字节,则回答包括0在内的字符的个数所占的字节(及12个字节) 是一个字符,表示 n是一个字符,表示换行7、对于两个整型数是整除9、条件表达式的一般形式为:表达式1 ? 表达式2 表达式3 条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。10、字符常量只能包括一个字符,如AB 是不合法的。字符常量区分大小写字母,如A和a是两个不同的字符常量。 撇号()是定界符,而不属于字符常量的一部分。如couta;输出的是一个字母“a”,而不是3个字符“a ”。字符常量可以是ASCII字符集中任意的可打印字符包括空格字符。如cout ;输出的是一个字母:空格。字符型常量具有数值,其值就是该字符的ASCII码,可以作为整数参与运算。例如: A+25表示将 A字符的ASCII码65与整数25相加。在C+中,字符串常量的长度不受限制,编译系统会在字符串最后自动加一个0作为字符串结束标志。因此,存储字符串的字节数总比字符串中的实际字符个数多1。13、全局变量的作用域是从定义点到本文件结束。如果定义点之前的函数需要引用这些全局变量时,需要在函数内对被引用的外部变量进行说明,形式为: extern 数据类型 全局变量,全局变量2,;14、C+提供的预处理功能主要有以下3种:(1) 宏定义 (2) 文件包含 (3) 条件编译15、结构体是一种构造数据类型,是若干相同或不同类型的数据的集合结构体类型的定义的一般格式为: struct 结构体类型名类型1成员1;类型2成员2;类型n成员n; ;结构体变量的定义结构体类型的定义只明确了该结构体的组成形式,并不占用内存,因此在程序中也就无法对它进行访问。程序中可以访问的是结构体变量。结构体变量和其他变量一样,必须先定义后使用。定义结构体类型变量的一般格式为:结构体类型名 变量名列表;在定义结构体类型变量的同时,还可以对它们进行初始化。其一般的格式为:结构体类型名 变量名1=初始值列表1,变量名n=初始值列表n;说明:初始值列表之间用“,”分开,且初始值必须与结构体的成员一一对应,数据类型与对应成员的数据类型相容。除上面的方法外,还可以用下面两种方法定义:(1) 直接定义结构体变量。其

温馨提示

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

评论

0/150

提交评论