2010-11江科大vc阶段测试7_10章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(每题2分,计2 0分)

C 1、设有变量定义int x=5,n,*p1=&x,*p2;下列表达式正确的是()。

A、p2=&p1

B、*p1=*p2

C、p2=p1

D、n=*p2

A 2、若有定义“int a[6],*p=a;”,则对a 数组元素地址的正确引用是()。

A、p+5

B、*a+1

C、&a+1

D、*(p+2)

C 3、下列引用的定义中,正确的是()。

A、int &j=new int;

B、int &j=new int; j=10;

C、int &j=*new int(10);

D、int &*j=new int;

A 4、设有变量说明int a[3][4],(*p)[4]=a;则与表达式*(a+1)+2不等价的是()

A、p[1][2]

B、*(p+1)+2

C、p[1]+2

D、a[1]+2

D 5、关于类的访问特性的说明,下列说法正确的是()

A必须首先说明私有特性

B 成员数据必须说明为私有的

C 必须在每一个成员前单独标明访问特性

D 在同一个类中,说明访问特性的关键字可以多次使用

B 6、在定义类A时,下列()不可以作为类的成员

A指向类A的对象指针

B 类A的对象

C 指向另一个不同的类的对象指针

D 另一个不同类的对象

C 7、通常拷贝初始化构造函数的参数是()。

A某个对象 B 某个对象的成员名

C 某个对象的引用名

D 指向某个对象的指针名

B 8、设有如下类的定义:

class Ex{ int *p;

public: ~Ex(){delete p;}

Ex(int x=0){p=new int(x);}

};

则下列对象的定义中,不正确的是()。

A、Ex ex;

B、Ex ex1(50),ex2=ex1;

C、Ex ex=Ex(50); D.Ex ex=50;

D 9、下列说法中,()是析构函数的特征

A析构函数没有返回值,所以其类型定义为void

B 析构函数名与类名相同

C 析构函数必须有缺省的参数

D 析构函数不能重载

B 10、某结构体变量定义如下,对此结构体变量的成员的引用形式正确的是()。

sstruct st{

int a,b;

float x,y;

}s1,*p;

p=&s1;

A、s1->a

B、p->b

C、p.x

D、*p.y

二、填空题(每空2分,计60分)

●基本概念题

1、结构体的缺省访问特性是public,而类的缺省访问特性private。

2、设有函数原型说明:void fun(int x,int y); 则指向该函数的指针变量f的定义形式为:void (*f)(int,int)。

3、当一个类对象的成员函数被调用时,该成员函数的this指向调用它的对象。

4、当使用new运算符对指定类型对象动态分配内存并返回该类型的指针后,在对象使用完毕后必须使用delete运算符释放动态内存空间。

●阅读程序题

5、下列程序的运行结果是80。

[程序]

#include

void sub(int*x,int n,int k)

{ if(k<=n)sub(x,n,3*k);

*x+=k;

}

void main()

{ int x=0;sub(&x,27,2);

cout<

}

6、下列程序的运行结果是name is: man。

[程序]

#include

#include

void function(char*);

void main()

{

char name[]="mamy",*ptr;

ptr=name;

function(ptr);

cout<<"name is:"<

}

void function(char*ptr)

{

*(ptr+2)=*(ptr+2)+1;

*(ptr+strlen(ptr)-1)='\0';

}

7、执行下列程序后,程序的第一行输出为x=1,y=2,程序的第三行输出为x=5,y=6

[程序]

#include

class sampl{

int x,y;

public:

void get(int a,int b)

{ x=a; y=b; }

void disp()

{ cout<<"x="<

};

void main()

{ s ampl *p;

p=new sampl[3];

p[0].get(1,2); p[1].get(3,4); p[2].get(5,6);

for(int i=0;i<3;i++) p[i].disp();

delete p;

}

8、执行下列程序后,程序的第三行输出为类C的构造函数,程序的第四行输出为2 3 4,程序的最后一行输出为类B的析构函数。

[程序]

#include

class A{

int a;

public:

A(int x)

{ a=x; cout<<"类A的构造函数。\n"; }

int geta(){return a;}

~A(){cout<<"类A的析构函数。\n";}

相关文档
最新文档