Visual C++程序设计教程试题二及答案.docx
《Visual C++程序设计教程试题二及答案.docx》由会员分享,可在线阅读,更多相关《Visual C++程序设计教程试题二及答案.docx(13页珍藏版)》请在冰豆网上搜索。
![Visual C++程序设计教程试题二及答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/0ecccbd0-9b97-4728-8d08-65cc5603d5f2/0ecccbd0-9b97-4728-8d08-65cc5603d5f21.gif)
VisualC++程序设计教程试题二及答案
VisualC++程序设计教程试题二及答案
一、选择题(共20分,每题1分)
1.在下列关键字中,用于说明类的公有成员的是_____
A.privateB.publicC.protectedD.friend
2.数据交换函数UpdateData(TRUE)实现了______
A.控件中的数据缓存到视图变量中B.视图变量显示在控件上
C.控件的数据缓存到文档数据中D.文档数据显示在控件上
3.下列各类函数中,______不是类的成员函数
A.构造函数B.析构函数C.友元函数D.拷贝初始化构造函数
4.作用域运算符的功能是_____
A.标识作用域的级别B.指出作用域的范围
C.给出作用域的大小D.标识某个成员是属于那个类的。
5.关于纯虚函数和抽象类的描述中,_____是错误的
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不是抽象类
D.抽象类只能做为基类使用,其纯虚函数的实现由派生类给出。
6.成员函数GetDocument()的作用是_______
A.获取视图类指针B.获取文档类指针
C.获取框架窗口指针D.获取对话框指针
7.下述静态数据成员的特征中,_____是错误的。
A.静态数据成员不是所有该类对象所共用的
B.静态数据成员要在类外初始化
C.说明静态数据成员时要加修饰符static
D.引用静态数据成员时,要加类名及作用域符。
8.DoModal()成员函数的作用是________
A.调用非模态对话框B.调用模态对话框
C.调用About对话框D.调用任何一个窗口
9.集合类CArray实现了________
A.用户数据的链式存储B.用户数据按静态数组存储
C.用户数据按动态数组存储D.用户数据按哈希结构键值对存储
10.响应UpdateAllViews()消息的成员函数OnUpdate应放置在
A.应用类中B.主框架类中C.视图类中D.文档类中
11.视图类中OnDraw()成员函数的作用______
A.刷新视图界面B.存储界面数据
C.刷新文档数据D.存储文档数据
12.在视图类成员函数中获取绘图环境指针 CDC*pDC=GetDC()是_____
A.绘制图形的首要条件B.绘制图形的具体实现过程
C.绘制图形的最后步骤D.该步骤在绘制图形中是无关紧要的.
13.ODBC的作用是________
A.为数据连接提供驱动程序并指定数据源名B.为数据连接提供驱动程序
C.为数据连接指定数据源名D.为数据连接提供动态记录集
14.记录集类CRecordSet对象是________
A.数据表查询结果在内存的映象B.数据库在内存的映象
C.数据表查询结果在类中的体现D.数据库在类中的体现
15.消息映射宏提供了_______
A.响应消息的入口B.响应消息的出口
C.响应消息的参数D.传递消息
16.______不是构造函数的特征
A.构造函数的重载B.构造函数设置缺省参数
C.构造函数名与类同名D.构造函数必须指定类型说明
17._____是析构函数的特征
A.析构函数可有一个或多个参数B.一个类中只能定义一个析构函数
C.析构函数的定义只能在类体内D.析构函数名与类名不必相同。
18.通常的拷贝初始化构造函数的参数是_____
A.某个对象名B.某个对象成员名
C.某个对象的引用名D.某个对象的指针名
19.关于成员函数特征的下述描述中,_____是错误的。
A.成员函数一定是内联函数B.成员函数可重载
C.成员函数可设置缺省参数D.成员函数可是静态的。
20.友元的作用_____
A.提高程序的运行效率B.加强类的封装性
C.实现数据的隐藏性D.增强成员函数的种类
二、阅读程序选择正确结果(共24分,每题6分)
1.#include
classCount
{
private:
staticintcount;
public:
Count(){count++;}
~Count(){count--;}
staticintHM()
{returncount;
}
};
intCount:
:
count=100;
voidmain()
{
Coutnc1,c2,c3,c4;
cout<:
HM()<}
2.#include
classA
{
private:
doubleTotal,Rate;
public:
A(doublet,doubler)
{Total=t;Rate=r;}
frienddoubleCount(A&a)
{
a.Total+=a.Rate*a.Total;
returna.Total;
}
};
voidmain()
{
Aa1(1000.0,0.035),a2(768.0,0.028);
cout<}
3.#include
classSet
{
private:
intelements[100];
intPC;
public:
Set()
{
PC=0;
}
Set(Set&s)
{
PC=s.PC;
for(inti=0;ielements[i]=s.elements[i];
}
voidEmpty()
{PC=0;}
intIsEmpty()
{
returnPC==0;
}
intIsMemberOf(intn)
{
for(inti=0;iif(elements[i]==n)
return1;
return0;
}
intAdd(intn)
{
if(IsMemberOf(n))
return1;
elseif(PC>=100)
return0;
else
{
elements[PC++]=n;
return1;
}
}
voidprint(void)
{
cout<<"{";
for(inti=0;icout<if(PC>0)
cout<cout<<"}"<}
friendvoidreverse(Set*m)
{
intn=m->PC/2;
for(inti=0;i{
inttemp;
temp=m->elements[i];
m->elements[i]=m->elements[m->PC-i-1];
m->elements[m->PC-i-1]=temp;
}
}
};
voidmain()
{
SetA;
cout<A.print();
SetB;
for(inti=1;i<=8;i++)
B.Add(i);
B.print();
cout<B.Empty();
for(intj=11;j<20;j++)
B.Add(j);
SetC(B);
C.print();
reverse(&C);
C.print();
}
4.
#include
classA
{
private:
inta,b;
public:
voidSet(inti,intj)
{
a=i;
b=j;
}
A()
{
a=b=0;
}
A(inti,intj)
{
a=i;b=j;
cout<<"Constructor:
a="<}
};
voidmain()
{
cout<<"Starting1....\n";
Aa[3];
for(inti=0;i<3;i++)
a[i].Set(2*i+1,(i+1)*2);
cout<<"End1....\n";
cout<<"Starting2....\n";
Ab[3]={A(1,2),A(3,4),A(5,6)};
cout<<"Ending2...\n";
}
三、填空完善程序(共32分,每空4分)
1.Fibonacci函数满足下列递归关系:
f
(1)=0f
(2)=1f(n)=f(n-1)+f(n-2)(n>2)
以上述递归定义为基础,编写计算Fibonacci数列第n项值的函数。
#include
_______
(1)
voidmain(void)
{
intiNum;
cout<<"PLeaseEnteraIntegerNumber:
"<cin>>iNum;
longresult=______
(2)
cout<<"Result="<}
longFib(intNumber)
{
if(Number________)(3)
return0;
elseif(Number==2)
return1;
else
returnFib(Number-1)+Fib(___________);(4)
}
2.用冒泡法对10个整数升序排序并输出
#include
voidmain(void)
{
inti,j,temp,*pt;
int*Pn=_______int[10];(5)
for(i=1;i<=10;i++)
{
cout<<"PleaseenteraNumber:
"<cin>>*(_________);(6)
}
for(i=1;i<=10;i++)
for(j=1;j<=10-i;j++)
if(*(_________)>*(Pn+j+1))(7)
{
temp=*(Pn+j);
*(Pn+j)=*(Pn+j+1);
*(Pn+j+1)=_________;(8)
}
for(i=1;i<=10;i++)
cout<<*(Pn+i)<<"";
}
四、编程题(共24