首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。类Person完成对人的姓名和年龄的绑定。函数fun()获得年龄比较大的姓名。然后输出这个姓名到屏幕。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类的
使用VC6打开考生文件夹下的源程序文件modi3.cpp。类Person完成对人的姓名和年龄的绑定。函数fun()获得年龄比较大的姓名。然后输出这个姓名到屏幕。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类的
admin
2019-06-05
161
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。类Person完成对人的姓名和年龄的绑定。函数fun()获得年龄比较大的姓名。然后输出这个姓名到屏幕。
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成类的构造函数,请在注释//********1********后添加适当的语句。
(2)完成构造函数对姓名的赋值,请在注释//********2********后添加适当的语句。
(3)定义类的友元函数fun(),请在注释//********3********后添加适当的语句。
(4)补充函数fun()的年龄比较,请在注释//********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1 #include<iostream.h>
2 class Person
3 {
4 public:
5 //********1********
6
7 {
8 int i;
9 for(i=0;sUserrName
!=0;i++)
10 {
11 m_UserName
=sUserrName
;
12 }
13 //********2********
14
15 m_Old=nOld;
16 }
17 private:
18 char m_UserName[32];
19 int m_Old;
20 //********3********
21
22 };
23 void fun(char* s,Person&person1,Person&person2)
24 {
25 //********4********
26 if( )
27 {
28 for(int i=0;person1.m_UserName
!=0 ; i++)
29 {
30 s
=person1.m_UserName
;
31 s[i+1]=0;
32 }
33 }
34 else
35 {
36 for(int i=0;person2.m_UserName
!=0;i++)
37 {
38 s
=person2.m_UserName
;
39 s[i+1]=0;
40 }
41 }
42 }
43 void main()
44 {
45 char s[32];
46 Person p1(’’abc’’,20);
47 Person p2(’’def’’,30);
48 fun(s,p1,p2);
49 cout<<s<<end1;
50 return;
51 }
选项
答案
(1)添加语句:Person(char*sUserrName,int nO1d) (2)添加语句:m_UserName[i]=0; (3)添加语句:friend void fun(char*s,Person& person1,Person& person2); (4)将“if( )”补充完整为:if(person1.m_O1d>person2.m_O1d)
解析
在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,函数fun是输出年龄较大的姓名,类Person记录了姓名和年龄。
(1)题目1要求“完成类的构造函数”。根据“class Person”语句知道Person为类,所以类Person的构造函数名为Person,根据第1个标识下的大括弧中的语句知道函数中的参数为数组sUserrName存放姓名,整型nOld存放年龄,所以补充构造函数定义为“Person(char水sUserrName,int nOld)”。
(2)题目2要求“完成构造函数对姓名的赋值”。根据(1)中的分析,在第2个标识下补全姓名赋值,即“m_UserName
=0;”。
(3)题目3要求“定义类的友元函数fun()”。在C++中,如果在本类以外的其它地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中的fun函数定义为“void fun(char*s,Person&person1,Person& person2)”,所以声明fun()为类Person的友元函数,即这里补全“friend void fun(char*s,Person&person1,Person& person2);”。
(4)题目4要求“补充函数fun()的年龄比较”。类Person中年龄的变量为m_O1d,根据C++中类变量的调用格式补充第4个标识下,if判断中的条件语句,即“if(person1.m_O1d>person2.m_O1d)”。
转载请注明原文地址:https://kaotiyun.com/show/y18p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
相关文档计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
下列关于抽象类的表述中正确的是()。A)派生类必须要实现作为基类的抽象类中的纯虚函数B)抽象类的成员函数至少有一个没实现C)抽象类不可能用来定义对象D)派生类不能成为抽象类
下面关于常成员函数的说法中正确的是()。A)常成员函数不能修改任何的数据成员B)常成员函数只能修改一般的数据成员C)常成员函数只能修改常数据成员D)常成员函数只能通过常对象来调用
有如下类声明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(intn0);};
在公有派生时,派生类中定义的成员函数只能访问原基类的()。A)私有成员、保护成员和公有成员B)保护成员和私有成员C)公有成员和保护成员D)公有成员和私有成员
下列哪种数据模型可以用树形结构来表示实体之间联系()。A)网状模型B)数据模型C)关系模型D)层次模型
C++中将两个字符串连接起来组成一个字符串的函数是______。
A、 B、 C、 D、 A要对线性表进行二分法查找,对线性表有两个要求:第一,要求线性表是按顺序方式存储的;第二,要求线性表中的元素是按照从小到大的顺序排好序。
有如下类定义:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{
己知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是()。A)f(v1,v2);B)f(v1,&v2);C)f(&v1,v2);D)f(
随机试题
某企业规定,员工上班迟到一次,扣发当月50%的奖金,自此规定出台以后,员工迟到现象基本消除,这强化方式是()
缺氧伴二氧化碳潴留患者的给氧方法是()。
某妇女,G2P1,2年前行剖宫产术剖出一女婴。现前来妇科检查,其宫颈正常,宫颈外口形状应该呈
造成基础工程回填土密实度达不到要求的原因有()。
防范审计人员法律责任风险的对策有()。
《国务院办公厅关于改善农村人居环境的指导意见》确立的工作任务包括()。①规划先行,分类指导农村人居环境治理②突出重点,循序渐进改善农村人居环境③完善机制,持续推进农村人居环境改善
现在,在英国被诊断为疯狂压抑症而首次被收容住院的人比美国因此病而被收容住进公立和私人医院的人多9倍,尽管美国人口是英国的很多倍。以下哪项如果正确,能解释以上情况?
封建制“五刑”正式确立于( )。
在窗体中按下鼠标按钮,触发的事件是()。
北京明华中学学生发展中心的小刘老师负责向校本部及相关分校的学生家长传达有关学生儿童医保扣款方式更新的通知。该通知需要下发至每化学生,并请家长填写回执。参照“结果示例1.jpg~结果示例4.jpg”、按下列要求帮助小刘老师编排家长信及回执:进行页面设置:
最新回复
(
0
)