首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: i=5 i=10 i=15 i=20 注意:错误的语句在//******error******的下面,修改该语句即可。 #include
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: i=5 i=10 i=15 i=20 注意:错误的语句在//******error******的下面,修改该语句即可。 #include
admin
2016-10-28
54
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
i=5
i=10
i=15
i=20
注意:错误的语句在//******error******的下面,修改该语句即可。
#include<iostream.h>
class CMyClass
{
public:
template<class T>
void func(T x,T y)
{
//********error********
T i=0;
if(x>=i)
{
i=i+x:
}
else
{
i=i+y;
}
cout<<"i="<<i<<endl;
}
};
void main()
{
CMyClass t;
t.func(5,0);
//********error********
t.func(68,(char)1);
float i=10.0;
//********error********
t.func(i,1);
t.func(5,5);
}
选项
答案
(1)static T i=0; (2)t.func((char)68,(char)1); (3)t.func((int)i,1);
解析
(1)在主函数内定义了类CMyClass对象t,第一次调用func()函数传入整型参数5和0,此时T表示整型(int),5>0,此时i和x的和为5,故屏幕输出i的值为i=5;第二次调用func()函数,传入参数为char型数据,此时T表示字符型(char),char i=0,68>0,故i为68,屏幕输出ASCII码为68的字符,即i=D;第三次调用func()函数,传入整型数据10和1,此时T表示整型(int),输出为i=15,显然如果i为一般的局部变量,输出应该是i=10(10>0,i==10+0=10),这里i记忆了第一次调用func()函数后的值(i=5,10>5,10+5=15),故i为静态变量,因此第1个标识下应改为“static T i=0;”。
(2)func()函数两个参数类型一致,从输出结果看,第二次调用func()传入的参数均是char型的,故第2个标识下应改为“t.func((char)68,(char)1);”,(char)68和(char)1含义是做强制类型转换,将整型转换成char型。
(3)第3个标识下传入参数1为整型,局部变量i为float型,由输出结果可知,第四次调用func()函数也改变了静态变量i(static int i)的值,故传入的参数均为整型,因第3个标识下的局部变量i(float型)也要强制类型转换,故第3个标识下应改为“t.func((int)i,1);”。
转载请注明原文地址:https://kaotiyun.com/show/uONp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include<iostream.h>#include<string.h>voidmain(){chara[]="clangu
在软件开发中,下面的任务不属于设计阶段的是______.
下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include<iostream.h>#include<string.h>voidmain(){c
下面程序的结果为【】。#include<iostream.h>voidmain(){inta=1,b=2;boolc=1;if((a>b)||c)
派生类对象对其基类中的什么成员是可访问的?
数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和______两个含义。
下面叙述不正确的是
有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是
有如下函数模板定义:template<typenameT1,typenameT2,typenameT3>T2plusT1t1,T3t3){returnt1+t3;}则以下调用中正确是
通过使用new和delete两个运算符进行的分配为【】存储分配。
随机试题
A.金铃子散B.丹参饮C.少腹逐瘀汤D.复元活血汤E.桃红四物汤(1999年第95,96题)腹痛,痛势较剧,痛处不移,舌青紫,脉弦者,治疗选用()
神经胶质瘤占全部颅内肿瘤的
A、利血平B、硝普钠C、甲基多D、卡托普利E、阿利吉仑属于中枢α2受体激动剂的抗高血压药是
根据《测绘法》的规定,以其他测绘单位的名义从事测绘活动的,可以处测绘约定报酬()的罚款。
监理工程师同意采用承包商提出的修改设计图样的合理化建议,所发生的费用和收益应由()分担或分。
账务初始化是指()
未使用和不需用的固定资产计提的折旧计入()。
有以下程序#includemain(){inta,b,c=241;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是()。
A、 B、 C、 A
Whatcanweknowabouttheintervieweefromtheinterview?
最新回复
(
0
)