第 1 页:选择题 |
第 3 页:基本操作题 |
第 4 页:简单应用题 |
第 5 页:综合应用题 |
21有如下类定义:
class Point
{
int xx.yy;
public:
Point():xx(0),yy(0){}
Point(int x,int Y=0):xx(X),YY(Y){}
};
若执行语句
Point a(2),b[3],幸c[4];
则Point类的构造函数被调用的次数是( )。
A.2次B.3次C.4次D.5次
参考答案:C
参考解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行4次构造函数,对象指针不调用构造函数。所以本题答案为c。
22有如下程序:
#include
using namespace std;
class Basel
{
public:
BaseI(int D.{cout<
一Basel(){}
};
class Base2
{
public:
Base2(int D.{tout<
~Base2(){}
};
class Derived:public Basel,Base2
{
public:
Derived(int a,int b,int c,int D.:Basel(B.,Base2(A.,bl(D.,b2(C.{}
private:
int bl:
int b2:
};
int main()
{
Derived d(1,2,3,4);
return 0;
}
执行这个程序的输出结果是( )。
A.1234B.2134C.12D.21
参考答案:D
参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出21。
23以下叙述正确的是( )。
A.函数可以嵌套定义但不能嵌套调用
B.函数既可以嵌套调用也可以嵌套定义
C.函数既不可以嵌套定义也不可以嵌套调用
D.函数可以嵌套调用但不可以嵌套定义
参考答案:D
参考解析:在c++语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用。但是不能调用main()函数。
24必须用一对大括号括起来的程序段是( )。
A.switCh语句中的Case标号语句
B.if语句的分支
C.循环语句的循环体
D.函数的函数体
参考答案:D
参考解析:本题考查c++基本控制结构,A、B、C三个选项中的大括号不是必须的,而D选项中的函数体必须使用大括号。
25软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。
A.学生成绩管理系统
B.C语言编译程序
C.UNIX操作系统
D.数据库管理系统
参考答案:A
参考解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D都是系统软件,只有A是应用软件。
26下面程序的运行结果为( )。
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++:
}
cout<
}
A.10B.1lC.12D.0
参考答案:C
参考解析:在进入最后一次循环时a=10,在循环体内执行“a++;”后a=11,执行完该次循环体计算for循环的增量部分后a=12小于l0,循环结束。
27有如下程序:
#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<
参考答案:A
参考解析:本题考查构造函数、常成员函数和静态数据成员。外部同名的变量赋值,不能改变类的静态变量值,所以Fun对象里的i值为2,所以本题答案为A。
28下列有关模板的叙述中,正确的是( )。
A.函数模板不能含有常规形参
B.函数模板的一个实例就是一个函数定义
C.类模板的成员函数不能是模板函数
D.用类模板定义对象时,绝对不能省略模板实参
参考答案:B
参考解析:本题考查函数模板和类模板的基础知识,所以本题答案为B。
29运算符重载时不需要保持的性质是( )。
A.操作数个数B.操作数类型C.优先级D.结合性
参考答案:B
参考解析:重载运算符的规则如下:①c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重裁;②c++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是c++的标准类型。所以答案为B。
30下列程序的输出结果为( )。
#include
{
if(n<1)return l;
else return n+time(n一1); return 0;
}
void main() {
cout<
}
A.0B.10C.15D.16
参考答案:D
参考解析:本题考查的是递归函数的使用,题中递归函数的结束条件为n
31有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(int i=0){cout<<1;}
MyClass(const MyClass&x){cout<<2;}
MyClass&operator=(const MyClass&x){cout<<3;retum$this;}
~MyClass()}cout<<4;}
};
int main()
{
MyClass objl(1),obj2(2),obj3(objl);
retum 0;
{
执行这个程序的输出结果是( )。
A.112444B.11114444C.121444D.11314444
参考答案:A
参考解析:本题:考查构造函数和复制构造函数以及重载运算符。本题中先后定义了两个对象obj1,obj2,依次输出口,然后定义了对象obj3,凋用复制构造函数,输出2,最后执行三次析构函数,输出444。
32在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。
A.外模式B.内模式C.概念模式D.逻辑模式
参考答案:B
参考解析:数据库系统的兰级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述、、内模式又称物理模式,它给出r数据库物理存储结构与物理存取方法,所以选择8。
33有如下程序:
#inClude using namespaCe std; Class Base{
publiC:
void output(){Cout<<1;}
virtual void Print(){Cout<<'B’;} };
Class Derived:publiC Base{ publiC:
void output(){Cout<<2;} void Print(){Cout<<’D ';} };
int main() {
Base * ptr=new Derived; ptr一>output();
ptr一>Print(); delete ptr;
retum0; }
执行这个程序的输出结果是( )。
A.1BB.lDC.2BD.2D
参考答案:B
参考解析:在某基类中声明为vitua1并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个指向派生类对象的基类指针ptr,执行ptr一>outpnt后,会执行基类的output函数,输出1,由于Print是虚函数,所以ptr->Print()会执行派生类的Print,即输出D,所以本题答案为B。
34以下程序中,错误的行为是( )。
①#include
②class A
③{
④public:
⑤ int n=2;
⑥ A(int val){cout<
⑦ -A(){};
⑧};
⑨void main() ⑩{
⑪ A a(0);
⑫}
A.⑤B.⑥C.⑦D.⑪
参考答案:A
参考解析:C++语言中规定在类体中不允许对所定义的数据成员进行初始化。
35下列数据结构中,属于非线性结构的是( )。
A.循环队列B.带链队列C.二叉树D.带链栈
参考答案:C
参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
36有如下程序:
#inClude using namespaCe std; Class A{
publiC:
statiC int a;
void init( ){。a=1;}
A(int a=2){init( );a++;} };
int A::a:0: A obj;
int main( ) {
Cout<
}
运行时输出的结果是( )。
A.0B.1C.2D.3
参考答案:B
参考解析:本题考查构造函数,本题中对类中的a数据成员先是赋值为0,当定义了对象obj时,执行构造函数,将a的值变为了1,所以输出1。
37软件详细设计产生的图如下:
该图是( )。
A.N—S图B.PAD图C.程序流程图D.E—R图
参考答案:C
参考解析:N—S图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
38秘序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
参考答案:D
参考解析:程序调试的任务是诊断和改正程序中的错误。
39有如下程序:
#include
using namespace std;
class A{
public:
virtual void fancl(){cout<<”Al”;}
void func2(){cout<<”A2”;}
};
class B:public A{
public:
void funcI(){tout<<”Bl”;}
void func2(){tout<<”B2”;}
};
intmain()}
A*P=new B:
P—>funcl();
P—>func2();
delete p;
return 0;
}
执行这个程序的输出结果是( )。
A.B182B.A1A2C.B1A2D.AIB2
参考答案:C
参考解析:本题考查虚函数。虚函数指在基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。题中定义了一个派生类对象8,并使用类A的对象指针指向B,由于基类A中的funcl为虚函数,所以会执行派生类的funcl,输出Bl,而基类中的func2不是虚函数,所以P->func2()会执行基类的func2,输出A2。故答案为c。
40下列字符串中。不可以用做c++标识符的是( )。
A.y_2006B._EST_HC.ReturnD.switch
参考答案:D
参考解析:本题考查C++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用C++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项C中虽然retum是关键字,但因首字母大、小写不同,也可用于标识符,但不建议使用。故答案为D。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |