全國(guó)2007年1月高等教育自學(xué)考試高級(jí)語(yǔ)言程序設(shè)計(jì)(一)試題2

字號(hào):

二、填空題(本大題共10小題,每小題2分,共20分)
    請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
    21.一個(gè)C語(yǔ)言程序的執(zhí)行起點(diǎn)是__________。
    22.設(shè)int x=3,y=5;,則執(zhí)行printf(″%d\n″,x^y);后輸出__________。
    23.設(shè)int s[3][2]={1,2,3,4,5,6},(*p)[2]=s;,則*(*(p+1)+1)的值是__________。
    24.C語(yǔ)言中,可以處理的兩類文件分別是文本文件和__________。
    25.設(shè)int a=2;,則執(zhí)行a+=a*=15;后,變量a的值是__________。
    26.設(shè)double y[4][5];,則數(shù)組y中元素的個(gè)數(shù)是__________。
    27.設(shè)int x=7,y=3,則表達(dá)式x%y+x/y的值是__________。
    28.設(shè)char s[]={″apple″};,則執(zhí)行printf(″%d\n″,strlen(s));后輸出的值是__________。
    29.設(shè) union{int i;char j[10];float k;}u;則sizeof(u)的值是__________。
    30.設(shè) #define MOD(a,b)a%bmain(){ int x=4,y=16,z;z=MOD(y,x);printf(″%d\n″,z++);}則程序執(zhí)行的結(jié)果是__________。
    三、程序分析題(本大題共5小題,每小題5分,共25分)
    閱讀下列程序,將輸出結(jié)果寫(xiě)到各題右側(cè)的空白處。
    31.main()
    {int x=15;
    while(x<20)
    {x++
    if(x/3!=0){x++;break;}
    else continue;
    }
    printf(″%d\n″,x);
    }
    32.fun(int a[],int i,int j)
    {int t;
    if(i    {t=a[i];a[i]=a[j];a[j]=t;
    i++;j--;
    fun(a,i,j);
    }
    }
    main()
    {int x[]={2,4,6},i;
    fun(x,0,2);
    for(i=0;i<3;i++) printf(″%2d″,x[i]);
    printf(″\n″);
    }
    33./*程序運(yùn)行時(shí),輸入一個(gè)整數(shù)5*/
    main()
    {int a,b[10],c,i=0;
    printf(″輸入一個(gè)整數(shù)\n″);
    scanf(″%d″,&a);
    while(a!=0)
    {c=a%2;
    a=a/2;
    b[i]=c;
    i++;
    }
    for(;i>0;i--)printf(″%d″,b[i-1]);
    }
    34.# include
    main()
    {int a,b,i;
    a=b=0;
    for(i=0;i<=10;i+=2)
    {a+=i;
    b+=i+1;
    }
    printf(″a=%d\n″,a);
    printf(″b=%d\n″,b-11);
    }
    35.int a=100;
    s()
    {static int a=20;
    a++
    printf(″%d\n″,a);
    }
    main()
    {int i;
    for(i=1;i<=3;i++)
    {a++;
    printf(″%d,″,a);
    s();
    }
    }
    四、程序填充題(本大題共3小題,每小題6分,共18分)
    給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
    36.對(duì)含有10個(gè)元素的數(shù)組a先按元素的存儲(chǔ)次序倒序輸入,再按其正序輸出。
    #define_______/*第一空*/
    main()
    {int i,a[N];
    for(i=N-1; _______;i--)/*第二空*/
    scanf(″%d″, _______);/*第三空*/
    for(i=0;i    printf(″\n″);
    }
    37.學(xué)生成績(jī)的字母等級(jí)和分?jǐn)?shù)范圍如下:
    字母等級(jí) 分?jǐn)?shù)范圍
    A 90~100
    B 80~89
    C 70~79
    D 60~69
    E 0~59
    其它字母 輸入錯(cuò)誤
    輸入字母等級(jí)之后,輸出相應(yīng)的分?jǐn)?shù)范圍。
    main()
    {
    _______;/*第一空*/
    scanf(″%c″,&score);
    switch(score)
    {
    case′A′:printf(″A:90~100\n″);_________;/*第二空*/
    case′B′:printf (″B:80~89\n″);break;
    case′C′:printf (″C:70~79\n″);break;
    case′D′:printf (″D:60~69\n″);break;
    case′E′:printf (″E: 0~59\n″);break;
    _______:printf(″輸入錯(cuò)誤\n″);/*第三空*/
    }
    }
    38.文本文件num.dat中含有若干個(gè)整數(shù),將這些數(shù)據(jù)讀出后求出它們的和,再將這些數(shù)據(jù)與它們的和分別顯示到屏幕上。
    #include
    main()
    {int num;long int sum=0L;
    FILE*fp;
    fp=fopen(″num.dat″, ″r″);
    do
    {
    fscanf(________,&num);/*第一空*/
    sum+=_________;/*第二空*/
    printf(″%5d″,num);
    }while(_______);/*第三空*/
    printf(″\nsum=%ld\n″,sum);
    fclose(fp);
    }
    五、程序設(shè)計(jì)題(本大題共3小題,第39小題5分,第40、41小題各6分,共17分)
    39.輸入兩個(gè)實(shí)型數(shù)x和y,計(jì)算并輸出它們的和、差、積和商。
    40.輸入自變量x的值后,計(jì)算并輸出y的值。
    計(jì)算公式:y=
    41.用循環(huán)結(jié)構(gòu)輸出下列數(shù)字金字塔(共9行)。
    1
    121
    12321
    1234321
    ……………
    12345678987654321