首頁 - 網(wǎng)校 - 萬題庫 - 直播 - 雄鷹網(wǎng)校 - 團(tuán)購 - 書城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 -
首頁網(wǎng)校萬題庫直播雄鷹網(wǎng)校團(tuán)購書城模考論壇實(shí)用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓(xùn)
專升本
自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托?荚
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會計(jì)職稱
法律顧問
ACCA考試
初級會計(jì)職稱
資產(chǎn)評估師
高級經(jīng)濟(jì)師
注冊會計(jì)師
高級會計(jì)師
美國注冊會計(jì)師
審計(jì)師考試
國際內(nèi)審師
注冊稅務(wù)師
理財(cái)規(guī)劃師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
注冊給排水
造價(jià)員考試
注冊計(jì)量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評價(jià)師
土地登記代理人
寶寶起名
繽紛校園
實(shí)用文檔
入黨申請
英語學(xué)習(xí)
思想?yún)R報(bào)
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂
您現(xiàn)在的位置: 考試吧 > 計(jì)算機(jī)等級考試 > 計(jì)算機(jī)二級考試 > C加加 > 模擬試題 > 正文

2015年計(jì)算機(jī)二級考試C++過關(guān)練習(xí)題及答案(1)

考試吧整理“2015年計(jì)算機(jī)二級考試C++過關(guān)練習(xí)題及答案(1)”供考生參考。更多計(jì)算機(jī)等級考試相關(guān)信息請關(guān)注考試吧計(jì)算機(jī)等級考試網(wǎng)。

  點(diǎn)擊查看:2015年計(jì)算機(jī)二級考試C++過關(guān)練習(xí)題及答案匯總

  1[簡答題]定義內(nèi)聯(lián)函數(shù)實(shí)現(xiàn)求三個(gè)實(shí)數(shù)中的最大值。

  參考解析:

  解:內(nèi)聯(lián)函數(shù)只適用于功能簡單,代碼短小而又被重復(fù)使用的函數(shù)。函數(shù)體中包含復(fù)雜結(jié)構(gòu)控制語句,如switch、復(fù)雜if嵌套、while語句等,以及無法內(nèi)聯(lián)展開的遞歸函數(shù),都不能定義為內(nèi)聯(lián)函數(shù),即使定義,系統(tǒng)也將作為一般函數(shù)處理。

  #include

  inline max(int a,int b,int c){

  if(a>b&&a>c) return a;

  if(b>a&&b>c) return b;

  if(c>a&&c>b) return c;

  }

  void main(){

  cout<

  }

  2[簡答題]設(shè)計(jì)一個(gè)單向鏈表類模板,節(jié)點(diǎn)數(shù)據(jù)域中數(shù)據(jù)從小到大排列,并設(shè)計(jì)插入、刪除節(jié)點(diǎn)的成員函數(shù)。

  參考解析:

  #include

  using namespace std;

  templateclass List;

  templateclass Node{

  T info; //數(shù)據(jù)域

  Node *link; //指針域

  public:

  Node(); //生成頭結(jié)點(diǎn)的構(gòu)造函數(shù)

  Node(const T & data);//生成一般結(jié)點(diǎn)的構(gòu)造函數(shù)

  friend class List;

  };

  template Node::Node(){link=NULL;}

  template Node::Node(const T & data){

  info=data;

  link=NULL;

  }

  //定義鏈表類

  templateclass List{

  Node *head; //鏈表頭指針和尾指針

  public:

  List(); //構(gòu)造函數(shù),生成頭結(jié)點(diǎn)(空鏈表)

  ~List(); //析構(gòu)函數(shù)

  void MakeEmpty(); //清空一個(gè)鏈表,只余表頭結(jié)點(diǎn)

  Node* Find(T data); //搜索數(shù)據(jù)域與data相同的結(jié)點(diǎn),返回該結(jié)點(diǎn)的地址

  void PrintList(); //打印鏈表的數(shù)據(jù)域

  void InsertOrder(Node *p); //按升序生成鏈表

  Node* CreatNode(T data); //創(chuàng)建一個(gè)結(jié)點(diǎn)(孤立結(jié)點(diǎn))

  Node* DeleteNode(Node* p); //刪除指定結(jié)點(diǎn)

  };

  templateList::List(){

  head=new Node(-9999);//頭結(jié)點(diǎn),最小的數(shù)據(jù)從小到大插入

  }

  templateList::~List(){

  MakeEmpty();

  delete head;

  }

  templatevoid List::MakeEmpty(){

  Node *tempP;

  while(head->link!=NULL){

  tempP=head->link;

  head->link=tempP->link; //把頭結(jié)點(diǎn)后的第一個(gè)節(jié)點(diǎn)從鏈中脫離

  delete tempP; //刪除(釋放)脫離下來的結(jié)點(diǎn)

  }

  }

  template Node* List::Find(T data){

  Node *tempP=head->link;

  while(tempP!=NULL && tempP->info!=data) tempP=tempP->link;

  return tempP; //搜索成功返回該結(jié)點(diǎn)地址,不成功返回NULL

  }

  templatevoid List::PrintList(){

  Node* tempP=head->link;

  while(tempP!=NULL){

  cout

  tempP=tempP->link;

  }

  cout<

  }

  templatevoid List::InsertOrder(Node *p){

  Node *tempP=head,*tempQ=head; //tempQ指向tempP前面的一個(gè)節(jié)點(diǎn)

  while(tempP!=NULL){

  if(p->infoinfo)break; //找第一個(gè)比插入結(jié)點(diǎn)大的結(jié)點(diǎn),由tempP指向

  tempQ=tempP;

  tempP=tempP->link;

  }

  p->link=tempP;

  tempQ->link=p;

  }

  templateNode* List::CreatNode(T data){//建立新節(jié)點(diǎn)

  Node*tempP=new Node(data);

  return tempP;

  }

  templateNode* List::DeleteNode(Node* p){

  Node* tempP=head->link,*tempQ=head,*tempC;

  while(tempP!=NULL && tempP!=p){

  tempQ=tempP;

  tempP=tempP->link;

  }

  tempC=tempP;

  tempQ->link=tempP->link;

  return tempC;

  }

  int main(){

  Node * P1;

  List list1;

  int a[10]={20,12,0,-5,9,-18,6,11,5,3},i,j;

  for(i=0;i<10;i++){

  P1=list1.CreatNode(a[i]);

  list1.InsertOrder(P1);

  }

  list1.PrintList();

  cout<<"請輸入一個(gè)要求刪除的整數(shù)"<

  cin>>j;

  P1=list1.Find(j);

  if(P1!=NULL){

  P1=list1.DeleteNode(P1);

  delete P1;

  list1.PrintList();

  }

  else cout<<"未找到"<

  cout<<"請輸入一個(gè)要求插入的整數(shù)"<

  cin>>j;

  P1=list1.CreatNode(j);

  list1.InsertOrder(P1);

  list1.PrintList();

  list1.MakeEmpty();//清空list1

  list1.PrintList();

  return 0;

  }

  3[單選題] 下列關(guān)于虛函數(shù)與函數(shù)重載區(qū)別的敘述中不正確的是(  )。

  A.函數(shù)說明形式上不同

  B.函數(shù)允許非成員函數(shù)重載,虛函數(shù)只能是成員函數(shù)

  C.函數(shù)重載的調(diào)用依據(jù)參數(shù)和類型的差別,虛函數(shù)則依據(jù)對象

  D.函數(shù)重載的本體可以在類外定義,虛函數(shù)不可以

  參考答案:D

  參考解析:A項(xiàng)、B項(xiàng)、C項(xiàng)均為虛函數(shù)與函數(shù)重載的不同之處。但有一點(diǎn)它們是相同的:在類內(nèi)外定義均可。故D項(xiàng)錯(cuò)誤。

  4[單選題] 設(shè)有表示學(xué)生選課的3張表,學(xué)生S(學(xué)號、姓名、性別、年齡、身份證號)、課程C(課號、課名)、選課SC(學(xué)號、課號、成績),則表SC的關(guān)鍵字(鍵或碼)為(  )。

  A.課號、成績B.學(xué)號、成績C.學(xué)號、課號D.學(xué)號、姓名、成績

  參考答案:C

  參考解析:關(guān)鍵字是指屬性或?qū)傩缘慕M合,其功能是唯一地標(biāo)識一個(gè)元組或數(shù)據(jù),而SC中學(xué)號和課號的組合可以對元組進(jìn)行唯一的標(biāo)識。

  5[單選題]

  

  參考答案:C

  6[單選題]執(zhí)行下列語句后,輸出結(jié)果為(  )。

  cout.put('s');

  cout<<'c'<<'a';

  A.ca

  B.sca

  C.s

  D.a

  參考答案:B

  7[單選題]在一棵二叉樹的前序遍歷、中序遍歷、后序遍歷所產(chǎn)生的序列中,所有葉結(jié)點(diǎn)的先后順( )。

  A.都不相同

  B.完全相同

  C.前序和中序相同,而與后序不同

  D.中序和后序相同,而與前序不同

  參考答案:B

  參考解析:對二叉樹的訪問有3種方式,其中任意的兩種可惟一確定一顆二叉樹,但無論是前序、后序還是中序遍歷二叉樹時(shí),其區(qū)別在于訪問根的先后次序不同,而訪問葉結(jié)點(diǎn)的順序完全相同。

  8[單選題] 下列語句都是程序運(yùn)行時(shí)的第一條輸出語句,其中一條語句的輸出效果與其他三條語句不同,該語句是(  )。

  A.cout<

  參考答案:D

  參考解析:setw(6)將輸出寬度設(shè)為6,如果位數(shù)不夠則在最左邊補(bǔ)齊,因此該項(xiàng)輸出一定不會與其他三項(xiàng)一致。

  9[簡答題]

  請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,此工程包含有一個(gè)源程序文件proj2.cpp,其中定義了Stack類和ArrayStack類。

  Stack是一個(gè)用于表示數(shù)據(jù)結(jié)構(gòu)“!钡念,棧中的元素是字符型數(shù)據(jù)。Stack為抽象類,它只定義了棧的用戶接口,如下所示:

  公有成員函數(shù) 功能

  push 入棧:在棧頂位置添加一個(gè)元素

  pop 退棧:取出并返回棧頂元素

  ArrayStack是Stack的派生類,它實(shí)現(xiàn)了Stack定義的接口。ArrayStack內(nèi)部使用動態(tài)分配的字符數(shù)組作為棧元素的存儲空間。數(shù)據(jù)成員maxSize表示的是棧的最大容量,top用于記錄棧頂?shù)奈恢谩3蓡T函數(shù)push和pop分別實(shí)現(xiàn)具體的入棧和退棧操作。

  請?jiān)诔绦蛑械臋M線處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)上述功能。此程序的正確輸出結(jié)果應(yīng)為:

  a,b,C

  C,b,a

  注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****料found****”。

  //proj2.cpp

  #include

  using namespacc std;

  class Stack{

  public:

  virtual void push(char C)=0;

  virtual char pop()=0;

  };

  class ArrayStack:public Stack{

  char*P;

  int maxSizc;

  int top;

  public:

  ArravStack(int s)

  {

  top=0;

  maxSize=s:

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

  P=______;

  }

  ~ArrayStack()

  {

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

  _______;

  }

  void push(char c)

  }

  if(top==maxSize){

  cerr<<”O(jiān)verflow! \n”:

  return;

  }

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

  _______;

  top++:

  }

  char pop()

  {

  if(top==0){

  cerr<<”Underflow!、n”;

  return‘\0’;

  }

  Top--;

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

  ______;

  }

  };

  void f(Stack&sRef)

  {

  char ch[]={‘a(chǎn)’,‘b’,‘c’};

  cout<

  sRef.push(oh[0]);sRef.push(ch[1]);sRef.push(ch[2]);

  cout<

  cout<

  cout<

  }

  int main()

  {

  ArrayStack as(10);

  f(as):

  return 0:

  }

  參考解析:

  (1)Ilew char[s]

  (2)delete[]P

  (3)P[top]=e

  (4)return P[top]

  【考點(diǎn)分析】

  本題主要考查的是表示棧的抽象類Stack類及它的派生類ArrayStaek類、純虛函數(shù)和成員函數(shù)。棧的節(jié)點(diǎn)一般使用指針表示,定義構(gòu)造函數(shù)時(shí)要給指針分配空間,使用New語句來完成!獳rrayStack()是析構(gòu)函數(shù),因?yàn)榍懊嬉呀?jīng)使用new來分配空間了,因此在這里要用delete語句來釋放指針。

  【解題思路】

  (1)主要考查的是ArrayStack類的構(gòu)造函數(shù),在函數(shù)中要為P申請S個(gè)char型空間,應(yīng)使用語句P=flew char[s];。

  (2)主要考查析構(gòu)函數(shù),使用delete語句釋放指針,即delete[]P;。

  (3)主要考查push函數(shù),top表示棧頂元素下標(biāo),添加的數(shù)據(jù)放到棧頂,因此使用語句P[top]=c;。

  (4)主要考查pop函數(shù),輸出棧頂數(shù)據(jù),top表示棧頂元素下標(biāo),因此使用語句return P[top];。

  10[單選題]有以下函數(shù)

  fun(char *a,char *b)

  {

  while((*a!=’\0’) &&(*b!=’\0’)&&(*a==*b))

  { a++; b++;}

  return (*a-*b);

  }

  該函數(shù)的功能是( )

  A.計(jì)算a和b所指字符串的長度之差

  B.將b所指字符串復(fù)制到a所指字符串中

  C.將b所指字符串連接到a所指字符串后面

  D.比較a和b所指字符串的大小

  參考答案:D

  相關(guān)推薦:

  2015年9月計(jì)算機(jī)等級考試成績查詢時(shí)間通知

  2015年9月計(jì)算機(jī)等級考試真題及答案解析專題

  2015年計(jì)算機(jī)二級《C語言》最新章節(jié)練習(xí)題匯總

  2015年計(jì)算機(jī)二級《JAVA》章節(jié)習(xí)題及答案匯總

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計(jì)算機(jī)等級考試網(wǎng) All Rights Reserved 
中國科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧