2010-11江科大vc阶段测试7_10章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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";}