亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

試題

計(jì)算機(jī)二級(jí)考試《C++語(yǔ)言程序設(shè)計(jì)》考試題

時(shí)間:2024-10-25 04:21:36 試題 我要投稿
  • 相關(guān)推薦

計(jì)算機(jī)二級(jí)考試《C++語(yǔ)言程序設(shè)計(jì)》考試題2017

  通過(guò)真題練習(xí)熟悉出題人的套路,掌握考試知識(shí)點(diǎn)。以下是百分網(wǎng)小編搜索整理的一份計(jì)算機(jī)二級(jí)考試《C++語(yǔ)言程序設(shè)計(jì)》考試題,供參考練習(xí),希望對(duì)大家有所幫助!想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

計(jì)算機(jī)二級(jí)考試《C++語(yǔ)言程序設(shè)計(jì)》考試題2017

  一、選擇題

  1算法的空間復(fù)雜度是指(  )。

  A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間

  B.算法所處理的數(shù)據(jù)量

  C.算法程序中的語(yǔ)句或指令條數(shù)

  D.算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)

  參考答案:A

  參考解析:一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

  2每個(gè)C++程序中都必須有且僅有一個(gè)(  )。

  A.類(lèi)B.預(yù)處理命令C.主函數(shù)D.語(yǔ)句

  參考答案:C

  參考解析:每個(gè)C++程序中都要有且僅有一個(gè)主函數(shù),該函數(shù)是程序的入口,而語(yǔ)句、預(yù)處理命令和函數(shù)及類(lèi)在程序中都可以有多個(gè)。

  3對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是(  )。

  A.快速排序B.冒泡排序C.直接插入排序D.堆排序

  參考答案:D

  參考解析:首先知道有哪些排序的方法及各種排序方法在最壞情況下需要比較的次數(shù),冒泡排序n(n-1)/2、希爾排序0(n1.5)、簡(jiǎn)單選擇排序n(n-1)/2、堆排序O(nl0g2n)。

  4數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式不包括(  )。

  A.概念模式B.內(nèi)模式C.外模式D.數(shù)據(jù)模式

  參考答案:D

  參考解析:數(shù)據(jù)庫(kù)三級(jí)模式包括:概念模式、內(nèi)模式、外模式。

  5SQL語(yǔ)言又稱(chēng)為(  )。

  A.結(jié)構(gòu)化定義語(yǔ)言

  B.結(jié)構(gòu)化控制語(yǔ)言

  C.結(jié)構(gòu)化查詢語(yǔ)苦

  D.結(jié)構(gòu)化操縱語(yǔ)言

  參考答案:C

  參考解析:SQL語(yǔ)言的全稱(chēng)為StructuredQueryLanguage,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語(yǔ)言,是一種面向數(shù)據(jù)庫(kù)的通用數(shù)據(jù)處理語(yǔ)言規(guī)范。它包含數(shù)據(jù)查詢語(yǔ)言、數(shù)據(jù)操縱語(yǔ)言、數(shù)據(jù)定義語(yǔ)言和數(shù)據(jù)控制語(yǔ)言四個(gè)部分。

  6數(shù)據(jù)處理的最小單位是(  )。

  A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)

  參考答案:C

  7假定MyClass為一個(gè)類(lèi),那么下列的函數(shù)說(shuō)明中,(  )為該類(lèi)的析構(gòu)函數(shù)。

  A.void~MyClass();B.~MyC|ass(intn);C.MyClass();D.~MyClass();

  參考答案:D

  參考解析:C++語(yǔ)言中析構(gòu)函數(shù)為符號(hào)“~”加類(lèi)名,且析構(gòu)函數(shù)沒(méi)有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。第7題 筆記記錄我的筆記(0) | 精選筆記(1)選擇筆記標(biāo)簽:試題內(nèi)容(1)答案解析(0)

  8有以下結(jié)構(gòu)體說(shuō)明和變量的定義,且指針P指向變量a,指針q指向變量b。則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是(  )。

  structnode

  {chardata;

  structnode*next;

  }a,b,*p=&a,*q=&b;

  A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

  參考答案:B

  9若有表達(dá)式“(w)?(--x):(++y)”,則其中與w等價(jià)的表達(dá)式是(  )。

  A.w==1B.w==0C.W!=1D.W!=0

  參考答案:D

  參考解析:本題考查三目運(yùn)算等。條件表達(dá)式的格式為a?b;c。它的含義是,當(dāng)a為真時(shí),取b的值,否則取c的值。在C語(yǔ)言程序中“為真”即“不等于零”,“為假”即等于0。所以和w等價(jià)的表達(dá)式是w非零。

  10有如下函數(shù)模板聲明:

  template

  TMax(Ta,Tb){return(a>b)?a:b;}

  下列對(duì)函數(shù)模板Max(  )的調(diào)用中錯(cuò)誤的是(  )。

  A.Max(3.5,4.5)B.Max(3.5,4)C.Max(35,4.5)D.Max(3.5,4)

  參考答案:B

  參考解析:本題考查函數(shù)模板的引用。引用模板函數(shù)和引用一般函數(shù)在語(yǔ)法形式上基本相同。需要注意的是,說(shuō)明一個(gè)函數(shù)模板后,當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)對(duì)應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類(lèi)型來(lái)確認(rèn)是否調(diào)用函數(shù)模板中的對(duì)應(yīng)形參。本題選項(xiàng)B中,編譯系統(tǒng)從第一個(gè)參數(shù)“3.5”獲得信息“double型數(shù)據(jù)”和從第二個(gè)參數(shù)獲得信息“int型數(shù)據(jù)”,兩者矛盾。

  11C++語(yǔ)言中關(guān)于構(gòu)造函數(shù)的說(shuō)法正確的是(  )。

  A.構(gòu)造函數(shù)的函數(shù)名不必和類(lèi)名相同

  B.構(gòu)造函數(shù)只能有一個(gè)

  C.每個(gè)類(lèi)必定有構(gòu)造函數(shù)

  D.構(gòu)造函數(shù)必有返回值

  參考答案:C

  參考解析:本題考查構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)可以被重載,函數(shù)名必須和類(lèi)名相同;構(gòu)造函數(shù)可以有一個(gè),也可以有多個(gè);構(gòu)造函數(shù)沒(méi)有返回值。

  12下列描述中,錯(cuò)誤的是(  )。

  A.公有繼承時(shí)基類(lèi)中的公有成員在派生類(lèi)中仍是公有成員

  B.公有繼承時(shí)基類(lèi)中的保護(hù)成員在派生類(lèi)中仍是保護(hù)成員

  C.保護(hù)繼承時(shí)基類(lèi)中的公有成員在派生類(lèi)中仍是公有成員

  D.保護(hù)繼承時(shí)基類(lèi)中的保護(hù)成員在派生類(lèi)中仍是保護(hù)成員

  參考答案:C

  參考解析:保護(hù)繼承時(shí),類(lèi)成員的訪問(wèn)級(jí)別只能降低為保護(hù)模式,因此即使是基類(lèi)的公有成員也被縮小為保護(hù)模式。

  13結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括(  )。

  A.順序結(jié)構(gòu)B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)

  參考答案:B

  參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是順序、分支和循環(huán),不包括goto跳轉(zhuǎn),它只是分支結(jié)構(gòu)的一種,也是一個(gè)關(guān)鍵字。

  14在E—R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是(  )。

  A.橢圓圖B.矩形C.菱形D.三角形

  參考答案:C

  參考解析:E—R圖中用矩形表示實(shí)體(等同于表),用橢圓形表示實(shí)體的屬性(等同于表中字段),用菱形表示實(shí)體關(guān)系(等同于外鍵)。

  15下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是(  )。

  A.循環(huán)隊(duì)列B.帶鏈隊(duì)列C.二叉樹(shù)D.帶鏈棧

  參考答案:C

  參考解析:隊(duì)列是一種允許在一端進(jìn)行插入,而在另一端進(jìn)行刪除的線性表。棧也是一種特殊的線性表,其插入與刪除只能在線性表的一端進(jìn)行。

  16對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為(  )。

  A.log2nB.n/2C.nD.n+1

  參考答案:C

  參考解析:對(duì)線性表進(jìn)行順序查找,最壞情況下,如果從表頭進(jìn)行查找,要查找到表尾才能得出結(jié)果,因此需要比較n次。

  17下面程序的運(yùn)行結(jié)果為(  )。#include

  voidswap(int&a,intb)

  {

  inttemp;

  temp=a++;

  a=b:

  b=temp:

  }

  voidmain()

  {

  inta=2,b=3;

  swap(a,b);

  cout<

  }

  A.2,3B.3,2C.2,2D.3,3

  參考答案:D

  參考解析:本題考查引用調(diào)用,因?yàn)楹瘮?shù)swap引用調(diào)用參數(shù)a,所以在swap函數(shù)中a的變化會(huì)改變主函數(shù)中a的值,即a自加1。但b的值并未改變。

  18若有以下程序:

  #include

  usingnamespacestd;

  classBase

  {public:

  Base()

  {x=0;}

  intx;};

  classDerivedl:virtualpublicBase

  {public:

  Derivedl()

  {x=10;}};

  classDerived2:virtua11publicBase

  {public:

  Derived2()

  {x=20;}};

  classDerived:publicDerivedl,protectedDerived2{};intmain()

  {Derivedobj;

  cout<

  return0;}

  該程序運(yùn)行后的輸出結(jié)果是(  )。

  A.20B.30C.10D.0

  參考答案:A

  參考解析:本題考查虛基類(lèi)的應(yīng)用。雖然Derivedl和Derived2都是由共同的基類(lèi)x派生而來(lái)的,但由于引入了虛基類(lèi),使得它們分別對(duì)應(yīng)基類(lèi)的不同副本。這時(shí)數(shù)據(jù)成員x只存在一份副本,不論在類(lèi)Derivedl中修改,還是在Derived2中修改,都是直接對(duì)這唯一副本進(jìn)行操作。本題程序執(zhí)行語(yǔ)句“Derivedobj;”時(shí).就會(huì)先調(diào)虛基類(lèi)Base的構(gòu)造函數(shù),使得X=0,然后執(zhí)行類(lèi)Derivedl的構(gòu)造函數(shù)使得x=10,再執(zhí)行類(lèi)Derived2的構(gòu)造函數(shù),使得x=20。最后輸出x的值為20。

  19下列選項(xiàng)中不合法的標(biāo)識(shí)符是(  )。

  A.printB.FORC.&aD.-00

  參考答案:C

  參考解析:標(biāo)識(shí)符的概念只能由數(shù)字、字母和下畫(huà)線組成,并且只能以字母和下畫(huà)線開(kāi)頭,所以選項(xiàng)C不正確。

  20考慮函數(shù)原型voidtest(inta,intb=7,charz='*'),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是(  )。

  A.test(5);B.test(5,8);C.test(6,'#');D.test(0,0,'*');

  參考答案:C

  參考解析:題中函數(shù)聲明帶有默認(rèn)參數(shù),那么在C選項(xiàng)的調(diào)用中,將會(huì)把字符型實(shí)參#賦值給整型形參b,這不符合參數(shù)傳遞規(guī)則。

  21當(dāng)需要將一個(gè)函數(shù)boolisnunlber(charc)聲明為內(nèi)聯(lián)函數(shù)時(shí),此內(nèi)聯(lián)函數(shù)的函數(shù)原型為(  )。

  A.enumboolisnumber(charc);

  B.defineboolisnumber(charc);

  C.inlineboolisnumber(charc);

  D.extemboolisnumber(charc);

  參考答案:C

  參考解析:本題考查內(nèi)聯(lián)函數(shù)的相關(guān)知識(shí)點(diǎn)。函數(shù)原型應(yīng)指出函數(shù)名、返回值類(lèi)型以及在調(diào)用函數(shù)時(shí)提供的參數(shù)的個(gè)數(shù)和類(lèi)型,因?yàn)橐暶鳛閮?nèi)聯(lián)函數(shù),故應(yīng)加inline關(guān)鍵字。

  22有如下程序:

  #include

  usingnamespacestd;

  intmain(  ){

  inta[6]={23,l5,64,33,40,58};

  ints1,s2;

  s1=s2=a[0];

  for(int*p=a+1;p

  if(sl>*p)s1=*P;

  if(s2<*p)s2=*p;

  }

  cout<

  return0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是(  )。

  A.23B.58C.64D.79

  參考答案:D

  參考解析:根據(jù)題意,找出數(shù)組a中最大值sl和最小值s2并計(jì)算二者的和。

  23以下程序中調(diào)用cin函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤的原因是(  )。

  #include(iostream.h)

  voidmain(  )

  {int*P,*q,a,b;

  p=&a;

  cout<<"inputa:";

  cin>>P;

  }

  A.*P表示的是指針變量P的地址

  B.P表示的是變量a的地址,而不是變量a的值

  C.*P表示的是指針變量p的值

  D.*P只能用來(lái)說(shuō)明P是一個(gè)指針變量

  參考答案:B

  參考解析:p表示的是變量a的地址,定義后*P表示的是變量a的值。

  24有以下程序:

  classDate

  {

  public:

  Date(inty,intm,intd);

  {

  year=Y:

  month=m;

  day=d;

  }

  Date(inty=2000)

  {

  year=y;

  month=10;

  day=1;

  }

  Date(Date&d)

  {

  year=d.year;

  month=d.month;

  day=d.day;

  }

  voidprint(  )

  {

  cout<

  }

  private:

  intyear,month,day;

  };

  Datefun(Dated)

  {

  Datetemp;

  temp=d;

  returntemp;

  }

  intmain(  )

  {

  Datedatel(2000,1,1),date2(0,0,0);

  Datedate3(datel);

  date2=fun(date3);

  return0;

  }

  程序執(zhí)行時(shí),Date類(lèi)的拷貝構(gòu)造函數(shù)被調(diào)用的次數(shù)是(  )。

  A.2B.3C.4D.5

  參考答案:B

  參考解析:本題考核拷貝構(gòu)造函數(shù)。上述程序中,拷貝構(gòu)造函數(shù)一共被調(diào)用了3次:第1次是在執(zhí)行語(yǔ)句Datedate3(date1)時(shí),用已經(jīng)建立的對(duì)象date1對(duì)正在建立的對(duì)象date3進(jìn)行初始化;第2次是在調(diào)用fun函數(shù)時(shí),由于是傳值調(diào)用,因此實(shí)參對(duì)象date3要對(duì)形參對(duì)象d進(jìn)行初始化;第3次是在執(zhí)行fun函數(shù)中的返回語(yǔ)句returntemp;時(shí),系統(tǒng)初始化一個(gè)匿名對(duì)象時(shí)使用了拷貝構(gòu)造函數(shù)。

  25下面程序的輸出結(jié)果是(  )。

  #include

  Usingnamespacestd;

  ClassBase{

  public:

  Base(intx=O){count<

  }

  };

  ClassDerived:publicBase{

  public:Derved(intx=0{count<

  }

  private;

  Baseval;

  };

  intmina(){

  Derivedd(1);

  retrun0;

  }

  A.0B.1C.01D.001

  參考答案:D

  26軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是(  )。

  A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

  參考答案:B

  參考解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各個(gè)模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

  27下列程序的運(yùn)行結(jié)果是(  )。

  #include

  intx=5;

  intfun(inta)

  {

  intc:

  c=X*a:

  returnC;

  }

  voidmain()

  {

  intx=3,a=4;

  x=x+fun(a);

  cout<<"x="<

  }

  A.x=15B.x=17C.x=23D.x=25

  參考答案:C

  參考解析:由主函數(shù)main入手,首先x被賦值為3,a被賦值為4,然后調(diào)用fun函數(shù),參數(shù)為4,所以在fun函數(shù)中的a=4。而主程序中的x作用域是由它定義開(kāi)始到cout輸出,在fun函數(shù)中無(wú)效。而在fun函數(shù)定義前的變量X作用域是整個(gè)程序,所以fun函數(shù)中的x值為5,這樣C的值就為20。在主函數(shù)中的x+fun(a)中的x為靠近這條語(yǔ)句的x定義,即3,所以最后x的值為20+3=23。第27題 筆記記錄我的筆記(0) | 精選筆記(0)選擇筆記標(biāo)簽:試題內(nèi)容(0)答案解析(0)

  28數(shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS、數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS之間的關(guān)系是(  )。

  A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒(méi)有任何關(guān)系

  參考答案:C

  參考解析:數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般有數(shù)據(jù)庫(kù)(DB)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。

  29在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是(  )。

  A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)C.用戶手冊(cè)D.軟件需求規(guī)格說(shuō)明書(shū)

  參考答案:D

  參考解析:需求分析階段只能產(chǎn)生需求分析規(guī)格說(shuō)明書(shū),A測(cè)試說(shuō)明書(shū)是軟件測(cè)試階段生成的,B軟件詳細(xì)設(shè)計(jì)說(shuō)明數(shù)是設(shè)計(jì)階段生產(chǎn),C用戶手冊(cè)是軟件發(fā)布時(shí)隨軟件一同交付給用戶的。

  30有如下程序:

  #include

  usingnamespacestd;

  classXA{

  inta;

  public:

  staticintb;

  XA(intaa):a(aa){b++;}

  ~XA(  ){}

  intget(  ){returna;}

  };

  intXA::b=0

  intmain(  ){

  XAd1(1),d2(3);

  cout<

  return0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是(  )。

  A.5B.6C.7D.8

  參考答案:C

  參考解析:每調(diào)用一次get函數(shù)時(shí),對(duì)新的類(lèi)A對(duì)象進(jìn)行一次實(shí)例化,調(diào)用一次構(gòu)造函數(shù),類(lèi)A的靜態(tài)成員變量b便加1。

  32對(duì)于模板定義關(guān)鍵字class和typename說(shuō)法不正確的是(  )。

  A.程序中的class并不能都替換為typename

  B.class和typename都可互相替換

  C.程序中的typename都能替換為class

  D.程序中的部分class可以替換為typename

  參考答案:B

  參考解析:在C++程序中的typename是都可以替換為class的,但class不能都替換為typename。

  33下面程序的運(yùn)行結(jié)果為(  )。

  #include

  ClassA

  {

  public:A(  ){cout<<"1";}

  ~A(  ){cout<<"2";}

  };

  ClassB:public:A

  {

  public:

  B(  ){cout<<"3";}

  ~B(  ){cout<<"4";}

  };

  Voidmain(  )

  {

  Bb;

  }

  A.1234B.1324C.1342D.3142

  參考答案:C

  參考解析:本題考查在繼承中構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,應(yīng)該是先調(diào)用基類(lèi)的構(gòu)造函數(shù),再調(diào)用派生類(lèi)的構(gòu)造函數(shù),調(diào)用析構(gòu)函數(shù)時(shí)的順序是先調(diào)用派生類(lèi)的析構(gòu)函數(shù),后調(diào)用基類(lèi)的析構(gòu)函數(shù)。

  34有如下程序:

  #include

  usingnamespacestd;

  classPublication{//出版物類(lèi)

  charname[30];

  public:

  Publication(char*name=”未知名稱(chēng)”){

  ~strcpy(this一>name,name);

  }

  constchar*getName(  )const{returnname;}

  virtualconstchar*getType(  )const{return”未知類(lèi)型”;}

  };

  classBook:publicPublication{//書(shū)類(lèi)

  public:

  Book(char*name):Publication(name){}

  virtualconstchar*getType(  )const{return"書(shū)";}

  };

  voidshowPublication(Publication&p){

  cout<

  endl;

  }

  intmain(  ){

  Bookbook(”精彩人生”);

  showPublication(book);

  return0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是(  )。

  A.未知類(lèi)型:未知名稱(chēng)

  B.未知類(lèi)型:精彩人生

  C.書(shū):未知名稱(chēng)

  D.書(shū):精彩人生

  參考答案:D

  參考解析:因?yàn)間etType是虛函數(shù),所以P.getType()執(zhí)行繼承類(lèi)的getType函數(shù),輸出“書(shū)”;P.getName()執(zhí)行基類(lèi)的getName函數(shù),輸出“精彩人生”?偣草敵“書(shū):精彩人生”,故選D。

  35若有以下程序:

  #include

  usillgnamespacestd;

  classA

  {private:

  inta;

  public:

  A(inti)

  {a=i;}

  voiddisp()

  {cout<

  classB

  {private:

  intb;

  public:

  B(intj)

  {b=j;}

  voiddisp()

  {COUt<

  classC:publicB,publicA

  {private:

  intC;

  public:

  C(intk):A(k-2),B(k+2)

  (c=k;)

  voiddisp()

  {A::disp();

  B::disp();

  cout<

  intmain()

  {Cobj(10);

  obj.disp();

  return0;}

  程序執(zhí)行后的輸出結(jié)果是(  )。

  A.10,10,10B.10,12,14C.8,10,12D.8,12,10

  參考答案:D

  參考解析:本題考查派生類(lèi)構(gòu)造函數(shù)的使用。派生類(lèi)C具有多重繼承關(guān)系,所以在派生類(lèi)C的構(gòu)造函數(shù)中應(yīng)該包含基類(lèi)A和B的成員初始化列表。

  36若AA為一個(gè)類(lèi),a為該類(lèi)的非靜態(tài)數(shù)據(jù)成員,在該類(lèi)的一個(gè)成員函數(shù)定義中訪問(wèn)a時(shí),其書(shū)寫(xiě)格式為(  )。

  A.aB.AA.aC.a{}D.AA::a{}

  參考答案:A

  參考解析:a是類(lèi)AA的非靜態(tài)數(shù)據(jù)成員,在類(lèi)AA的成員函數(shù)中可以直接訪問(wèn)。B是訪問(wèn)靜態(tài)數(shù)據(jù)成員的方式,C和D都是訪問(wèn)函數(shù)的方式。

  37靜態(tài)成員函數(shù)沒(méi)有(  )。

  A.返回值B.this指針C.指針參數(shù)D.返回類(lèi)型

  參考答案:B

  參考解析:this指針是系統(tǒng)隱含的用于指向當(dāng)前對(duì)象的指針。由于靜態(tài)函數(shù)是同類(lèi)中所有對(duì)象都共享的函數(shù),在內(nèi)存中只存在一份,不屬于某個(gè)對(duì)象所有,所以靜態(tài)函數(shù)沒(méi)有this指針。

  38下列程序的運(yùn)行結(jié)果是(  )。

  #include

  intx=5:

  intfun(inta)

  {

  intC;

  C=X*a:

  returnC;

  }

  voidmain(  )

  {

  intx=3,a=4;

  x=x+fun(a);

  cout<<"x="<

  }

  A.x=15B.x=17C.x=23D.x=25

  參考答案:C

  參考解析:由主函數(shù)main入手,首先X被賦值為3,a被賦值為4,然后調(diào)用fun函數(shù),參數(shù)為4,所以在fun函數(shù)中的a=4。而主程序中的X作用域是由它定義開(kāi)始到cout輸出,在fun函數(shù)中無(wú)效。而在fun函數(shù)定義前的變量X作用域是整個(gè)程序,所以fun函數(shù)中的x值為5,這樣c的值就為20。在主函數(shù)中的x+fun(a)中的X為靠近這條語(yǔ)句的x定義,即3,所以最后x的值為20+3=23。

  39面向?qū)ο蟮臎](méi)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是(  )。

  A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

  B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

  C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題

  D.鼓勵(lì)開(kāi)發(fā)者在軟件開(kāi)發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考

  參考答案:C

  參考解析:面向?qū)ο笤O(shè)計(jì)通過(guò)對(duì)人類(lèi)認(rèn)識(shí)客觀世界及事物發(fā)展過(guò)程的抽象,建立了規(guī)范化的分析設(shè)計(jì)方法,由此帶來(lái)軟件模塊化特色突出、可讀性好、易維護(hù)等一系列優(yōu)點(diǎn)。

  40負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是(  )。

  A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言

  參考答案:C

  參考解析:數(shù)據(jù)庫(kù)操縱語(yǔ)言專(zhuān)門(mén)負(fù)責(zé)查詢、增加、刪除等數(shù)據(jù)操作。

  二、程序改錯(cuò)題

  41使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)。請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為

  100

  37

  32

  注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。

  試題程序:

  #include

  //******error******

  voidmain

  {

  //******error******

  intm=0142:

  //******error******

  intn=0X27:

  intq=32;

  cout<

  cout<

  cout<

  return;

  }

  參考解析:

  (1)“voidmain()”。

  (2)“intm=0144;”。

  (3)“intn=OX25;”或“intn===0x25;”。

  【解析】本題主要考查了主函數(shù)定義及冪同進(jìn)制之間的轉(zhuǎn)換,包括十進(jìn)制到八進(jìn)制,十進(jìn)制到十六進(jìn)制。主函數(shù)定義的定義形式為“main()”,函數(shù)名之后必須是一對(duì)括號(hào),因此第1處應(yīng)改為“voidmain()”。cout輸出默認(rèn)是以十進(jìn)制方式輸出的,根據(jù)題目要求輸出的結(jié)果可發(fā)現(xiàn)變量的初值不正確,十進(jìn)制的100對(duì)應(yīng)八進(jìn)制的144,卡進(jìn)制的37對(duì)應(yīng)十六進(jìn)制的25,因此2和3應(yīng)分別改成“intm=0144;”,“intn=0×25;”或“intn=0×25;”。

  三、簡(jiǎn)單應(yīng)用題

  42使用VC++6.0打開(kāi)考生文件夾下的源程序文件2.cpp。請(qǐng)完成函數(shù)fun(intn),使其實(shí)現(xiàn)以下功能:當(dāng)i等于3時(shí),則打印如下內(nèi)容。

  A

  AA

  AAA

  注意:不能修改程序的其他部分,只能修改fun函數(shù)。

  試題程序:

  #include

  voidfun(intn)

  {

  }

  voidmain()

  {

  intn;

  cout<<"請(qǐng)輸入打印的行數(shù):"<

  cin>>n;

  if(n<1)

  {

  cout<<"輸入的行數(shù)必須大于0"<

  return;

  }

  fun(n);

  return;

  }

  參考解析:

  inti;

  for(i=0;i

  {

  intj;

  for(j=0;j(n-i-1;j++)//循環(huán)打印空格

  {

  cout<<'';

  }

  for(;j

  {

  cout<<"A":

  }

  cout<

  }

  【解析】本題利用外層循環(huán)打印每一行。內(nèi)層循環(huán)分為

  打印空格和打印A。打印空格由第一個(gè)位置到第n-i-1。打印A,是由打印完空格開(kāi)始一直到行結(jié)束。在外循環(huán)中打印每一行的結(jié)束符。

  四、綜合應(yīng)用題

  43使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。請(qǐng)完成以下部分,實(shí)現(xiàn)在屏幕上輸出為

  C3

  C2

  這個(gè)程序需要修改的部分,請(qǐng)按照以下部分實(shí)現(xiàn)。

  (1)類(lèi)C0不能被實(shí)例化,請(qǐng)定義一個(gè)純虛函數(shù)print,在注釋1后添加適當(dāng)?shù)恼Z(yǔ)句。

  (2)類(lèi)C1私有虛繼承類(lèi)C0,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

  (3)類(lèi)C2公有繼承于C0,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

  (4)類(lèi)c3公有繼承于C2與C1,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。

  注意:增加代碼或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。

  試題程序:

  #include(iostream.h)

  classCO

  {

  //********1********

  };

  //********2********

  classC1:

  {

  public:

  voidprint()

  {

  cout<"”C1"<

  }

  };

  //********3********

  classC2:

  {

  public:

  voidprint()

  {

  cout<<"C2"<

  }

  };

  //********4***x****

  classC3:

  {

  public:

  voidprint()

  {

  cout<<"C3"<

  }

  };

  voidmain()

  {

  C30bj3;

  C20bj2;

  obj3.print();

  obj2.print();

  return;

  }

  參考解析:

  (1)應(yīng)添加“virtualvoidprint()=0,”。

  (2)“classC1:”應(yīng)改為“classC1:virtualprivateC0”。

  (3)“classC2:”應(yīng)改為“classC2:publicC0”。

  (4)“classC3:”應(yīng)改為“classC3:publicC2,publicC1”。

  【解析】本題考查了類(lèi)的繼承。根據(jù)題意,第1處應(yīng)該添加“virtualvoidprint()=0;”。第2處根據(jù)題意,在冒號(hào)后面應(yīng)添加“virtualprivateCO”。第3處根據(jù)題意,冒號(hào)后應(yīng)添加“publicCO”。第4處根據(jù)題意,冒號(hào)后應(yīng)添加“publicC2,publicC1”。

【計(jì)算機(jī)二級(jí)考試《C++語(yǔ)言程序設(shè)計(jì)》考試題】相關(guān)文章:

計(jì)算機(jī)二級(jí)考試C++語(yǔ)言程序設(shè)計(jì)上機(jī)考試試題12-03

二級(jí)計(jì)算機(jī)VB語(yǔ)言程序設(shè)計(jì)考試題及答案11-26

C語(yǔ)言程序設(shè)計(jì)?荚囶}03-20

2016計(jì)算機(jī)二級(jí)考試Java語(yǔ)言程序設(shè)計(jì)輔導(dǎo)12-12

全國(guó)計(jì)算機(jī)二級(jí)C++語(yǔ)言程序設(shè)計(jì)選擇題練習(xí)試題11-29

2017計(jì)算機(jī)二級(jí)C語(yǔ)言程序設(shè)計(jì)考試內(nèi)容12-11

2016年9月計(jì)算機(jī)二級(jí)《C++》機(jī)考試題及答案11-24

2016計(jì)算機(jī)二級(jí)《C語(yǔ)言》無(wú)紙化考試題及答案03-28

2015計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)考試題及答案03-12