<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2010年春江蘇VC++上機試題第1套
                  一:改錯題(20分)
                  [題目]以下程序的功能是:找出100之內所有符合等式x=(y+z)/2的x(其中x,y,z都是100以內素數,且他們互不相同),并輸出所有滿足條件的結果,
                  例如:5是符合上述條件的素數,因為5=(3+7)/2,并且5,3和7都是素數,13也是符合條件的素數,因為13=(3+23)/2,13=(7+19)/2,13、3、23、7、19均為素數
                  正確程序的輸出如下(部分省略)
                  5=(3+7)/2
                  7=(3+11)/2
                  11=(3+19)/2
                  13=(3+23)/2
                  17=(3+31)/2
                  ./..
                  含有錯誤的源程序如下:
                  #include “iostream.h”
                  #include “math.h”
                  int isPrime(int n)
                  {for(int i=2;i<sqrt(n);i++)
                       if(n%i==0) return 0;
                     return 1;
                  }
                  int check(int x,int y)
                  {if(isPrime(x) && isPrime(y))
                       if((x+y)/2==0)
                           return isPrime((x+y)/2);
                      return 0;
                  }
                  void main()
                  {int s=2,t=2,p=2;
                   int flag;
                   while(1){
                       for(t+=1; ;t++){
                          if(isPrime(t)) {
                            if(flag==0){
                                 p=t,flag=1;
                            }
                           break;
                         }
                    }
                  if(p>100) break;
                  if((s+t)/2<100){
                        if(!check(s,t))
                           cout<<(s+t)/2<<"=("<<S<<"+"<<t<<") /2”<<endl;
                     }
                     else{
                          s=t=p;
                          flag=0;
                        }
                  }
                  }
                   二:編程題
                  試定義一個類COIN,用于模擬一個翻硬幣游戲,n個硬幣畫面向上圍成一圈,按順時針方向依次數硬幣,對于數硬幣的計數,當計數到可以被3整除或者被5整除的數時,將硬幣翻轉,使用一個數組來表示這n個硬幣的狀態(數組下標從0開始),元素值為1表示對應硬幣畫面朝上,編寫程序計算這n個硬幣依次從1開始到k時,各硬幣的狀態(數組各元素的值),具體要求如下:
                  (1) 私有數組成員
                  int *a,指向用于存儲硬幣狀態的數組
                  int n,k;整型變量,n表示硬幣的總數,k表示依次計數的次數
                  (2) 公有成員函數
                  COIN(int n1,int k1);構造函數,利用n1和k1的值分別初始化n和k,并為指針成員a動態分配存放n1個整數的存儲空間,將指針a指向的數組中的每一個元素初始化為1(即假設每個硬幣的初始狀態都為畫面朝上)
                  void func();計算從1數到k時硬幣的狀態
                  void print();按示例要求打印輸出結果
                  ~COIN():析構函數
                  (3) 在主函數中對該類進行測試
                  輸入n和k的值:12  100
                  從1數到100時的硬幣狀態是:
                  0  1  0  0  0  1  1  0 1 0  0  1
                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看