亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

計(jì)算機(jī)二級(jí)C++基礎(chǔ)練習(xí)題

時(shí)間:2024-10-28 11:57:49 計(jì)算機(jī)等級(jí) 我要投稿
  • 相關(guān)推薦

計(jì)算機(jī)二級(jí)C++基礎(chǔ)練習(xí)題

  C++不僅擁有計(jì)算機(jī)高效運(yùn)行的實(shí)用性特征,同時(shí)還致力于提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計(jì)語言的問題描述能力。以下是小編整理的關(guān)于計(jì)算機(jī)二級(jí)C++基礎(chǔ)練習(xí)題,希望大家認(rèn)真閱讀!

  一、選擇題(每小題1分,共40分)

  1下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。

  A.內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移

  B.內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義

  C.內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的

  D.內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句

  參考答案:C

  參考解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,所以在調(diào)用時(shí)不發(fā)生控制轉(zhuǎn)移。在類內(nèi)部實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù),可以不用inline定義;只有函數(shù)外部定義的內(nèi)聯(lián)函數(shù)才必須加關(guān)鍵字inline。編譯系統(tǒng)并非對(duì)內(nèi)聯(lián)函數(shù)必須使用內(nèi)聯(lián),而且根據(jù)具體情況決定。內(nèi)聯(lián)函數(shù)不是必須要有返回值的。

  2語句int*P=&k;定義了指針P,與這個(gè)語句等效的語句序列是( )。

  A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;

  參考答案:A

  參考解析:本題考查指針和地址,題目中定義了一個(gè)指向變量k的一個(gè)指針p,那么與題目中等效的表達(dá)式A選項(xiàng),即先定義一個(gè)指向整型的指針,然后指向k的地址。

  3有如下程序:

  #include

  using namespace std;

  class A

  {

  public:

  A(){cout<<”A”;}

  -A(){cout<<”-A”;}

  };

  class B:public A

  {

  A*P;

  public:

  B(){cout<<”B”;P=new A();}

  -B(){cout<<”~B”; p;}

  };

  int main()

  {

  B obj;

  return 0;

  }

  執(zhí)行這個(gè)程序的輸出結(jié)果是( )。

  A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A

  參考答案:B

  參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù)。對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。所以本題答案為B。

  4有如下類定義:

  class AA

  {

  im a:

  public:

  int getRef()const{return&a;}//①

  int getValue()const{return a;}//②

  void set(int n)const{a=n;}//③

  friend void show(AA aA.const{cout<

  };

  其中四個(gè)函數(shù)的定義中正確的是(  )。

  A.①B.②C.③D.④

  參考答案:B

  參考解析:本題考查常成員函數(shù),常成員函數(shù)只能引用本類中的數(shù)據(jù)成員,而不能修改它。所以本題答案為B。

  5若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是( )。

  A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;

  參考答案:B

  參考解析:根據(jù)重載加法運(yùn)算符的格式,只有B選項(xiàng)正確。

  6有如下數(shù)組聲明:int num[10];,下標(biāo)值引用錯(cuò)誤的是( )。

  A.num[10]B.num[5]C.num[3]D.hum[o]

  參考答案:A

  參考解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標(biāo)是從0開始的,所以本題中數(shù)組的最后一個(gè)元素是num[9]。

  7將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說明的是(  )。

  A.DeCr&operator--(int);B.DeCr operator--(DeCr&,int);C.friend DeCr&operator--(DeCr&);D.friend DeCr operator--(DeCr&,int);

  參考答案:C

  參考解析:把“--”運(yùn)算符重載為非成員(友元)函數(shù)格式:friend<返回類型>operator--()是前綴的格式;friend<返回類型>operator--(int)是后綴的格式。當(dāng)然也可以有參數(shù)如題中C選項(xiàng)所示。

  8如果派生類以proteCted方式繼承基類,則原基類的proteCted成員和publiC成員在派生類中的訪問屬性分別是( )。

  A.publiC和publiCB.publiC和proteCtedC.proteCted和publiCD.proteCted和proteCted

  參考答案:D

  參考解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,所以本題答案為D。

  9在函數(shù)中,可以用aut0、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是(  )。

  A.autoB.externC.registerD.static

  參考答案:A

  參考解析:變量的存儲(chǔ)方法分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)兩大類,包含4種:自動(dòng)的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量如果沒有說明存儲(chǔ)類型,那么默認(rèn)就是aut0。

  10下列程序的輸出結(jié)果是( )。

  #include

  int rain(iltl a,int B)

  {

  if(a

  else retum b;

  retum 0;

  }

  void main()

  {

  eout<

  }

  A.0B.1C.2D.3

  參考答案:B

  參考解析:本題考查的是函數(shù)的調(diào)用,第一次調(diào)用min(2,3),因?yàn)?<3,所以返回值為2,第二次調(diào)用min(1,2),因?yàn)閘<2,所以返回1。

  11在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是( )。

  A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

  參考答案:B

  參考解析:黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測(cè)試和驗(yàn)證,黑盒測(cè)試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明,所以本題選擇B。

  12在面向?qū)ο蠓椒ㄖ,不屬于“?duì)象”基本特點(diǎn)的是(  )。

  A.一致性B.分類性C.多態(tài)性D.標(biāo)識(shí)唯一性

  參考答案:A

  參考解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A。

  13有以下程序:

  #include

  void fun(int a,int b,int C.

  { a=456,b=567,c=678;}

  void main()

  {

  int X=10,Y=20,Z=30;

  fun(X,Y,z);

  aout<

  }

  輸出結(jié)果是( )。

  A.30,20,10B.10,20,30C.456,567,678D.678,567,456

  參考答案:B

  參考解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變餐x、Y、Z賦值,然后將其作為實(shí)參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個(gè)變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)3個(gè)變量的值未改變。

  14對(duì)類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是( )。

  A.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載

  B.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載

  C.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載

  D.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重裁

  參考答案:A

  參考解析:一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù),否則會(huì)造成對(duì)同…對(duì)象的多次刪除;而構(gòu)造函數(shù)可以根據(jù)不同的參數(shù)個(gè)數(shù)和類型進(jìn)行多次重載。

  15通過運(yùn)算符重載,可以改變運(yùn)算符原有的(  )。

  A.操作數(shù)類型B.操作數(shù)個(gè)數(shù)C.優(yōu)先級(jí)D.結(jié)合性

  參考答案:A

  參考解析:重載運(yùn)算符的規(guī)則如下:①c++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的C++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是c++的標(biāo)準(zhǔn)類型。故本題答案為A。

  16下列關(guān)于c++流的描述中,錯(cuò)誤的是(  )。

  A.cout>>’A’表達(dá)式可輸出字符A

  B.eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾

  C.對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstream

  D.以ios_base::0ut模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件

  參考答案:A

  參考解析:本題考查c++流,想要輸出字符“A”,則應(yīng)該是cout<<“A”,所以本題答案為A。

  17耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是(  )。

  A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

  B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

  C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

  D.內(nèi)聚性是指模塊間互相連接的緊密程度

  參考答案:B

  參考解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。

  18若有如下類聲明:

  Class MyClass{ publiC:

  MyClass(  ){Cout<<1;} };

  執(zhí)行下列語句

  MyClass a,b[2],*p[2]; 程序的輸出結(jié)果是(  )。

  A.11B.111C.1111D.11111

  參考答案:B

  參考解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一一個(gè)對(duì)象a以及對(duì)象數(shù)組b[2],共執(zhí)行3次構(gòu)造函數(shù),對(duì)象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為B。

  19下列函數(shù)模板的定義中,合法的是(  )。

  A.templateT abs(T X){return x<07-x:X;}

  B.template ClassT abs(T x){return x<07-X:x;}

  C.template Tabs(T X){return x<07-x:X;}

  D.template T abs(T x){return X<0?-X:x;}

  參考答案:A

  參考解析:本題考查模板函數(shù)的基本概念.根據(jù)模板函數(shù)的定義,所以答案為A。

  20有如下程序:

  #include

  using namespace std;

  class Base{

  int x:

  public:

  Base(int n=0):x(n){cout<

  int getX()const{return x;}

  };

  cjass Derived:public Base{

  int Y:.

  J;;Iublic:

  Derived(int m,int n):y(m),Base(n){cout<

  Derived(int m):Y(m){cout<

  };

  int main()

  {

  Derived dl(3),d2(5,7);

  retum 0;

  }

  執(zhí)行這個(gè)程序的輸出結(jié)果是( )。

  A.375B.357C.0375D.0557

  參考答案:C

  參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù)。再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個(gè)對(duì)象d1,先執(zhí)行基類的構(gòu)造函數(shù)輸出0,再執(zhí)行派生類的構(gòu)造函數(shù)輸出3,然后定義了一個(gè)對(duì)象d2(5,7),其中需要調(diào)用基類的構(gòu)造函數(shù)輸出7.最后輸出5,所以答案為c。

  二、簡(jiǎn)單應(yīng)用題(24分)

  請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個(gè)程序文件main.cpp,其中有日期類Date、人員類Person及排序函數(shù)sortByName和主函數(shù)main的定義。請(qǐng)?jiān)诔绦蛑械臋M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義和函數(shù)定義。此程序的正確輸出結(jié)果應(yīng)為:

  按姓名排序

  排序前:

  張三 男 出生日期:1978年4月20日

  王五 女 出生日期:1965年8月3日

  楊六 女 出生日期:1965年9月5日

  李四 男 出生日期:1973年5月30日

  排序后:

  李四 男 出生日期:1973年5月30日

  王五 女 出生日期:1965年8月3日

  楊六 女 出生日期:1965年9月5日

  張三 男 出生日期:1978年4月20日

  注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。

  #include

  using namespace std;

  class Date{//日期類

  int year,month,day;//年、月、日

  public:

  Date(int year,int month,int day):year(year),month(month),day(day){}

  int getYear()const{return year;}

  int getMonth()const{return month;}

  int getDay()const{return day;}

  };

  class Person{ //人員類

  char name[14];//姓名

  bool is—male;//性別,為true時(shí)表示男性

  Date birth—date;//出生日期

  public:

  Person(char*name,bool is—male,Date birth_date)

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

  :——————

  {

  {

  strcpy(this一>name,name);

  }

  const char * getName()const{return name;}

  bool isMale()const{return is—male;}

  Date getBirthdate()const{return birth—date;}

  //利用strcmp()函數(shù)比較姓名,返回一個(gè)正數(shù)、0或負(fù)數(shù),分別表示大于、等于、小于

  int compareName(const Person&p)const{

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

  ————}

  void show(){

  cout<

  cout<

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

  __________________________//顯示出生月

  << “birth—date.getDay()<<”日”;//顯示出生日

  }

  };

  void sortByName(Person ps[],int size){

  //將人員數(shù)組按姓名排列為升序

  for(int i=0;i

  //采用選擇排序算法

  int m=i;

  for(int j=i+1;j

  if(ps[j].eompareName(ps[m])<0)

  m=j;

  if(m>i){

  Person P=ps[m];

  ps[m]=ps[i];

  ps[i]=p;

  }

  }

  }

  int main(){

  Person staff[]={

  Person(”張三”,true,Date(1978,4,20)),

  Person(”王五”,false,Date(1965,8,3)),

  Person(”楊六”,false,Date(1965,9,5)),

  Person(”李四”,tme,Date(1973,5,30))

  };

  const int size=sizeof(staff)/sizeof(staff[0]);

  int i;

  eout<

  cout<

  for(i=0;i

  sortByName(staff,size);

  cout<

  for(i_0;i

  cout<

  return 0;

  {

【計(jì)算機(jī)二級(jí)C++基礎(chǔ)練習(xí)題】相關(guān)文章:

計(jì)算機(jī)二級(jí)考試之C++基礎(chǔ)知識(shí)點(diǎn)03-05

計(jì)算機(jī)二級(jí)考試C++試題03-09

2017年計(jì)算機(jī)二級(jí)基礎(chǔ)練習(xí)題及答案03-10

計(jì)算機(jī)二級(jí)考試C++試題及答案03-27

2017年計(jì)算機(jī)二級(jí)基礎(chǔ)知識(shí)練習(xí)題03-08

2017計(jì)算機(jī)二級(jí)C++考試試題03-05

計(jì)算機(jī)二級(jí)C++考試測(cè)試卷及答案02-27

2016最新計(jì)算機(jī)二級(jí)C++上機(jī)試題及答案03-03

計(jì)算機(jī)應(yīng)用基礎(chǔ)模擬練習(xí)題03-21