2014年全國計算機二級C語言上機沖刺題

字號:

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