计算机二级C++选择习题



? ? ??计算机二级C++选择习题.docx



(1)程序流程图中带有箭头的线段表示的是( )

A)图元关系

B)数据流

C)控制流

D)调用关系

答案:C

(2)结构化程序设计的基本原则不包括( )

A)多态性

B)自顶向下

C)模块化

D)逐步求精

答案:A

(3)软件设计中模块划分应遵循的准则是( )

A)低内聚低耦合

B)高内聚低耦合

C)低内聚高耦合

D)高内聚高耦合

答案:B

(4)在软件开发中,需求分析阶段产生的主要文档是( )

A)可行性分析报告

B)软件需求规格说明书

C)概要没计说明书

D)集成测试计划

答案:B

(5)算法的有穷性是指( )

A)算法程序的运行时间是有限的

B)算法程序所处理的数据量是有限的

C)算法程序的长度是有限的

D)算法只能被有限的用户使用

答案:A

(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(rt1)/2的排序方法是( )

A)快速排序

B)冒泡排序

C)直接插入排序

D)堆排序

答案:D

(7)F列关于栈的叙述正确的是( )

A)栈按先进先出组织数据

B)栈按先进后出组织数据

C)只能在栈底插入数据

D)不能删除数据

答案:B

(8)在数据库设计中,将ER图转换成关系数据模型的过程属于( )

A)需求分析阶段

B)概念设计阶段

C)逻辑设计阶段

D)物理设计阶段

答案:C

(9)下列语句中,错误的是( )

A)const int buffer256;

B)const int temp;

C)const double*point;

D)const double*rt=new double(5.5);

答案:B

(10)设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课Sc(学号,课号,成绩),则表Sc的关键字(键或码)( )

A)课号,成绩

B)学号,成绩

C)学号,课号

D)学号,姓名,成绩

答案:C

(1)下面是重载为非成员函数的运算符的函数原型,其中错误的是( )

A)Fraction operator+(FractionFraction);

B)Fraction operator(Fraction);

C)Fraction&operator=(Fraction&Fraction);

D)Fraction&operator+=(Fraction&Fraction);

答案:C

(2)有如下程序:

int x=3

do{

x-=2;

COU[<<>< p>

}while(!(--X));

执行这个程序的输出结果是( )

A)1

B)3 0

C)1—2

D)死循环

答案:C

(3)有如下程序:

nclude

using namespace std;

int main()

{

int*P;

*P=9

cout<<”The value at p”<< *p;

return 0;

}

编译运行程序将出现的情况是( )

A)编译时出现语法错误,不能生成可执行文件

B)运行时一定输出:l'lle value at P9

C)运行时一定输出:llle value at P*9

D)运行时有可能出错

答案:D

(4)if语句的语法格式可描述为:

格式lif(<条件>)<语句>

格式2if(<条件>)<语句l>

else<语句2>

关于上面的语法格式,下列表述中错误的是( )

A)<条件>部分可以是一个if语句,例如if(if(a==0)…)…

B)<语句>部分可以是一个if语句,例如if(…)if(…)…

C)如果在<条件>前加上逻辑非运算符!并交换<语句l><语句2>的位置,语句功能不变

D)<语句>部分可以是一个循环语句,例如if(…)while(…)…

答案:A

(5)下列符号中,正确的c++标识符是( )

A)enum

B)2b

C)f009

D)_32

答案:D

(6)下列关于c++函数的说明中,正确的是( )

A)内联函数就是定义在另一个函数体内部的函数

B)函数体的最后一条语句必须是return语句

C)标准c++要求在调用一个函数之前,必须先声明其原型

D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

答案:C

(7)运算符重载是对已有的运算符赋予多重含义,因此( )

A)可以对基本类型(int类型)的数据,重新定义“+”运算符的含义

B)可以改变一个已有运算符的优先级和操作数个数

C)只能重载c++中已经有的运算符,不能定义新运算符

D)C++中已经有的所有运算符都可以重载

答案:C

(8)下列有关内联函数的叙述中,正确的是( )

A)内联函数在调用时发生控制转移

B)内联函数必须通过关键字inline来定义

C)内联函数是通过编译器来实现的

D)内联函数函数体的最后一条语句必须是return语句

答案:C

(9)下列运算符不能重载为友元函数的是( )

A)=()( )->

B) + - ++ --

C)> < >= <=

D)+= -= *=/=

答案:A

(10)有如下程序:

#include

using namespaee std;

int main()

{

void function(double val);

double val

function(val);

eout<<>< p>

return 0;

}

void function(double val)

{

val=3;

}

编译运行这个程序将出现的情况是( )

A)编译出错,无法运行

B)输出:3

C)输出:3.0

D)输出一个不确定的数

答案:D

(1)下列关于成员函数特征的描述中,错误的是(  )

A)成员函数一定是内联函数

B)成员函数可以重载

C)成员函数可以设置参数的默认值

D)成员函数可以是静态的

答案:A

(2)有如下类定义:

class MyClass

{

public

private

______________________________________

int data;

};

若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的

对象0bj中数据成员data的值,则横线处的声明语句应为( )

A)friend istream& operator>>(istream&isMyClass&a);

B)friend istream&operator>>(istream&isMyClass a);

C)istream&operator>>(istream&isMyClass&a);

D)istream&operator>>(istream&isMyClass a);

答案:A

(3)由于常对象不能被更新,因此( )

A)通过常对象只能调用它的常成员函数

B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员

D)通过常对象可以调用任何不改变对象值的成员函数

答案:A

(4)有如下类定义:

class AA

{

im a

public

int getRef()const{return&a;}//

int getValue()const{return a;}//

void set(int n)const{a=n;}//

friend void show(AA aa)const{cout<<>

};

其中四个函数的定义中正确的是( )

A)

B)

C)

D)

答案:B

(5)下列关于this指针的描述中,正确的是( )

A)类的成员函数都有this指针

B)类的友元函数都有this指针

C)任何与类相关的函数都有this指针

D)类的非静态成员函数都有this指针

答案:D

(6)下列关于虚函数的说明中,正确的是( )

A)从虚基类继承的函数都是虚函数

B)虚函数不得是静态成员函数

C)只能通过指针或引用调用虚函数

D)抽象类中的成员函数都是虚函数

答案:B

(7)下列关于基类和派生类关系的叙述中,正确的是( )

A)每个类最多只能有一个直接基类

B)派生类中的成员可以访问基类中的任何成员

C)基类的构造函数必须在派生类的构造函数体中调用

D)派生类除了继承基类的成员,还可以定义新的成员

答案:D

(8)有如下类定义:

class B

{

publicvoid funl(){}

privatevoid fun2(){}

protectedvoid fun3(){}

};

class Dpublic B

j

protectedvoid fun4(){}

};

obj是类D的对象,则下列语句中不违反访问控制权限的是( )

A)obj.funl();

B)obj.fun2();

C)obj.tim3();

D)ohj.fun4();

答案:A

(9)有如下类定义:

class Foo

{

public

Foo(int v)value(V){}//

Foo(){}//

private

Foo(){}//

int value=0//

};

其中存在语法错误的行是( )

A)

B)

C)

D)

答案:D

(10)有如下类定义:

class Point

{

int xx.yy;

public

Point()xx(0)yy(0){}

Point(int xint Y=0)xx(X)YY(Y){}

};

若执行语句

Point a(2)b[3],幸c[4];

Point类的构造函数被调用的次数是( )

A)2

B)3

C)4

D)5

答案:C

(1)有如下类定义:

class Test

{

public

Test(){a=0;c=0;}//

int f(im a)const{this->a=a;}//

static int g(){return a;f//

void h(int b){Test.b=b;};//

private

int a;

static int b;

const int C;

};

int Test::b=0

在标注号码的行中,能被正确编译的是( )

A)

B)

C)

D)

答案:D

(2)有如下类声明:

class SAMPLE

{

int n

public

SAMPLE(int i=0)n(i){}

void setValue(int nO);

};

下列关于9etValue成员函数的定义中,正确的是( )

A)SAMPLE::setValue(int nO){n=n0;} B)void SAMPLE::setValue(int){n=n0;

C)void setValue(int nO){n=n0;}D)setValue(int nO){n=n0;}

答案:B

(3)有如下程序:

#include

using namespace std;

class A

{

public

A(){cout<<”A”;}

-A(){cout<<”-A”;}

};

class Bpublic A

{

A*P;

public

B(){cout<<”B”;P=new A();}

-B(){cout<<”B”;delete p;}

};

int main()

{

B obj;

return 0;

}

执行这个程序的输出结果是( )

A)BAAABA

B)ABABAA

C)BAABAA

D)ABAABA

答案:B

(4)有如下程序:

#include

using namespace std;

class Base

{

private

void funl()const{tout<<”funl”;}

protected

void fun2()const{tout<<”fun2”;}

public

void fun3()const{cout<<”fhll3”;}

};

class Derivedprotected Base

{

public

void fhn4()const{cout<<”filn4”;}

};

int main()

{

Derived obj;

obj.funl();//

obj.fun2();//

obj.furd();//

obj.fun4();//

return U

}

其中有语法错误的语句是( )

A)①②③④

B)①②③

C)②③④

D)①④

答案:B

(5)有如下程序:

#include

using namespace std;

class Basel

{

public

BaseI(int d){cout<

Basel(){}

};

class Base2

{

public

Base2(int d){tout<

Base2(){}

};

class Derivedpublic BaselBase2

{

public

Derived(int aint bint cint d)Basel(b)Base2(a)bl(d)b2(c){}

private

int bl

int b2

};

int main()

{

Derived d(1234);

return 0;

}

执行这个程序的输出结果是( )

A)1234

B)2134

C)12

D)21

答案:D

(6)有如下程序:

#include

using namespace std;

class Base

{

public

void funl(){cout<<”Base\n”;}

virtual void fun2(){eout<<”Base\n”;}

};

class Derivedpublic Base{

public

void funl(){eout<<”Derivedn”;}

void fura(){eout<.<”Derived\n”;}

};

void f(Base&b)}b.funl();b.ftm2();}

int main()

{

Derived obj;

f(obj);

return 0;

}

执行这个程序的输出结果是( )

A)Base

B)Base

C)Derived

D)Derived

Base Derived Base Derived

答案:B

(7)模板对类型的参数化提供了很好的支持,因此( )

A)类模板的主要作用是生成抽象类

B)类模板实例化时,编译器将根据给出的模板实参生成一个类

C)在类模板中的数据成员都具有同样类型

D)类模板中的成员函数都没有返回值

答案:B

(8)有如下函数模板:

template

T east(U u)i return u;}

其功能是将U类型数据转换为T类型数据。已知iint型变量,下列对模板函数cast的调用中正确的是( )

A)cast(i);

B)cast<>(i);

C)east(i);

D)east(i);

答案:D

(9)要建立文件流并打开当前目录下的文件6le.dat用于输入,下列语句中错误的是( )

A)ifstream fin=ffstream.open(”file.dat”);

B)ifstream*fin=new ifstream(”file.dat”);

C)ifstream fin;fin.open(”file.dat”);

D)ifstream*fin=new ifstream();fin->open(”file.dat”);

答案:A

(10)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为( )

A)ios—base::in

B)ios—base::in l ios base::0ut

C)los base;0ut

D)ios_base::in&ios_base::0ut

答案:A

(1)一个栈的初始状态为空。现将元素12345ABCDE依次入栈,然后再依次出栈,则元素出栈的顺序是( )

A)12345ABCDE

B)EDCBA54321

C)ABCDEl2345

D)5432lEDCBA

答案:B

(2)下列叙述中正确的是( )

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

D)循环队列中元素的个数是由队头指针和队尾指针共同决定

答案:D

(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )

A)O(n)

B)O(n2)

C)O(1092n)

C)0(n1092n)

答案:C

(4)下列叙述中正确的是( )

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C)顺序存储结构能存储有序表,链式存储结构不能存储有序表

D)链式存储结构比顺序存储结构节省存储空间

答案:A

(5)数据流图中带有箭头的线段表示的是( )

A)控制流

B)事件驱动

C)模块调用

D)数据流

答案:D

(6)在软件开发中,需求分析阶段可以使用的工具是( )

A)N—s

B)DFD

C)PAD

D)程序流程图

答案:B

(7)在面向对象方法中,不属于对象基本特点的是( )

A)一致性

B)分类性

C)多态性

D)标识唯一性

答案:A

(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )

A)一对一

B)一对多

C)多对一

D)多对多

答案:B

(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )

A)人工管理阶段

B)文件系统阶段

C)数据库系统阶段

D)三个阶段相同

答案:C

(10)下列关于c++流的描述中,错误的是( )

A)cout>>’A’表达式可输出字符A

B)eof()函数可以检测是否到达文件尾

C)对磁盘文件进行流操作时,必须包含头文件fstream

D)ios_base::0ut模式打开的文件不存在时,将自动建立一个新文件

答案:A

(1)下列语句中,错误的是( )

A)const int buffer=256;

B) const double*point;

C)int const buffer=256;

D)double*eonst point

答案:D

(2)if语句的语法格式可描述为:格式lif(<条件>)<语句>

格式2if(<条件>)<语句l> else<语句2>

关于上面的语法格式,下列表述中错误的是( )

A)<条件>部分可以是一个if语句,例如if(if(a==0)…)…

B)<语句>部分可以是一个if语句,例如if(…)if(…)…

C)如果在<条件>前加上逻辑非运算符!并交换<语句l><语句2>的位置,语句功能不变

D)<语句>部分可以是一个循环语句,例如if(…)while(…)…

答案:A

(3)有如下说明:

int a[10]={12345678910}* P=a;

则数值为9的表达式是( )

A)*P+9

B)(P+8)

C)*P+=9

D)P+8

答案:B

(4)有如下程序段:

int i=0J=1;

int&r=i;//

r=j;//

int*P=&i;//

*P=&r;//

其中会产生编译错误的语句是( )

A)

B)

C)

D)

答案:A

(5)下列字符串中。不可以用做c++标识符的是( )

A)y_2006

B)_EST_H

C)Return

D)switch

答案:D

(6)为了取代c中带参数的宏,在c++中使用( )

A)重载函数

B)内联函数

C)递归函数

D)友元函数

答案:B

(7)通过运算符重载,可以改变运算符原有的( )

A)操作数类型

B)操作数个数

C)优先级

D)结合性

答案:A

(8)在函数中,可以用aut0extemregisterstatic这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )

A)auto

B)extern

C)register

D)static

答案:A

(9)下列运算符函数中肯定不属于类FunNumber的成员函数的是( )

A)int operator(FunNumber);

B)FunNumber operator();

C)FunNumber operator(int);

D)int operator(FunNumberFunNumber);

答案:D

(10)若有下面的函数调用:fun(fl+b3max(n1b))

fun的实参个数是( )

A)3

B)4

C)5

D)6

答案:A

(1)关于运算符重载,下列表述中正确的是( )

A)c++已有的任何运算符都可以重载

B)运算符函数的返回类型不能声明为基本数据类型

C)在类型转换符函数的定义中不需要声明返回类型

D)可以通过运算符重载来创建c++中原来没有的运算符

答案:C

(2)有如下程序:

#nclude

using namespace std;

int main()

{

void function(double val);

double val;

function(val);

cout<

return 0;

}

void function(double val)

} val=3;}

编译运行这个程序将出现的情况是( )

A)编译出错,无法运行

B)输出:3

C)输出:3.0

D)输出一个不确定的数

答案:D

(3)下列情况中,不会调用拷贝构造函数的是( )

A)用一个对象去初始化同一类的另一个新对象时

B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时

D)函数的返回值是类的对象,函数执行返回调用时

答案:B

(4)以下关键字不能用来声明类的访问权限的是( )

A)public

B)static

C)protected

D)private

答案:B

(5)由于常对象不能被更新,因此( )

A)通过常对象只能调用它的常成员函数

B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员

D)通过常对象可以调用任何不改变对象值的成员函数

答案:A

(6)下列有关继承和派生的叙述中,正确的是( )

A)如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员

B)派生类的成员函数可以访问基类的所有成员

C)基类对象可以赋值给派生类对象

D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

答案:D

(7)在公有继承的情况下,允许派生类直接访问的基类成员包括( )

A)公有成员

B)公有成员和保护成员

C)公有成员、保护成员和私有成员

D)保护成员

答案:B

(8)有如下程序:

#include

using namespace std;

classBase{

public

void fun(){

__________________

cout<<”Base::fun”<

};

class Derivedpublic Base{

public

voidfun(){

cout<<”Derived::fun”<<>< p>

}

};

int main(){

Derived d;

d.fun();

return 0;

}

已知其执行后的输出结果为:

Base::fun

Derived::fun

则程序中下画线处应填人的语句是( )

A)Base.fun();

B)Base::fun();

C)Base—>fun();

D)fun();

答案:B

(9)有如下程序:

#include

using namespace std;

class MyClass{

public

MyClass(){cout<<’A’;}

MyClass(char C){cout<

MyClass(){cout<<’B’;}

};

int main(){

MyClass pl+p2;

p2=new MyClass(’X’);

delete p2;

return 0;

}

执行这个程序的输出结果是( )

A)ABX

B)ABXB

C)AXB

D)AXBB

答案:D

(10)有如下程序:

#include

using namespace std;

int i=1;

class Fun{

public

static int i;

int value(){return i—l;}

int value()const{return i+1;}

};

int Fun::i=2;

int main(){

int i=3;

Fun funl;

const Fun fun2

__________________

return 0;

}

若程序的输出结果是:

123

则程序中下画线处遗漏的语句是( )

A)cout<<><>::I<

B)tout<<>::I<<>

C)cout<<><><>::I< p>

D)eout<<><>::I<

答案:A

(1)下列叙述中正确的是( )

A)栈是先进先出的线性表

B)队列是先进后出的线性表

C)循环队列是非线性结构

D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

答案:D

(2)支持子程序调用的数据结构是( )

A)

B)

C)队列

D)二叉树

答案:A

(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )

A)10

B)8

C)6

D)11

答案:C

(4)下列排序方法中,最坏情况下比较次数最少的是( )

A)冒泡排序

B)简单选择排序

C)直接插入排序

D)堆排序

答案:D

(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )

A)编译程序

B)操作系统

C)教务管理系统

D)汇编程序

答案:C

(6)下面叙述中错误的是( )

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行错误定位是程序调试的必要步骤

C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

答案:A

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )

A)提高耦合性降低内聚性有利于提高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D)内聚性是指模块间互相连接的紧密程度

答案:B

(8)数据库应用系统中的核心问题是( )

A)数据库设计

B)数据库系统设计

C)数据库维护

D)数据库管理员培训

答案:A

(9)在下列枚举符号中,用来表示相对于当前位置文件定位方式的是( )

A)ios_base::cur

B)ios—base::beg

C)los_base::0ut

D)ios—base::end

答案:A

(10)E—R图转换为关系模式时,实体和联系都可以表示为( )

A)属性

B)

C)关系

D)

答案:C

(1)字面常量424.242L的数据类型分别是( )

A)long,doubleint

B)lon9floatint

C)intdoublelong

D)intfloatlong

答案:C

(2)执行下列语句段后,输出字符“*”的个数是( )

for(int i=50;i>1;--i) Cout<<'*'

A)48

B)49

C)50

D)51

答案:B

(3)有如下程序段:

int i=0J=1;

nt&r=i;// r=j;//

int * P=&i;// * P=&r;//

其中会产生编译错误的语句是( )

A)

B)

C)

D)

答案:A

(4)必须用一对大括号括起来的程序段是( )

A)switCh语句中的ease标号语句

B)if语句的分支

C)循环语句的循环体

D)函数的函数体

答案:D

(5)下列符号中不属于C++关键字的是( )

A)friend

B)namespaee

C)Continue

D)byte

答案:D

(6)下列有关函数重载的叙述中,错误的是( )

A)函数重载就是用相同的函数名定义多个函数

B)重载函数的参数列表必须不同

C)重载函数的返回值类型必须不同

D)重载函数的参数可以带有默认值

答案:C

(7)下列有关运算符重载的叙述中,正确的是( )

A)运算符重载是多态性的一种表现

B)C++中可以通过运算符重载创造新的运算符

C)C++中所有运算符都可以作为非成员函数重载

D)重载运算符时可以改变其结合性

答案:A

(8)在下列原型所示的C++函数中,按传值方式传递参数的是( )

A)void fl(int X);

B)void t2(int*X);

C)void f3(Const int*X);

D)void f4(int&x);

答案:A

(9)将前缀运算符“--”重载为非成员函数,下列原型中能正确用于类中说明的是( )

A)DeCr&operator--(int);

B)DeCr operator--(DeCr&int);

C)friend DeCr&operator--(DeCr&);

D)friend DeCr operator--(DeCr&int);

答案:D

(10)有如下函数定义:

void funC(int aint&b) {a++;b++;}

若执行代码段:

int x=0Y = 1; funC(XY);

则变量xy的值分别是( )

A)01

B)11

C)02

D)12

答案:C

(1)下列运算符中,不能被重载的是( )

A)&&

B)!=

C).

D)++

答案:C

(2)关于运算符重载,下列表述中正确的是( )

A)C++已有的任何运算符都可以重载

B)运算符函数的返回类型不能声明为基本数据类型

C)在类型转换符函数的定义中不需要声明返回类型

D)可以通过运算符重载来创建C++中原来没有的运算符

答案:C

(3)下列关于类定义的说法中,正确的是( )

A)类定义中包括数据成员和函数成员的声明

B)类成员的缺省访问权限是保护的

C)数据成员必须被声明为私有的

D)成员函数只能在类体外进行定义

答案:A

(4)有如下程序:

#inCludeusing namespaCe std; Class A{

publiC

statiC int a;

void init(){a=1;}

A(int a=2){init();a++;} };

int A::a0 A obj;

int main( ) {

Cout<<> p 0;< return>

}

运行时输出的结果是( )

A)0

B)1

C)2

D)3

答案:B

(5)以下关键字不能用来声明类的访问权限的是( )

A)publiC

B)statiC

C)proteCted

D)private

答案:B

(6)下列关于派生类构造函数和析构函数的说法中,错误的是( )

A)派生类的构造函数会隐含调用基类的构造函数

B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数

C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

答案:D

(7)派生类的成员函数不能访问基类的( )

A)公有成员和保护成员

B)公有成员

C)私有成员

D)保护成员

答案:C

(8)有如下类定义:

Class AA{ int a PubliC AA(int n=O)a(n){}

};

Class BBpubliC AA{ publiC

BB(int n)

};

其中横线处的缺失部分是( )

A)a(n){}

B)AA(n){}

C){a(n);}

D){a=n;}

答案:B

(9)有如下程序:

#inCludeusing namespaCe std; Class test{

private int a;

publiC

test(){Cout<<”ConstruCtor”<<>

test(Const test&_test){ a=test.a

Cout<<”Copy ConstruCtor”<<> p }<>

test(){Cout<<”destruCtor”<

};

int main( ){ test A(3); return 0;

}

执行这个程序的输出结果是( )

A)3

B)ConstruCtor

C)Copy ConstruCtor

D)3 destruCtor destruCtor destruCtor

答案:D

(10)若有如下类声明:

Class MyClass{ publiC

MyClass(){Cout<<1;} };

执行下列语句

MyClass ab[2]*p[2]; 程序的输出结果是( )

A)11

B)111

C)1111

D)11111

答案:B

(1)有如下程序:

#inCludeusing namespaCe std; Class Point{

publiC

statiC int number;

publiC

Point()t.number++;} ~Point(){number--;}

}; int P0int::number=0;

int main(){

Point *ptr

Point AB; Point*ptr_point=new Point[3]; ptr=ptr_point;’

}

Point C;

Cout<<>:::NUMBER<

return 0; }

执行这个程序的输出结果是( )

A)3

B)4

C)6

D)7

答案:C

(2)有如下程序:

#inCludeusing namespaCe std; Class Sample{

friend long fun(Sample S); publiC

Sample(10ng a){x=a;} private

long X;

}; long fun(Sample S){

if(S.x<2)return l;

return S.X*fun(Sample(s.x-1)); }

int main() {

int sum=0;

for(int i=0;i<6;i++) {sum+=fun(Sample(i));}

Cout<<> p 0;< return>

}

执行这个程序的输出结果是( )

A)120

B)16

C)154

D)34

答案:C

(3)有如下程序: Class Base{ publiC

int data; };

Class DerivedlpubliC Base{};

Class Derived2proteCted Base{};

int main() {

Derivedl dl; Derived2 d2; dl.data=0;//

d2.data=0;// retum 0;

}

下列关于程序编译结果的描述中,正确的是( )

A)①②皆无编译错误

B)有编译错误,无编译错误

C)无编译错误,有编译错误

D)①②皆有编译错误

答案:C

(4)有如下程序:

#inClude

using namespaCe std; ClaSS A{

publiC

A(int i){x=i;}

void dispa(){Cout<<>’;} p private<>

int x; };

Class BpubliC A{ publiC

B(int i)A(i+10){x=i;}

vold dispb(){dispa();Cout<<><>

int x; };

int main()} B b(2); b.dispb();

return 0; }

执行这个程序的输出结果是( )

A)102

B)12,10

C)122

D)22

答案:C

(5)有如下程序:

#inCludeusing namespaCe std; Class MusiC{

publiC

void setTitle(Char*str){strCpy(titlestr);} proteCted

Char type[10]; private

Char title[20];

Class JazzpubliC MusiC{ publiC

void set(Char*str){

strCpy(type”Jazz'’);// strCpy(titlestr);//

} }; 下列叙述中正确的是( )

A)程序编译正确

B)程序编译时语句出错

C)程序编译时语句出错

D)程序编译时语句都出错

答案:C

(6)有如下程序:

#inCludeusing namespaCe std; Class Book{

publiC

Book(Char*t=””){strCpy(titlet);}

private

Char titlel40]; };

Class NovelpubliC Book{ publiC

Novel(Char*t=””)Book(t){}

Char*Category()Const{return”文学”;} };

int main(){ Book * pb; pb=new Novel();

Cout<

return 0; }

若程序运行时输出结果是文学,则横线处缺失的语句是( )

A)Char*Category();

B)Char*Category()Const;

C)virtual Char*Category()Const;

D)virtual Char*Category()Const=0;

答案:D

(7)如下函数模板:

templateT square(T x){return x*x;}其中T( )

A)函数形参

B)函数实参

C)模板形参

D)模板实参

答案:C

(8)下列函数模板的定义中,合法的是( )

A)templateT abs(T X){return x<07-xX;}

B)template ClassT abs(T x){return x<07-Xx;}

C)template Tabs(T X){return x<07-xX;}

D)template T abs(T x){return X<0?-Xx;}

答案:A

(9)C++中,Cin是一个( )

A)

B)对象

C)模板

D)函数

答案:B

(10)下列控制格式输入/输出的操作符中,能够设置浮点数精度的是( )

A)setpreCision

B)setw

C)setfill

D)showpoint

答案:A

(1)下列数据结构中,属于非线性结构的是( )

A)循环队列

B)带链队列

C)二叉树

D)带链栈

答案:C

(2)下列数据结构中,能够按照先进后出原则存取数据的是( )

A)循环队列

B)

C)队列

D)二叉树

答案:B

(3)对于循环队列,下列叙述中正确的是( )

A)队头指针是固定不变的

B)队头指针一定大于队尾指针

C)队头指针一定小于队尾指针

D)队头指针可以大于队尾指针,也可以小于队尾指针

答案:D

(4)算法的空间复杂度是指( )

A)算法在执行过程中所需要的计算机存储空间

B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的临时工作单元数

答案:A

(5)软件设计中划分模块的一个准则是( )

A)低内聚低耦合

B)高内聚低耦合

C)低内聚高耦合

D)高内聚高耦合

答案:B

(6)下列选项中不属于结构化程序设计原则的是( )

A)可封装

B)自顶向下

C)模块化

D)逐步求精

答案:A

(7)关于关键字classtypename,下列表述中正确的是( )

A) 程序中的typename都可以替换为class

B)程序中的class都可以替换为typename

C)在模板形参表中只能用{ypename来声明参数的类型

D)在模板形参表中只能用classtypenanle来声明参数的类型

答案:A

(8)数据库管理系统是( )

A)操作系统的一部分

B)在操作系统支持下的系统软件

C)一种编译系统

D)一种操作系统

答案: B

(9)E—R图中,用来表示实体联系的图形是( )

A)椭圆形

B)矩形

C)菱形

D)三角形

答案:C

(10)关于在调用模板函数时模板实参的使用,下列表述中正确的是( )

A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

B)对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略

C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略

D)对于常规参数所对应的模板实参,任何情况下都不能省略

答案:D

(1)下列符号中可以用做C++标识符的是( )

A)_radius

B)f00bar

C)else

D)3room

答案:A

(2)下列各组类型声明符中,含义相同的一组是( )

A)unsigned long intlong

B)signed short intshort

C)unsigned shortshort

D)short intint

答案:B

(3)必须用一对大括号括起来的程序段是( )

A)switCh语句中的Case标号语句

B)if语句的分支

C)循环语句的循环体

D)函数的函数体

答案:D

(4)语句int*P=&k;定义了指针P,与这个语句等效的语句序列是( )

A)int* p;P=&k;

B)int * P;P=k;

C)int * p;* P=&k;

D)int * p;* P=k;

答案:A

(5)执行下列语句段后,输出字符“*”的个数是( )

for(int i=50;i>1;i-=2)Cout<<'*'

A)24

B)25

C)26

D)50

答案:B

(6)下列关于运算符重载的叙述中,错误的是( )

A)有的运算符可以作为非成员函数重载

B)所有的运算符都可以通过重载而被赋予新的含义

C)不得为重载的运算符函数的参数设置默认值

D)有的运算符只能作为成员函数重载

答案:B

(7)C++编译器区分重载函数无任何意义的信息是( )

A)参数类型

B)参数个数

C)返回值类型

D)常成员函数关键字Const

答案:C

(8)运算符重载时不需要保持的性质是( )

A)操作数个数

B)操作数类型

C)优先级

D)结合性

答案:B

(9)下列关于函数的描述中,错误的是( )

A)函数可以没有返回值

B)函数可以没有参数

C)函数可以是一个类的成员

D)函数不能被定义为模板

答案:D

(10)关于函数重载,下列叙述中错误的是( )

A)重载函数的函数名必须相同

B)重载函数必须在参数个数或类型上有所不同

C)重载函数的返回值类型必须相同

D)重载函数的函数体可以有所不同

答案:C

(1)有如下程序:

#inCludeusing namespaCe std; Class MyClass{

publiC

MyClass(int X)val(X){}

void Print()Const}tout<<”Constval=”<

private

int val; };

int main(){

Const MyClass objl(10); MyClass obj2(20);

objl.Print(); obj2.Print(); retum 0;

}

执行这个程序的输出结果是( )

A)val=10 Constval=20

B)Constval=10 Constval=20

C)Constval=10 val=20

D)val=10 val=20

答案:C

(2)有如下程序:

#jnClude

using namespaCe std; Class Part{

publiC

Part(int x=0)val(X){Cout<Part(){Cout<

private

int val; t };

Class Whole{ publiC

Whole(int xint Yint z=0)p2(x)pl(y)val(z){Cout<Whole(){eout<

private

Part plp2; int val;

};

int main() {

Whole obj(123); return 0;

}

执行这个程序的输出结果是( )

A)123321

B)213312

C)213

D)123123

答案:B

(3)有如下程序:

#inCludeusing namespaCe std; Class Base{

publiC

Base(int x=0){Cout<

Class DerivedpubliC Base{ publiC

Derived(int X=0){Cout<<>

Base val; };

int main() {

Derived d(1); return 0;

}

执行这个程序的输出结果是( )

A)0

B)1

C)01

D)001

答案:D

(4)下列代码段中声明了3个类:

Class Person{};

Class StudentpubliC Person{}; Class UndergraduateStudent{};

下列关于这些类之间关系的描述中,错误的是( )

A)Person是类Undergraduate的基类

B)Undergraduate从类Student公有继承

C)Student是类Person的派生类

D)Undergraduate是类Person的派生类

答案:B

(5)有如下程序:

#inCludeusing namespaCe std; Class Base{

publiC

void output(){Cout<<1;}

virtual void Print(){Cout<<'B’;} };

Class DerivedpubliC Base{ publiC

void output(){Cout<<2;} void Print(){Cout<<’D ';} };

int main() {

Base * ptr=new Derived; ptr>output();

ptr>Print(); delete ptr;

retum0; }

执行这个程序的输出结果是( )

A)1B

B)lD

C)2B

D)2D

答案:B

(6)有如下程序:

#inCludeusing namespaCe std; Class B{

publiC

virtual void show(){Cout<<”B”;} };

Class DpubliC B{ . publiC

void show(){Cout<<”D”;} };

void funl(B * ptr){ptr>show();} void fUN2(B&ref){ref.show();}

voidfhIl3(B b){b.show();} int main()

{

B b* P=new D; D d;

funl(P); fun2(b); fun3(d);

delete P; return 0; }

执行这个程序的输出结果是( )

A)BBB

B)BBD

C)DBB

D)DBD

答案:C

(7)C++中的模板包括( )

A)对象模板和函数模板

B)对象模板和类模板

C)函数模板和类模板

D)变量模板和对象模板

答案:C

(8)下列关于类模板的模板参数的叙述中,错误的是( )

A)模板参数可以作为数据成员的类型

B)模板参数可以作为成员函数的返回类型

C)模板参数可以作为成员函数的参数类型

D)模板参数不能作为成员函数的局部变量的类型

答案: D

(9)下列关于C++预定义流对象的叙述中,正确的是( )

A)CinC++预定义的标准输入流对象

B)CinC++预定义的标准输入流类

C)CoutC++预定义的标准输入流对象

D)CoutC++预定义的标准输入流类

答案:A

(10)有如下语句序列:

Char str[10];Cin>>str;

当从键盘输入“I love this game”时,str中的字符串是( )

A)”I love this game”

B)”I love thi”

C)”I love”

D)”I”

答案:D

(1)下列叙述中正确的是( )

A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D)线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

答案:B

(2)下列叙述中正确的是( )

A)栈是一种先进先出的线性表

B)队列是一种后进先出的线性表

C)栈与队列都是非线性结构

D)以上三种说法都不对

答案:D

(3)软件测试的目的是( )

A)评估软件可靠性

B)发现并改正程序中的错误

C)改正程序中的错误

D)发现程序中的错误

答案:D

(4)在软件开发中,需求分析阶段产生的主要文档是( )

A)软件集成测试计划

B)软件详细设计说明书

C)用户手册

D)软件需求规格说明书

答案:D

(5)软件生命周期是指( )

A)软件产品从提出、实现、使用维护到停止使用退役的过程

B)软件从需求分析、设计、实现到测试完成的过程

C)软件的开发过程

D)软件的运行维护过程

答案:A

(6)面向对象方法中,继承是指( )

A)一组对象所具有的相似性质

B)一个对象具有另一个对象的性质

C)各对象之间的共同性质

D)类之间共享属性和操作的机制

答案:D

(7)层次型、网状型和关系型数据库划分原则是( )

A)己录长度

B)文件的大小

C)联系的复杂程度

D)数据之间的联系方式

答案:D

(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间 的联系是( )

A)一对一

B)一对多

C)多对多

D)多对一

答案:C

(9)数据库设计中反映用户对数据要求的模式是( )

A)内模式

B)概念模式

C)外模式

D)设计模式

答案:C

(10)有如下程序:

#include

using namespace std;

class A{

public

virtual void fancl(){cout<<”Al”;}

void func2(){cout<<”A2”;}

};

class Bpublic A{

public

void funcI(){tout<<”Bl”;}

void func2(){tout<<”B2”;}

};

intmain()}

A*P=new B

P—>funcl();

P—>func2();

delete p;

return 0;

}

执行这个程序的输出结果是( )

A)B182

B)A1A2

C)B1A2

D)AIB2

答案:C

(1)已知Value是一个类,valueValue的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是( )

A)Value operator+(Value vint i);

B)Value operator+(Value v=valueint i);

C)Value operator+(Value vinli=0)

D)Value operator+(Value v=vallleint i=0);

答案:A

(2)下列关于运算符重载的描述中,正确的是( )

A)运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符

B)一元运算符只能作为成员函数重载

C)二元运算符重载为非成员函数时,参数表中有一个参数

D)c++中可以重载所有的运算符

答案:A

(3)下列有关类成员的叙述中,正确的是( )

A)友元函数是类的成员函数

B)类成员的默认访问权限是私有的

C)类成员函数必须声明为公有的

D)类的静态数据成员不能是常成员

答案:B

(4)有如下类定义:

class Point{

private

static int how_many;

};

___________how_many=0;

要初始化Point类的静态成员how_many,下画线处应填入的内容是( )

A)int

B)static int

C)int Point::

D)static int Point::

答案:C

(5)有如下头文件:

int fl();

static int f2();

class MA{

public

int f3();

static int f4();

};

在所描述的函数中,具有隐含的this指针的是( )

A)fl

B)f2

C)f3

D)f4

答案:C

(6)下列有关类继承的叙述中,错误的是( )

A)继承可以实现软件复用

B)虚基类可以解决由多继承产生的二义性问题

C)派生类构造函数要负责调用基类的构造函数

D)派生类没有继承基类的私有成员

答案:D

(7)在下列关键字中,不能用来表示继承方式的是( )

A)private

B)static

C)public

D)protected

答案:B

(8)有如下两个类定义:

class XX{

private

double xl;

protected

double x2;

public

double x3;

};

class YYprotected XX{

private

double yl;

protected

double y2;

public

double y3;

在类YY中保护成员变量的个数是( )

A)1

B)2

C)3

D)4

答案:C

(9)有如下类定义:

class MyClass{

int value;

public

MyClass(int n)value(n){}

int getValue()const{retum value;}

};

则类MyClass的构造函数的个数是( )

A)1

B)2

C)3

D)4

答案:B

(10)有如下类和对象的定义:

class Constants{

public

static double getPI(){return 3.1416;}

};

Constants constants

下列各组语句中,能输出3.1416的是( )

A)cout<getPI();cout<<>::GETPI();< p>

B)cout<<>COUT<

C)cout<getPI();cout<getPI();

D)cout<<>COUT<<>::GETPI();< p>

答案:D

(1)下列叙述中正确的是( )

A)循环队列是队列的一种链式存储结构

B)循环队列是队列的一种顺序存储结构

C)循环队列是非线性结构

D)循环队列是一种逻辑结构

答案:B

(2)下列关于线性链表的叙述中,正确的是( )

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)以上说法均不正确

答案:C

(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为( )

A)16

B)10

C)6

D)4

答案:A

(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )

A)外模式

B)内模式

C)概念模式

D)逻辑模式

答案:B

(5)在满足实体完整性约束的条件下( )

A)一个关系中应该有一个或多个候选关键字

B)一个关系中只能有一个候选关键字

C)一个关系中必须有多个候选关键字

D)一个关系中可以没有候选关键字

答案:A

(6)有如下程序:

#include

using namespace std;

class Instrument{

public

virtual void Display()=0;

};

class Pian0public Instrument}

public

void Display(){/*函数体略*/}

};

intmain(){

Instrument S;

Instrument*P=0

//…;

return 0;

}

下列叙述中正确的是( )

A)语句“Insturment*P=0;”编译时出错

B)语句“Instnunent s;”编译时出错

C)Pian0中的Display函数不是虚函数

D)Instrument是一个虚基类

答案:B

(7)下面描述中,不属于软件危机表现的是( )

A)软件过程不规范

B)软件开发生产率低

C)软件质量难以控制

D)软件成本不断提高

答案:A

(8)下面不属于需求分析阶段任务的是( )

A)确定软件系统的功能需求

B)确定软件系统的性能需求

C)需求规格说明书评审

D)制定软件集成测试计划

答案:D

(9)在黑盒测试方法中,设计测试用例的主要根据是( )

A)程序内部逻辑

B)程序外部功能

C)程序数据结构

D)程序流程图

答案:B

(10)在软件设计中不使用的工具是( )

A)系统结构图

B)PAD

C)数据流图(DFD)

D)程序流程图

答案:C

(1)下面关于C++语言的描述错误的是( )

A)C++语言支持数据封装

B)C++语言中引入友元,没有破坏封装性

C)C++语言允许函数名和运算符重载

D)C++语言支持动态联编

答案:B

(2)设有定义int a=1;float f=1.2;char C='a';,则下列表示错误的是( )

A)++a;

B)f一一;

C)c++;

D)8++;

答案:D

(3)下列程序的运行结果为( )

#include

void main() {

int a=2

int b=a+1

cout<<><>

A)0.66667

B)0

C)0.7

D)0.66666666…

答案:B

(4)int a=1b=2;,则(a++)+ba+++b这两个表达式的值分别为( )

A)33

B)34

C)43

D)44

答案:A

(5)下面的语句中错误的是( )

A)int a=5;int x[a];

B)eonst int a=5;int x[a];

C)int n=5;int *P=new int[a];

D)const int n=5;int *p=new int[a];

答案:A

(6)判断char型变量c是否为小写字母的正确表达式是( )

A)’a’<=c<=’z’

B)(c>=A)&&(c<=z)

C)(’a’>=C)||(’z’<=C)

D)(c>=’a’)&&(c<=z)

答案:D

(7)下面程序的运行结果为( )

#include

void main() {

char a=’3’

switch(8)

{

case '3'cout<<”3”

case '2'cout<<”2”;break;

defaultcout<<”l”;

}

}

A)3

B)321

C)31

D)32

答案:D

(8)有如下数组声明:int num[10];,下标值引用错误的是( )

A)num[10]

B)num[5]

C)num[3]

D)hum[o]

答案:A

(9)存在定义int a[10]x* pa;,若pa=&a[0],下列的( )选项和其他3个选项不是等价的。

A)x=*pa;

B)x=*(a+1);

C)x=*(pa+l)

D)x=a[1];

答案:A

(10)下面程序的运行结果为( )

#include

void swap(int&aint b)

int temp;

temp=a++

a=b

b=temp;

}

void main()

{

im a=2b=3;

swap(a,b);

eout<<>”<<>

}

A)23

B)32

C)22

D)33

答案:D

(1)一个函数功能不太复杂但要求被频繁调用,应选用( )

A)内联函数

B)重载函数

C)递归函数

D)嵌套函数

答案:A

(2)下面关于c+十语言变量的叙述错误的是( )

A)c++语言中变量分为aut0staticextemregister4种存储类型

B)自动变量和外部变量的作用域为整个程序

C)内部静态变量的作用域是定义它的函数

D)外部静态变量的作用域是定义它的文件

答案:B

(3)为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )

A)public

B)protected

C)private

D)static

答案:A

(4)如果表达式x * y+z中,“*”是作为友元函数重载的,“+”是作为成员函数重载的,则该表达式还可为( )

A)operator+(operator$(XY)z)

B)x.operator+(operator * (xy)Z)

C)Y.operator * (operator+(xY)z)

D)x.operator+(operator{(XY))

答案: A

(5)this指针是C++语言实现( )的一种机制。

A)抽象

B)封装

C)继承

D)重载

答案:B

(6)C++语言中,打开一个文件就是将这个文件与一个( )建立关联。

A)

B)

C)结构

D)对象

答案:A

(7)c++语言程序中,对象之间的相互通信通过( )

A)继承实现

B)调用成员函数实现

C)封装实现

D)函数重载实现

答案:B

(8)类的析构函数是在( )调用的。

A)类创建时

B)创建对象时

C)删除对象时

D)不自动调用

答案:C

(9)通常拷贝构造函数的参数是( )

A)某个对象名

B)某个对象的成员名

C)某个对象的引用名

D)某个对象的指针名

答案:C

(10)下面程序的运行结果为( )

#include

class A

static int n;

public

A(){n=1;}

A(int num){n=hum;}

void print(){cout<<>

int A::n=2;

void main() {

A ab(3);

a.print();

b.print();

cout<<>< p>

A)11

B)13

C)23

D)33

答案:D

(1)下列不是描述类的成员函数的是( )

A)构造函数

B)析构函数

C)友元函数

D)复制构造函数

答案:C

(2)继承机制的作用是( )

A)信息隐藏

B)数据封装

C)定义新类

D)数据抽象

答案:C

(3)c++语言类体系中,不能被派生类继承的有( )

A)转换函数

B)构造函数

C)虚函数

D)静态成员函数

答案:B

(4)下面程序的运行结果是( )

#includeclass base{

protected int a; public

base(){cout<<”0”;}

}; class baselvirtual base{

public

basel(){cout<<”1”;}

};

class base2virtual base i public base2(){cout<<”2”;}

};

class derivedpublic baselpublic base2{ public

derived(){cout<<”3”;}

};

void main()

derived obj;

cout<<>< p>

A)0123

B)3120

C)0312

D)3012

答案:A

(5)对于类定义 class A{

public

void func2(){}

};

class Bpublic A{ public

w)id funcl()| cout<<"class B func l”<<>}< p>

virtual voiIl fimc2(){cout<<"class B func 2" <<>}< p>

};

下面正确的叙述是( )

A)A::rune2()B::funcl()都是虚函数

B)A::func2()B::funel()都不是虚函数

C)B::funcl()是虚函数,而A::func2()不是虚函数

D)B::funcl()不是虚函数,而A::func2()是虚函数

答案:C

(6)下面关于运算符重载的描述错误的是( )

A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构

B)不是所有的运算符都可以进行重载

C)运算符函数的调用必须使用关键字operat

D)C+十语言中不可通过运算符重载创造出新的运算符

答案:C

(7)与语句cout<<>不等价的是( p )<>

A)cout <<’\n’;

B)cout<<‘\l2’

C)cout <<’\xA’;

D)cout<<‘\0’

答案:D

(8)下面程序的运行结果是( )

#include

int fun(int a[]int n) {

int resuh=1;

for(inl i=1;i<11;1‘++)

result=result * a[i];

retum result;

} void main()

int a[3]={345}

cout<<>3)<<>< p>

}

A)12

B)15

C)20

D)60

答案:C

(9)Tilil程序的运行结果是( )

#includevoid main()

{

int i=1

while(i<=8)

if(++i%3 1=2)continue else eout<

}

A)25

B)36

C)258

D)369

答案:C

(10)下列程序的运行结果为( )

#includetemplate

class FF

{TT ala2a3; public

FF(TT blTT b2TT b3){al=bl;a2=b2;a3=b3;} TT Sum(){return al+a2+a3;};

}

void main()

{ FFx(int(1.1)23)Y(int(4.2)56); cout<<><>

A)6.1 15.2

B)6 15

C)6 15.2

D)6.1 15

答案:B

(1)有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)( )

int a[10]={0123456789}*P=a;

A)a[P-a]

B)*(&a[i])

C)P[i]

D)*(*(a+i))

答案:D

(2)有以下程序:

#includefloat tun(int Xint Y) {return(X+Y);} void main()

{int a=2b=5,c=8;

cout<<>B)A—C);< p>

程序运行后的输出结果是( )

A)编译出错

B)9

C)21

D)9.0

答案:B

(3)不能作为重载函数的调用的依据是( )

A)参数个数

B)参数类型

C)函数类型

D)函数名称

答案:D

(4)下列程序的输出结果为( )

#include

{

if(n<1)return l;

else return n+time(n1); return 0;

}

void main() {

cout<<>

}

A)0

B)10

C)15

D)16

答案:D

(5)c++语言中,数据封装要解决的问题是( )

A)数据的规范化

B)便于数据转换

C)避免数据丢失

D)防止不同模块之间数据的非法访问

答案:D

(6)以下程序中,错误的行为是( )

#includeclass A

{

public int n=2;

A(int val){cout<<>>

};

void main() {

A a(O); }

A)

B)

C)

D)

答案:A

(7)如果在表达式++x/y中,“++”是作为友元函数重载的,…/”是作为成员函数重载的,则该表达式还可为( )

A)(operator++(x)).operator/(Y)

B)(operator++(0)).operator/(Y)

C)operator/((operator++(x,0))Y)

D)operator/((operator++(0))Y)

答案:A

(8)下列程序的运行结果是( )

#includeclass Loeation{

private

int XY;

public void init(int=0int=0);

void valueX(int val){X=val;} int valueX(){returnx;}

void valueY(int val){Y=val;} int valueY(){return Y;}};

void Location::init(int initXint initY) {X=initX;

Y=initY4}

void main(X

{Location AB;

A.init();

A.value X(5);

cout<2);< Y()<<>

B.value Y(4);

eout<<>

}

A)5

0

6

4

B)0

0

6

4

C)5

0

6

2

D)0

0

6

2

答案:A

(9)对类的构造函数和析构函数描述正确的是( )

A)构造函数可以重载,析构函数不能重载

B)构造函数不能重载,析构函数可以重载

C)构造函数可以重载,析构函数也可以重载

D)构造函数不能重载,析构函数也不能重裁

答案:A

(10)下面程序的运行结果为( )

#includeclass A

{

int hum;

public

A(int i){nuln=i;}

A(A&a){num=a.num+;} void print(){eout(

void main()

A a(1)b(a); a.print();

b.print();

A)11

B)12

C)21

D)22

答案:C

(1)下面对静态数据成员的描述中,正确的是( )

A)静态数据成员是类的所有对象共享的数据

B)类的每个对象都有自己的静态数据成员

C)类的不同对象有不同的静态数据成员值

D)静态数据成员不能通过类的对象调用

答案:A

(2)如果类A被说明成类B的友元,则( )

A)A的成员即类B的成员

B)B的成员即类A的成员

C)A的成员函数不得访问类B的成员

D)B不一定是类A的友元

答案:D

(3)可以用P.a的形式访问派生类对象P的基类成员a,其中a( )

A)私有继承的公有成员

B)公有继承的私有成员

C)公有继承的保护成员

D)公有继承的公有成员

答案:D

(4)建立派生类对象时,3种构造函数分别是a(基类的构造函数)b(成员对象的构造函数)C(派生类)构造函数),这3种构造函数的调用顺序为( )

A)abC

B)aCb

C)Cab

D)Cba

答案:A

(5)下面关于虚函数的描述,错误的是( )

A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

C)虚函数可以是另一个类的友元函数,但不能是静态成员函数

D)基类中说明的纯虚函数在其任何派生类中都必须实现

答案:B

(6)下面关于模板的描述,错误的是( )

A)函数模板和类模板的参数可以是任意的数据类型

B)类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

C)函数模板不能直接使用,需要实例化为模板函数后才能使用

D)类模板的成员函数都是模板函数

答案:A

(7)语句ofstream f(”SALARY.DAT”ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALA-RY.DAT并与之连接,并且( )

A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B)若文件存在,将其置为空文件;若文件不存在,打开失败

C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D)若文件存在,打开失败;若文件不存在,建立一个新文件

答案:A

(8)下面程序的运行结果是( )

#includevoid main()

{

int num=1

int&ref=num; ref=ref+2

cout<<> p cout<<><>< num="num+3">

}

A)13

B)16

C)36

D)33

答案:C

(9)下面程序的运行结果是( )

#include

void fun(int *aint *b) {

int x=*a

*a=*b;*b=X;

cout<<*a<<*b<<””

void main() {

int X=1Y=2; fun(&x&y);

cout<<><>

}

A)12 12

B)12 21

C)21 12

D)21 2l

答案:D

(10)下列程序的运行结果为( )

#includeint i=0;

class A{ public A(){i++;}

};

void main() {

A ab[3]*C; C=b;

cout<<><>< p>

}

A)2

B)3

C)4

D)5

答案:C

(1)下列程序的输出结果为( )

#include

void main()

{

char*a[]={”hell0””the””world”};

char** pa = a

pa++;

cout<<*pa<<>< p>

}

A)hello

B)the

C)world

D)hellotheworld

答案:B

(2)决定c++语言中函数的返回值类型的是( )

A)return语句中的表达式类型

B)调用该函数时系统随机产生的类型

C)调用该函数时的主调用函数类型

D)在定义该函数时所指定的数据类型

答案:D

(3)有以下程序:

#include

void fun(int aint bint C)

{ a=456b=567c=678;}

void main()

{

int X=10Y=20Z=30;

fun(XYz);

aout<<>’<<>’<<>

}

输出结果是( )

A)302010

B)102030

C)456567678

D)678567456

答案:B

(4)以下叙述正确的是( )

A)函数可以嵌套定义但不能嵌套调用

B)函数既可以嵌套调用也可以嵌套定义

C)函数既不可以嵌套定义也不可以嵌套调用

D)函数可以嵌套调用但不可以嵌套定义

答案:D

(5)下列程序的输出结果是( )

#include

int rain(iltl aint b)

{

if(a

else retum b;

retum 0;

}

void main()

{

eout<<>MIN(23))<

}

A)0

B)1

C)2

D)3

答案:B

(6)下列程序的运行结果为( )

#include

void print(double a)

{

cout<<++a

}

void print(int atint b)

{

cout<<><>< p>

}

void main()

{

print(1.2);

eout<<””

print(34);

}

A)1.2 34

B)2.2 34

C)1.2 43

D)2.2 43

答案:D

(7)对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )

A)公有类型

B)私有类型

C)保护类型

D)友元类型

答案:D

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

A)友元函数

B)虚函数

C)构造函数

D)析构函数

答案:C

(9)类的析构函数的作用是( )

A)一般成员函数的初始化

B)类的初始化

C)对象的初始化

D)删除类创建的对象

答案:D

(10)下列说法正确的是( )

A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C)类的内联函数必须在类体内定义

D)类的内联函数必须在类体外通过加关键字inline定义

答案:B

1.若有以下数组说明,则i=10;a[a[i]]元素数值是(  )

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A)10

B)9

C)6

D)5

答案:C

2.C语言中函数返回值的类型是由 ( ) 决定的.

A)函数定义时指定的类型

B) return语句中的表达式类型

C) 调用该函数时的实参的数据类型

D)形参的数据类型

答案:A

3. C语言中,函数的数据类型是指( )

A) 函数返回值的数据类型

B) 函数形参的数据类型

C) 调用该函数时的实参的数据类型

D)任意指定的数据类型

答案:A

4.在函数调用时,以下说法正确的是( )

A)函数调用后必须带回返回值

B)实际参数和形式参数可以同名

C)函数间的数据传递不可以使用全局变量

D)主调函数和被调函数总是在同一个文件里

答案:B

5. C语言中,表示静态存储类别的关键字是: ( )

A) auto

B) register

C)static

D)extern

答案:C

6.未指定存储类别的变量,其隐含的存储类别为( )

A)auto

B)static

C)extern

D)register

答案:A

7. 若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是: ( )

A) struct是结构体类型的关键字

B) struct student 是用户定义的结构体类型

C) num, score都是结构体成员名

D) stu是用户定义的结构体类型名

答案:D

8.若有以下说明语句:

struct date

{ int year;

int month;

int day;

}brithday;

则下面的叙述不正确的是_____.

A) struct是声明结构体类型时用的关键字

B) struct date 是用户定义的结构体类型名

C) brithday是用户定义的结构体类型名

D)year,day 都是结构体成员名

答案:C

9. 以下对结构变量stul中成员age的非法引用是 ( )

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A) stu1.age

B) student.age

C) p->age

D)(*p).age

答案:B

10.设有如下定义:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是 ( )

A) p=&a;

B) p=datA)a;

C)p=&datA)a;

D)*p=datA)a;

答案:C

?


Copyright @ 2018. All rights reserved.高教教育集团.陇ICP备18000868号

电话直呼
在线留言
发送邮件
联系我们:
0931-8610831
暂无内容
还可输入字符200(限制字符200)
技术支持: 云企点 | 管理登录