2017计算机二级C++操作练习题附答案
引导语:2017年9月计算机二级考试快要来临了,你是否在烦恼没有操作练习题呢,以下是本站小编分享给大家的2017计算机二级C++操作练习题附答案,欢迎练习!
一、程序改错题(18分)
使用VC++6.0打开考生文件夹下的源程序文件,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为 TC1 TC2
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。 试题程序: #include
#include structTCO {
//********error******** virtualvoidfun(); };
classTCl:publicTCO { voidfun() {
cout<<"TCl"< } };
classTC2:publicTCO { voidfun() {
cout<<"TC2"< } }; voidmain() { TCO"P; TClobj1; TC2obj2;
//********error******** p=*obj1; p->fun();
//********error********
p=*obj2; p->fun(); return; }
二、简单应用题(24分)
使用VC++6.0打开考生交件夹下的源程序文件。阅读下列函数说明和代码,完成空出部分程序。函数fun(intN[4])的功能是用4个数字,组成互不相同且无重复数字的3位数,并将满足所有条件的数字输出到屏幕,
并且每输出一个3位数就换一行。
程序分析:可填在百位、十位、个位的数字都是1、2、3、0。组成所有的排列后再去掉不满足条件的排列。如果判定第一个数字是0,则也去掉。 试题程序: #include voidfun(intN[4]) { } intmain()
intN[4]={1,2,3,0}; fun(N): return0; }
三、综合应用题(18分)
使用VC++6.0打开考生文件夹下的源程序文件。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)基类People完成打印功能,定义其中的打印函数为 虚函数,请在注释1后添加适当的语句。
(2)类Boy继承于People,在构造函数中设置性别为1, 请在注释2后添加适当的语句。
(3)类Girl继承于People,在构造函数中设置性别为0,请在注释3后添加适当的语句。 (4)实现函数fun,用于传递不同的类型,打印出性别,请在注释4后添加适当的语句。 输出的`内容如下: Sex=Boy Sex=Girl
注意:除在指定位暨添加语句之外,请不要改动程序中的其他内容。 试题程序: #include classPeople { public:
//********1******** voidprint(){} intsex; };
classBoy:publicPeople
{ publiC: Boy() {
//********2********} voidprint() {
cout<<"Boy"< } };
classGirl:publicPeople { public: Girl() {
//********3********} voidprint() {
cout<<"Girl"< } };
//********4********{ cout<<"Sex="; t(); } intmain() { Boym: fun(m); Girln: fun(n); return0; }
一、程序改错题
(1)应改为“virtualvoidfun()=0;”。 (2)应改为“p=&obj1;”。 (3)应改为“p=&obj2;”。
【解析】如果在基类中不使用这个虚函数,其返回值也是没有意义的,它应该被定义为纯虚函数。所以虚函数fun应该是纯虚函数,也就是声明虚函数时初始化为0的函数。即第2处的“virtualvoidfun()=0;”。第2处的P为指针变量,将对象obj1赋值给P,实际上蹙P指向对象obj1的地址,所以将“p=*obj1;”修改为“P=&obj1;”。第3处的“P=*obj2;”修改为“p=&obj2;”。
二、简单应用题
inti,j,k;
for(i=0;i<4;i++)//百位循环 {
for(j=0;j<4;j++)//十位循环 for(k=0;k<4;k++)//个位循环 {
if(i!=j&&j!=k&&k!=i&&N[i]!=0)// 当三位数不同,并且百位不为0 {
cout< } } }
【解析】本题利用3层循环,对3位数字是否相同进行判断。如果3位数不同,并且百位不为0,那么依次输出这3 位数,即由3位数组成的数字。
三、综合应用题
(1)将“voidprint(){};”补充完整为“virtualvoidprint(){};”。 (2)应添加“sex=1;”。 (3)应添加“sex=0;”。
(4)应添加“voidfun(People&p)”。
【解析】第1处要求“基类People完成打印功能,定义其中的打印函数为虚函数”。虚函数是函数的一种,定义虚函数,在函数名前声明virtual就可以了,所以将第1处的“voidprint(){}”语句修改为“virtualvoidprint(){}”。第2处要求“类Boy继承于People,在构造函数中设置性别为l”。基类People中变量sex用来存放性别,Boy继承People,所以Boy中性别的变量可以使用基类中的sex变量,设置性别为1,即“sex=1;”。第3处要求“类Girl继承于People,在构造函数中设置性别为0”。在第3处添加语句“sex=0;”。第4处要求“实现函数fun,用于传递不同的类型,打印出性别”。根据“t();”语句知道,fun函数的形参为指针P,由于它调用了基类People中的成员函数print,所以P的基类为People,即添加函数fun的定义为“voidfun(People&p)”。
-
2016年计算机二级考试选择题题库带答案
第1题:下列叙述中正确的是(d)。A)栈是"先进先出"的线性表B)队列是"先进后出"的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构...
-
2015下半年计算机二级VF考试冲刺模拟题及答案
1、以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈2、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。A、可行性分析B、需求分析C、详细设计D、程序编码3、结构化程序设计主要强调的是______。A、程序的...
-
2017年9月计算机二级JAVA考试强化模拟题
在计算机二级考试前经常做试题,在考试中可以加快做题速度。下面是小编分享的2017年9月计算机二级JAVA考试强化模拟题,欢迎大家练习!单选题1).下列关于Applet的安全限制的叙述中,错误的是()。A.通常情况下,禁止Applet读、写本地文件系统B.通常情况下,禁止Applet向Appl...
-
计算机二级考试MySQL模拟试题
2016年计算机等级考试前两天就已经结束了,下面是本站小编为大家搜索整理的关于计算机二级考试MySQL模拟试题,欢迎参考练习,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!练习题一单项选择题1、SELECT*FROMcitylimit5,10描述正确的是()A....