二級c語言筆試真題
下面由我們YJBYS求職網(wǎng)專家為您分享關(guān)于二級c語言筆試真題,請您參考:
函數(shù)fun 的功能是:計算正整數(shù)n 的所有因子(1 和n 除外)之和作為
函數(shù)值返回。 例如:n=120 時,函數(shù)值為239。
#include < conio.h >
#include < stdio.h >
int fun(int n)
{ int _1__,s=0;
/*能整除n 的自然數(shù)即稱為因子*/
for (i=2;i< n;i++)
if (n%i==0) s=___2__;
return (s);
}
main() /*主函數(shù)*/
{ printf("%d\n",fun(120));
}
(2011年2月)
解析: 本題的考核點是計算n 所有因子的算法。
解題思路:判斷因子的方法是:能被n整除的數(shù)。由于題意中指明需將1和n
除外,所以循環(huán)的范圍應從2至n-1。
答案:1: i 2: s+i
答案:【1】i 【2】s+i
【真題2】 已知一個數(shù)列的前三項分別為0,0,1, 以后的各項都是其相鄰的前三
項之和。給定程序modi.c 中函數(shù) fun 的'功能是:計算并輸出該數(shù)列前n項的平方
根之和sum。n 的值通過形參傳入。 例如,當n=10 時,程序的輸出結(jié)果應為:
23.197745。 請改正函數(shù)fun 中的錯誤,使程序能輸出正確的結(jié)果。 注意:不要
改動main 函數(shù),
#include < conio.h >
#include < stdio.h >
#include < math.h >
/************found************/
fun(int n)
{ double sum, s0, s1, s2, s; int k;
sum = 1.0;
if (n < = 2) sum = 0.0;
s0 = 0.0; s1 = 0.0; s2 = 1.0;
for (k = 4; k < = n; k++)
{ s = s0 + s1 + s2;
sum += sqrt(s);
s0 = s1; s1 = s2; s2 = s;
}
/************found************/
return sum
}
main ( )
{ int n;
clrscr( );
printf("Input N=");
scanf("%d", &n);
printf("%f\n", fun(n) );
}
(2011年2月)
解析: 本題的考核點是C語言中的函數(shù)的入口參數(shù)和類型轉(zhuǎn)換。
C 語言規(guī)定,凡不加類型說明的函數(shù),一律自動按整型處理。如果函數(shù)有返回
值,這個值當然應屬于某一個確定的類型,應當在定義函數(shù)時指定函數(shù)值的類
型。根據(jù)題意,函數(shù)返回值為實型,所以第一處錯誤"fun(int n)"應改為"float
fun (int n)"或具有相同作用的句子。
函數(shù)的返回值是通過函數(shù)中的return語句獲得的。return 語句后面的括弧可以
不要,但分號不能少,必須加分號。所以,第二處錯誤應改為"return sum;"或
相同作用的句子。
如果函數(shù)值的類型和return語句中表達式的 值不一致,則以函數(shù)類型為準。對
數(shù)值型數(shù)據(jù),可以自動進行類型轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。
本評析僅作參考。
【真題3】 請編寫函數(shù)fun(),它的功能是求Fibonacci數(shù)列中小于t的最大的一個
數(shù),結(jié)果由函數(shù)返回。其中Fibonacci 數(shù)列F(n)的定義為 F(0)=0,F(xiàn)(1)=1,
F(n)=F(n-1)+F(n-2) 例如:t=1000 時 ,函數(shù)值為987。 注意:部分源程序給
出如下。 請勿改動主函數(shù)main 和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號
中填入所編寫的若干語句。 試題程序:
#include < conio.h >
#include < math.h >
#include < stdio.h >
int fun(int t)
{…… }
main()
{int n;
clrscr();
n=1000;
printf("n=%d, f=%d\n",n, fun(n)); }
(2011年2月)
解析:
int fun(int t)
{int a=1,b=1,c=0,i; /*a 代表第n-2 項,b 代表第n-1 項,c 代表
第n 項*/
/*如果求得的數(shù)c 比指定比較的數(shù)小,則
計算下一個Fibonacci 數(shù),對a,b 重新置數(shù)*/
do {
c=a+b;
a=b;
b=c;
}
while (c< t); /*如果求得的數(shù)c 比指定比較的數(shù)大時,退出
循環(huán)*/
c=a; /*此時數(shù)c 的前一個Fibonacci 數(shù)為小于指
定比較的數(shù)的最大的數(shù)*/
return c;}
更多推薦:
【二級c語言筆試真題】相關(guān)文章:
C語言基礎筆試題11-24
C語言筆試題集錦11-24
外企C語言筆試題11-23
C語言筆試題回憶11-23
C語言筆試題總結(jié)11-23
最新中興Java語言筆試真題及答案09-24
C語言編程題11-23
c語言常見筆試題總結(jié)11-23
C語言常用筆試題11-23
用友JAVA筆試真題07-24