国家二级(C++)机试模拟试卷302
选择题
1.由于常对象不能被更新,因此( )。(A)
A. 通过常对象只能调用它的常成员函数
B. 通过常对象只能调用静态成员函数
C. 常对象的成员都是常成员
D. 通过常对象可以调用任何不改变对象值的成员函数
解析:本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以本题选A。
2.若有如下程序:
#include
using namespace std;
int s=0:
class sample
{
static int n;
public:
sample(int i)
{n=i;}
static void add()
{s+=n;}
};
int sample::n=0:
int main()
{sample a(2),b(5);
sample::add();
cout<<s<<endl;
return 0:
}
程序运行后的输出结果是( )。(B)
A. 2
B. 5
C. 7
D. 3
解析:执行语句“sample a(2),b(5)”;的结果是使n的值最终变为5,sample::add()语句调用函数static void add(),使得s=s+n=5。
3.下面的符号中可以用作C++标识符的是( )。(D)
A. 3test
B. fcc~other
C. else
D. radius
解析:c++标识符是以字母、下划线开头的,由字母、数字及下划线组成的,不与关键字相同的字符串。选项c)中else为关键字。
4.有如下程序:
#include
using namespace std;
int main()
{
cout.fill(’*’);
cout.width(6);
cout.fill(’#’);
cOut<<888<<endl:
return 0:
}
的执行结果是( )。(A)
A. ###888
B. 888###
C. ***888
D. 888***
解析:C++在流操作中,利用cout对象的width属性设置输出字符的宽度,用fill函数来设置需要填充的字符。题目程序中,首先设置填充字符为*,输出宽度为6,但在输出前又设置了填充字符为#,所以在输出时,其填充字符为撑,由于888不足6个字符,所以在前面以三个“#”来填充。
5.类中的一个字符指针成员指向具有m个字节的存储空间时,它所能存储的字符串的最大长度为( )。(B)
A. m.2
B. m.1
C. m
D. m+l
解析:在C++中,字符中以‘\0’作为字符串结束的标志,所以个数为m一1。
6.在每个C++程序中必须有且仅有一个( )。(B )
A. 函数
B. 主函数
C. 预处理指令
D. 语句
解析:在每一个C++程序中必须有且只有一个主函数,每个程序的执行都是从主函数的开始。
7.有如下程序:
#include<iostream>
using namespace std;
class test{
private:
int a;
public:
test(){cout<<\\(D)
A. 3
B. constructor
destructor
C. copy constructor
destructor
D. 3
destructor
解析:本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象A(3),对象带着参数,所以执行带参数的构造函数,输出3,然后执行析构函数,输出destructor。所以本题答案为D。
8.下列函数模板的定义中,合法的是( )。
A
解析:本题考查模板函数的基本概念,根据模板函数的定义,所以答案为A。
9.将E-R图转换到关系模式时,实体与联系都可以表示成( )。(B )
A. 属性
B. 关系
C. 记录
D. 码
解析:E-R图由实体、实体的属性和实体之间的联系3个要素组成,关系模型的逻辑结构是一组关系模式的集合,将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。如下表所示。
10.关于函数重载,下列叙述中错误的是( )。(C)
A. 重载函数的函数名必须相同
B. 重载函数必须在参数个数或类型上有所不同
C. 重载函数的返回值类型必须相同
D. 重载函数的函数体可以有所不同
解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为C。
11.有以下程序,在横线应添加( )。
#include
using namespace std;
class TestClass
{
public:
TestClass(int n){number=n;)
∥拷贝构造函数
~TestClass(){}
private:
int number;
};
TestClass fun(TestClass P)
{
TestClass temp(p);
return temp;
}
int main()
{
TestClass objl(10),obj2(0);
TestClass obj3(objl);
obj2=fun(obj3);
return 0;
}(A)
A. TestClass(ZestClass&other){number=other.number;)
本文档预览:3600字符,共17555字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载