黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 - 網校 - 萬題庫 - 美好明天 - 直播 - 導航
您現在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > C加加 > 模擬試題 > 正文

2018年3月計算機二級C++過關練習題及答案(1)

來源:考試吧 2018-02-01 17:16:37 要考試,上考試吧! 萬題庫
“2018年3月計算機二級C++過關練習題及答案(1)”供考生參考。更多計算機等級考試相關信息請關注考試吧計算機等級考試網。

  點擊查看:2018年3月計算機二級C++過關練習題及答案匯總

  1[簡答題]定義內聯函數實現求三個實數中的最大值。

  參考解析:

  解:內聯函數只適用于功能簡單,代碼短小而又被重復使用的函數。函數體中包含復雜結構控制語句,如switch、復雜if嵌套、while語句等,以及無法內聯展開的遞歸函數,都不能定義為內聯函數,即使定義,系統也將作為一般函數處理。

  #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[簡答題]設計一個單向鏈表類模板,節點數據域中數據從小到大排列,并設計插入、刪除節點的成員函數。

  參考解析:

  #include

  using namespace std;

  templateclass List;

  templateclass Node{

  T info; //數據域

  Node *link; //指針域

  public:

  Node(); //生成頭結點的構造函數

  Node(const T & data);//生成一般結點的構造函數

  friend class List;

  };

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

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

  info=data;

  link=NULL;

  }

  //定義鏈表類

  templateclass List{

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

  public:

  List(); //構造函數,生成頭結點(空鏈表)

  ~List(); //析構函數

  void MakeEmpty(); //清空一個鏈表,只余表頭結點

  Node* Find(T data); //搜索數據域與data相同的結點,返回該結點的地址

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

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

  Node* CreatNode(T data); //創建一個結點(孤立結點)

  Node* DeleteNode(Node* p); //刪除指定結點

  };

  templateList::List(){

  head=new Node(-9999);//頭結點,最小的數據從小到大插入

  }

  templateList::~List(){

  MakeEmpty();

  delete head;

  }

  templatevoid List::MakeEmpty(){

  Node *tempP;

  while(head->link!=NULL){

  tempP=head->link;

  head->link=tempP->link; //把頭結點后的第一個節點從鏈中脫離

  delete tempP; //刪除(釋放)脫離下來的結點

  }

  }

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

  Node *tempP=head->link;

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

  return tempP; //搜索成功返回該結點地址,不成功返回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前面的一個節點

  while(tempP!=NULL){

  if(p->infoinfo)break; //找第一個比插入結點大的結點,由tempP指向

  tempQ=tempP;

  tempP=tempP->link;

  }

  p->link=tempP;

  tempQ->link=p;

  }

  templateNode* List::CreatNode(T data){//建立新節點

  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<<"請輸入一個要求刪除的整數"<

  cin>>j;

  P1=list1.Find(j);

  if(P1!=NULL){

  P1=list1.DeleteNode(P1);

  delete P1;

  list1.PrintList();

  }

  else cout<<"未找到"<

  cout<<"請輸入一個要求插入的整數"<

  cin>>j;

  P1=list1.CreatNode(j);

  list1.InsertOrder(P1);

  list1.PrintList();

  list1.MakeEmpty();//清空list1

  list1.PrintList();

  return 0;

  }

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

  A.函數說明形式上不同

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

  C.函數重載的調用依據參數和類型的差別,虛函數則依據對象

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

  參考答案:D

  參考解析:A項、B項、C項均為虛函數與函數重載的不同之處。但有一點它們是相同的:在類內外定義均可。故D項錯誤。

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

  A.課號、成績B.學號、成績C.學號、課號D.學號、姓名、成績

  參考答案:C

  參考解析:關鍵字是指屬性或屬性的組合,其功能是唯一地標識一個元組或數據,而SC中學號和課號的組合可以對元組進行唯一的標識。

  5[單選題]

2018年3月計算機二級C  過關練習題及答案(1)


  參考答案:C

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

  cout.put('s');

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

  A.ca

  B.sca

  C.s

  D.a

  參考答案:B

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

  A.都不相同

  B.完全相同

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

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

  參考答案:B

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

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

  A.cout<

  參考答案:D

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

  9[簡答題]

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

  Stack是一個用于表示數據結構“棧”的類,棧中的元素是字符型數據。Stack為抽象類,它只定義了棧的用戶接口,如下所示:

  公有成員函數 功能

  push 入棧:在棧頂位置添加一個元素

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

  ArrayStack是Stack的派生類,它實現了Stack定義的接口。ArrayStack內部使用動態分配的字符數組作為棧元素的存儲空間。數據成員maxSize表示的是棧的最大容量,top用于記錄棧頂的位置。成員函數push和pop分別實現具體的入棧和退棧操作。

  請在程序中的橫線處填寫適當的代碼,然后刪除橫線,以實現上述功能。此程序的正確輸出結果應為:

  a,b,C

  C,b,a

  注意:只在指定位置編寫適當代碼,不要改動程序中的其他內容,也不要刪除或移動“//****料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<<”Overflow! \n”:

  return;

  }

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

  _______;

  top++:

  }

  char pop()

  {

  if(top==0){

  cerr<<”Underflow!、n”;

  return‘\0’;

  }

  Top--;

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

  ______;

  }

  };

  void f(Stack&sRef)

  {

  char ch[]={‘a’,‘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]

  【考點分析】

  本題主要考查的是表示棧的抽象類Stack類及它的派生類ArrayStaek類、純虛函數和成員函數。棧的節點一般使用指針表示,定義構造函數時要給指針分配空間,使用New語句來完成。~ArrayStack()是析構函數,因為前面已經使用new來分配空間了,因此在這里要用delete語句來釋放指針。

  【解題思路】

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

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

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

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

  10[單選題]有以下函數

  fun(char *a,char *b)

  {

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

  { a++; b++;}

  return (*a-*b);

  }

  該函數的功能是( )

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

  B.將b所指字符串復制到a所指字符串中

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

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

  參考答案:D

掃描/長按二維碼幫助考試通關
2018年等考報考資訊
2018等考各科通關技巧
2018各科最新預測試卷
2018等考各科備考資料

微信搜索"考試吧"了解更多考試資訊、下載備考資料

  相關推薦:

  2018年全國計算機等級考試必做試題匯總(各科目)

  2018年全國計算機等級考試復習知識點匯總(各科目)

  2018計算機等級考試報名時間|各地報名入口|報名條件

  2018年全國計算機等級考試時間|教材目錄(2018年版)

  2018全國計算機等級考試備考經驗及應試技巧匯總

  報名方法|考試內容|考試大綱|2018計算機等級考試科目

  歷年真題匯總|考試吧策劃:2018年計算機等級考試報考指南

0
收藏該文章
0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節視頻 ·章節練習
·免費真題 ·模考試題
微信掃碼,立即獲!
掃碼免費使用
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網 出版物經營許可證新出發京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 亚洲一区二区三区中文字幕 | 在线观看欧洲成人免费视频 | 婷婷亚洲图片 | 成年人视频黄色 | 又爽又黄又无遮挡的视频在线观看 | 妞干网欧美 | 国产成人啪精品视频免费网站软件 | 一个人www免费观看视频 | 国产精品2023 | 久久青草免费91观看 | 九九视频精品全部免费播放 | 一本大道香蕉大vr在线吗视频 | 国产日韩欧美网站 | 免费黄色三级 | 日韩精品中文字幕视频一区 | 成在线人免费视频一区二区三区 | 波多野结衣在线视频观看 | 国产精品99久久久久久董美香 | 久久91亚洲精品中文字幕 | 黄色毛片免费 | 色在线视频免费 | 欧美综合色 | 国外成人在线视频 | 日本黄色二级片 | 亚洲国产日韩在线人高清 磁力 | 第四色亚洲色图 | 伦理网站在线播放视频 | 国产成人精品高清在线 | 国产第一页浮力影院-欢迎你 | 最近最好的中文字幕2019免费 | 香港三级日本三级人妇网站 | 日本三级欧美三级香港黄 | 免费成人小视频 | 国产男女自拍视频 | 黄色网址中文字幕 | 天天尻逼| 色综合精品 | 亚洲精品一二三四 | 福利视频黄 | 天天做夜夜做久久做狠狠 | 波多野结衣在线观看一区二区 |