- 相關(guān)推薦
2017年9月計算機(jī)二級考試C++上機(jī)操作題
計算機(jī)二級考試C++是有一定難度的考試,這就要求大家在平時要多做練習(xí)。下面小編為大家整理了2017年9月計算機(jī)二級考試C++上機(jī)操作題,希望能幫到大家!
基本操作題
1[簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程中含有一個源程序文件proj1.cpp。其中位于每個注釋“// ERROR **********found **********”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:
NUM=0
Value=1
注意:只修改注釋“// ERROR ****found ****”的下一行語句,不要改動程序中的其他內(nèi)容。
參考解析:【參考答案】 (1)MyClass(int i=0):NUM(0){
(2)void Increment(MyClass&f){f._i++;}
(3)Increment(obj);
【考點分析】
本題考查的是MyClass類,其中涉及友元函數(shù)、構(gòu)造函數(shù)、常量數(shù)據(jù)成員、成員函數(shù)和友元函數(shù)的調(diào)用。友元函數(shù)的定義要與函數(shù)聲明相呼應(yīng),即返回值、參數(shù)類型、參數(shù)個數(shù)要一致。友元函數(shù)的調(diào)用不需要使用類名和作用域。
【解題思路】
(1)主要考查考生對常量數(shù)據(jù)成員初始化方法的掌握,常量數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的成員初始化列表進(jìn)行,并且要使用關(guān)鍵字const修飾。該題的前一條語句const int NUM;,說明NUM是常量數(shù)據(jù)成員。
(2)主要考查考生對友元函數(shù)的掌握,友元函數(shù)的定義與聲明要一致,先看該友元函數(shù)的聲明部分:friend void Increment(MyClass& f);,返回類型為void,函數(shù)參數(shù)為MyClass& f;再比較出錯的語句:void Increment(){f._i++;},錯誤在于該函數(shù)沒有參數(shù),應(yīng)把MyClass & f填在括號內(nèi)。
(3)主要考查友元函數(shù)的調(diào)用,友元函數(shù)并不屬于類,因此調(diào)用友元函數(shù)時不需要添加類名及作用域,只需要像調(diào)用普通函數(shù)一樣即可。
【解題寶典】
類的常量數(shù)據(jù)成員初始化必須使用成員初始化列表進(jìn)行,否則必然出錯。友元函數(shù)與普通函數(shù)的區(qū)別在于,友元函數(shù)可以通過對象名調(diào)用類的全部成員,包括私有成員。所有函數(shù)的聲明和定義必須一致,包括函數(shù)返回值、參數(shù)類型、參數(shù)個數(shù)及有無const關(guān)鍵字。
簡單應(yīng)用題
2[簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個程序文件main.cpp,其中有日期類Date、人員類Person及排序函數(shù)sortByName和主函數(shù)main的定義。請在程序中的橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實現(xiàn)上述類定義和函數(shù)定義。此程序的正確輸出結(jié)果應(yīng)為:
按姓名排序
排序前
張三男 出生日期:1978年4月20日
王五女出生日期:1965年8月3日
楊六女出生日期:1965年9月5日
李四男 出生日期:1973年5月30日
排序后:
李四男出生日期:1973年5月30日
王五女出生日期:1965年8月3日
楊六女出生日期:1965年9月5日
張三男出生日期:1978年4月20日
注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“// ****found ****”。
參考解析:【參考答案】 (1)is_male(is_male),birth_date(birth_date)
(2)return strcmp(name,p.getName());
(3) <
【考點分析】
本題考查Date類和Person類,其中涉及構(gòu)造函數(shù)、const函數(shù)、bool型私有成員及成員函數(shù),以及strcmp()函數(shù)。
【解題思路】
(1)主要考查考生對構(gòu)造函數(shù)的掌握,由函數(shù)體內(nèi)strcpy(this- >name,name);可知,要使用成員列表初始化的成員為is_male和birth_date。
(2)主要考查考生對strcmp()函數(shù)的掌握,先看程序?qū)υ摵瘮?shù)的功能要求:利用strcmp()函數(shù)比較姓名,返回一個正數(shù)、0或負(fù)數(shù),分別表示大于、等于、小于。因為strcmp()函數(shù)的功能是比較字符串大小,因此可以直接被return語句調(diào)用:return strcmp(name,p.getName());。
(3)主要考查考生對成員函數(shù)的掌握,程序的注釋為:顯示出生月,由此可以知道這里要輸出出生月份,直接調(diào)用函數(shù)getMonth()即可。
【解題寶典】
strcmp()函數(shù)、strcpy()函數(shù)、strlen()函數(shù)等是經(jīng)常會用到的系統(tǒng)函數(shù),要了解各個函數(shù)的功能:strait(連接)、strcly(復(fù)制)、strump(比較)、strlen(求長度)。
綜合應(yīng)用題
3[簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程文件proj3,此工程中包含一個源程序文件proj3.cpp,其中定義了用于表示平面坐標(biāo)系中的點的類MyPoint和表示矩形的類MyRectangle;程序應(yīng)當(dāng)顯示:
(0,2)(2,2)(2,0)(0,0)4
但程序中有缺失部分,請按照以下提示,把缺失部分補(bǔ)充完整:
(1)在 “//** 1 ** **** found ****”的下方是構(gòu)造函數(shù)的定義,它用參數(shù)提供的左上角和右下角的坐標(biāo)對upjeft和down_right進(jìn)行初始化。
(2)在 “//** 2 ** **** found ****”的下方是成員函數(shù)getDownLeft的定義中的一條語句。函數(shù)getDownLefit返回用MyPoint對象表示的矩形的左下角。
(3)在 “//** 3 ** **** found ****”的下方是成員函數(shù)area的定義,它返回矩形的面積。
注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“**** found ****”。
參考解析:【參考答案】 (1)MyPoint pl,MyPoint p2
(2)up_left.getX(),down-right.getY()
(3)double MyRectangle::
【考點分析】
本題考查表示平面坐標(biāo)系中的點的類MyPoint、表示矩形的類MyRectangle、構(gòu)造函數(shù)和成員函數(shù)。
【解題思路】
(1)考查構(gòu)造函數(shù),構(gòu)造函數(shù)中的參數(shù)要給私有成員賦值,在下句中up_left(p1),down_right(p2){}指出私有成員賦值要使用形參p1和p2,因此這里參數(shù)要定義為MyPoint p1,MyPoint p2。
(2)主要考查成員函數(shù)的返回語句,MyPoint My
Rectangle::getDownLeft()const函數(shù)要求返回一個左下角的點坐標(biāo),因此使用語句MyPoint(up_left.getX(),down_right.getY());。
(3)主要考查成員函數(shù)的定義,在MyRectangle類中已經(jīng)聲明double area()const,因此此處只要添加double MyRectangle::即可。
【解題寶典】
構(gòu)造函數(shù)的參數(shù)定義時要注意在賦值語句中使用的參數(shù)?疾闃(gòu)造函數(shù)一般都會考查到形參,應(yīng)注意聯(lián)系上下文。類的成員函數(shù)在類外定義時要在函數(shù)名前面加上:返回值類型+類名+作用域(::)。
【9月計算機(jī)二級考試C++上機(jī)操作題】相關(guān)文章:
2015年9月計算機(jī)二級VFP考試上機(jī)操作題10-25
2016年9月計算機(jī)二級《C++》上機(jī)題庫及答案09-01
2016年9月計算機(jī)二級《C++》上機(jī)試題與解析11-14
2016年9月計算機(jī)二級《VFP》上機(jī)操作題庫08-27
2017年3月計算機(jī)二級VB考試上機(jī)操作題11-07
2016年12月計算機(jī)二級C++上機(jī)練習(xí)09-28
2016年9月計算機(jī)二級《VB》上機(jī)操作題練習(xí)08-06