亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

試題

全國計算機二級《C++》上機試題及答案

時間:2025-04-07 23:12:04 松濤 試題 我要投稿

全國計算機二級《C++》上機試題及答案

  在各領域中,我們或多或少都會接觸到試題,借助試題可以更好地考查參試者所掌握的知識和技能。一份好的試題都是什么樣子的呢?以下是小編精心整理的全國計算機二級《C++》上機試題及答案,歡迎閱讀,希望大家能夠喜歡。

全國計算機二級《C++》上機試題及答案

  一、程序改錯題

  使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正常運行,輸出的結果為

  Constructor,i=0,

  Destructor

  注意:錯誤的語句在//******error******的下面,修改該語句即可。

  試題程序:

  #include(iostream.h)

  classTC

  {

  inti;

  public:

  TC();

  voiddisplay();

  ~TC();

  };

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

  TC:TC()

  {

  cout<<"Constructor"<<",";

  i=0;

  )

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

  TC:display()

  {

  tout<<"i="<  }

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

  TC:TC()

  {

  COUI<<"Destructor"<  }

  voidmain()

  {

  TCa;

  a.display();

  }

  二、簡單應用題

  使用VC++6.0打開考生文件夾下的源程序文件2.cpp。閱讀下列函數說明和代碼,實現函數sort(intA[],intn),用選擇排序法將數組從大到小排序。

  提示:選擇排序法的思想是

  (1)反復從還未排好序的那部分線性表中選出關鍵字最小的結點。

  (2)按照從線性表中選出的順序排列結點,重新組成線性表。

  (3)直到未排序的那部分為空,使得重新形成的線性表是一個有序的線性表。

  補充函數sort(intA[],intn),實現選擇排序。

  注意:請勿改動主函數。

  試題程序:

  #include

  #defineN10

  voidsort(intA[N],intn)

  {

  }

  intmain()

  intA[N]={-72,54,-6,7,18,102,0,4,-11,1};

  sort(A,10);

  for(inti=0;i(sizeof(A)/sizeof(int);i++)

  {

  cout<  }

  cout<  return0;

  }

  三、綜合應用題

  使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定義的類不完整,按要求完成下列操作,將類的定義補充完整。每賣出一個水果,則計算水果的重量,還要計算所有賣出水果的總重量以及總個數,同時允許退貨,請按照以下的操作,把類補充完整。

  (1)定義類TCFruit的私有靜態(tài)數據成員float型變量AllWeight和int型變量AllN0,請在注釋1后添加適當的語句。

  (2)完成類TCFruit的帶一個float型變量w的構造函數,并把這個w加到AllWeight中,并且AllNo自加。請在注釋2后添加適當的語句。

  (3)在析構函數中,在AllWeight中減去weight,然后AllNo自減,請在注釋3后添加適當的語句。

  (4)完成靜態(tài)成員變量的初始化為0,請在注釋4后添加適當的語句。

  注意:增加或者修改代碼的位置已經用符號表示出來,請不要修改其他的程序代碼。

  試題程序:

  #include(iostream.h>

  classTCFruit

  {

  private:

  floatWeight;

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

  staticintAllNo;

  public:

  TCFruit(floatw)

  {

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

  AllWeight+=w:

  AllNo++:

  }

  ~TCFruit()

  {

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

  AllWeight-=Weight:

  }

  voiddisplay()

  {

  cout<<"SellaFruitwith"<  endl;

  cout<<”Allsellnumber:"<  cout<<"Allsellweight:"<  endl<  }

  };

  //********4********

  floatTCFruit::AllWeight=0.0;

  intmain()

  {

  TCFruitFruitl(1.2);

  Fruitl.display();

  TCFruitFruit2(2.3);

  Fruit2.display();

  return0;

  }

  全國計算機二級《C++》上機試題及答案 篇1

  一、程序改錯題

  (1)應改為“TC::TC()”。

  (2)應改為“voidTC::display()”。

  (3)應改為“TC::~TC()”。

  【解析】在類的外部定義成員函數時,必須在成員函數前面加上類名和作用域運算符“::”,作用域運算符用采表示某個成員屬于哪個類,使用格式為“(類名)::<成員函數>((參數函數)),因此第1處應改為“TC::TC()”,默認構造函數沒有參數。由第2處“TC::display()”后的語句看,這是在類外實現TC函數,因此也有作用域運算符使用錯誤問題,display函數返回值為void,因此第2處的語句應改為“voidTC::display()”。由第3處的語句“TC::TC()”可知,顯然這里是在類外實現析構函數,析構函數是一個特殊的函數,它的名稱和類名相同,并在前面加“~”字符,用采與構造函數加以區(qū)別,因此第3處的語句應改為“TC::~TC()”。

  二、簡單應用題

  inti,j;

  for(i=O;i  {

  for(j=0;j  {

  if(A[j]>A[j+1])//如果前面的數比后面的大則

  進行交換

  {

  intt=A[j];//進行交換

  A[j]=A[j+1];

  A[j+1]=t;

  }

  }

  }

  【解析】數組A[N]中有n個數,進行n-1次比較,在每一次比較中兩兩比較的次數逐漸減少,比如若有6個數9,

  8,5,4,2,0。第一次將8和9對調,第二次將第2個數9和第3個數5對調,如此共進行5次,得到8-5-4-2-0-9的順序,可以看到:最大的數9已“沉底”,成為最下面一個數,而小的數“上升”。最小的數0已向上“浮起”一個位置。經第一趟(共5次)后,已得到最大的數,然后進行第二趟比較,對余下的前面5個數按上面的方法進行比較,經過4次比較,得到次大的數8。如此進行下去?梢酝浦,6個數要比較5趟。在第一趟中要進行兩兩比較5次,在第二趟中比較4次,……第5趟比較1次。因此設置兩層循環(huán),外層循環(huán)變量i從O變化大到n-1,內層循環(huán)變量j從0到n-j,在內層循環(huán)體內,比較相鄰兩數,如果前面比后面的大則交換。在內層循環(huán)體內,如果前面的元素比后面的元素大,則用一個臨時變量記錄前面的第j個元素,然后將第j+1個元素賦值給第j個元素,臨時變量值賦給第j+1個元素,如此完成兩個元素的交換。

  三、綜合應用題

  (1)應添加“staticfloatAllWeight;”。

  (2)應添加“Weight=w;”。

  (3)應添加“AllNo--;”。

  (4)應添加“intTCFruit::AllNo=0;”。

  【解析】靜態(tài)數據成員聲明時需使用關鍵字static,因此第1處應添加“staticfloatAllWeight;”。構造函數用來對類成員進行初始化,在TCFruit類的構造函數TCFruit(floatw)中,完成weight的初始化,并把這個w加到AllWeight中,并且AllNo自加,因此第2處應添加“weight=w;”。調用析構函數相當于退出,這時AllWeight中減去weight,然后AllNo自減,因此第3處應添加“AllNo--;”。靜態(tài)數據成員的初始化格式為“<數據類型><類名>::(靜態(tài)數據成員>=(初始值)”,因此第4處應添加“intTCFruit::AllNo=0;”。

  C語言基本算法

  1.交換(兩量交換借助第三者)

  例1、任意讀入兩個整數,將二者的值交換后輸出。

  main()

  {int a,b,t;

  scanf("%d%d",&a,&b);

  printf("%d,%d ",a,b);

  t=a; a=b; b=t;

  printf("%d,%d ",a,b);}

  【解析】程序中加粗部分為算法的核心,如同交換兩個杯子里的飲料,必須借助第三個空杯子。

  假設輸入的值分別為3、7,則第一行輸出為3,7;第二行輸出為7,3。

  其中t為中間變量,起到“空杯子”的.作用。

  注意:三句賦值語句賦值號左右的各量之間的關系!

  【應用】

  例2、任意讀入三個整數,然后按從小到大的順序輸出。

  main()

  {int a,b,c,t;

  scanf("%d%d%d",&a,&b,&c);

  if(a>b){ t=a; a=b; b=t; }

  if(a>c){ t=a; a=c; c=t; }

  if(b>c) { t=b; b=c; c=t; }

  printf("%d,%d,%d ",a,b,c);}

  2.累加

  累加算法的要領是形如“s=s+A”的累加式,此式必須出現在循環(huán)中才能被反復執(zhí)行,從而實現累加功能!癆”通常是有規(guī)律變化的表達式,s在進入循環(huán)前必須獲得合適的初值,通常為0。

  例1、求1+2+3+……+100的和。

  main()

  {int i,s;

  s=0; i=1;

  while(i<=100)

  {s=s+i;

  i=i+1;

  }

  printf("1+2+3+...+100=%d ",s);}

  【解析】程序中加粗部分為累加式的典型形式,賦值號左右都出現的變量稱為累加器,其中“i = i + 1”為特殊的累加式,每次累加的值為1,這樣的累加器又稱為計數器。

  3.累乘

  累乘算法的要領是形如“s=s*A”的累乘式,此式必須出現在循環(huán)中才能被反復執(zhí)行,從而實現累乘功能。“A”通常是有規(guī)律變化的表達式,s在進入循環(huán)前必須獲得合適的初值,通常為1。

  例1、求10!

  [分析]10!=1×2×3×……×10

  main()

  {int i; long c;

  c=1; i=1;

  while(i<=10)

  {c=c*i;

  i=i+1;

  }

  printf("1*2*3*...*10=%ld ",c);}

【全國計算機二級《C++》上機試題及答案】相關文章:

全國計算機二級《C++》上機試題附答案01-15

計算機二級《C++》上機試題及答案08-12

2016計算機二級C++上機試題及答案08-02

2016計算機二級C++上機模擬試題及答案07-16

全國計算機二級考試C++上機考試試題及答案07-31

計算機二級考試C++上機考試試題及答案02-08

2017計算機二級C++上機考試試題及答案06-20

2016計算機二級C++上機考試試題及答案01-22

全國計算機二級考試C++精選試題及答案12-28