Visual C++程序设计教程试题三及答案.docx
《Visual C++程序设计教程试题三及答案.docx》由会员分享,可在线阅读,更多相关《Visual C++程序设计教程试题三及答案.docx(13页珍藏版)》请在冰点文库上搜索。
VisualC++程序设计教程试题三及答案
VisualC++程序设计教程试题三及答案
一、选择题(共20分,每题1分)
1.已知一个类A,_____是指向类A成员函数的指针,设类有三个公有成员,voidf1(int),voidf2(int)和inta。
A.A*pB.intA:
:
*pc=&A:
:
aC.voidA:
:
*paD.A*pp
2.VC++编程环境中的"Appwizard"是________
A.Win32应用程序向导B.Windows向导C.控件向导D.类向导
3.下述静态数据成员的特征中,_____是错误的。
A.静态数据成员不是所有该类对象所共用的
B.静态数据成员要在类外初始化
C.说明静态数据成员时要加修饰符static
D.引用静态数据成员时,要加类名及作用域符。
4.已知p是个指向类A公有成员m的指针,A1是类A的对象。
如果要给m赋值为5,_____是正确的。
A.A1.p=5B.A1->p=5C.A1.*p=5D.*A1.p=5
5.已知类A中的一个成员函数声明如下:
voidset(A&a);其中参数含义为:
A.指向类A的指针为a
B.将a的地址赋值给变量set
C.a是类A的对象引用,用于函数set()形参
D.变量A与a按位与做为函数set()的形参
6.下列关于对象数组的描述中,_____是错误的。
A.对象数组的下标从0开始B.对象数组的数组名是个常量指针
C.对象数组的每个元素是同类的对象D.对象数组只能赋初值,不能被赋值。
7.下列定义中,_____是定义指向数组的指针p。
A.int*p[5]B.int(*p)[5]
C.(int*)p[5]D.int*p[];
8.下列说明中:
constchar*ptr;ptr是_____:
A.指向字符常量的指针B.指向字符的常量指针
C.指向字符串常量的指针D.指向字符串的常量指针
9.关于纯虚函数和抽象类的描述中,_____是错误的
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不是抽象类
D.抽象类只能做为基类使用,其纯虚函数的实现由派生类给出。
10.关于new运算符的下列描述中,____是错误的。
A.它可用来创建对象和对象数组;
B.使用它创建的对象及对象数组可用delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值。
11.VC++编程环境中的"ClassWizard"表示______
A.Win32应用程序向导B.Windows向导C.控件向导D.类向导
12.使用VC++编程环境中的"资源浏览窗口"可浏览VC++程序中的_______
A.菜单B.全局变量C.头文件D.文档视图类
13.使用类向导可实现_______
A.添加对话框B.添加菜单C.添加按钮D.添加消息成员函数
14.VC++中的成员函数________
A.声明在头文件实现在.cpp文件中B.声明在.cpp文件实现在头文件中
C.声明和定义都在.cpp文件中D.声明和实现都在头文件中
15.控件ID标识符表示________
A.控件在代码中的符号化表示B.控件的惟一属性
C.控件的界面标识D.控件的标题
16.控件的标题_______
A.控件在代码中符号化表示B.控件的惟一属性
C.控件的界面标识D.控件在内存中的表示
17.序列化成员函数Serialize(CArchive&)实现了__________
A.文档数据的输入B.视图数据的输入
C.文档视图数据的输入/输出D.文档数据与文件数据的交互
18.数据交换函数UpdateData(TRUE)实现了______
A.控件中的数据缓存到视图变量中B.视图变量显示在控件上
C.控件的数据缓存到文档数据中D.文档数据显示在控件上
19.成员函数GetDocument()的作用是_______
A.获取视图类指针B.获取文档类指针
C.获取框架窗口指针D.获取对话框指针
20.关于虚函数的描述中,____是正确的
A.虚函数可是一个static类型的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
二、阅读程序选择正确结果(共24分,每题6分)
1.
#include
classB
{
private:
intx,y;
public:
B()
{x=y=0;
}
B(inti)
{
x=i;y=0;
}
B(inti,intj)
{
x=i;y=j;
}
~B()
{}
voidprint(void)
{
cout<<"x="<}
};
voidmain()
{
B*ptr;
ptr=newB[3];
ptr[0]=B();
ptr[1]=B(5);
ptr[2]=B(2,3);
for(inti=0;i<3;i++)
ptr[i].print();
delete[]ptr;
}
2.
#include
classA
{
private:
intm;
public:
A(inti=0)
{
m=i;
cout<<"constructorcalled."<}
voidSet(inti)
{
m=i;
}
voidprint()const
{
cout<}
~A()
{
cout<<"destructorcalled."<}
};
voidmain()
{
constN=5;
Amy;
my=N;
my.print();
}
3.
#include
classA
{
private:
intm;
public:
A(inti=0)
{
m=i;
cout<<"constructorcalled."<}
voidSet(inti)
{
m=i;
}
voidprint()const
{
cout<}
~A()
{
cout<<"destructorcalled."<}
};
voidfun(constA&c)
{
c.print();
}
voidmain()
{
fun(5);
}
4.
#include
classcomplex
{
private:
doublereal;
doubleimag;
public:
complex()
{
set(0.0,0.0);
cout<<"Defaultconstructorcalled."<}
complex(doubler)
{
set(r,0.0);
cout<<"Constructor:
real="<}
complex(doubler,doublei)
{
set(r,i);
cout<<"Constructor:
real="<}
voidprint(void)
{
if(imag<0)
cout<else
cout<}
voidset(doubler,doublei)
{
real=r;
imag=i;
}
};
voidmain()
{
complexc1;
complexc2(6.8);
complexc3(5.6,7.9);
c1.print();
c2.print();
c3.print();
cout<<"---------------------"<c1=complex(1.2,3.4);
c2=5;
c3=complex();
c1.print();
c2.print();
c3.print();
}
三、填空完善程序(共32分,每空4分)
1.输入5个字符串,按英文字典排序输出。
#include
#include
constintSIZE=64;
voidmain(void)
{
charsz[5][SIZE],__________
(1)
char(*psz)[SIZE];
psz=__________;
(2)
for(inti=0;i<5;i++)
{
cout<<"pleaseenterastring:
"<cin>>sz[i];
}
for(i=0;i<4;i++)
for(intj=i+1;j<5;j++)
if(___________(psz[i],psz[j])>0)(3)
{
strcpy(temp,psz[i]);
strcpy(psz[i],psz[j]);
strcpy(psz[j],temp);
}
for(i=0;i<5;i++)
{
cout<<______________<}
}
2.分别使用指针数组和二级指针输入、输出一个二维整型数组。
#include
constintSIZE=5;
voidmain(void)
{
intsz[][SIZE]={1,3,5,2,4,6,1,3,5,2,4,6,8,7,9};
int*psz[]={____________};(5)
int**p;
_________=psz;(6)
for(inti=0;i<3;i++)
{
for(intj=0;jcout<<*(___________)<<"";(7)
cout<}
cout<for(i=0;i<3;i++)
{
for(intj=0;jcout<<*(*(_______)+j)<<"";(8)
cout<}
}
四、编程题(共24分)
1.创建基于MFC的多文档应用程序。
2.实现文本键盘输入,复制及粘贴。
3.实现文本存盘。
一、选择题(共20分,每题1分)
1
2
3
4
5
6
7
8
9
10
B
A
D
C
C
D
B
D
A
D
11
12
13
14
15
16
17
18
19
20
A
D
D
A
A
C
D
A
B
C
二、阅读程序写出程序正确结果(共24分,每题6分)
1.
x=0,y=0
x=5,y=0
x=2,y=3
2.
constructorcalled.0
constructorcalled.5
destructorcalled.5
5
destructorcalled.5
3.
constructorcalled.5
5
destructorcalled.5
4.
Defaultconstructorcalled.
Constructor:
real=6.8,imag=0
Constructor:
real=5.6,imag=7.9
0+0i
6.8+0i
5.6+7.9i
---------------------
Constructor:
real=1.2,imag=3.4
Constructor:
real=5,imag=0
Defaultconstructorcalled.
1.2+3.4i
5+0i
0+0i
三、填空完善程序(共32分,每空4分)
(1)temp[SIZE];
(2)sz
(3)strcmp
(4)sz[i]
(5)sz[0],sz[1],sz[2]
(6)p
(7)psz[i]+j
(8)p+i