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。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |