已知一个函数模板定义为
template <typename T1.typenaine T2>
T1 FUN(T2 n){return n*5.0;}
若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为______。
第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");
}
第2题:
有如下函数模板定义: 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);
第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)
第4题:
下列的模板说明中,正确的是( )。
A.template <T1,T2>
B.template <class T1,T2>
C.template <class T1,class T2>
D.template <typename T1;typename T2>
第5题:
已知:二端口网络N1的T参数为[T1],N2的T参数为[T2],那么,如果将N1和N2级联,那么,级联后得到的二端口网络的T参数为[T1][T2]。