81. 下面程序的执行结果是( )。
#include<iostream.h>
void main()
{
void swap();
extern int a,b;
a=3;
b=10;
swap();
cout<<"a="<<a<<",b="<<endl;
}
int a,b;
void swap()
{
int temp;
temp=a;
a=b;
b=temp;
}
A、a=3,b=10 B、a=10,b=3 C、a=temp,b=temp D、语法错误,不能输出正确结果
答案:B
解析:函数swap是无参,所以修改是是main()函数下面的的a,b的值,而不是main()函数体内
a,b的值
82. 下列程序的输出结果是( )。
#include<iostream.h>
void f()
{
static int i=15;
i++;
cout<<"i="<<i<<endl;
}
void main()
{
for(int k=0;k<2;k++)
f();
}
A、i=16 i=17
B、i=16 i=15
C、i=15 i=16
D、i=15 i=17
答案:A
解析:static变量的生命周期
83. 在横线处填上适当的语句( ),使下面程序执行结果是13,18,23。
#include<iostream.h>
int add(int x,int y=8);
void main()
{
;
cout<<add(a)<<",";
cout<<add(a,add(a)<<",";
cout<<add(a,add(a,add(a))<<endl;
}
int add(int a,int B)
{
int s=a+b;
return s;
}
A、int a=3 B、int b=3 C、int a=5 D、int b=5
答案:C
解析:在参数中调用函数时,实参是函数的返回值
83. 在横线处填上适当的语句( ),使下面的程序的执行结果是19 24 30 37 45。
#i nclude<iostream.h>
int fun(int A)
{
static int x=10;
int y=1;
x+=a;
a++;
y++;
return(x+y+A);
}
void main()
{
int i=3;
while(i<8)
;
cout<<endl;
}
A、cout<<fun(i++)<<" "
B、cout<<fun(i)<<" "
C、cout<<fun(i++)<<" ,"
D、cout<<fun(i)<<" ,"
答案:A
解析:static变量的生命周期
84. 在C++语言中,局部变量的隐含存储类型是( )。
A、auto B、static C、extern D、无存储类型
答案:D
85. 下面程序的输出结果为()
#include<iostream.h>
int fun(char *s);
int main()
{
cout<<fun("hello");
return 0;
}
int fun(char *s)
{
char *t=s;
while(*t!='\0')
t++;
return(t-s);
}
A、语法错,不能输出正确结果 B、0 C、6 D、5
答案:D
解析:传入一个带有’\0’的字符串,然后获取字符个数
86. 有关类的说法不正确的是( )。
A、类是一种用户字定义的数据类型.
B、只有类中的成员函数才能存取类中的私有成员.
C、在类中,如果不做特别说明,所指的数据均为私有类型.
D、在类中,如果不做特别说明,所指的成员函数均为公有类型。
答案:D
解析:class声明的类的成员默认是private权限,struct声明的类默认是public权限
87. 类A是类B的友元,类B是类C的友元,则( )是正确的.
A、类B是类A的友元
B、类C是类A的友元
C、类A是类C的友元
D、以上都不对
答案:D
88. 有下面类的说明,有错误的语句是( )。
class X
{
A、 int a=2;
B、 X();
public:
C、 X(int val):
D、 ~X();
};
答案:A
解析:类定义中不能给成员变量赋值
88. 有关析构函数的说法不正确的是( )。
A、 析构函数有切仅有一个
B、 析构函数和构造函数一样可以有形参
C、 析构函数的功能是用来释放一个对象
D、 析构函数无任何函数类型
答案:B
解析:析构函数不能有形参
89. 已知一个类X, ( )是定义指向类X成员函数的指针,假设类有3个公有成员: void f1(int), void f2(int)和int a.
A、X*P
B、 int X::*pc=&X::a
C、 void(X::*pA)()
D、X*p[10]
答案:C
90. 下列的各类函数中,( )不是类的成员函数
A、构造函数
B、析构函数
C、友元函数
D、拷贝构造函数
答案:C
91. 下列定义中,X是一个类, ( )是定义指向对象数组的指针p.
A、x*p[4]
B、x(*p)[4]
C、(x*)p[4]
D、x*p[]
答案:B
解析:
数组指针的定义方法:
第一步:写一个该类型的数组
第二步:把数组名前面加上*
第三步:把*和数组名一起用小括号括起来
92. 已知p是一个指向类X数据成员m的指针,s是类X的一个对象。如果要给m赋值为3,( )
是正确的.
A、s.p=3
B、s - >p=3
C、s.*p=3
D、*s.p=3
答案:C
93. 已知f1(int)是类X的公有成员函数,p是指向成员f1()的指针,采用它赋值, ( )是正
确的.
A、p=f1
B、p=X::f1
C、p=x::f1
D、p=f1()
答案:B
解析:需要指定类作用域
94. 已知类X中的一个成员函数说明如下:
Void Set(X &a);
其中,X&a的含义是( ).
A、指向类X的指针为a
B、将a的地址赋给变量Sst
C、a是类X的对象引用,用来做为Set()的形参
D、变量X是a按位相与作为函数Set()的参数
答案:C
95. 一个类的友元函数能够访问该类的( ).
A、私有成员
B、保护成员
C、公有成员
D、所有成员
答案:D
96. 有关类和对象的说法不正确的是( ).
A、对是类的一个实例
B、一各类只能有一个对象
C、任何一个对象只能属于一个具体的类
D、类与对象的关系和数据类型和变量的关系相似
答案:B
97. 下列静态数据成员的特性中,( )是错误的.
A、说明静态数据成员时前边要加关键字static来修饰
B、静态数据成员在类体外进行初始化
C、引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
D、静态数据成员不是所有对象所共有的
答案:D
98. 类模板的使用实际上是类模板实例化成一个具体的( ).
A、类
B、对象
C、函数
D、模板类
答案:A
99. 通常拷贝构造函数的参数表是( ).
A、某个对象名
B、某个对象的成员名
C、某个对象的引用名
D、某个对象的指针名
答案:C
解析:防止递归调用死循环
100. 关于常数据成员的说法不正确的是( ).
A、常数据成员的定义形式与一般常量的定义形式相同,只不过常数据成员的定义必须出现在类体中.
B、常数据成员必须进行初始化,并且不能被更新
C、常数据成员通过构造函数的成员初始化列表进行初始化
D、常数据成员可以在定义时直接初始化
答案:D