CC++语言程序设计.docx
- 文档编号:28292729
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:26
- 大小:31.54KB
CC++语言程序设计.docx
《CC++语言程序设计.docx》由会员分享,可在线阅读,更多相关《CC++语言程序设计.docx(26页珍藏版)》请在冰豆网上搜索。
CC++语言程序设计
机密★启用前
大连理工大学网络教育学院
2018年春《C/C++语言程序设计》
期末考试复习题
☆注意事项:
本复习题满分共:
400分。
一、单选题
1、已知intx=2,y=8;执行x*=y+2;后x的值是()。
A.20
B.18
C.16
D.12
2、下列while循环的执行次数是()。
while(inti=0)i++;
A.0
B.1
C.5
D.无限
3、以下不属于C语言关键字的是()。
A.short
B.int
C.case
D.DIM
4、当一个类对象离开它的作用域时,系统将自动调用该类的()。
A.构造函数
B.拷贝构造函数
C.析构函数
D.默认构造函数
5、下列哪个函数不是类的成员函数。
()
A.析构函数
B.构造函数
C.拷贝构造函数
D.友元函数
6、在执行inta[][3]={1,2,3,4,5,6};语句后,a[0][0]的值是()。
A.4
B.1
C.2
D.5
7、C++中用3个保留字实现异常处理,除了throw和catch外,还有()。
A.if
B.class
C.try
D.return
8、当类的继承方式为()时,基类中的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。
A.私有继承
B.公有继承
C.保护继承
D.以上都不是
9、作用域分辨符可以用来限定要访问的成员所在的类的名称,它的符号表示为()。
A.:
:
B.?
:
C.;
D.\
10、下列哪个函数的作用是字符串比较()。
A.strlen()
B.strcmp()
C.strcat()
D.strcpy()
11、指出下面合法的标识符是()。
A.3ab
B.int
C._stu2
D.$abc
12、设有数组定义chararray[]="Public";则数组array所占的空间为()。
A.4个字节
B.5个字节
C.6个字节
D.7个字节
13、下面表达式中错误的是()。
A.b=a++
B.a/=2
C.a+b=5
D.a=5,b=6,c=7
14、在定义inta[5];之后,对a的引用正确的是()。
A.a[5]
B.a[]
C.a(5)
D.a[0]
15、执行下面的程序段后,输出结果是()。
main(){chara[]="english";printf("%c",a[0]);}
A.engli
B.e
C.english
D.sh
16、当类的继承方式为()时,基类的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。
A.私有继承
B.公有继承
C.保护继承
D.以上都不是
17、类中将关键字()写在函数体之前函数头之后,说明该函数是一个常成员函数(或const成员函数),可以防止函数改变数据成员的值。
A.const
B.static
C.friend
D.void
18、设intn=10,i=3;则赋值运算n%=i+1执行后,n的值是()。
A.0
B.3
C.2
D.1
19、下列选项中正确的语句是()。
A.x++
B.int(x+5)
C.y+5=6;
D.x=y+5;
20、绑定工作在编译连接阶段完成的情况称为()。
A.静态绑定
B.动态绑定
C.重载D.继承
21、在下面的一维数组定义中,哪一个有语法错误()。
A.inta[]={1,2,3};
B.inta[10]={0};
C.inta[];
D.inta[5];
22、假定AB为一个类,则该类的拷贝构造函数的声明语句为()。
A.AB&(ABx);
B.AB(ABx);
C.AB(AB&);
D.AB(AB*x)
23、()是给对象取一个别名,它引入了对象的同义词。
A.指针
B.引用
C.枚举
D.结构
24、下列运算符中,()运算符在C++中不能重载。
A.?
:
B.+
C.-
D.<=
25、一个()允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值能取多种数据类型。
A.函数模板
B.模板函数
C.类模板
D.模板类
26、如果一个类至少有一个纯虚函数,那么就称该类为()。
A.抽象类
B.虚基类
C.派生类
D.以上都不对
27、进行文件操作时需要包含()文件。
A.
B.
C.
D.
28、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是()。
A.ios:
:
in
B.ios:
:
out
C.ios:
:
trunc
D.ios:
:
binary
29、在ios中提供控制格式的标志位中,()是转换为十六进制形式的标志位。
A.hex
B.oct
C.dec
D.left
30、C++中用3个保留字实现异常处理,除了try和catch外,还有()。
A.if
B.class
C.throwD.return
31、设有定义intx;doublev;,则10+x+v值的数据类型是()。
A.int
B.double
C.char
D.不确定
32、对于while、do…while循环结果说法正确的是()。
A.只是表达形式不同
B.while结构中的语句至少执行一次
C.do…while结构中的语句至少执行一次
D.条件成立时,他们有可能一次也不执行
33、下列符号中可以用作C++标识符的是()。
A._radius
B.foo~bar
C.else
D.3room
34、预处理命令在程序中都是以()符号开头的。
A.*
B.#
C.&
D.@
35、当说明一个结构变量时,系统分配给它的内存为()。
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大的成员所需的容量
D.结构中最后一个成员所需内存量
36、()的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态成员函数
37、()只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。
A.虚函数
B.静态函数
C.构造函数
D.析构函数
38、在下列各类函数中,()不是类的成员函数。
A.析构函数
B.构造函数
C.拷贝构造函数
D.友元函数
39、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是()。
A.4
B.1
C.2
D.5
40、下列不可以被重载的运算符是()。
A.?
:
B.+
C.-D.*
41、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。
A.增加了一些新的运算符
C.规定函数说明符必须用原型
B.允许函数重载,并允许设置缺省参数
D.引进了类和对象的概念
42、设array为一个数组,则表达式sizeof(array)/sizeof(array[0])的结果为()。
A.array数组首地址
C.array数组中每个元素所占的字节数
B.array数组中元素个数
D.array数组占的总字节数
43、将两个字符串连接起来组成一个字符串时,选用()函数。
A.strlen()
C.strcat()
B.strcap()
D.strcmp()
44、函数调用不可以()。
A.出现在一个表达式中
C.作为一个函数的实参
B.出现在执行语句中
D.作为一个函数的形参
45、C++源程序文件的扩展名是()。
A..CPP
C..DLL
B..C
D..EXE
46、下列运算符中优先级最高的为()。
A.!
C.-=
B.%
D.&&
47、有关构造函数的说法错误的是()。
A.构造函数名字和类的名字一样
C.构造函数无任何函数类型
B.构造函数在说明类变量时自动执行
D.构造函数有且只有一个
48、通常的拷贝构造函数的参数是()。
A.某个对象名
C.某个对象的引用名
B.某个对象的成员名
D.某个对象的指针名
49、为了判断两个字符串s1和s2是否相等,应当使用()。
A.if(s1=s2)
C.if(strcpy(s1,s2))
B.if(s1==s2)
D.if(strcmp(s1,s2)==0)
50、在定义inta[3][6];后,第10个元素是()。
A.a[2][4]
C.a[3][1]
B.a[1][3]
D.a[4][2]
单选题答案
1、A2、A3、D4、C5、D
6、B7、C8、A9、A10、B
11、C12、D13、C14、D15、B
16、B17、A18、C19、D20、A
21、C22、C23、B24、A25、C
26、A27、B28、A29、A30、C
31、B32、C33、A34、B35、A
36、C37、B38、D39、D40、A
41.D42.B43.C44.D45.A
46.A47.D48.C49.D50.B
二、填空题
1、C++类中可以包含公有、私有和三种具有不同访问控制权的成员。
2、在C++中有两种类型的注释符,一种是C语言中使用的注释符(/*…*/),另一种是。
3、是给对象取一个别名,它引入了对象的同义词。
4、语句while(inti=0)i--;while循环的次数是。
5、类模板的使用实际上是将类模板实例化成一个具体的。
6、执行操作将释放由P所指向的动态分配的数组空间。
7、假定x=1,则表达式(x<=1?
20:
30)的值为。
8、表达式sqrt(81)和pow(6,3)的值分别为和。
9、空串的长度为,存储它需要占用个字节。
10、strlen("apple")的值为。
11、当一个类对象离开它的作用域时,系统将自动调用该类的。
12、定义一个模板函数或模板类时要用到的第一个C++保留字是。
13、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为。
14、C++中默认main函数的返回类型是,所以在定义main函数时可以不写返回值类型。
15、使用cin和cout进行输入输出操作的程序必须包含头文件,其语句格式为。
16、假定x=,y=,则表达式floor(fabs(x+y))的值为。
17、对一个一维字符数组a进行初始化的数据为"12345",则a[0]和a[3]元素对应的初值分别为和
。
18、对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的实现。
19、随机函数rand()%20的值在至区间内。
20、类中数据和成员函数默认访问控制权类型为。
21、假定一个类对象数组为A[10],当离开它的作用域时,系统自动调用该类析构函数的次数为。
22、若需要把一个函数“voidF();”定义为一个类AB的友元函数,则应在类AB定义中加入一条语句:
。
23、假定一个类AB中有一个静态整数成员bb,在类外为它进行定义并初始化为0时,所使用的语句为。
24、在一个类的后缀加的运算符重载成员函数的定义中,带有个整型参数。
填空题答案
1.保护2.1’4’xe。
()
4、关键字中,用以说明类中公有成员的是private。
()
5、一个类只能有一个对象。
()
6、拷贝构造函数不是类的成员函数。
()
7、内联函数的关键字为friend。
()
8、构造派生类的对象时,就要对基类数据成员、新增数据成员和成员对象的数据成员进行初始化。
()
9、一个派生类可以同时有多个基类,这种情况称为单继承。
()
10、抽象类不能实例化。
()
11、在C++类中可以包含私有、公有和友元三种具有不同访问控制权的成员。
()
12、定义枚举类型的关键字是union。
()
13、设有定义intx;doublev;则5+x+v值的数据类型是int。
()
14、strcat()函数的作用是求字符串长度。
()
15、说明静态数据成员时,前边要加关键字static。
()
16、成员函数可以重载。
()
17、delete的功能是动态分配内存。
()
18、关键字中,用以说明类中公有成员的是protected。
()
19、流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。
()
20、类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。
()
21、do-while循环可以写成while循环。
()
22、所谓指令,就是计算机可以识别的命令。
()
23、使用内联函数是以牺牲增大空间开销为代价的。
()
24、对象是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。
()
25、内联函数的关键字为void。
()
26、友元关系可以继承。
()
27、new的功能是动态分配内存。
()
28、析构函数是在对象的生存期即将结束的时刻被自动调用的。
()
29、绑定工作在编译连接阶段完成的情况称为静态绑定。
()
30、使用I/O流的程序需要包含。
()
判断题答案
1、√2、×3、×4、×5、×
6、×7、×8、√9、×10、√
11、×12、×13、×14、×15、√
16、√17、×18、×19、√20、√
21、√22、√23、√24、√25、×
26、×27、√28、√29、√30、√
四、阅读下列程序,请在答题卡上写出输出结果
1、
#include<>
voidmain()
{
intx=1,y=2,z=3;
x+=y+=z;
cout<<(x y: x)<<","; cout<<(x x++: y++)<<","; cout< } 输出结果: 6,5,6 2、 #include<> voidmain() { inti; for(i=4;i<=10;i++) { if(i%3==0) continue; cout< } } 输出结果: 457810 3、 #include<> classCSample { private: inti; staticintk; public: CSample(); voidDisplay(); }; CSample: : CSample() { i=0; k++; } voidCSample: : Display() { cout<<"i="< } intCSample: : k=0; voidmain() { CSamplea,b; (); (); } 输出结果: i=0,k=2 i=0,k=2 4、 #include<> voidmain() { intx=1,y=0; switch(x) { case1: switch(y) { case0: cout<<"first";break; case1: cout<<"second";break; } case2: cout<<"third\n"; } } 输出结果: firstthird 5、 #include<> voidmain() { inti,j; for(i=4;i>=1;i--) { cout<<"*"; for(j=1;j<=4-i;j++) cout<<"*"; cout< } } 输出结果: * ** *** **** 6、 #include<> classCSample { inti; public: CSample(); voidDisplay(); ~CSample(); }; CSample: : CSample() { cout<<"Constructor"<<","; i=0; } voidCSample: : Display() { cout<<"i="< } CSample: : ~CSample() { cout<<"Destructor"< } voidmain() { CSamplea; (); } 输出结果: Constructor,i=0,Destructor 7、 #include<> voidSwap(int&a,int&b); voidmain() { intx(5),y(10); cout<<”x=”< Swap(x,y); cout<<”x=”< } voidSwap(int&a,int&b) { intt; t=a; a=b; b=t; } 输出结果: x=5,y=10 x=10,y=5 8、 #include<> classSample { public: Sample(){cout<<”Constructor”< }; voidfn(inti) { staticSamplec; cout<<”i=”< } voidmain() { fn(10); fn(20); } 输出结果: Constructor i=10 i=20 9、 #include<> constintN=8; voidmain() { inta[N]={1,2,3,4,5,6,7,8}; inti,x;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 语言程序设计