2014年全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)沖刺試題

字號(hào):

為大家收集整理了《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)的值。