C++ 测试题

C++ 模拟试题1

一、 选择题(在A、B、C、D四个答案中选择一个正确的填入后面的括号中) 1.下面( )是对类ttt的声明。

A. void class ttt; B. class int ttt; C. class ttt( ); D. class ttt;

2. 用于类中虚成员函数说明的关键字是( )

A. public B. virtual C. protected D. private 3.下面是关于静态成员的说法,其中不正确的是( )。

A. 静态成员有类作用域,但与普通非静态成员有所不同 B. 静态函数没有this指针,同一个类的不同对象拥有相同的静态数据成员 C. 静态数据成员的初始化必须在类外进行 D. 静态函数同样可以访问非静态数据成员 4. 下面的说法中,不正确的一句是( )。

A.类的友元函数是类的特殊成员函数,它对所有的类成员、保护成员和私有成员享有完全访问特权。

B. 一个类的友元类中的成员函数都是这个类的友元函数

C. 适用于类成员函数和数据的访问控制同样适用于枚举和嵌套类

D. 与结构类似,类也可以互相嵌套,适用于嵌套结构的规则也适用于嵌套类 5. ( )语言是面向对象的语言。

A. C B. Pascal C. Fortran D. C++ 6. C++风格的源文件包含的输入输出头文件为()

A. stdio.h B. stdafx.h C. iostream.h D. stream.h 7. 与C语言printf(“Hello word\\n”) ;语句功能相同的C++语句是()

A. cout>>”Hello word\\n” B. cin>>” Hello word\\n” C. cout<<” Hello word\\n” D. cin<<” Hello word\\n”

8. 在下面几个元素中,不是面向对象的要素的是( );

A. 重载 B. 对象 C. 类 D. 继承 9. 对于int *pa[5];的描述,下面叙述正确的是( );

A. pa是一个指向数组的指针,所指向的数组是5个int型元素; B. pa是一个指向某数组中第5个元素的指针,该元素是int型变量; C. pa是一个具有5个元素的指针数组,每个元素是一个int型指针; D. pa[5]表示某个数组的第5个元素的值。

10. 下面程序使用new与delete命令:

#include main( ) {

long *p , i; p=new long;

if(!p) {

cout<<”Allocation error\\n”; return 1; }

*p=1000; i=(long)p;

cout<<”Here is integer at p:”<<*p<<”\\n”; cout<<”Here is i: “<

}

下面是对这段程序的叙述,其中正确的是()。 A. 有错误,编译不能通过 B. 正确,执行结果为:1000 1000 C. 正确,但执行结果的第二个数值不定 D. 正确,执行结果的各个数值均不为1000

二、判断下列描述正确性,对者划√,错者划×(每小题2分)。

1. C++中标识符内的大小写字母是没有区别的。 2. 宏定义命令是分号结束的。 3. C++的程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。 4. while循环语句的循环体至少执行一次。 5. 在C++中,所有函数在调用前都要说明。 6. 析构函数是一种函数体为空的成员函数。 7. 如果一个函数没有返回值时,定义时需要用void说明。 8.派生类是从基类派生出来的,它不能再生成新的派生类。

9.对象成员的表示与结构变量成员表示相同,使用运算符.或->。 10.构造函数和析构函数都可以重载,因为它们都是成员函数。 三、写出下面程序的输出结果。

1.#include

void main() { int a,b,c;

a=1,b=2,c=a+b+3;

cout<

2. #include

void swap(int &x,int &y) {

int temp; temp=x; x=y; y=temp;

cout<<”x=”<

void main() {

int a(5),b(9); swap(a,b);

cout<<”a=”<

3. #include

class A {

public :

A( );

A(int i,int j); void print( );

private : int a,b; };

A::A( ) { a=b=0;

cout<<”Default constructor called.\\n”; }

A::A(int i,int j) { a=i; b=j;

cout<<”Constructor called.\\n”; }

void A::print( )

{ cout<<”a=”<

void main( ) { A m,n(4,8); m.print( ); n.print( ); }

四、编程或程序填空。

1.在下划线处填上正确的语句并给出程序的输出结果(6分)。 #include #include ____(1)_______ class strA {

public:

strA(float,float,float);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4