2014年全國計算機等級二級C語言上機考前預(yù)測題

字號:

為大家收集整理了《2014年全國計算機等級二級C語言上機考前預(yù)測題》供大家參考,希望對大家有所幫助?。?!
    一、程序填空題
    請補充函數(shù)proc().該函數(shù)的功能是比較字符串strl 和str2的大小,并返回比較的結(jié)果。
    例如,當str1="abcd",str2="abcc"時,函數(shù)proc()返回“>",比較結(jié)果為“str1>str2"。
    注意:部分源程序給出如下。
    請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達式或語句。
    試題程序:
    #include
    #include
    #include
    #define M 80
    char*proc(char*strl.char*str2)
    {
    char*p1=str1,*p2=str2:
    while(*p1&&*p2)
    {
    if(【1】)
    return"<";
    if(【2】)
    return">":
    p1++;
    p2++;
    }
    if(*p1==*p2)
    return"==";
    if(*p1==【3】)
    return"<":
    else
    return">";
    }
    void main()
    {
    char strl[M],strZEM];
    system("CLS"){
    printf("Input str1:\n");
    gets(str1);
    printf("Input str2:\n");
    gets(str2);
    printf("\n****the result****\n");
    printf("\nstr1%S str2",proc(str1,str2));
    }
    二、程序改錯題
    下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計算如下公式的值:
    A1=1,A2=1/(5+A1),A3=1/(5+A2),
    …,An=1/(5+A(n-1))
    例如,若n=10,則應(yīng)輸出0.192582。
    請修改程序中的錯誤,使它能得到正確結(jié)果。
    注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
    試題程序:
    #include
    #include
    #include
    float proc(int n)
    {
    //****found****
    int A[100];
    A[1]=1;
    int i;
    //****found****
    for(i=1;i<=n;i++)
    A[i]=1.0/(5+A[i-1]);
    return A[n];
    }
    void main()
    {
    int n;
    system("CLS");
    printf("\nPlease enter n:");
    scanf("%d",&n);
    printf("A%d=%1f\n",n,proc(n));
    }
    三、程序設(shè)計題
    請編寫函數(shù)proc(),其功能是:計算并輸出下列多項式值。
    S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
    例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S= 0.680803。
    注意:部分源程序給出如下。
    請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
    試題程序:
    #include t:stdio.h>
    double proc(int n)
    {
    }
    void main()
    {
    int n;
    double slim;
    printf("\nInput n:");
    scanf("%d",&n);
    sum=proc(n)。
    printf("\ns=%f\n",sum);
    }
    一、程序填空題
    【1】*p1<*p2【2】*p1>*p2【3】’\0’
    【解析】變量p1和p2分別指向字符串str1和str2,由題目要求可知,str1小于str2.返回“<”。因此,【1】處填“*p1< *p2”。str1大于str2,返回“>”。因此,【2】處填“*p1>* p2”。當str1中的所有字符與str2中的前n個字符相等,str2 仍沒有結(jié)束時,說明str2大于str1。因此,【3】處填“’\0’”。
    二、程序改錯題
    (1)錯誤:int A[100];
    正確:float A[100];
    (2)錯誤:for(i=1;i<=n;i++)
    正確:for(i=2;i<=n;i++)
    【解析】根據(jù)主函數(shù)中的函數(shù)調(diào)用以及函數(shù)proc()的返回值類型,可知變量A為float類型。因此,“int A[100];”應(yīng)改為“float A[100];”。在為變量A賦值時已經(jīng)賦值為第一項的值,因此循環(huán)從第二項開始,因此,“for(i=1;i<=n;i++)”應(yīng)改為“for(i=2;i<=n;i++)”。
    三、程序設(shè)計題
    double proc(int n)
    {
    int i;
    double s=0.0; //s為其和的變量
    for(i=1;i<=n;i+十)
    S=s+(1.0/(2*i-1)-1.O/(2*i)); //計算s
    =(1-1/z)+(1/3-1/4)+…+(1/(2n-1)-1/
    2n)
    return s; //最后把所得到的和返回到主函數(shù)中
    }
    【解析】由題目中所給表達式可知,多項式的值為n項表達式的和??梢岳胣次循環(huán)求出n項表達式的值,求和放在變量s中。最后將多項式的值返回到主函數(shù)當中。