二级C++-203
(总分82.5,考试时间90分钟)
一、选择题
1. 有3个关系R、S和T如下表所示:
则由关系R和S得到关系T的操作是______。
A. 自然连接        B. .交
C. .除        D. .并
2. 有如下程序:
#include<iostream>
using namespace std;
class Part {
public:
Part(int x=0): val(x) {cout<<val;}
~Part() {cout<<val;}
include意思 private:
int val;
};
class Whole {
public:
whole(int x, int y, int z=0): p2(x), p1(y), val(z) {cout<<Val;}
~Whole() {cout<<val;}
private:
Part p1, p2;
int val;
};
int main()
{
Whole obj(1, 2, 3);
return 0;
}
执行这个程序的输出结果是______。
A. 123321        B. 213312
C. 213        D. 123123
3. 在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是______。
A. ()        B. []
C. <>        D. {}
4. 下面程序的运行结果是 ______。
#include<iostream.h>
class A{
public
virtual、~(){ cout<<”call A:: ~A()”<<end1;}
};
class B:public A{
B(int i){p=new char[i]:}
-B(){
delete[)p;
Cout<<”call B:: ~B()”;
}
};
void main() {
A*a=new B(8);
Delete a;
}
A. call B:: ~B()        B. call B:: ~B()
C. call A:~A()        D. call A::~A()
5. 下列数据结构中,能够按照“先进后出”原则存取数据的是______。
A. 循环队列        B. .栈
C. 队列        D. 二叉树
6. 有如下程序:
#include<iostream>
using namespace std;
int main()
{
int*p;
*p=9;
cout<<"The value at p:"<<*p;
return 0;
}
编译运行程序将出现的情况是______。
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出:The value at p:9
C. 运行时一定输出:The value at p:*9
D. 运行时有可能出错
7. 以下程序的输出结果是____。
#include<iostream.h>
void func(char**m)
{
++m:
cout<<*m<<end1;
}
void main()
{
static char*a[]={"MORNING","AFTERTOON","EVENING"};
char**n:
n=a;
func(n);
}
A. 为空        B. MORNING
C. AFTERTOON        D. EVENING
8. 有如下程序
#include <iostream>
#include <iomanip>
using namespace std;
int main( ){
cout<<setprecision(3)<<fixed<<setfill("*")<<setw(8);
cout<<12.345<<__________<<34.567;
return 0;
}
若程序的输出是:
**12.345**34.567
则程序中下划线处遗漏的操作符是____。
A. setprecision(3)        B. fixed
C. setfill("*")        D. setw(8)
9. 下列叙述中正确的是______。
A. 栈是一种先进先出的线性表        B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构        D. 以上三种说法都不对
10. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为______。
A. 内联函数        B. 重载函数
C. 递归函数        D. 函数模板
11. 考虑函数原型void test(int a,int b=7,char z="*7"),下面的函数调用中,属于不合法调用的是______。
A. test(5);        B. test(5,8);
C. test(6,"#");        D. test(0,0,"*");
12. C源程序中不能表示的数制是______。
A. 二进制        B. 八进制
C. 十进制        D. 十六进制
13. 下列符号中可以用做C++标识符的是______。
A. _radius        B. foo~bar
C. else        D. 3room
14. 有如下类定义:
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::
15. 如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为
A. operator+(operator*(x,y),z)
B. operator+(operator*(x,y),Z)
C. operator*(operator+(x,y),z)
D. operator+(operator*(x,y))
16. 必须用一对大括号括起来的程序段是______。
A. switch语句中的case标号语句        B. if语句的分支
C. 循环语句的循环体        D. 函数的函数体
17. 以下程序的输出结果是____。
void main()
{int a=4,b=5,C=0,d;
d=!a&&! b||!c;
cout<<d<<end1;
}
A. 1        B. .O
C. 非0的数        D. -1
18. 有如下类定义:
class B{
public:void fun1(){}
private:void fun2(){}
protected:void fun3(){}
};
class D:public B{
protected:void fun4(){}
};
若obj是类D的对象,则下列语句中不违反访问控制权限的是______。
A. obj.fun1();        B. obj.fun2();
C. obj.fun3();        D. obj.fun4();
19. 数据库系统依赖于____支持数据独立性。
A. 具有封装机制        B. 定义完整性约束条件
C. 模式分级,各级模式之间的映射        D. DDL语言与DML语言互相独立
20. 有如下程序:
# include<iostream>
using namespace std;
class Point{
int x,y;
public:
Point (int x1=0,int y1=0):x(x1),y(y1){}
int get(){return x+y;}
};
class Circle {
Point center;
int radius;
public:
Circle(int cx,int cy,int r):center(cx,cy),radius(r)
int get(){()+radius;}
};
int main(){
Circle c(3,4,5);
cout<<c.get()<<endl;
return 0;
}
运行时的输出结果是______。
A. 5        B. 7
C. 9        D. 12

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。