首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中包含程序文件main.cpp,其中有类Clock(“时钟”)的定义和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中包含程序文件main.cpp,其中有类Clock(“时钟”)的定义和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加
admin
2018-03-13
16
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中包含程序文件main.cpp,其中有类Clock(“时钟”)的定义和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
Initial times are
0 d:0 h:0 m:59 s
After one second times are
0 d:0 h:1 m:0 s
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
#include
using namespace std;
class Clock
{
public:
Clock(unsigned long i=0);
void set(unsigned long i=0);
void print()const;
void tick(); //时间前进一秒
Clock operator++();
private:
unsigned long total_sec,seconds fminutes,hours,days;
};
Clock::Clock(unsigned long i)
:total sec(i),seconds(i%60),
minutes((i/60)%60),
hours((i/3 600)%24),
days(i/8 64 00){}
void Clock::set(unsigned long i)
{
total sec=i;
seconds=i%60;
minutes=(i/60)%60;
hours=(i/3 600)%60 ;
days=i/86400;
}
//ERROR **********found**********
void Clock::print()
{
cout <
<
}
void Clock::tick()
{
//ERROR**********found**********
set(total_sec++);
}
Clock Clock::operator++()
{
tick();
//ERROR **********found**********
return this;
}
int main()
{
Clock ck(59);
cout<<"Initial times are"<
ck.print();
++ck;
cout<<"After one second times are"<
ck.print();
return 0;
}
选项
答案
(1)void Clock::print()const (2)set(++total_sec); (3)return*this;
解析
(1)主要考查考生对成员函数的掌握,由Clock类中对函数print的声明void print()const;可知,在定义print函数时少了const。
(2)主要考查考生对++操作的掌握,根据函数要求,时间要先前进一秒,再调用函数set,因此total_sec++应改为++total_sec。
(3)主要考查考生对this指针的掌握,函数要求返回值Clock,即返回一个类,而不是指针,因此使用*this。
转载请注明原文地址:https://kaotiyun.com/show/jVAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
若变量已正确定义并赋值,以下符合C++语言语法的表达式是
虚函数必须是类的______。
已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列Mystx{3.2),y(5.5),z(0.0);z=8.9-y;y=x-6.3;能够正常运行,运算符函数ope
有如下函数模板定义:template<classT>Tfunc(Tx,Ty){returnx*x*y*y;)在下列对func的调用中,错误的是
有以下程序#include<iostream>inti=0;voidfun(){{staticinti=1;std::cout<<i++<<’,’;
执行语句序列intn:cin>>n:switch(n){case1:case2:cout<<’1’;case3:case4:cout<<’2’:break;
软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于______期。
随机试题
建立员工信用档案体系的根本目的是为企业选人用人提供新的________。
增大动圈式电焊变压器焊接电流的方法是()。
设A为3阶矩阵,|A|=1,则|-2AT|=()
铅的K系吸收为
A.血管内皮损害,血管壁有炎症,坏死和血栓形成B.皮肤及内脏血管损害更严重和广泛血管腔内有血栓C.病变以脑组织为主,有明显的充血和水肿颅内压升高,可形成脑疝D.病变主要在大脑半球表面和颅底E.以上都不是流脑脑膜炎期病理变化是
项目组织结构编码与项目结构编码的关系是( )。
我国开放式基金目前的主要营销渠道包括( )。
在工程网络计划中,工作M有两项紧前工作,其最早开始时间分别是第15周、第21周,两项工作的持续时间分别是9周、10周,则工作M的最早开始时间是第()周。
A公司于2011年12月31日“预计负债——产品质量保证费用”科目贷方余额为50万元,2012年实际发生产品质量保证费用90万元,2012年12月31日预提产品质量保证费用110万元。下列说法中,正确的是()。
Whoistheshortestofthethreegirls?
最新回复
(
0
)