2017計算機二級考試《C++》上機考試題及答案
通過試題練習,能夠幫助考生們更好掌握所學知識點,以下是本站小編搜索整理的一份計算機二級考試《C++》上機考試題及答案,供參考練習,預祝考生們考出自己理想的成績!想了解更多相關信息請持續關注我們應屆畢業生考試網!
一、程序改錯題
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,使其輸出結果為:
n=0
注意:不要改動main函數,不能增加或刪除行,也不能更改程序的結構,錯誤的語句在//******error******的下面。
試題程序:
#include
//********error*******。
classTC()
{
public:
//********error********
void~TC(){}
TC(intn)
{
cout<<’n’<<’=’< };
//********error********
}
voidmain()
{
TCtest(0);
return;
}
二、簡單應用題
使用VC++6.0打開考生文件夾下的源程序文件2.cpp。請完成函數fun(char*str,charch)的定義,本函數採用二分法,在已按字母次序從小到大排序的字符數組str中,查找字符ch,若ch在數組中,函數返回字符ch在數組中的下標,否則返回1。
二分法查找的思想是初始查找區間的下界為0,上界為len-1,查找區間的中部後,k=(下界+上界)/2;若list[k]等於ch,查找成功;若list[k]>ch,則新的查找區間的下界不變,上界改為k-1;否則新的查找區間的下界改為k+1,上界不變。在新區間內繼續用二分法查找。
注意:請勿改動主函數main與其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include(iostream.h>
intfun(char*str,charch)
{
}
voidmain()
{
charstr[]={’a’,’b’,’C’,’d’,’e’,’f’,’9’,’h’,’i,’
j’,’k’);
charch;
cout<<"請輸入一個字符:"< cin>>ch;
cout<<"輸入字符的位置是:"< return;
}
三、綜合應用題
使用VC++6.0打開考生文件夾下的源程序文件3.cpp,閲讀下列程序説明和代碼,功能如下:
從屏幕輸入數字,然後由大到小插入到指定的鏈中。當輸入0時,表示輸出的數據已經輸入完成,把數據打印到屏幕,並釋放內存。
其中定義的類不完整,按要求完成下列操作,將類的定義補充完整。
(1)在父結點的Next中保存新插入的結點的指針,請在註釋1後添加適當的語句。
(2)把pNext的子結點賦給pNext本身,請在註釋2後添加適當的語句。
(3)判定P的子結點不為空,如果不為空,則打印P中的數據到屏幕,請在註釋3後添加適當的語句。
(4)用t1保存動態申請內存結點的鏈表頭,請在註釋4
後添加適當的語句。
注意:僅在函數指定位置添加語句,請勿改動主函數
main與其他函數中的任何內容。
試題程序:
#include
classTC
{
public:
TC(intdata=O)
{
this->data=data;
this->next=NULL;
}
intdata;
TC*next;
};
voidInsert(TC*P,intdata)
{
TC*temp=newTC(data);
TC*pParent=P:
TC*pNext=p-)next:
while(pNext)
{
if(data>pNext->data)
{
//********1********
temp->next=pNexti
return;
}
else
{
pParent=pNext;
//********2********
}
}
if(pNext==NULL)
{
pParent->next=temp;
return;
}
}
voidprintf(TC*p)
{
//********3********
while()
{
coutdata<<"";
P=P->next;
}
cout< }
voidDelete(TC*p)
{
//********4********
TC*t1=;
TC*t2;
while(t1!=NULL)
{
t2=t1->next:
tl;
t1=t2:
}
}
voidmain()
{
inti=0;
TChead:
do
{
intdata;
cout<<"請輸入一個數字:"< cin>>data;
if(data==O)break;
Insert(&head,data);
}while(1);
printf(&head);
Delete(&head):
return;
}
}
試題答案與解析一、程序改錯題
(1)應改為“classTC”。
(2)應改為“~TC(){}”。
(3)應改為“};”。
【解析】本題第1處的“classTC()”為類的定義,根據C++中類的'定義格式,類名後面是沒有括號的,所以第1處應為“classTC”。第2處的“void~TC(){}”是析構函數,C++中析構函數的格式中是沒有函數類型説明的,所以修改為“~TC(){}”。根據C++中類的定義,第3個標識下類結束的“}”缺少分號,即修改為“};”。
二、簡單應用題
intlow=0;//初始查找區間的下界
inthigh;
intk;
for(high=0;str[high]!=0;high++)//求字符串長度
while(10w {
k=(low+high)/2;
if(str[k]==ch)
returnk;
elseif(str[k]>ch)
high=k-l:
elselow=k+1:
}
if(str[low]==ch)
returnlow;
return-1:
【解析】本題首先初始查找區間的下界為0,然後求得字符串長度len,上界為len-1,查找區間的中部後,k=(下界+上界)/2;若list[k]等於ch,查找成功。若list[k]>ch,則新的查找區間的下界不變,上界改為k-1;否則新的查找區間的下界改為k+1,上界不變。
三、綜合應用題
(1)應添加“pParenl->next=telnp;”。
(2)應添加“pNext=pNext->next;”。
(3)將“while()”補充完整為“while(P->next!=NULL)”。
(4)將“TC*t1=;”補充完整為“TC*t1=P->next;”。
【解析】本題第1處要求“在父結點的Next中保存新插入的結點的指針”。對於指針的操作,pParent->next為pParent的子結點,在父結點的Next中保存新插入的結點的指針,即“pParent->next=temp;”。第2處要求“把pNext的子結點賦給pNext本身”。pNext->next為pNext的子結點,把pNext的子結點賦給pNext本身,即“pNext=pNext->next;”。註釋3下是判定P的子結點不為空。P的子結點是p->next。程序中的“while()”缺乏P的子結點不為空的判斷條件,所以修改為“while(P->next!=NULL)”。第4處要求“用t1保存動態申請內存結點的鏈表頭”。P為鏈表,P->next為鏈表頭。程序中的語句“TC*t1=;”中t1沒有被賦值,所以修改為“TC*t1=P->next;”。
-
最新計算機二級考試《VFP》鞏固習題
俗話説:勤能補倔。以下是應屆畢業生小編提供給大家的計算機二級考試《VFP》鞏固習題,祝願大家一次通過計算機二級考試。1[簡答題](1)建立項目xm。(2)將數據庫產品添加到項目中。(3)將數據庫產品中的數據庫表零件從數據庫中移去(注意:不是刪除)。(4)將考生文件夾中...
-
2017年9月全國計算機等級二級公共基礎知識訓練試題
2017計算機二級考試將要到來,不放過每一個知識點,尤其對容易混淆的東西要下更大工夫搞清楚,基礎要牢固。下面是小編分享的2017年9月全國計算機等級二級公共基礎知識訓練試題,大家快來練習下!(1)在下列選項中,哪個不是一個算法一般應該具有的基本特徵______。(C)A.確...
-
計算機二級考試MySQL模擬試題
2016年計算機等級考試前兩天就已經結束了,下面是本站小編為大家搜索整理的關於計算機二級考試MySQL模擬試題,歡迎參考練習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!練習題一單項選擇題1、SELECT*FROMcitylimit5,10描述正確的是()A....
-
2022年計算機二級《VB》命題試卷
在各個領域,只要有考核要求,就會有試卷,試卷是課程考核統計分析工作的重要組成部分,它包括試卷的信度、效度、區分度、難度四個方面。什麼樣的試卷才能有效幫助到我們呢?下面是小編整理的2022年計算機二級《VB》命題試卷,歡迎大家分享。計算機二級《VB》命題試卷1一...