void fun(){ cout<<'D';} };
int main(){ Derived d; d.fun(); return 0; }
若程序的输出结果是BD,则划线处缺失的部分是
A)fun() B)Base.fun() C)Base::fun() D)Base->fun() (32)有如下程序:
#include
virtual void f() {cout<<\ void g(){cout<<\ }
class D;public B { public;
void f(){cout<<\ void g(){coun<<\ }
void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; }
运行这个程序的输出结果是:
A)DD B)BB C)BD D)DB (33)有如下程序:
#include
char str[80];
MyString(const char*s) {strcpy(str,s);} MyString&operator+=(MyString a){ strcat(str,a.str); return*this; } };
ostream&operator<<(ostream&s,const MyString&z){return s << z.str}
int main(){ MyString x(\,y(\; cout<<(x+=y)< 运行这个程序的输出结果是 A) abc B) cde C) abcde D) abccde (34)有如下程序: #include A) ##OK123 B) ##OK#123 C) OK##123 D) OK##123# (35)有如下语句序列: ifstream infile(\ if(infile.good())cout<<\ else{ cout<<\ ofstream outfile(\ if(outfile.fail())cout<<\ } 若执行这个语句序列显示的是BD,则说明文件DATA.DAT A)以读方式打开成功 B)以读方式打开失败,但以写方式打开成功 C)以读方式打开失败,以写方式打开也失败 D)以读方式打开成功,以写方式打开也成功 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。 注意:以命令关键字填空的必须拼写完整 (1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】 。 (2)设栈的存储空间为S(1:40),初始状态为bottom=0,top=0,现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。 (3)数据独立性分为逻辑独立性和物理独立性。当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3】 。 (4)关系数据库中能实现的专门关系运算包括【4】、连接和投影。 (5)软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件), Unix操作系统属于【5】软件。 (6)若有定义语句“int x=10;”,则表达式“x<=10?20:30”的值为【6】。 (7)下列语句的作用是计算正整数n的各位数字之和,例如:n=123,sum=1+2+3,请将下列语句补充完整。 do{ sum+=; n=n/10; }while(n1=0) (8)有如下程序: #include int main(){ int x=4,y=5; fun(x,y); cout< 运行这个程序的输出结果是【8】。 (9)有如下程序: #include A(){cout<<1;} A(const A&){cout<<2;} -A(){cout<<3;} }; int main(){ A obj1; A obj2(obj1); return 0; } 运行这个程序的输出结果是【9】。 (10)若下列程序的输出结果是20,请将横线处缺失部分补充完整。 #include MyClass(int x=)10:value(x){} void SetValue(int x){value=x;cout< int value; }; int main(){ MyClass*ptr=new MyClass; 【10】 //通过对象指针ptr调用SetValue函数 delete ptr; return 0; } (11)有下列程序的输出结果是2334,请将横线处缺失部分补充完整。 #include Base(int k):m(k){} int getM()const{return m;} } class Derived:public Base{ int n; public; Derived(int k):【11】,n(k){} int getN()const{return n;} } int main(){ Derived d1(3),d2(4); cout< (12)在C++中,编译时的多态性是通过模板或函数【12】实现的。 (13)有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。若在一个重载的运算符函数的定义中成功地使用了this指针,说明它是作为【13】重载的。 (14)有如下程序: #include T Add(Tv1,Tv2){return v1+v2;} int main(){ cout< 运行这个程序的输出结果是【14】。

