計(jì)算機(jī)等級(jí)考試二級(jí)C++模擬題及解析12上機(jī)部分
一、改錯(cuò)題
使用VC6打開考生文件夾下的工程kt17_1,此工程包含一個(gè)源程序文件kt17_1.cpp,但該程序運(yùn)行有問題,請(qǐng)改正函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果為:
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)在“}”后添加分號(hào)。
。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)主要考查對(duì)于類定義的理解,即使使用了類模板,在類定義的結(jié)尾仍然需要使用分號(hào),這是C++的規(guī)定;
。2)主要考查是模板類的定義,template是關(guān)鍵字,在<>中間是類型的定義,題目中Vector是一個(gè)類的名稱,前面應(yīng)該有該模板的名稱,即T,這樣才是完整的定義;
。3)主要考查對(duì)函數(shù)返回值的掌握,任何返回值類型不為int型的函數(shù)最后都必須使用returen語句返回對(duì)應(yīng)類型的值,就算是main函數(shù)也不例外。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)C++模擬試題15套(上機(jī))北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |