您好,登錄后才能下訂單哦!
本篇內容主要講解“c語言程序實例填空題分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“c語言程序實例填空題分析”吧!
1、題目描述
用篩選法可得到2~n(n<10000)之間的所有素數,方法是:首先從素數2開始,將所有2的倍數的數從數表中刪去(把數表中相應位置的值置成0);接著從數表中找下一個非0數,并從數表中刪去該數的所有倍數;依此類推,直到所找的下一個數等于n為止。這樣會得到一個序列:2,3,5,7,11,13,17,19,23,……
函數fun用篩選法找出所有小于等于n的素數,并統計素數的個數作為函數值返回
請在程序的下劃線處填入正確的內容井把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1,C中
不得增行或刪行,也不得更改程序的結構
2、部分程序:
#include <stdio.h>
#pragma warning (disable:4996)
int fun(int n)
{ int a[10000], i,j, count=0;
for (i=2; i<=n; i++) a[i] = i;
i = 2;
while (i<n) {
/**********found**********/
for (j=a[i]*2; j<=n; j+=___1___)
a[j] = 0;
i++;
/**********found**********/
while (___2___==0)
i++;
}
printf("\nThe prime number between 2 to %d\n", n);
for (i=2; i<=n; i++)
/**********found**********/
if (a[i]!=___3___)
{ count++; printf( count%15?"%5d":"\n%5d",a[i]); }
return count;
}
main()
{ int n=20, r;
r = fun(n);
printf("\nThe number of prime is : %d\n", r);
}
3、參考答案:
本題考查的是篩選算法。
本程序的 while循環中又嵌套了一個for和 while循環,內嵌的for循環用于進行素數倍數的篩選,篩選的步長為a[i],故第一空填a[i];內嵌的 while循環用于判斷下一個即將被篩選的數是否為零,如果為零,則跳過(通過i++實現),即不對它的倍數進行篩選,估第二空應填a[i];最后通過一個for循環統計素數的個數,其中的if用于判斷a[i]是否為零,如果為零則說明a[i]不是素數,如果不為零則說明a[i]為素數,使得記錄素數個數的變量 count+1,故第三空應填0。
到此,相信大家對“c語言程序實例填空題分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。