一、单项选择题(共 20 题,每题 1 分,共 20 分)
1、 下列关于C++调浮标标识符的命名不合法的是
A.Pad B. name_1 C. A#bc D. _a12
int x=2 ; char w='a' ; float y=23.45f ; double z=45.6712 则表达式 w*x+y-z 的结果类型是
A.float B. char C. int D. double
3、 若有 int x=10,y=20,z=30; 则执行下面语句后, x 的值是 if(x>y)
z=x;
x=y;
y=z;
A.10 B. 20 C. 30 D. 0
4、 循环语句 whlie(int i=0 )i--; 的循环次数是
A.0 B. 1 C. 5 D. 无限
A.static B. extern C. void D. 无说明符
6、 对重载函数形参的描述中,错误的是
A.建模仿真参数的个数可能不同
B.参数的类型可能不同
C.参数的顺序可能不同
D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同
7、 以下能正确定义数组并正确赋初值的语句是
A.int N=5,b[N][N];
B.int a[2]={{1},{3},{4},{5}};
C.int c[2][]={{1,2},{3,4}};
D.int d[3][2]={{1,2},{3,4}};
8、 下列给字符数组进行的初始化中 , 不正确的是
A. char s1[]="abcd";
B.char s2[3]={'x','y','\0'};
C.char s3[]={'a','x','y','\0'};
D.char s4[6]={"xyz","mnp"};
9、 通常的拷贝构造函数的参数是
C. 某个对象的引用 D .某个对象的指针名
10、 关于构造函数特点的描述中,错误的是
A. 定义构造函数必须指出类型
B.构造函数的名字与该类的类名相同
C.一个类中可定义 0 至多个构造函数
D.构造函数是一种成员函数
11、下面程序的运行结果为
#include <iostream.h>
int add(int a,int b);
void main()
{
extern int x,y; cout<<add(x,y)<<endl;
}
int x=20,y=5;
int add(int a,int b)
{
int s=a+b;
return s;
}
A.20 B.5 C.25 D .编译会提示出错信息
12、关于常成员的描述中,错误的是
B.常数据成员必须是公有的
C.常数据成员要使用构造函数成员初始化列表进行初始化
D.常对象只能调用它的常成员函数,不能调用其它的成员函数
13、关于友元函数的描述中,错误的是
A. 友元函数不是成员函数
B.友元函数只能访问类中私有成员
C.友元函数破坏隐藏性,尽量少用
D.友元函数说明在类体内,使用关键字 friend
14、如果有 int x,*p; float y,*q; 则下面操作正确的是
A.p=x B . p=q
C.p=&x D. p=&y
15、若有函数说明 void fA(int m, int n); 和指针变量的定义 void (*p)(int,int); 并且有 p= fA 则下列操作不正确的是
A.( *p ) (3,4); B .p(3,4);
C.fA(3,4); D .*p++;
16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 A. 数组的长度
B.数组第一个元素的值
C.数组所有元素的值
D.数组第一个元素的地址
17、对于动态分配内存空间描述正确的是
A.使用new运算符分配的内存空间的长度必需是常量
B. delete 运算符可以释放动态的存储空间和静态的存储空间
C.由new分配的内存空间是不连续的
D.delete运算符只能释放由 new分配的动态存储空间
18、能够释放对象所占资源的是 ( )
A.析构函数B •数据成员
C.构造函数 D •静态成员函数
19、虚函数的定义是在基类中进行的,定义时需要冠以关键字
A. static B . frend
C.virtual D . | public | | |
20、在C++中串流类是在头文件 strstrea.h | 中定义的,下列不属于串流类的是 | ) |
A.strstream B | . ostrstream | | |
C.ofstream D | . istrstream | | |
二、填空题(共 | 9题16空,每空 1分,共 | 16 分) | |
1 、函数重载时, | 编译系统会根据 或_ | ___ 来区分。 | |
| | | |
2、 若有 char a[80]; 则 cin>>a 表示从键盘上读入一个 到数组 a 中。
3、 若希望用一个已有对象来构造另一个同类型的对象,可以使用 来实现。
4、 静态成员属于 ,而不属于 ,它被同一个类的所有对象共享。
5、 类的继承方式有 继承、 继承和 继承。
6、重载运算符的含义必须清楚,不能有 。
7、按照联编进行阶段的不同,联编方法可分为两种: 和 。
8、 当基类中的某个成员函数被声明为虚函数后, 此虚函数就可以在一个或多个派生类中被重新定
义,在派生类中重新定义时,其函数原型,包括返回类型、 、 、参数类型以及参数的
顺序都必须与基类中的原型完全相同。
9、 C++的I/O是以的形式实现的,每个 C++编译系统都带有一个面向对象的输入 /输岀软件包,
这就是 。
三、 判断题(共 10 题,每题 1 分,共 10 分)
1、 C++语言支持封装性和继承性,不支持多态性。
2、 关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。)
3、 字符串 "sdfgh" 的长度是 5。
4、 引用和指针都可作函数参数。
5、 友元函数说明在类体内,它是一种成员函数。
6、 友元类必须被说明为公有成员。
7、 纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。
8、 析构函数不能被继承。
9、 运算符重载以后,其优先级和结合性都不能改变。
10、 在C+冲,函数名实际上是一个指针,它指向函数的入口。
四、 分析程序,回答所提岀的问题( 16分)
1 、 #include <iostream.h>
class B;
class A
{
public:
A(int i)
{ a=i; }
friend int F(A &f1,B &f2);
private:
int a;
};
class B
{
public:
B(int i)
{ b=i; } friend int F(A &f1,B &f2);
private:
int b;
};
int F(A &f1,B &f2)
{
return (f1.a+f2.b)* (f1.a-f2.b);
}
void main()
{
A n1(10);
B n2(8);
cout<<F(n1,n2)<<endl;
}
1写出程序的运行结果。
2对类 B
该程序中共有几个对象,分别属于哪个类 ? 为什么在程序的开头处通过语句 class B; 进行声明?
3程序中的哪两条语句会分别调用 A、B 的构造函数?写出这两个构造函数。
4函数 F 是什么函数?它的作用是什么?
五、阅读程序,写出运行结果(共 2题,第 1题 6分,第 2题 8分,共 14分)
1、 #include <iostream.h>
int func(int a)
{
int b=0;
static int c=4;
b++; c--;
return(a+b+c);
}
void main( )
{
int a=2;
for(int j=0;j<2;j++)
cout<<func(a+j)<< " ";
}
输出结果为:
2、 #include <iostream.h> class X
{
public:
X(int i)
{ x=i; cout<< ” int: | ”<<i<<' | , ' <<” called n” ; } |
X(double i) | | |
螺钉输送机{ x=(int)i*2; cout<< | ” double: | ”<<i<<', '<<”called n” |
~X() | | |
{ cout<< ” ~X(): ” | <<x<<', ' | <<” called n”; } |
| | |
private:
int x;
};
void main()
{
int a=8;
double b=11.0;
X x1(55), x2(a*5);
X x3=X(2*a);
X x4=X(b);
}
输出结果为:
六、编写程序(共 2 题,第 1 题 10 分,第 2 题 14 分,共 24 分)
支的结构1、输入一组数据以 -1 作为结束标志,要求删除其它数据只保留能被 2 整除的数据并输出结果。
2、定义一个日期类 Date ,包含年、月、日三个数据成员,以及一个求第二天日期的成员函数和 输出日期的成员函数。
模拟试卷(一)答案 一、单项选择题
1、C 2、D 3、B 4 、A 5、C 6、D 7、内衣加工D 8、D 9、C 10、A
11、C 12、B 13、B 14、C 15、D 16、D 17、D 18、A 19 、C 20、C
二、填空题
1、形参的类型 形参的个数
2、字符串
3、拷贝构造函数
4、类 任何一个对象
5、 public (或公有) private (或私有) protected (或保护)
6、二义性
7、动态联编 静态联编
8、函数名 参数个数
9、字节流 I/O 流类库
三、判断题
1、 X2、X3、“ 4、“ 5、X6、X7、“ 8、“ 9、“ 10 V
四、 分析程序,回答所提出的问题(平分标准:每问 4分,共 16分)
136
2n1 和 n2 两个对象, n1 属于 A 类, n2 属于 B 类。
因为B类的定义在A类后,而A类中要引用B剑杆织布机类。
3语句 A n1(10); 和语 B n2(8);
A类的构造函数: A(i nt i) { a=i; }
B类的构造函数: B(i nt i) { b=i; }
4函数 F 是友元函数。
它的作用是: 提供了不同类或对象的成员函数之间、 类的成员函数与一般函数之间共享数据的机
制。(关键答岀共享数据、或答岀通过友元可以访问到封装与类 A、B中的数据)
五、 阅读程序,写出运行结果
1 、输岀结果为: 6 6