<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    計算機二級考試《C++》上機考試題及答案

    時間:2025-03-03 00:55:27 試題 我要投稿
    • 相關推薦

    2017計算機二級考試《C++》上機考試題及答案

      通過試題練習,能夠幫助考生們更好掌握所學知識點,以下是百分網小編搜索整理的一份計算機二級考試《C++》上機考試題及答案,供參考練習,預祝考生們考出自己理想的成績!想了解更多相關信息請持續關注我們應屆畢業生考試網!

    2017計算機二級考試《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;”。


    【計算機二級考試《C++》上機考試題及答案】相關文章:

    計算機二級考試C++上機考試試題及答案11-09

    計算機二級《C++》上機試題及答案08-12

    2016計算機二級C++上機試題及答案08-02

    2017計算機二級C++上機考試試題及答案06-20

    2016計算機二級C++上機考試試題及答案10-09

    2016計算機二級考試C++備考試題及答案07-16

    計算機二級C語言考試上機考試題及答案10-29

    全國計算機二級考試C++上機考試試題及答案07-31

    全國計算機二級《C++》上機試題及答案08-15

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人