延安大学C++题AWord文件下载.docx
《延安大学C++题AWord文件下载.docx》由会员分享,可在线阅读,更多相关《延安大学C++题AWord文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
注意:
单项选择题、不定项选择题、判断题属于客观性试题,在“机读卡”上作答,请将正确选项涂写在机读卡的相应位置上。
填空题和编程题属于主观性试题,在“主观性试题答题纸”上作答,请将正确答案填写在指定的位置上,要求书写认真、工整。
一、单项选择题(1-40题,每小题1分,41-45题,每小题2分;
共50分)
(1)用C++语言编写的代码程序是源程序,该程序的扩展名为()。
A).cppB).prgC).cD).exe
(2)
一个C++语言程序是是由()。
A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成
(3)以下不正确的C++语言标识符是()。
A)_xB)a_1_2C)ab1exeD)int
(4)已知字母A的ASCII码为十进制数65,且变量c2为字符型,则执行语句c2=’A’+’6’-’4’;
后,c2中的值为()。
A)CB)cC)67D)不确定的值
(5)表达式intn1=1,n2=2;
n1>
n2?
n1:
n2;
的结果是()。
A)1B)n1C)2D)n2
(6)下列程序段执行后,c的值为()。
inta=2,b=-1,c=2;
if(a>
b)++c;
cout<
<
c<
endl;
A)-1B)2C)3D)1
(7)下列程序段执行后,c的值为()。
if(a<
else
c++;
(8)执行语句序列:
inti=1,s=0;
while(i>
=5)
{s+=i;
i+=2;
}
"
s="
s;
屏幕输出为()
A)s=9B)s=0C)9D)0
(9)执行语句序列:
do
{s+=i;
}while(i>
=5);
A)s=1B)s=9C)9D)1
(10)执行语句序列:
inti,s=0;
for(i=1;
i<
=5;
i+=2)
s+=i;
A)s=1B)s=9C)9D)s=0
(11)下列关于switch语句的描述中,正确的是()。
A)switch语句中case子句后面的表达式只能是整型表达式
B)switch语句中的每个语句序列必须有break语句
C)switch语句中default子句可以没有,也可以有一个
D)switch语句中default子句只能放在最后
(12)为了避免嵌套的条件语句的二义性,c++规定else与()配对。
A)编辑在同一列的ifB)同一行上的if
C)其之后最近的ifD)与之前最近的还没有配对过的if
共 7 页 第 3 页
(13)下列关于for循环的描述中,正确的是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环的循环体语句中,可以包含多条语句,但必须用{}括起来
C)for循环是先执行循环体语句,后判断表达式
D)在for循环中可使用continue语句跳出循环。
(14)有关函数参数,下列说法正确的是()。
A)实参与形参的结合方式都是“传址”方式B)实参与形参的结合方式都是“传值”方式
C)实参与形参的必须个数相等、类型一致D)实参与形参的个数不相等、类型不一致
(15)以下说法中正确的是()。
A)C++程序总是从最先定义的函数开始执行
B)C++程序中,要调用的函数必须在main()函数中定义
C)C++程序中的main()函数必需放在程序的开始部分
D)
C++程序总是从main()函数开始执行
(16)函数在声明或定义时可以给一个或多个参数指定默认值,下面的函数声明中,属于合法的是()。
A)voidtest(inta=1,charc='
d'
floatf);
B)voidtest(inta=1,floatf,charc='
);
C)voidtest(floatf,inta=1,charc='
D)voidtest(charc='
floatf,inta=1);
(17)如有定义inta[3][4];
则下面可以正确引用数组元素的表达式是()。
A)a[2][4]B)a[1,3]C)a[2][0]D)a
(2)
(1)
(18)要使指针变量p指向一维数组a的第一个元素,正确的赋值表达式是()。
A)p=a或p=a[0]B)p=a或p=&
a[0]C)p=&
a或p=a[0]D)p=&
a或p=&
a[0]
(19)变量s的定义为char*s="
I_am_a_student"
;
,要使变量p指向s所指向的字符串,则应选取()。
A)char*p=&
sB)char*p;
p=&
sC)char*p;
p=*sD)char*p=s
(20)某结构体变量定义如下,结构体变量的成员引用形式正确的是()。
structst{inta,b;
floatx,y;
}s1,*p;
s1;
A)s1->
aB)p.xC)p->
bD)*p.y
(21)若要释放代码int*p=newint[100];
开辟的存储空间,下列哪种写法正确()。
A)freep;
B)deletep;
C)free[]p;
D)delete[]p;
(22)下面哪个不是面向对象语言的特点()。
A)封装性B)模块化C)继承性D)多态性
(23)以下有关类与对象的说法中,不正确的是()。
A)对象是类的一个实例B)任何一个对象只能属于一个具体的类
C)一个类只能有一个对象D)类与对象的关系和数据类型与变量的关系相似
(24)设有以下类和对象的定义:
classA
{
public:
intk;
};
Ax1,*p1;
则下面针对成员变量k的引用,正确的是()。
A)x1->
k=1;
B)x1.k=1;
C)p1.k=1;
D)(*p1)->
(25)以下各类函数中,不是类的成员函数的是()。
A)构造函数B)析构函数C)复制构造函数D)友元函数
(26)使用已有对象初始化类的另一个对象时,会调用()。
A)构造函数B)析构函数C)复制构造函数D)友元函数
(27)对类的构造函数和析构函数描述正确的是()。
A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载
C)构造函数与析构函数均可以重载D)构造函数和析构函数均不能重载
(28)下列是析构函数特征的是()。
A)一个类中只能定义一个析构函数B)析构函数名与类名相同
C)析构函数的定义只能在类体内D)析构函数可以有一个或多个参数
(29)假设ClassA为一个类,则该类的复制构造函数的声明语句为()。
A)ClassA(ClassAp);
B)ClassA&
(ClassAp);
C)ClassA(ClassA&
p);
D)ClassA(ClassA*p);
(30)下列对构造和析构函数的定义,正确的是()。
A)voidA:
:
A(),voidA:
~A()
B)A:
A(参数),A:
C)A:
~A(参数)
D)voidA:
A(参数),voidA:
~A(参数)
(31)通常的复制构造函数的参数是()。
A)某个对象B)某个对象的成员C)某个对象的引用
D)某个对象的指针
共 7 页 第 4 页
(32)以下关于友元函数描述正确的是()
A)友元函数的实现必须在类的内部定义B)友元函数破坏了类的封装性
C)友元函数是类的成员D)友元函数不能访问类的私有成员
(33)关于静态成员的描述,错误的是()。
A)静态成员可分为静态数据成员和静态成员函数B)静态数据成员定义后必须在类内初始化
C)静态数据成员初始化不使用其构造函数D)静态成员函数可以直接访问静态数据成员
(34)以下对派生类的叙述中,错误的是()。
A)一个派生类可以作另一个派生类的基类
B)一个派生类可以有多个基类
C)具有继承关系时,基类成员在派生类中的访问权限不变
D)派生类的构造函数与基类的构造函数有成员初始化参数传递关系
(35)派生类构造函数的调用顺序为()。
A)对象成员的构造函数→基类的构造函数→派生类自身的构造函数
B)基类的构造函数→对象成员的构造函数→派生类自身的构造函数
C)派生类自身的构造函数→对象成员的构造函数→基类的构造函数
D)派生类自身的构造函数→基类的构造函数→对象成员的构造函数
(36)用来声明虚函数的关键字是()。
A)abstractB)staticC)constD)virtual
(37)下列虚基类的声明中,正确的是()。
A)classvirtualB:
publicAB)virtualclassB:
publicA
C)classB:
publicAvirtualD)classB:
virtualpublicA
(38)编译时的多态性可以通过使用()获得。
A)虚函数B)指针C)对象D)重载函数
(39)如果一个类至少有一个纯虚函数,那么就称该类为()。
A)抽象类
B)虚函数
C)派生类
D)以上都不对
(40)进行文件操作时,需要包含()文件。
A)iostream.hB)fstream.hC)stdio.hD)math.h
(41)执行语句序列:
#include<
iostream>
usingnamespacestd;
intmain()
{inti,j,sum(0);
cin>
>
i>
j;
while(i<
j)
{sum+=i;
i++;
}
cout<
sum<
return0;
若从键盘输入2和5,则屏幕输出()。
A)10B)15C)9D)14
(42)执行语句序列:
{intn;
cin>
n;
switch(n)
{case1:
case2:
'
1'
case3:
case4:
2'
break;
default:
3'
return0;
若从键盘上输入1,则屏幕输出为()
共 7 页 第 5 页
试题专用纸(附页)
A)1B)2C)3D)12
(43)下列程序运行后输出的结果是()。
A)A=10,B=20B)A=10,B=20
A=10,B=20A=20,B=20
C)A=20,B=10D)A=10,B=20
A=20,B=10A=20,B=10
iostream>
voidswap(intx,inty)
{inttmp=x;
x=y;
y=tmp;
voidmain()
{inta=10,b=20;
"
A="
a<
,B="
b<
swap(a,b);
(44)下列程序运行后输出的结果是()。
A)Constructor,i=1,DestructorB)Constructor,i=0,Destructor
C)Constructor,Destructor,i=0D)Constructor,Destructor,i=1
classSample
{inti;
Sample(){cout<
Constructor"
'
'
i=0;
voidShow(){cout<
i="
i<
~Sample(){cout<
Destructor"
};
{Samplea;
a.Show();
(45)下列程序运行后输出的结果是()。
A)B:
a()B)B:
a()C)A:
a()D)A:
a()
A:
b()B:
b()A:
b()B:
b()
{public:
virtualvoida(){cout<
a()"
voidb(){cout<
b()"
classB:
publicA
{voida(){cout<
B:
voidb(){cout<
{A*p1;
Bb1;
p1=&
b1;
p1->
a();
p1->
b();
二、不定项选择题,少选或多选不得分(每小题2分;
共10分)
共 7 页 第 6 页
(46)下列是类成员的访问权限的是()。
A)publicB)protectedC)friendD)private
(47)下列描述中,是构造函数特点的是()。
A)构造函数名与类名相同B)构造函数可以重载
C)构造函数是特殊的成员函数D)构造函数必须具有公有属性
(48)下列描述中,是复制构造函数特点的是()。
A)如果一个类中没有定义复制构造函数,系统将自动生成一个默认的
B)复制构造函数的形参必须是本类对象的引用
C)复制构造函数名不能与本类名相同
D)复制构造函数是本类的友元函数
(49)下列有关运算符重载的叙述,正确的是()。
A)运算符重载是用同一个运算符完成不同的运算操作
B)运算符重载的函数名必须为:
operator<
运算符>
C)运算符重载是通过调用运算符重载函数来实现
D)若重载函数为成员函数,则参加二元运算的左操作数为调用重载函数的对象
(50)从基类派生一个子类时,可以使用的派生存取说明符有()。
A)localB)publicC)protectedD)private
三、判断题(每小题1分,共计10分)
下列命题如果正确,请在机读卡的相应位置上涂A,如果命题错误,请在机读卡的相应位置上涂B。
(51)C++程序中,可以使用的注释符只有“//”。
(52)若将变量按作用域的大小分类,可以分为全局变量和局部变量。
(53)while语句的最少执行次数是1。
(54)表达式:
4%-3的值为1。
(55)在内置函数中不能使用while语句。
(56)类的成员函数可以在类体内定义,也可以在类体外定义。
(57)类的构造函数没有返回值,所以可以指定构造函数的类型为void。
(58)派生时若不指定派生存取说明符,系统缺省为public派生。
(59)多态性是指不同类的对象对于同一消息的处理具有不同的实现。
(60)含有纯虚函数的类称为抽象类。
四、填空题(每空1分,共20分)请将每一个正确答案在主观答题纸的【1】~【20】序号的横线上,答在试卷上不得分。
(1)通过文字编辑建立的C++源程序文件的扩展名是1;
编译后生成目标程序文件,扩展名是2;
连接后生成可执行程序文件,扩展名是3。
(2)C++语言中,字符型数据和4数据之间可以通用。
(3)C++用于控制流程的3种基本结构为5,6,7。
(4)8用于循环语句中,能够终止执行循环体内的语句,并退出该循环控制结构。
(5)定义或声明内联函数所使用的关键字是9。
(6)在C++中定义类时,通常是利用10描述对象的特征,利用11描述对象的行为
(7)利用“对象名.成员变量”访问的对象成员仅限于被声明为12的成员
(8)运算符重载函数通常为类的13函数和14函数。
(9)模板分为:
15模板和16模板,函数模板使用时,函数模板必须实例化为17。
(10)双目运算符重载函数为成员函数时,重载函数有18个参数;
双目运算符重载函数为友元函数时,重载函数有
19个参数。
(11)从多个基类中派生出新的子类,这种派生方法称为20。
共 7 页 第 7 页
五、编程题(每空2分,共10分)请将每一个正确答案在主观答题纸的【1】~【5】序号的横线上,答在试卷上不得分。
(1)请在划线处填写适当内容,使下列程序能够计算:
1!
+2!
+3!
+……+10!
{inti,temp,sum(0);
1;
for(i=1;
=10;
i++)
{temp=2;
sum=sum+temp;
(2)请在划线处填写适当内容,使下列程序能够计算半径为10的圆的周长和面积。
constdoublePI=3.14;
classCircle
{
Circle(intr):
3{}
voidDisplay();
private:
constintradius;
void4Display()
Theperimeteris"
2*PI*radius<
Theareais"
PI*radius*radius<
Circlec(10);
c5;
}
共 5 页 第 5 页