生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第34套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第34套:
用篩選法可得到2~n(n<10000)之間的所有素數,方法是:首先從素數2開始,將所有2的倍數的數從數表中刪去(把數表中相應位置的值置成0);接著從數 表中找下一個非0數,并從數表中刪去該數的所有倍數;依此類推,直到所找的下一個數等于n為止。這樣會得到一個序列: 2,3,5,7,11,13,17,19,23,…… 函數fun用篩選法找出所有小于等于n的素數,并統計素數的個數作為函數值返回。 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
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
) {
for ( j
= a
[ i
] * 2 ; j
<= n
; j
+ = ___1___
)
a
[ j
] = 0 ;
i
++ ;
while ( ___2___
== 0 )
i
++ ;
}
printf ( "\nThe prime number between 2 to %d\n" , n
) ;
for ( i
= 2 ; i
<= n
; i
++ )
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
) ;
}
解題思路: 第一處:所有2的倍數的數從數表中刪去,所以應填:a[i]。 第二處:找出下一個不是的a[i],所以應填:a[i]。 第三處:輸出素數,只要判斷a[i]不是0就是素數,所以應填:0。
給定程序MODI1.C中函數fun的功能是: 為一個偶數尋找兩個素數, 這兩個素數之和等于該偶數,并將這兩個素數通過形參指針傳回主函數。 請改正函數fun中指定部位的錯誤, 使它能得出正確的結果。 注意: 不要改動main函數, 不得增行或刪行, 也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#include <math.h>
void fun ( int a
, int * b
, int * c
)
{ int i
, j
, d
, y
;
for ( i
= 3 ; i
<= a
/ 2 ; i
= i
+ 2 ) {
Y
= 1 ;
for ( j
= 2 ; j
<= sqrt ( ( double ) i
) ; j
++ )
if ( i
% j
== 0 ) y
= 0 ;
if ( y
== 1 ) {
d
== a
- i
;
for ( j
= 2 ; j
<= sqrt ( ( double ) d
) ; j
++ )
if ( d
% j
== 0 ) y
= 0 ;
if ( y
== 1 )
{ * b
= i
; * c
= d
; }
}
}
}
main ( )
{ int a
, b
, c
;
do
{ printf ( "\nInput a: " ) ; scanf ( "%d" , & a
) ; }
while ( a
% 2 ) ;
fun ( a
, & b
, & c
) ;
printf ( "\n\n%d = %d + %d\n" , a
, b
, c
) ;
}
解題思路: 第一處:變量y錯寫成Y。 第二處:給變量d進行賦值,所以應改為:d=a-i;。
請編寫函數fun, 它的功能是:計算并輸出n(包括n)以內能被5或9整除的所有自然數的倒數之和。 例如,在主函數中從鍵盤給n輸入20后, 輸出為: s=0.583333。 注意: 要求n的值不大于100。 部分源程序在文件PROG1.C中。 請勿改動主函數main和其他函數中的任何內容, 僅在函數fun的花括號中填入你編寫的若干語句。 給定源程序:
#include <stdio.h>
double fun ( int n
)
{
}
main ( )
{ int n
; double s
;
printf ( "\nInput n: " ) ; scanf ( "%d" , & n
) ;
s
= fun ( n
) ;
printf ( "\n\ns=%f\n" , s
) ;
NONO ( ) ;
}
解題思路: 本題是計算n(包括n)以內能被5或9整除的所有自然數的倒數之和。 參考答案:
double fun ( int n
)
{
int i
;
double sum
= 0.0 ;
for ( i
= 1 ; i
<= n
; i
++ )
if ( i
% 5 == 0 || i
% 9 == 0 )
sum
+ = 1.0 / i
;
return sum
;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第34套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。