二级C 重点难点分析:模板[2]
2008-02-23 05:39:56来源:互联网 阅读 ()
函数的返回值类型
函数的形参的类型
函数体内变量的类型
例14.1.1 下列是模板声明的开始部分,其中正确的是( )。[2004年9月 选择第30题]
A.template <T> B.template <class T1,T2>
C.template <class T1,class T2> D.template <class T1;class T2>
答案:C
例14.1.2 下面的函数模板定义中错误的是( )。[2005年4月 选择第24题]
A.template<class Q> B.template<class Q>
Q F(Q x){return Q x;} Q F(Q x){return x x;}
C.template<class T> D.template<class T>
T F(T x){return x*x;} bool F(T x){return x>1;}
解析:各个选项中声明的Q和T都是虚拟类型参数。函数模板形参表中声明的虚拟类型参数能够用做:
函数的返回值类型
函数的形参的类型
函数体内变量的类型
选项B、C和D符合以上三种用法。而选项A让虚拟类型参数Q直接参和运算是错误的。虚拟类型是具体类型(如int型,double型等)的抽象。我们知道,int本身并不能直接参和数学运算,但是由他定义的int型变量或int型参数能够直接参和运算。虚拟类型Q和T本身也不能直接参和运算,但是由他们定义的“T类型”或“Q类型”的参数x能够参和运算。所以,选项A中“Q x”的表达是错误的。
答案:A
14.1.2 考点2:模板函数
函数模板中声明的函数称为模板函数。
调用一个模板函数的格式如下:
函数名 <模板实参表> (函数实参表);
或
函数名(函数实参表);
第二种格式中省略了任何的模板实参,使用这种格式是需要一定条件的(详见考点4)。
类模板的成员函数都是模板函数。
例14.1.3 以下函数模板max的功能是:返回数组a中最大元素的值。请将横线处缺失部分补充完整。[2005年4月 填空第14题]
template <typename T>
T max (T a[], int n)
{
T m = a[0];
for (int i = 1; i < n; i )
if (a[i]>m) ;
return m;
}
解析:本题考查模板函数的定义。在编写函数体时,模板函数和普通函数是相同的。根据题意,返回的m值应该是a中最大元素的值,所以当a[i]>m时,应该将较大的a[i]值赋给m。在遍历数组a[]后,最终m就保存了数组a[]中最大元素的值。
答案:m=a[i]
本章节内容来自希赛全国电脑等级考试用书《电脑等级考试考点分析、题解和模拟——二级C 语言》。(购书请见 :http://shop.csai.cn/itbook/itbookinfo.asp?lbbh=10032460)
[1] [2] [3] [4]
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 电脑等级考试二级C 重点难点分析
下一篇: 二级C 重点难点分析:模板[3]
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash