當前位置:才華齋>計算機>計算機二級>

2016年計算機二級C++上機模擬試題

計算機二級 閱讀(2.63W)

計算機二級C++考試按照新大綱需要學習的內容有:C++語言概述、C++語言資料型別、運算子和表示式、基本控制語句、陣列、指標與引用、函式、類和物件繼承、模板等內容。以下為大家整理了關於C++上機模擬考試題,希望能幫助到大家!

2016年計算機二級C++上機模擬試題

  一、改錯題

使用VC6 開啟考生資料夾下的工程kt12_1 ,此工程包含一個源程式檔案kt12_ ,但該程式執行有問題,請改正函式中的錯誤,使該程式的輸出結果為:

100

源程式檔案kt12_ 清單如下:

#include

template

class pair

{

T value1,value2;

public:

pair(T first,T second)

{value1=first;value2=second;}

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

char getmax();

};

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

T pair::getmax()

{

T retval;

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

retval=value1>value2??value1:value2;

return retval;

}

void main()

{

pairmyobject(100,75);

cout<

}

【說明】題目裡的#include

如果改為#include

using namespace std;

會導致該題目中的pair 與標準庫的pair 重名,而報錯。

如果要改用標準庫,則該題目pair 的名字需要修改例如改為pair1

【參考答案】

(1 )將char getmax (); 改為:T getmax ();

(2 )缺少模板的宣告,前面需要加上:template

(3 )將retval = value1>value2?? value1 : value2;

改為:retval = value1>value2? value1 : value2;

【試題解析】

(1 )主要考查對模板使用的理解,該函式屬於模板類定義的一部分,對於返回值型別,應該使用模板類名稱T ,這樣編譯的時候才能被接受;

(2 )主要考查是模板的使用,前面的模板類已經宣告完成了,在類的外面定義類的成員函式時仍然需要使用模板的.宣告,這樣在後面的函式定義體中才能使用模板類;

(3 )主要考查對“ 表示式1? 表示式2 : 表示式3” 語句的掌握,這個語句是一個複合語句,先計算第一個表示式,如果為真則整個式子值為表示式2 的值,否則為表示式3 的值,題目中錯誤的使用了兩個問號。

#include

using namespace std;

template

class pair1

{

T value1,value2;

public:

pair1(T first,T second)

{value1=first;value2=second;}

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

T getmax();//char getmax();

};

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

template T pair1::getmax()//T pair1::getmax()

{

T retval;

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

retval=value1>value2?value1:value2;//retval=value1>value2??value1:value2;

return retval;

}

void main()

{

pair1myobject(100,75);

cout<

}

  二、簡單應用題

請編寫函式fun() ,其功能是將s 所指字串中除了下標為奇數、同時ASCII 值也為奇數的字元之外,其餘的所有字元都刪除。字串中剩餘的字元所形成的一個新的字串放在t 所指的陣列中。

例如:s 所指字串中的內容為ABCDEFG12345 ,其中字元A 的ASCII 碼值雖為奇數,但元素所在的下標為偶數,因此必需刪除;字元1 的ASCII 碼值為奇數,所在陣列中的下標也為奇數,不刪除,最後t 所指的陣列中的內容應是135 。

請勿修改主函式main 和其他函式中的任何內容,僅在函式fun 的花括號中填寫若干語句。

檔案kt12_ 的內容如下:

#include

#include//#include

#include

#include//#include

using namespace std;

void fun(char*s,char t[])

{

}

void main()

{

char s[100],t[100];

cout<<"Please enter string S:"<

gets(s);

fun(s,t);

puts(t);

}

【參考答案】

void fun(char *s,char t[ ])

{ int i,j=0,n;

n=strlen(s);

for(i=0;i

if(i%2!=0&&s[i]%2!=0)

{ t[j]=s[i];j++;}

t[j]='