<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>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2008年秋江蘇省計算機二級VC上機真題1

                  2008秋江蘇省高校計算機等級考試VC++

                     上機1

                  :改錯題

                  以下程序的功能是:查找10—1000之間的回文素數,所謂回文素數是左右對稱的素數,即從左向右和從右向左讀是相同的素數

                  程序正確的運行結果是:

                  The results:

                  11   101   131   151   181   191   313   353

                  373  383   727   757   787   797   919   929

                  count=16

                  含有錯誤的源程序如下:

                  #include <iostream.h>

                  #include <math.h>

                   

                  int prime(int m)             //判斷是否是素數

                  {if(m==2)  return 1;        //2是最小的素數

                    for(int i=2;i<(int)sqrt(m);i++)   //i小于等于平方根,應為i<=sqrt(m)

                      if(m%i==0) return 0;

                    return 1;

                  }

                   

                  void main()

                  {int i,j,k,count;        //count沒有初始化為隨機數,所以應為0,因為count要判斷有多少回文素數

                   cout<<”The result:\n”;

                   for(int s=11;s<1000;s+=2){

                     if(prime(s)){       //如果是素數,則分解該素數

                       i=s/100;        //i為百位數

                       j=s%10/10;       //j為十位數,所以應為j=s/10%10       

                       k=s%10;         //k為個位數

                    }

                   if(i==0 && j==k ||i!=0&&i==j){          //如果是兩位素數,那么應為十位數j等于個位數k,

                     cout<<s<<’\t’;                      //如果是三位素數,那么應為百位數i等于個位數k,所以應為i==k

                     count++;

                    if(count%8==0) cout<<endl;            //輸出8個數值后轉到下一行

                  }

                  }

                  cout<<”count=”<<count<<endl;

                  }

                  二、編程題(20分)

                  [題目]

                      試定義一個類Torch,計算奧運火炬傳遞的總時間,具體要求如下:

                  (1)私有成員

                         int d,h,m,s:分別表示奧運火炬傳遞的天數、小時數、分鐘數及秒數

                  (2)公有成員

                        Torch(char *p):構造函數,用指針p所指向的全部由數字構成的8位字符串初始化火炬傳遞時間,其中,天、時、分、秒分別用兩位字符表示(假設火炬傳遞時間不超過99天),例如,

                  當char *p="06150650"時,則d=6,h=15,m=6,s=50

                         void add(Torch &t):將參數t所表示的火炬傳遞時間加入當前對象

                        void normal():將當前對象所表示的時間轉化為標準形式,即當秒數超過59時進位分鐘,當分鐘超過59時進位小時,當小時數超過23時進位天數

                        void print()  :按規定格式輸出火炬傳遞的天數、小時數、分鐘數與秒數

                      在主函數中首先定義一個Torch對象t(各數據成員的初始值都為0),表示火炬傳遞的總時間,接著依次輸入若干個不同城市火炬傳遞的天數,小時數,分鐘數與秒數(需要為各城市定義一個Tourch對象,并判斷輸入數據的格式是否正確),并將火炬傳遞時間加入到對象t中,

                  輸入/輸出示例:

                  輸入城市1的火炬傳遞時間,輸入end結束:  01084523

                  輸入城市2的火炬傳遞時間,輸入end結束:  01091224

                  輸入城市3的火炬傳遞時間,輸入end結束:  011020304

                  輸入格式不對,請重新輸入

                  輸入城市3的火炬傳遞時間,輸入end結束:  01102030

                  輸入城市4的火炬傳遞時間,輸入end結束:  end

                  火炬傳遞的時間為:4天4小時18分17秒

                  [說明]源程序文件必須為myfb.cpp,并放在T盤根目錄下,供閱卷用

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看