為大家收集整理了《2014年全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)沖刺試題》供大家參考,希望對(duì)大家有所幫助!??!
一、程序填空題
請(qǐng)補(bǔ)充main()函數(shù),該函數(shù)的功能是:計(jì)算3名學(xué)生各科的平均成績(jī)。
例如,當(dāng)score[N][M]={{85,62,89.5,60,69),{90,96,84.5,100,85},{92,97,86,73,85))時(shí),五門學(xué)科的平均分為:89 85 86.7 77.7 79.7。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填人所編寫的若干表達(dá)式或語(yǔ)句。
試題程序:
#include
#include
#define N 3
#define M 5
int main()
{
int i,j;
static float score[N][M]一{{85,62,89.5,60,69),
{90,96,84.5,100,85},{92,97,86,73,85}};
static float arr[-N];
system("CLS");
for(i=0;i
arr[i]=0.0:
for(i=0;i<【1】 ;i++)
{
for(j=0;j<【2】 ;j++)
arr[j]+=score[i][j]:
}
for(i=0;i
printf("\nsubject%d\taverage=%5.1f",i+1,
【3】);
return 0;
}
二、程序改錯(cuò)題
下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸入0.0001時(shí),應(yīng)當(dāng)輸出Pi=3.141358。
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5 *3/7*4/9……
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
double proc(double eps)
{ double s,t;int n=1;
s=0.0;
t=1:
//****found****
while(ti>eps)
{ s+=t;
t=t*n/(2*n+1):
n++:
}
//****found****
return(s):
}
void main()
{ double s;
printf("\nPlease enter a precision:");
scanf("%if",&s);
printf("\nPi=%if\n",proc(s));
}
三、程序設(shè)計(jì)題
請(qǐng)編寫函數(shù)proc(),它的功能是求Fibonacci數(shù)列中小于n的的一個(gè)數(shù),結(jié)果由函數(shù)返回。
Fibonacci數(shù)列F(1)的定義為
F (0)=0,F(xiàn)(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500時(shí),函數(shù)值為377。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,‘僅在函數(shù)proc()的花括號(hào)中填寫所編寫的若干語(yǔ)句。
試題程序:
#include
#include
#include
#include
int proc(int t)
{
}
void main()
{
int n;
system("CLS");
n=500;
printf("n=%d,f=%d\n",n,proc(n));
}
一、程序填空題
【1】N 【2】M【3】a rr[i]/N
【解析】變量M和N分別存放學(xué)科數(shù)和學(xué)生數(shù)。題目中要求統(tǒng)計(jì)所有學(xué)生各科的平均成績(jī),因此【1】填“N”;【2】填M。數(shù)組arr中存放所行學(xué)生各科成績(jī)的總和,而最后要求輸出各科的平均成績(jī),剛此【3】填“arr[i]/N”。
二、程序改錯(cuò)題
(1)錯(cuò)誤:while(t>eps)
正確:while(t>=eps)
(2)錯(cuò)誤:return(s);
正確:return(s*2);
【解析】變量eps為給定的精度,當(dāng)變量t等于精度值的時(shí)候還要繼續(xù)進(jìn)行運(yùn)算,因此,“while(t>eps)”應(yīng)改為“while (t>=eps)”。程序中求出的是π/2的值,而題目要求返回π的值,因此“return(s)”應(yīng)改為“return(s*2)”。
三、程序設(shè)計(jì)題
int proc(int t)
{
int a[500];
a[0]=0;//a[0]表示數(shù)列的第1項(xiàng)
a[1]=1;//a[1]表示數(shù)列的第2項(xiàng)
for(inti=2;i<=t;i++)
{
a[i]=a[i一1]+a[i一2];//根據(jù)公式列出第i
項(xiàng)的計(jì)算式
if(a[i]>=t)//若a[i]大于t的值
returna[i-1]; //返回a[i]前一項(xiàng)a[i—1]
的值
}
【解析】由題目中所給的公式可知,F(xiàn)ibonacci數(shù)列的第n 項(xiàng)為第n-1項(xiàng)和第n-2項(xiàng)的和。要求Fibonacci數(shù)列中小于n的的一個(gè)數(shù),首先根據(jù)公式求出Fibonacci數(shù)列的第n項(xiàng)的值,當(dāng)?shù)趇項(xiàng)大于n,則返回第i-1項(xiàng)的值。
一、程序填空題
請(qǐng)補(bǔ)充main()函數(shù),該函數(shù)的功能是:計(jì)算3名學(xué)生各科的平均成績(jī)。
例如,當(dāng)score[N][M]={{85,62,89.5,60,69),{90,96,84.5,100,85},{92,97,86,73,85))時(shí),五門學(xué)科的平均分為:89 85 86.7 77.7 79.7。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填人所編寫的若干表達(dá)式或語(yǔ)句。
試題程序:
#include
#include
#define N 3
#define M 5
int main()
{
int i,j;
static float score[N][M]一{{85,62,89.5,60,69),
{90,96,84.5,100,85},{92,97,86,73,85}};
static float arr[-N];
system("CLS");
for(i=0;i
arr[i]=0.0:
for(i=0;i<【1】 ;i++)
{
for(j=0;j<【2】 ;j++)
arr[j]+=score[i][j]:
}
for(i=0;i
printf("\nsubject%d\taverage=%5.1f",i+1,
【3】);
return 0;
}
二、程序改錯(cuò)題
下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸入0.0001時(shí),應(yīng)當(dāng)輸出Pi=3.141358。
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5 *3/7*4/9……
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
double proc(double eps)
{ double s,t;int n=1;
s=0.0;
t=1:
//****found****
while(ti>eps)
{ s+=t;
t=t*n/(2*n+1):
n++:
}
//****found****
return(s):
}
void main()
{ double s;
printf("\nPlease enter a precision:");
scanf("%if",&s);
printf("\nPi=%if\n",proc(s));
}
三、程序設(shè)計(jì)題
請(qǐng)編寫函數(shù)proc(),它的功能是求Fibonacci數(shù)列中小于n的的一個(gè)數(shù),結(jié)果由函數(shù)返回。
Fibonacci數(shù)列F(1)的定義為
F (0)=0,F(xiàn)(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500時(shí),函數(shù)值為377。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,‘僅在函數(shù)proc()的花括號(hào)中填寫所編寫的若干語(yǔ)句。
試題程序:
#include
#include
#include
#include
int proc(int t)
{
}
void main()
{
int n;
system("CLS");
n=500;
printf("n=%d,f=%d\n",n,proc(n));
}
一、程序填空題
【1】N 【2】M【3】a rr[i]/N
【解析】變量M和N分別存放學(xué)科數(shù)和學(xué)生數(shù)。題目中要求統(tǒng)計(jì)所有學(xué)生各科的平均成績(jī),因此【1】填“N”;【2】填M。數(shù)組arr中存放所行學(xué)生各科成績(jī)的總和,而最后要求輸出各科的平均成績(jī),剛此【3】填“arr[i]/N”。
二、程序改錯(cuò)題
(1)錯(cuò)誤:while(t>eps)
正確:while(t>=eps)
(2)錯(cuò)誤:return(s);
正確:return(s*2);
【解析】變量eps為給定的精度,當(dāng)變量t等于精度值的時(shí)候還要繼續(xù)進(jìn)行運(yùn)算,因此,“while(t>eps)”應(yīng)改為“while (t>=eps)”。程序中求出的是π/2的值,而題目要求返回π的值,因此“return(s)”應(yīng)改為“return(s*2)”。
三、程序設(shè)計(jì)題
int proc(int t)
{
int a[500];
a[0]=0;//a[0]表示數(shù)列的第1項(xiàng)
a[1]=1;//a[1]表示數(shù)列的第2項(xiàng)
for(inti=2;i<=t;i++)
{
a[i]=a[i一1]+a[i一2];//根據(jù)公式列出第i
項(xiàng)的計(jì)算式
if(a[i]>=t)//若a[i]大于t的值
returna[i-1]; //返回a[i]前一項(xiàng)a[i—1]
的值
}
【解析】由題目中所給的公式可知,F(xiàn)ibonacci數(shù)列的第n 項(xiàng)為第n-1項(xiàng)和第n-2項(xiàng)的和。要求Fibonacci數(shù)列中小于n的的一個(gè)數(shù),首先根據(jù)公式求出Fibonacci數(shù)列的第n項(xiàng)的值,當(dāng)?shù)趇項(xiàng)大于n,則返回第i-1項(xiàng)的值。