首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航

2017年全國計(jì)算機(jī)二級(jí)C++考試復(fù)習(xí)知識(shí)點(diǎn)(1)

來源:考試吧 2017-09-29 9:00:44 要考試,上考試吧! 萬題庫
“2017年全國計(jì)算機(jī)二級(jí)C++考試復(fù)習(xí)知識(shí)點(diǎn)(1)”供考生參考。更多計(jì)算機(jī)等級(jí)考試復(fù)習(xí)資料等信息請(qǐng)?jiān)L問考試吧計(jì)算機(jī)等級(jí)考試網(wǎng)。

  五、函數(shù)重載

  在C++中,允許有相同的函數(shù)名,不過它們的參數(shù)類型不能完全相同,這樣這些函數(shù)就可以相互區(qū)別開來。而這在C語言中是不允許的。

  1.參數(shù)個(gè)數(shù)不同

  #include iostream.h

  void a(int,int);

  void a(int);

  int main()

  {

  a(5);

  a(6,7);

  return 0;

  }

  void a(int i)

  {

  cout < }

  void a(int i,int j)

  {

  cout < }

  2.參數(shù)格式不同

  #include iostream.h

  void a(int,int);

  void a(int,float);

  int main()

  {

  a(5,6);

  a(6,7.0);

  return 0;

  }

  void a(int i,int j)

  {

  cout < }

  void a(int i,float j)

  {

  cout < }

  六、變量作用域

  C++語言中,允許變量定義語句在程序中的任何地方,只要在是使用它之前就可以;而C語言中,必須要在函數(shù)開頭部分。而且C++允許重復(fù)定義變量,C語言也是做不到這一點(diǎn)的?聪旅娴某绦颍

  #include iostream.h

  int a;

  int main()

  {

  cin >>a;

  for(int i=1;i <=10;i++) //C語言中,不允許在這里定義變量

  {

  static int a=0; //C語言中,同一函數(shù)塊,不允許有同名變量

  a+=i;

  cout <<::a<< < }

  return 0;

  }

  七、new和delete運(yùn)算符

  在C++語言中,仍然支持malloc()和free()來分配和釋放內(nèi)存,同時(shí)增加了new和delete來管理內(nèi)存。

  1.為固定大小的數(shù)組分配內(nèi)存

  #include iostream.h

  int main()

  {

  int *birthday=new int[3];

  birthday[0]=6;

  birthday[1]=24;

  birthday[2]=1940;

  cout < < delete [] birthday; //注意這兒

  return 0;

  }

  在刪除數(shù)組時(shí),delete運(yùn)算符后要有一對(duì)方括號(hào)。

  2.為動(dòng)態(tài)數(shù)組分配內(nèi)存

  #include iostream.h

  #include stdlib.h

  int main()

  {

  int size;

  cin >>size;

  int *array=new int[size];

  for(int i=0;i array[i]=rand();

  for(i=0;i cout <<'\n'< delete [] array;

  return 0;

  }

  八、引用型變量

  在C++中,引用是一個(gè)經(jīng)常使用的概念。引用型變量是其他變量的一個(gè)別名,我們可以認(rèn)為他們只是名字不相同,其他都是相同的。

  1.引用是一個(gè)別名

  C++中的引用是其他變量的別名。聲明一個(gè)引用型變量,需要給他一個(gè)初始化值,在變量的生存周期內(nèi),該值不會(huì)改變。 & 運(yùn)算符定義了一個(gè)引用型變量:

  int a;

  int & b=a;

  先聲明一個(gè)名為a的變量,它還有一個(gè)別名b。我們可以認(rèn)為是一個(gè)人,有一個(gè)真名,一個(gè)外號(hào),以后不管是喊他a還是b,都是叫他這個(gè)人。同樣,作為變量,以后對(duì)這兩個(gè)標(biāo)識(shí)符操作都會(huì)產(chǎn)生相同的效果。

  #include iostream.h

  int main()

  {

  int a=123;

  int & b=a;

  cout < a++;

  cout < b++;

  cout < return 0;

  }

  2.引用的初始化

  和指針不同,引用變量的值不可改變。引用作為真實(shí)對(duì)象的別名,必須進(jìn)行初始化,除非滿足下列條件之一:

  (1) 引用變量被聲明為外部的,它可以在任何地方初始化

  (2) 引用變量作為類的成員,在構(gòu)造函數(shù)里對(duì)它進(jìn)行初始化

  (3) 引用變量作為函數(shù)聲明的形參,在函數(shù)調(diào)用時(shí),用調(diào)用者的實(shí)參來進(jìn)行初始化

  3.作為函數(shù)形參的引用

  引用常常被用作函數(shù)的形參。以引用代替拷貝作為形參的優(yōu)點(diǎn):

  引用避免了傳遞大型數(shù)據(jù)結(jié)構(gòu)帶來的額外開銷

  引用無須象指針那樣需要使用*和- >等運(yùn)算符

  #include iostream.h

  void func1(s p);

  void func2(s & p);

  struct s

  {

  int n;

  char text[10];

  };

  int main()

  {

  static s str={123,China};

  func1(str);

  func2(str);

  return 0;

  }

  void func1(s p)

  {

  cout < cout< }

  void func2(s & p)

  {

  cout < cout< }

  從表面上看,這兩個(gè)函數(shù)沒有明顯區(qū)別,不過他們所花的時(shí)間卻有很大差異,func2()函數(shù)所用的時(shí)間開銷會(huì)比func2()函數(shù)少很多。它們還有一個(gè)差別,如果程序遞歸func1(),隨著遞歸的深入,會(huì)因?yàn)闂5暮谋M而崩潰,但func2()沒有這樣的擔(dān)憂。

  4.以引用方式調(diào)用

  當(dāng)函數(shù)把引用作為參數(shù)傳遞給另一個(gè)函數(shù)時(shí),被調(diào)用函數(shù)將直接對(duì)參數(shù)在調(diào)用者中的拷貝進(jìn)行操作,而不是產(chǎn)生一個(gè)局部的拷貝(傳遞變量本身是這樣的)。這就稱為以引用方式調(diào)用。把參數(shù)的值傳遞到被調(diào)用函數(shù)內(nèi)部的拷貝中則稱為以傳值方式調(diào)用。

  #include iostream.h

  void display(const Date &,const char*);

  void swapper(Date &,Date&);

  struct Date

  {

  int month,day,year;

  };

  int main()

  {

  static Date now={2,23,90};

  static Date then={9,10,60};

  display(now,Now: );

  display(then,Then: );

  swapper(now,then);

  display(now,Now: );

  display(then,Then: );

  return 0;

  }

  void swapper(Date & dt1,Date& dt2)

  {

  Date save;

  save=dt1;

  dt1=dt2;

  dt2=save;

  }

  void display(const Date & dt,const char *s)

  {

  cout < cout< }

  5.以引用作為返回值

  #include iostream.h

  struct Date

  {

  int month,day,year;

  };

  Date birthdays[]=

  {

  {12,12,60};

  {10,25,85};

  {5,20,73};

  };

  const Date & getdate(int n)

  {

  return birthdays[n-1];

  }

  int main()

  {

  int dt=1;

  while(dt!=0)

  {

  cout < cin>>dt;

  if(dt >0 && dt<4)

  {

  const Date & bd=getdate(dt);

  cout < }

  }

  return 0;

  }

掃描/長按二維碼幫助考試通關(guān)
2017等考成績(jī)查詢時(shí)間
2017等考各科通關(guān)技巧
2017各科最新預(yù)測(cè)試卷
2017等考成績(jī)?cè)u(píng)定及管理

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

上一頁  1 2 

  相關(guān)推薦:

  2017年全國計(jì)算機(jī)等級(jí)考試時(shí)間|教材目錄(2017年版)

  2017年9月計(jì)算機(jī)等級(jí)考試真題|計(jì)算機(jī)等級(jí)考試答案

  各地2017年9月計(jì)算機(jī)等考成績(jī)查詢時(shí)間|免費(fèi)查分提醒

  計(jì)算機(jī)等級(jí)考試成績(jī)?cè)u(píng)定流程及標(biāo)準(zhǔn)|合格證書樣本及證書說明

  歷年真題匯總|考試吧特別策劃:2017年計(jì)算機(jī)等級(jí)考試報(bào)考指南

0
收藏該文章
0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費(fèi)真題 ·?荚囶}
微信掃碼,立即獲!
掃碼免費(fèi)使用
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
此欄目下沒有文章
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
Copyright © 2004- 考試吧計(jì)算機(jī)等級(jí)考試網(wǎng) 出版物經(jīng)營許可證新出發(fā)京批字第直170033號(hào) 
京ICP證060677 京ICP備05005269號(hào) 中國科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧