使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正错误,使得程序输出: Hello test 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error

admin2018-10-23  17

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正错误,使得程序输出:
    Hello
    test
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream>
2  //********error********
3  template<T>
4  void fun(T t)
5  {
6    std::cout<<’’test’’<<std::end1;
7  }
8  //********error********
9  template<bool>
10   void fun(bool t)
11  {
12    std::cout<<(t?’’Hello’’:’’Hi’’)<<std::endlj
13  }
14  int main()
15  {
16    //********error********
17    bool flag=TRUE;
18    fun(flag);
19    fun((int)flag);
20    return 0;
21  }

选项

答案(1)template<class T> (2)删除“template<bool>” (3)bool flag=true;

解析 程序要求输出字符串Hello test。从已定源程序的main主函数开始入手,调用函数fun实现字符的输出。
    (1)C++中的模板类格式为template<class T>,所以将题目中程序中的第1个标识下语句“template<T>”修改为“template<class T>”。
    (2)在第2个标识下的“void fun(bool t)”函数中,其中t变量为布尔型变量,是C++中的基础变量,并不是模板变量,并没有使用到模板类,所以删除第2个标识下的模板类型定义语句。
    (3)第3个标识下的“bool flag=TRUE;”是声明布尔型变量flag,并将其值赋为逻辑真。而TRUE并不是合法值,C++中区分大小写,所以逻辑真值应为true,即“bool flag=true;”。
转载请注明原文地址:https://kaotiyun.com/show/A5Ap777K
0

最新回复(0)