2009年4月全國計算機等級三級網絡技術機試練習習題(1)

字號:

2009年4月全國計算機等級三級考試你準備了沒?考計算機等級三級朋友可以多關注一下考試大為大家整理的2009年4月全國計算機等級三級網絡技術機試練習習題!希望對大家的備考有好的幫助!考試大祝各位考個好成績!大家每天都來練習哦!不斷的加強鞏固!每天都有更新哦!
    調用函數rwdata(),從IN.dat文件中讀取10組數據(m和k值),并嵌套調用primenum函數分別得出array[]數組。請編寫函數primenum(int m,int k,int array[]),該函數的功能是:將緊靠m的k個素數存入數組array并在屏幕上顯示。最后把結果輸出到文件OUT.dat中。
    例如,若輸入3 9,則應輸出5 7 11 13 17 19 23 29 31。
    注意:部分程序已經給出。請勿改動豐函數main()和輸出數據函數rwdata()的內容。
    
    第1套試題答案及詳解
    【知識點播】素數的定義:如果一個數的正因子只有1和這個數本身,那么這個數就是素數。
    【審題分析】分析題目可知,題中需要解決的問題就是Primenum函數的功能問題(rwdata函數功能題中已經給出),而Primenum函數的功能是求在指定數m之后的k個素數,因此本題的關鍵在于如何判斷一個數是素數,之后就可以通過一個for循環(huán)來求得在m之后的k個素數了。
    【解題思路】根據素數的定義,本題采用的算法是:首先定義一個變量Value,并把m之后的數逐個賦值給該變量:然后用2~value/2數除value,如果value能被2~value/2之中的任何一個整數整除,則value不是素數,結束循環(huán);如果value小能被2~value/2之間的任一整數整除,則退出循環(huán),然后判斷循環(huán)變量i是否大于value/2,如果大于,則value是素數,并將value值賦給array[n],然后n++;再判斷n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循環(huán),否則value加1,根據以上算法繼續(xù)進行。
    
    【易錯分析】判斷一個數m(大于1)是否素數的簡單的算法:枚舉2到m/2之間的整數,看能否被m整除,如果能整除,就不是素數,否則是素數。
    【考點鏈接】c語言中循環(huán)語句、if語句的應用和素數的算法。