C++复习试卷(题库摘选)

更新时间:2023-10-21 23:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

复习试卷

一、填空 共20题 (共计40分) 第1题 (2.0分) 题号:20

若a为double类型的变量,表达式a=1,a+5,a++的值为【1】 答案:

=======(答案1)=======1.0=========或=========1.00=========或=========1.000=========或=========1.0000=========或=========1.00000 第2题 (2.0分) 题号:176

表达式7.5+1/2+45=【1】 答案:=======(答案1)=======12.5 第3题 (2.0分) 题号:339

赋值运算符的结合性是由【1】 至【2】 答案:

=======(答案1)=======右 =======(答案2)=======左 第4题 (2.0分) 题号:908

已知:char *s=\;执行语句\之后,变量i的结果是 【1】 答案:

=======(答案1)=======5 第5题 (2.0分) 题号:925

在C++语言结构化程序中,【1】是程序的基本组成单元;在C++语言的面向对象设计框架中, 【2】是程序的基本组成单元。 答案:

=======(答案1)=======函数 =======(答案2)=======类 第6题 (2.0分) 题号:926

C++语言的参数传递机制包括传值和传地址两种,如果调用函数 时,需要改变实参或者返回多个值,应该采取【1】方式。 答案:

=======(答案1)=======传地址=========或=========传址 第7题 (2.0分) 题号:1242 字符串\的长度是【1】。 答案:

=======(答案1)=======9 第8题 (2.0分) 题号:1612

若有以下定义,则执行表达式y+=y-=m*=y后的y值是【1】. int m=5,y=2; 答案:

=======(答案1)=======-16 第9题 (2.0分) 题号:1621

若a是int型变量,则执行下面表达式后a的值为【1】.

a=25/3%3 答案:

=======(答案1)=======2 第10题 (2.0分) 题号:1625

若有定义:char c='\\010';则变量c中包含的字符个数为【1】. 答案:

=======(答案1)=======1 第11题 (2.0分) 题号:1630

已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【1】. 答案:

=======(答案1)=======f 第12题 (2.0分) 题号:1675

若有定义:double x[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】. 答案:

=======(答案1)=======0 =======(答案2)=======4 第13题 (2.0分) 题号:1634

表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为【1】. 答案:

=======(答案1)=======整型=========或=========int 第14题 (2.0分) 题号:1646

假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c.例如:交换前,a=10,b=20,c=30;交换后,a=20,b=30,c=10.请填空. 【1】; a=b; b=c; 【2】; 答案:

=======(答案1)=======t=a =======(答案2)=======c=t 第15题 (2.0分) 题号:1838

使用关键字inline说明的函数称为 【1】 函数,

具有相同函数名但具有不同实现的函数称为 【2】 函数。 答案:

=======(答案1)=======内联 =======(答案2)=======重载 第16题 (2.0分) 题号:1825

面向对象程序设计的核心技术是【1】、【2】和多态. 答案:

=======(答案1)=======封装=========或=========继承 =======(答案2)=======继承=========或=========封装 第17题 (2.0分) 题号:1824

C++中任何一个数组的名字是一个【1】指针,该指针的值是该数组第一个数组元素的地址. 答案:

=======(答案1)=======常量

第18题 (2.0分) 题号:1804

运行时的多态性是通过继承和【1】来实现的.用【2】声明的函数称为虚函数. 答案:

=======(答案1)=======虚函数 =======(答案2)=======virtual 第19题 (2.0分) 题号:1802

C++中使用关键字【1】引出重载运算符函数的定义. 答案:

=======(答案1)=======operator 第20题 (2.0分) 题号:1799 类继承中,缺省的继承方式是【1】. 答案:

=======(答案1)=======私有派生=========或=========私有=========或=========私有继承 =========或=========private 二、判断 共20题 (共计20分) 第1题 (1.0分) 题号:1308

使用内联函数是以牺牲增大空间开销为代价的. 答案:Y

第2题 (1.0分) 题号:1345

可以在类的构造函数中对静态数据成员进行初始化. 答案:N

第3题 (1.0分) 题号:1286

在C++语言中,定义函数时必须给出函数的返回类型. 答案:Y

第4题 (1.0分) 题号:240

预处理命令是在进行编译时首先执行的,然后再进行正常编译。 答案:Y

第5题 (1.0分) 题号:1336 continue语句只能出现在循环体中. 答案:Y

第6题 (1.0分) 题号:745

所谓继承就是利用已有的数据类型定义出新的数据类型。 答案:Y

第7题 (1.0分) 题号:1187

在一定条件下,两个指针可以进行相加运算. 答案:N

第8题 (1.0分) 题号:747 静态函数可声明为虚函数。 答案:N

第9题 (1.0分) 题号:746

抽象类不仅可用做派生其他类的基类,也可以用于直接创建对象实例。 答案:N

第10题 (1.0分) 题号:748 静态成员函数没有this指针。

答案:Y

第11题 (1.0分) 题号:1326

开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间. 答案:N

第12题 (1.0分) 题号:1342

对象成员的表示与结构变量成员表示相同,使用运算符.或一>. 答案:Y

第13题 (1.0分) 题号:1244

返回值类型、参数个数和参数类型都相同的函数也可以重载. 答案:N

第14题 (1.0分) 题号:1319

所有的函数在定义它的程序中都是可见的. 答案:N

第15题 (1.0分) 题号:1284

局部静态变量与自动变量作用域相同,但生命周期不同. 答案:Y

第16题 (1.0分) 题号:1317

重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此区域内是不可见的,但是它是存在的. 答案:Y

第17题 (1.0分) 题号:1337

使用关键字class定义的类中默认的访问权限是私有(private)的. 答案:Y

第18题 (1.0分) 题号:1340 构造函数和析构函数都不能重载. 答案:N

第19题 (1.0分) 题号:1343

所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类外的函数对它们的访问都是非法的. 答案:N

第20题 (1.0分) 题号:1344

某类的友元类的所有成员函数可以存取或修改该类中的私有成员. 答案:Y

三、单项选择 共30题 (共计60分) 第1题 (2.0分) 题号:4127 以下正确的说法是【 】

A:定义函数时,形参的类型说明可以放在函数体内 B:return后边的值不能为表达式

C:如果函数值的类型与返回值类型不一致,以函数值类型为准 D:如果形参与实参的类型不一致,以实参类型为准 答案:C

第2题 (2.0分) 题号:1608 下面叙述不正确的是【 】

A:基类的保护成员在派生类中必然是保护成员

B:基类的保护成员在公有派生类中仍然是保护成员 C:基类的保护成员在私有派生类中是私有成员 D:对基类成员的访问必须是无二义性 答案:A

第3题 (2.0分) 题号:4236

下列条件语句中,功能与其它语句不同的是【 】. A:if(a) cout<

第4题 (2.0分) 题号:376 下面常数中错误的是【 】

A:0xA5 B:2.5e-2 C:3e2 D:0583 答案:D

第5题 (2.0分) 题号:4278 下列标识符中, 【 】不是局部变量.

A:register类 B:外部static类 C:auto类 D:函数形参 答案:B

第6题 (2.0分) 题号:4133

以下错误的描述是. 函数调用可以【 】

A:出现在执行语句中 B:出现在一表达式中 C:做为一个函数的实参 D:做为一个函数的形参 答案:D

第7题 (2.0分) 题号:4228

在int a[2][3]={{1,0},{3,2}};中a[1][0]的值是【 】 A:0 B:1 C:3 答案:C

第8题 (2.0分) 题号:1611

在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是【 】

A:友元函数 B:虚函数 C:构造函数 D:析构函数 答案:C

第9题 (2.0分) 题号:4246 【 】是析构函数的特征.

A:一个类中只能定义一个析构函数 B:析构函数与类名不同

C:析构函数的定义只能在类体内 D:析构函数可以有一个或多个参数 答案:A

第10题 (2.0分) 题号:1612

下面对静态数据成员的描述中,正确的是【 】 A:静态数据成员可以在类体内进行初始化 B:静态数据成员不可以被类的对象调用 C:静态数据成员不能受private控制符的作用 D:静态数据成员可以直接用类名调用 答案:D

D:2

第2题 (10.0分) 题号:270

/*------------------------------------------------------ 【程序改错】

-------------------------------------------------------- 题目:统计100-300之间同时被3,7整除的数的个数,输出这些数 的个数及它们的平方和434385.

-------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main() {float ns;

/***********FOUND***********/ int k; n=0;

/***********FOUND***********/ ns=1;

for(k=100;k<=300;k++) {

/***********FOUND***********/ n37=7%k+3%k;

/***********FOUND***********/ if(n37=0) {n++;

/***********FOUND***********/ ns=ns+k; }

}cout<<\同时被3,7整除的数的个数为:\cout<<\其平方和为:\} 答案:

=======(答案1)=======int n37 , k , n ; =======(答案2)=======ns=0;

=======(答案3)== n37= k %7 + k %3;=== =或===n37= k%7+k%3;=====或=====n37=k%7+k%3; =======(答案4)=======if(n37==0) =======(答案5)=======ns=ns+k*k; 第3题 (10.0分) 题号:275

/*------------------------------------------------------ 【程序改错】

------------------------------------------------------- 题目: 下列程序是求某班级的最高成绩、最低成绩和平均成绩 的程序,输入负数表示结束。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main() {

float cj,sum,max,min,ave; /***********FOUND***********/ int n=1; cin>>cj; sum=0;

/***********FOUND***********/ min=max=0;

/***********FOUND***********/ while(cj!=0) { n++;

/***********FOUND***********/ sum=cj;

if(cj>max) max=cj; if(cj>cj; }

ave=sum/n;

cout<

=======(答案1)=======n=0; =======(答案2)=======min=max=cj; =======(答案3)=======while(cj>=0)

=======(答案4)=======sum+=cj;=========或=========sum= sum + cj ; 第4题 (10.0分) 题号:261

/*------------------------------------------------------ 【程序改错】

-------------------------------------------------------- 题目:有一个点类point,包含横、纵两个坐标数据,由它派生出 圆类circle,并添加一个半径数据,求其面积。 本程序的运行结果: 圆心为:(5,7) 半径为:9 面积为:254.469

-------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include

class point {

int x; int y;

/***********FOUND***********/ private:

point(int a,int b) {

x=a;y=b; }

int getx(){return x;} int gety(){return y;} };

/***********FOUND***********/ class circle:: point { private: int r; public:

/***********FOUND***********/

circle(int a,int b,int c):point(int a,int b) {r=c;}

int getr(){return r;}

float area(){return 3.14159*r*r;} };

void main() {

/***********FOUND***********/ circle c(5,7);

cout<<\圆心为:(\/***********FOUND***********/

cout<<\半径为:\ cout<<\面积为:\} 答案:

=======(答案1)=======public:

=======(答案2)=======class circle: public point

=======(答案3)=======circle(int a,int b,int c):point(a,b) =======(答案4)=======circle c(5,7,9);

=======(答案5)=======cout<<\半径为:\

六、程序设计 共4题 (共计40分) 第1题 (10.0分) 题号:521

/*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

设计一个学生类Student,包括姓名name、三门课程成绩(score1,score2,score3)(double型) 以及一个静态数据成员(num)用于存放总人数, 另有构造函数、求各学生平均分的函数aver()和

显示各学生成绩及平均分的成员函数display()。请完善以下程序

注意:若没指定各数据成员的值,则name的默认值为\某某某\,各门课程的默认值为80。 ------------------------------------------------------*/ #include #include #include using namespace std;

/**********Program**********/

/********** End **********/ void wwjt(Student,Student,Student); void main() {

Student st1, st2(\ cout<<\目前共有\个学生\ cout<<\各学生的成绩为:\ st1.display(); st2.display(); st3.display(); wwjt(st1, st2, st3); }

void wwjt(Student st1,Student st2,Student st3) {

fstream myfile;

myfile.open(\ myfile<

答案:class Student { private:

};

string name; double score1; double score2; double score3; static int num;

Student(string n=\某某某\{ }

double aver() { }

void display() { }

cout<

public:

int Student::num=0;

第2题 (10.0分) 题号:523

/*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

设计一个矩形类,数据成员包括矩阵的左上角坐标(x1,y1)和右下角坐标(x2,y2), 成员函数包括构造函数、求矩形周长perimeter()、求矩形面积area()函数,返回值都为double型

以及显示矩形数据(包括周长、面积)的函数display(),请完善以下程序。 注意:若只给定了一个点坐标,则右下角坐标默认为(0,0) -------------------------------------------------------*/ #include #include #include #include using namespace std;

/**********Program**********/

本文来源:https://www.bwwdw.com/article/n6gf.html

Top