首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句
admin
2015-05-30
41
问题
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
number1=a
number2=a
number1=a
number2=b
注意:错误的语句在//********error********的下面,修改该语句即可。
1 #include
2 class CMyClasS
3 {
4 public:
5 //******error******
6 friend void SetValue(CMyClassobj,char C)
7 {
8 obj.numberl=C ;
9 obj.number2=C ;
10 }
11 //******error******
12 void SetValue(CMyClass obj,char C1,char c2)
13 {
14 obj.numberl=cl;
15 obj.number2=c2;
16 }
17 void display()
18 {
19 cout<<"numberl="<
20 cout<<"number2="<
21 }
22 private:
23 char numberl|number2;
24 } ;
25 void main()
26 {
27 CMyClass t,
2 8 SetValue(t,’a’);
29 t.display();
30 //******error******
31 t.SetValue(&t,’a’,’b’);
32 t.display();
33 }
选项
答案
(1)friend void SetValue(CMyClass&obj,char c) (2)void SetValue(CMyClass&obj,char cl,char c2) (3)t.SetValue(t,’a’,’b’);
解析
程序中定义了类CMyClass,含有两个成员变量char型变量numberl和number2,友元SetValue()函数,成员函数SetValue()和display()函数,SetValue()函数可改变number1和number2的值,display()函数在屏幕上打印number1和number2的值。
[解题思路]
(1)根据程序的输出结果,函数SetValue(t,’a’)执行后,输出number1和number2的值均为a,在SetValue(t,’a’)执行中改变了对象t的成员number1和number2的值,故SetValue(t,’a’)的第一个参数传递的是引用,因此第1个标识下应改为“friend void SetValue(CMyClass&obj,char c)”。
(2)主函数中t.SetValue(t,’a’,’b’)后调用t的display()函数,在屏幕上打印,“numberl=a number2=b”,可知在SetValue(CMyClass obj,char cl,char c2)中改变了对象t的成员numberl和number2的值,因此第一个参数传递为引用方式,故第2个标识下应改为“void SetValue(CMyClass&obj,char cl,char c2)”。
(3)由2可知,第3个标识下是调用函数SetValue(CMyClass&obj,char cl,char c2)函数,函数的第一个参数为引用,直接使用变量名即可,因此第3标识下的引用使用错误,应改为“t.SetValue(t,’a’,’b’);”。
转载请注明原文地址:https://www.kaotiyun.com/show/kJNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
程序流程图(框图)中的箭头代表【】。
假定n=3,,下列程序的运行结果是()。#include<iostream.h>intFun(intm)voidmain(){cout<<"Pleaseinputanumber:";int
在数据库系统中,描述数据库中全体数据的逻辑结构和特征的数据模式为()。
在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示()
有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}
面向对象的模型中,最基本的概念是对象和【】。
如果表达式++i*k中的“++”和“*”都是重载的非静态成员运算符,则采用运算符函数调用格式,该表达式还可表示为=______。
以下函数模板max的功能是:返回数组a中最大元素的值。请将横线处缺失部分补充完整。template<typenameT>Tmax(Ta[],intn){Tm=a[0];for(inti=1;i<n;i++)
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为【】的。
将E-R图转换到关系模式时,实体与联系都可以表示成
随机试题
向使刺谳其诚伪,考正其曲直。使:
A.X射线B.电子线C.γ射线D.质子E.β射线多用于治疗表浅肿瘤的射线是
既可用于病毒的纯化又可用于病毒悬液中感染病毒含量的测定的实验技术是
中国人民银行作为我国的中央银行,享有货币发行的垄断权,因此它是()。
2010年,位于A市的鸿宇药业制造公司为了实行战略扩张,进行了相应的并购重组,相关业务如下:(1)2010年4月,鸿宇药业公司吸收合并了于A市的M公司,从M公司承继价值1000万元、占地面积9000平方米的厂房,M公司注销,合并后原投资主体存续。
能够在最短的时间内向学生呈现、介绍大量和系统的信息的方法是()。
最早提出“马克思主义中国化”命题的是毛泽东的()。
Thiswatchis____toalltheotherwatchesonthemarket.
Heplaystennistothe_____ofallothersports.
A、Manywelcometheideaofhavingmorebarsonboard.B、Manyprefertheferrytomaintainitspresentspeed.C、Somesuggestimpr
最新回复
(
0
)