計算機等級考試二級C++模擬題及解析12上機部分
一、改錯題
使用VC6打開考生文件夾下的工程kt17_1,此工程包含一個源程序文件kt17_1.cpp,但該程序運行有問題,請改正函數中的錯誤,使該程序的輸出結果為:
0149162536496481
源程序文件kt17_1.cpp清單如下:
#include<iostream.h>
template<classT,intN=100>classVector
{ Tvec[N];
public:
voidset(intpos,Tval);
Tget(intpos);
/*****************found*****************/ }
template<classT,intN>voidVector<T,N>::set(intpos,Tval)
{ vec[pos]=val; }
/*****************found*****************/
template<classT,intN>Vector<T,N>::get(intpos)
{ returnvec[pos]; }
intmain()
{ Vector<double,10>v;
inti=0;
doubled=0.0;
for(i=0;i<10;i++)
v.set(i,double(i*i));
for(i=0;i<10;i++)
cout<<v.get(i)<<"";
cout<<endl;
/*****************found*****************/ }
【參考答案】
(1)在“}”后添加分號。
。2)將template <class T, int N> Vector<T, N>::get(int pos)
改為:template <class T, int N> T Vector<T, N>::get(int pos)
。3)將缺少返回值
改為:加入return 0;
【試題解析】
。1)主要考查對于類定義的理解,即使使用了類模板,在類定義的結尾仍然需要使用分號,這是C++的規(guī)定;
(2)主要考查是模板類的定義,template是關鍵字,在<>中間是類型的定義,題目中Vector是一個類的名稱,前面應該有該模板的名稱,即T,這樣才是完整的定義;
。3)主要考查對函數返回值的掌握,任何返回值類型不為int型的函數最后都必須使用returen語句返回對應類型的值,就算是main函數也不例外。
相關推薦:計算機等級考試二級C++模擬試題15套(上機)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |