首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.zpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句
使用VC6打开考生文件夹下的源程序文件modi1.zpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句
admin
2017-03-22
49
问题
使用VC6打开考生文件夹下的源程序文件modi1.zpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
number1=a
number2=a
number1=a
number2=b
注意:错误的语句在//********error********的下面,修改该语句即可。
#include
class CMyClass
{
public:
//********error********
friend void SetValue(CMyClass
obj,char c)
{
obj.numberl=c;
obj.number2,=c;
}
//********error********
void SetValue(CMyClass obj,
char c1,char c2)
{
obj.numberl=c1;
obj.number2=c2;
}
void display()
{
cout<<"number1="<
<
cout<<"number2="<
<
}
private:
char number1,number2;
};
Void main()
{
CMyClass t;
SetValue(t,’a’);
t.display();
//********error********
t.SetValue(&t,’a’,’b’);
t.display();
}
选项
答案
(1)friend void SetValue(CMyClass&obj,char c) (2)void SetValue(CMyClass&obj,charc1,char c2) (3)t.SetValue(t,’a’,’b’);
解析
(1)根据程序的输出结果,函数SetValue(t,’a’)执行后,输出number1和number2的值均为a,在SetValue(t,’a’)执行中改变了对象t的成员number1和number2的值,故SetValue(t,’a’)的第一个参数传递的是引用,因此第1个标识下应改为“friendvoid SetValue(CMyC lass&obj,char C)”。
(2)主函数中t.SetValue(t,’a’,’b’)后调用t的display()函数,在屏幕上打印,“number1=a number2=b”,可知在SetValue(CMyClass obj,char c1,char c2)中改变了对象t的成员numberl和number2的值,因此第一个参数传递为引用方式,故第2个标识下应改为“voidSetValue(CMyClass&obj,char c1,char c2)”。
(3)由2可知,第3个标识下是调用函数SetValue(CMyClass&oN,char c1,char c2)函数,函数的第一个参数为引用,直接使用变量名即可,因此第3标识下的引用使用错误,应改为“t.SetValue(t,’a’,’b’);”。
转载请注明原文地址:https://kaotiyun.com/show/inAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有以下程序#include<iostream>usingnamespacestd;classA{public:A(inti,intj){
如果表达式--x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为
函数定义为Fun(int&i),变量定义n=100.则下面调用正确的是
对于语句cin>>x中的各个组成部分,下列叙述中错误的是
有以下程序:#include<iostream>usingnamespacestd;classBase{public:Base(){x=0;}intx;
有如下程序#include<iostream.h>intfunc(inta,intb){return(a+b);}voidmain(){intx=2,y=5,
如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为
有如下程序:#includeusingflamespacestd;className{charname[20];public:Name(){strcpy(name,“”);cout
在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是
有如下两个类定义:classAA{};classBB{AAv1,*v2;BBv3;int*v4;};其中有一个成员变量的定义是错误的,这个变量是
随机试题
对于长文档,使用键盘陕速移动光标至文件首的操作是()。
下面的短语是用于描述计算机性能指标的有()
已知f(x)=,求f″(x)。
等渗性缺水病人,短时间内出现脉搏细速、肢端湿冷,血压10.7/6.67kPa(80/50mmHg)时。提示该病人体液丧失占体重的
在急诊接诊大面积烧伤患者后,应最先采取的救治措施是
法律:本国法:外国法
如右图所示,圆被三条线段分成四个部分。现用红、橙、黄、绿四种涂料对这四个部分上色,假设每部分必须上色,且任意相邻的两个区域不能用同一种颜色,问共有几种不同的上色方法?()
在数据库系统中,下列哪个映像关系用于提供数据与应用程序间的物理独立性______。A)外模式/模式B)模式/内模式C)外模式/内模式D)用户模式/内模式
Theanimalsourcewhichprovidesthemostproteinforhumanbeingis______.Intheconflictbetweenjobsandtheenvironment,
埃博拉病毒已经夺走2900多条生命,并且仍在继续肆虐。
最新回复
(
0
)