自考C++程序设计2017年10月试题
摘要:自考C++程序设计2017年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。
自考C++程序设计2017年10月试题及答案解析
自考C++程序设计2017年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。
一、单项选择题(本大题共20小题,每小题1分,共20分。)在每小题列出的备选项中只有一项是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均不得分。
1.按照标识符的要求,不能组成标识符的符号是( )
A.连接符
B.下划线
C.大小写字母
D.数字字符
2.下列输出语句中,正确的是( )
A.cout﹤﹤("%c
"," student")
B.cout﹤﹤("%s
","hello")
C.cout﹤﹤ ("%c
","c")
D.cout ﹤ ("%s
", &a)
3.已知:print( )函数是一个类的常成员函数,无返回值,下列表示中正确的是( )
A.void print( )const
B.void print(const)
C.void const print( )
D.const void print( )
4.if与else在使用过程中为避免嵌套出现二义性,C++中规定与else子句配对的是( )
A.其之前最近的if语句
B.其之前最近且尚未配对的if语句
C.缩排位置相同的if语句
D.其之后最近的if语句
5.对使用关键字new所开辟的动态存储空间,释放时必须使用( )
A.free
B.create
C.delete
D.release
6.逻辑运算符两侧运算对象的数据( )
A.是逻辑型数据
B.只能是整型数据
C.只能是整型或字符型数据
D.可以是任何类型的数据
7.关于构造函数的说法,不正确的是( )
A.没有定义构造函数时,系统将不会调用它
B.其名与类名完全相同
C.它在对象被创建时由系统自动调用
D.没有返回值
8.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )
A.类
B.对象
C.函数体
D.数据块
9.下列关于类的继承描述中,错误的是( )
A.基类不一定具有派生类的全部属性和方法
B.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
10.在C++中,函数原型不能标识( )
A.函数的返回类型
B.函数参数的个数
C.函数参数类型
D.函数的功能
11.若二维数组y有m列,则位于y[i][j]之前的元素数量是( )
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m +j+1
12.下列关于类的权限的描述错误的是( )
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D.一个类可以将另一个类的对象作为成员
13.下面不能够判断字符串S是空串的是( )
A.if(S[0]==0)
B.if(strlen(S)==0)
C.if(strcmp(S, " ")==0)
D.if(S==" ")
14.下列输出字符"d"的方法中,错误的是( )
A.cout﹤﹤put("d")
B.cout﹤﹤"d"
C.cout. put("d")
D.char a="d"; cout﹤﹤a;
15.关于引用,下列的说法中错误的是( )
A.引用是给被引用的变量取一个别名
B.引用主要是用来作函数的形参和函数的返回值
C.在声明引用时,要给它另开辟内存单元
D.在声明引用时,必须同时使它初始化
16.下面关于C++字符数组的叙述中,错误的是( )
A.字符数组可以放字符串
B.字符数组的字符可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.可以用关系运算符对字符数组比较大小
17.下列说法不正确的是( )
A.主函数main中定义的变量在整个文件或程序中有效
B.不同函数中,可以使用相同名字的变量
C.形式参数是局部变量
D.在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
18.非数组指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是( )
A.地址传递
B.单向值传递
C.双向值传递
D.由用户指定传递方式
19.下面叙述中错误的是( )
A.预处理命令都必须以“#”开始
B.在程序中凡是以“#”开始的语句行都是预处理命令行
C.C++程序在程序执行过程中对预处理命令进行处理
D.一行只能写一条预处理命令
20.下列关于友元函数的描述,正确的是( )
A.友元函数可以存取私有成员、公有成员和保护成员
B.友元函数不可以是一个类
C.友元函数的作用之一是实现数据的隐藏性
D.在类中说明的友元函数,函数的定义不可在类体之外
二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
11.#include ﹤iostream. h﹥命令中,include的意义是:_________。
12.this指针始终指向调用成员函数的_________。
13.假定AB为一个类,则执行语句AB a[10]; 时,系统自动调用该类的构造函数的次数为_________。
14.一个抽象类的派生类可以实例化的必要条件是实现了所有的_________。
15.cin是输人流istream的一个对象,处理标准输入;_________是输出流ostream的一个对象,处理标准输出。
16.定义虚函数所用的关键字是_________。
17.设在程序中使用如下语句申请了一个对象数组:Point *pr= new Point[2]; 当要释放ptr指向的动态数组对象时,所使用的语句是_________。
18.书写程序语句时,适当增加空行和程序注释以增加程序的_________。
19.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取_________方式。
110.如果要把A类成员函数f( )且返回值为void声明为类B的友元函数,则应在类B的定义中加入语句_________。
111.C++语言的_________提供了与要操作的元素类型无关的算法。
112.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常为该类定义_________。
113.在保护派生中,基类权限为public的成员在派生类中为_________。
114.在函数前面用_________保留字修饰时,则表示该函数为内联函数。
115.面向对象的四个基本特性是多态性、继承性、封装性_________。
116.派生类的主要用途是可以定义其基类中_________。
117.若int a=8; int b=(++a)++; 则b=_________。
118.在C++中,利用向量类模板定义一个具有10个int的向量A,其元素均被置为1,实现此操作的语句是_________。
119.将指向对象的引用作为函数的形参,形参是对象的引用,实参是_________。
120.重载的运算符保持其原有的_________、优先级和结合性不变。
三、改错题(本大题共5小题,每小题2分,共10分)
21.1 #include "stdafx. h"2 #include ﹤iostream﹥3 using namespace std;4 class Test5 { prvate:6 int x, y=20;7 public:8 Test(int i, int j) { x=i, y=j; }9 int getx( ) { return x; }10 int gety ( ) { return y; }11 };12 void main( )13 { Test mt(10,20);14 cout ﹤﹤mt. getx( )﹤﹤ endl;15 cout ﹤﹤mt. gety( )﹤﹤ endl;16 }
22.1 #include ﹤iostream.h﹥2 #include ﹤string. h﹥3 class Base 4 {public:5 Base(char *s="