国家二级(C++)机试模拟试卷174
选择题
1.有如下程序:
#include
using namespace std;
void fun(int&x,int y){imt t=x;x=y;y=t;}
int main()
{
int a[2]={1,2};
fun(a[1],a[0]);
std∷cout<<a[0]<<\\(B)
A. 2,2
B. 1,1
C. 1,2
D. 2,1
解析:程序中的fun函数的功能是实现函数中两个参数的交换。主函数中fun的调用中第一个参数为数组第二个值即2,第二个参数为第一个值即1。在fun的定义中第一个形参引用类型,其改变会改变主函数中实参的值;而第二个形参不是引用类型,其改变不会改变第二个实参,所以2,1的交换结果为1,1,即B。
2.下面程序段的正确输出是( )。int w=4,x=3,y=2,z=1;cout<<(w<x?w:z<y?z:x)<<endl;(B )
A. 0
B. 1
C. 2
D. 3
解析:本题考查表达式作为变量进行输出,且表达式为两个三目表达式的嵌套,其中,第1个三目表达式z<y?z:x的值为1,接着计算第2个三目表达式w<x?w:1,值为1。
3.下列关于虚函数的说明中,正确的是( )。(B)
A. 从虚基类继承的函数都是虚函数
B. 虚函数不得是静态成员函数
C. 只能通过指针或引用调用虚函数
D. 抽象类中的成员函数都是虚函数
解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是pro.tected或public。如果一个类包含了纯虚函数,称此类为抽象类。所以本题答案为B。
4.数据流图中带有箭头的线段表示的是( )。(D)
A. 控制流
B. 事件驱动
C. 模块调用
D. 数据流
解析:数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
5.使用地址作为实参传给形参,下列说法正确的是( )。(D )
A. 实参是形参的备份
B. 实参与形参无联系
C. 形参是实参的备份
D. 参与形参是同一对象
解析:地址作为实参,表示实参与形参代表同一个对象。如果实参是数值,形参也是普通变量,此时形参是实参的备份。
6.下列有关运算符重载的叙述中,正确的是( )。(A)
A. 运算符重载是多态性的一种表现
B. C++中可以通过运算符重载创造新的运算符
C. C++中所有运算符都可以作为非成员函数重载
D. 重载运算符时可以改变其结合性
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为A。
7.下面程序的输出结果为( )。
#include
void main()
{int x;
int&y=x;//变量引用
y=99;
cout<<“x=”<<x<<endl:
}(A)
A. x=99
B. x=9
C. x=0
D. 异常
解析:程序中的“inl&y=x;”语句中的“&”引用运算符。&y=x语句叮以理解为y具有x的地址,所以v的值99,x的值也是99.所以答案是x=99。
8.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。(D)
A. const
B. static
C. void
D. class
解析:如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用class关键字来修饰。
9.下列程序的输出结果是( )。
#include
using namespace std;
template
T fun(T a,T b){return(a<= b)?a:b;}
int main()
{
cout<<fun(3,6)<<‘,’<<fun(3.1 4F,6.28F)<<endl;
return 0:
}(B)
A. 0,3.14
B. 3,3.14
C. 3,3
D. 3.14,3.14
解析:此函数模板的功能是输出a、b两数中较小的那个数。(3,6)输出3,(3.14F,6.28F)输出3.14。
10.下面程序的输出结果是( )。
#include
#include\\(B)
A. Hello
B. Test
C. Hello Test
D. Hello Test HelloTest
解析:程序中首先定义字符数组a和b,其值分别为“Hello Test”和“Test”。然后利用strcpy复制函数,将b的值复制给a,所以输出a的结果为Test。
11.有如下类的定义,横线处的语句是( )。
class TestClass
{
——int x,y;
public:
TestClass(int a=0,int b=0)
{
X=a:
Y=b:
}
static void change()
{
Y-=10;
y-=10;
}
};(C )
A. public
B. private
C. static
D. protected
解析:因为static void change()为静态函数,静态函数主要访问静态数据,不访问非静态数据。所以函数中访问了数据y,所以下划线的数据类型应对应为static.
12.下列有关类成员的叙述中,正确的是( )。(B)
A. 友元函数是类的成员函数
B. 类成员的默认访问权限是私有的
C. 类成员函数必须声明为公有的
D. 类的静态数据成员不能是常成员
解析:友元函数是指某些虽然不是
本文档预览:3600字符,共15551字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载