二级C++-202
(总分88,考试时间90分钟)
一、选择题
1. 下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他3条语句不同,该语句是______。
A. cout<<internal<<12345;
B. cout<<left<<12345;
C. cout<<right<<12345;
D. cout<<setw(6)<<12345;
2. 下面 ______ 机制允许对一个函数名给出多个函数定义
A. 封装性 B. 继承性
C. 函数重载 D. 多态性
3. 在面向对象方法中,____描述的是具有相似属性与操作的一组对象。
A. 属性 B. 事件
C. 方法 D. .类
4. 有如下类定义:
class Sample{
public:
Sample(int x):ref(x){) //①
private:
Sample():ref(0){) //②
static int val=5; //③
const int ref; //④
};
上述程序段中,错误的语句是______。
A. ① B. ②
C. ③ D. ④
5. 一个函数为void(int,char="a"),另一个函数为void f(int),则它们____。
A. 不能在同一程序中定义 B. 可以在同一程序中定义并可重载
C. 可以在同一程序中定义,但不可以重载 D. 以上说法均不正确
6. 有如下头文件:
int f1( );
static int f2( );
class MA{
public:
int f3( );
static int f4( );
};
在所描述的函数中,具有隐含的this指针的是
A. .f1 B. .f2
C. .f3 D. .f4
7. 有如下程序:
#include<iostream>
#include<iomanip>
using namespace std;_
int main( ){
cstring转为int Cout<<setw(10) <<setfill("x")<<setprecision(8) <<left;
Cout<<12.3456793<<_______<<98765;
return 0;
}
若程厚的输出是12.345679x98765xxxxx,则划线处缺失的部分是
A. setw(10) B. setfill("x")
C. setprecision(8) D. right
8. 有如下程序:
#include<iostream>
using namespace std;
int main()
{
cout.fill("*");
cout.width(5);
cout<<scientific<<314.15926535<<endl;
retrun 0;
}
程序运行后,输出的结果是____。
A. 3.141593e+002 B. 3.1416e+002
C. **3.14e+002 D. 314.16
9. 要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是______。
A. MyClass p=MyClass;
B. MyClass p=new MyClass;
C. MyClass&p=new MyClass;
D. MyClass a,&p=a;
10. 设有以下类和对象的定义:
class A
{ public;
int m;
};
A k1,k2, *p1,*p2;
则下面针对成员变量m的引用,错误的是______。
A. k1.m=1 B. k2→m=2
C. p1→m=3 D. (*p2).m=4
11. 下列叙述中正确的是
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上三种说法都不对
12. 下面是一个模板声明的开始部分:
templute<typename T>double___
由此可知______。
A. 这可能是一个函数模板的声明
B. 这可能是一个类模板的声明
C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明
D. 这肯定是一个错误的模板声明
13. 已知一函数的形参说明为int arr[5][6],则与此等效的形参说明为
A. int arr[][] B. int[5][]
C. int*a[6] D. int(*a)[6]
14. 若有函数调用“fun(x*y,3,max(a,b,c))”,则fun的实参个数为______。
A. 3 B. 4
C. 5 D. 6
15. 派生类对象对其基类中的什么成员是可访问的?
A. 公有继承的私有成员 B. 私有继承的公有成员
C. 私有继承的保护成员 D. 保护继承的保护成员
16. 下列函数模板声明中,合法的是______。
A. template<typename T>T abs(T x);
B. template class<T>void abs(T x);
C. template T<class T>abs(T x);
D. template<typename T>abs(T x);
17. 将E-R图转换到关系模式时,实体与实体间的联系可以表示成______。
A. 属性 B. 关系
C. .键 D. .域
18. 有如下类声明和函数声明:
class Base{
int m;
public:
int n;
protected:
int p;
};
class Derived:public Base{
int k;
friend void f(Derived d);
};
则在函数f中通过d可访问类数据成员的个数是______。
A. 1 B. 2
C. 3 D. 4
19. 有下列程序:
#include <stdio.h>
void main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[]5={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=1;i<5;i++)printf("%d",c[i]);
printf("\n")
}
A. 1 2 3 4 B. 2 3 4 4
C. 4 3 3 2 D. 1 1 2 3
20. 下列叙述中正确的是______。
A. 全局变量的作用域一定比局部变量的作用域范围大
B. 静态类别变量的生存期贯穿于整个程序的运行期间
C. 函数的形参都属于全局变量
D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值
21. 有如下函数定义:
void func(int a,int& b){a++;b++;}
若执行代码段:
int x=0,y=1;
func(x,y);
则变量x和y的值分别是______。
A. 0和1 B. 1和1
C. 0和2 D. 1和2
22. 下列关于继承方式的描述中,错误的是______。
A. 如果不显式地指定继承方式,则默认的继承方式是私有private
B. 采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员
C. 采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员
D. 采用保护继承方式时,基类中的公有成员在派生类中仍然是公有成员
23. 下列有关函数重载的叙述中,错误的是______。
A. 函数重载就是用相同的函数名定义多个函数 B. 重载函数的参数列表必须不同
C. 重载函数的返回值类型必须不同 D. 重载函数的参数可以带有默认值
24. 下列关于类模板的模板参数的叙述中,错误的是____。
A. 模板参数可以作为数据成员的类型
B. 模板参数可以作为成员函数的返回类型
C. 模板参数可以作为成员函数的参数类型
D. 模板参数不能作为成员函数的局部变量的类型
25. 有如下程序:
#include<iostream>
uslng namespace std;
class Con
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论