1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            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
            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩