itgle.com

已知一个函数模板定义为 template T1 FUN(T2 n){return n*5.0;}已知一个函数模板定义为template <typename T1.typenaine T2>T1 FUN(T2 n){return n*5.0;}若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为______。

题目
已知一个函数模板定义为 template T1 FUN(T2 n){return n*5.0;}

已知一个函数模板定义为

template <typename T1.typenaine T2>

T1 FUN(T2 n){return n*5.0;}

若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为______。


相似考题
更多“已知一个函数模板定义为 template <typename T1.typenaine T2> T1 FUN(T2 n){return n*5.0;} ”相关问题
  • 第1题:

    下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中的内容为ab,t2所指字符串中的内容为99时,结果在w所指的数组中的内容应为99cd99f99。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    /*************found**************/

    int fun (char *s, char *t1, char *t2, char *w)

    {

    int i; char *p,*r,*a;

    strcpy(w,s);

    while (*w)

    {p=w; r=t1;

    /*************found**************/

    while (r)

    if (*r= =*p) {r++;p++;}

    else break;

    if (*r= ='\0')

    {a=w; r=t2;

    /*************found**************/

    while (*r){*a=*r;a++;r++}

    w+=strlen(t2);

    }

    else w++;

    }

    }

    main()

    {char s[100],t1[100],t2[100],w[100];

    clrscr();

    printf("\nPlease enter string S: ");

    scanf("%s",s);

    printf("\nPleaseentersubstring t1: ");

    scanf ("%s", t1);

    printf("\nPlease enter substring t2: ");

    scanf ("%s",t2);

    if (strlen(t1)= =strlen(t2))

    {

    fun (s,t1,t2,w);

    printf("\nThe result is : %s\n",w);

    }

    else printf("Error : strlen(t2)\n");

    }


    正确答案:(1)错误:int fun(char *schar *t1char *t2 char *w) 正确:void fun(char *schar *t1char *t2 char *w) (2) 错误:while(r) 正确:while(*r) (3) 错误:r++ 正确:r++;
    (1)错误:int fun(char *s,char *t1,char *t2, char *w) 正确:void fun(char *s,char *t1,char *t2, char *w) (2) 错误:while(r) 正确:while(*r) (3) 错误:r++ 正确:r++; 解析:在int fun(char *s,char *t1,char *t2, char *w)中,用int型定义指针数组。ANSI标准要求动态分配系统返回void指针。 void指针具有一般性,它们可以指向任何类型的数据。但目前绝大多数C编译所提供的这类函数都返回char指针。无论以上两种情况的哪一种,都需要强制类型转换的方法把char指针转换成所需的类型。该程序段应该是void fun(char *s,char *t1, char *t2, char *w),另外,while(r)和r++都是简单的逻辑和语法错误,只要加强了C语言的基础,这样的错误明显是“送分”的。

  • 第2题:

    有如下函数模板定义: template T1 fun(T1 a1) { return(al+a2+a3);

    有如下函数模板定义: template<typename T1,int a2,int a3> T1 fun(T1 a1) { return(al+a2+a3); } 则下列调用中正确的是( )。

    A.fun<int,4,3>(5);

    B.fun<4,3>(5);

    C.fun<int,int,int>(5);

    D.fun(5);


    正确答案:A
    解析: 类模板是类的抽象,类是类模板的实例。在调用时,尖括号内指定实际的类型名,在编译时,编译系统就用int取代类模板中的类型参数,这样就具体化了类模板。其中的参数为4,3。

  • 第3题:

    若同时定义了下列四个选项格式的函数和模板,fun(8,3.1)调用的是()

    A.template<class T1,class T2)fun(T1,T2)

    B.fun(double,int)

    C.fun(double,int)

    D.fun(double,char)


    template

  • 第4题:

    下列的模板说明中,正确的是( )。A.template B.template C.template

    下列的模板说明中,正确的是( )。

    A.template <T1,T2>

    B.template <class T1,T2>

    C.template <class T1,class T2>

    D.template <typename T1;typename T2>


    正确答案:A
    解析:模板说明,要求每个参数前都有一个类型参数,多个参数需用逗号隔开。

  • 第5题:

    已知:二端口网络N1的T参数为[T1],N2的T参数为[T2],那么,如果将N1和N2级联,那么,级联后得到的二端口网络的T参数为[T1][T2]。


    正确