2003年1月份全國高等教育自學考試高級語言程序設計(一)試題

字號:

第一部分選擇題
    一、單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個選項中只有一個選項是符合題目要求的,請將正確選項前的字母填在題后的括號內(nèi)。
    1.屬于C語言基本數(shù)據(jù)類型的是()
    A.指針型B.無符號整型
    C.數(shù)組型D.結構型
    2.C語言的長整型數(shù)值在計算機中占用的字節(jié)個數(shù)是()
    A.1B.2
    C.3D.4
    3.C語言中,″\x3d″在內(nèi)存中占用的字節(jié)數(shù)是()
    A.1B.2
    C.4D.5
    4.設intx;則執(zhí)行printf(″%x\n″,~x^x);的結果是()
    A.0B.1
    C.ffD.ffff
    5.對于while語句,錯誤的說法是()
    A.用條件控制循環(huán)體的執(zhí)行次數(shù)
    B.循環(huán)體至少要執(zhí)行一次
    C.循環(huán)體有可能一次也不執(zhí)行
    D.循環(huán)體中可以包含若干條語句
    6.設int a=9,b=20;則printf(″%d,%d\n″,a-,-b);的輸出結果是()
    A.9,19B.9,20
    C.10,19D.10,20
    7.執(zhí)行下列語句
    int a=8,b=7,c=6;
    if(ac){a=c;c=b;}
    printf(″%d,%d,%d\n″,a,b,c);
    后輸出的結果是()
    A.6,7,7B.6,7,8
    C.8,7,6D.8,7,8
    8.設static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()
    A.x數(shù)組的長度等于y數(shù)組的長度
    B.x數(shù)組的長度大于y數(shù)組的長度
    C.x數(shù)組的長度少于y數(shù)組的長度
    D.x數(shù)組與y數(shù)組的存儲區(qū)域相同
    9.設int i,x={1,2,3,4,5,6,7,8,9};
    則下面語句
    for(i=0;i<3;i++)
    printf(″%d″,x[i][2-i]);
    的輸出結果是()
    A.147B.159
    C.357D.369
    10.設int b[ ]={1,2,3,4},y,*p=b;
    則執(zhí)行語句y=*p++;之后,變量y的值為()
    A.1B.2
    C.3D.4
    11.設int a,*p;則語句p=&a;中的運算符“&”的含義是()
    A.位與運算B.邏輯與運算
    C.取指針內(nèi)容D.取變量地址
    12.若函數(shù)能被其它編譯單位引用,那么函數(shù)定義時的存儲類型應選用()
    A.autoB.static
    C.externD.register
    13.下面函數(shù)定義有錯誤的是()
    A.f1(x1,x2)B.f1(x1,x2)
    int x1,x2;int x1;int x2;
    {函數(shù)體}{函數(shù)體}
    C.f1(int x1,x2)D.f1(int x1,int x2)
    {函數(shù)體}{函數(shù)體}
    14.C語言中計算a3正確的表達是()
    A.a^3B.pow(a,3)
    C.a**3D.power(a,3)
    15.下列定義正確的是()
    A.anum t={a,b}x;B.enum t{1,2}x;
    C.anum {′+′,′-′}x;D.enum t{a,b}x;
    16.設有定義:union u{int a;float b};
    char c;}aa;
    則printf(″%d\n″,sizeof(aa));的輸出是()
    A.32B.16
    C.12D.8
    17.數(shù)據(jù)-35.78在文本文件中占用的字節(jié)個數(shù)是()
    A.4B.5
    C.6D.8
    18.在下列有關宏替換的敘述中,正確的說法是()
    A.宏替換占用運行時間
    B.宏名有類型
    C.帶參數(shù)的宏替換和函數(shù)等價
    D.宏替換只是字符替換
    19.下列程序的運行結果是()
    # defineA5
    # defineBA+1
    main( )
    {int a;
    a=B;
    printf(″%d\n″a-);
    }
    A.6B.5
    C.4D.出錯
    20.為了向二進制文件尾部增加數(shù)據(jù),打開文件的方式應采用()
    A.″ab″B.″rb+″
    C.″wb″D.″wb+″
    第二部分非選擇題
    二、填空題(本大題共10小題,每小題2分,共20分)
    21.設int y;執(zhí)行表達式(y=4)||(y=5)||(y=6)后,y的值是______.
    22.設char ch=′A′;則printf(″%c″,(ch>=′A′ && ch<=′Z′)ch+32:ch);的值是_____.
    23.結構化程序設計的三種基本結構是:選擇結構、循環(huán)結構和______.
    24.下列程序
    int x=3;
    do{printf(″%d″,-x);}while(!x);
    循環(huán)執(zhí)行的次數(shù)是______.
    25.在C語言中,一個二維數(shù)組可以看成若干個______數(shù)組。
    26.設int a={{1,3,5,7},{2,4,6,8}};則*(*a+1)的值為______.
    27.若函數(shù)定義為
    int data()
    {float x=9.9;
    return(x);
    }
    則函數(shù)返回的值是______.
    28.設struct student
    {int no;char name ;
    float score;
    {s1,*p=&s1;。
    用指針變量p給s1的成員no賦值1234的方法是______.
    29.判斷文本文件是否結束時使用的符號常量EOF的值是______.
    30.設有一個名為″myfile.c″的C程序,
    其主函數(shù)為mian(int argc,char *argv[ ])。如果在執(zhí)行時,輸入的命令行為
    myfile aa bb ↙
    則形式參數(shù)argc的值是______.
    三、程序分析題(本大題共5小題,每小題5分,共25分)
    閱讀下列程序,將輸出結果寫到各題右側(cè)的空白處
    31.fun(int x)
    {
    int y=0;
    static int z=3;
    z++;++y;
    return(x+y+z);
    }
    main( )
    {
    int I,x=2;
    for(i=0;i<2;i++)
    printf(″%5d″,fun(x++));
    }
    32.main( )
    {
    int s=0,i;
    for(i=1;;i++)
    {
    if(s>50)break;
    if(i%2==0) s+=i;
    }
    printf(″i=%d,s=%d\n″,i,s);
    }
    33.gcd(int m,int n)
    { if(m==n)return m;
    else if(m>n) return gcd(m-n,n);
    else return gcd(m,n-m);
    }
    main( )
    {
    printf(″Gcd=%d\n″,gcd(24,36));
    }
    34.# include
    main( )
    {int i=0;
    char c,s&#;=″SABC″;
    while(c=s[i])
    {
    switch(c)
    {
    case ′A′:i++;break;
    case ′B′:++i;
    default:putchar(c);i++;
    }
    putchar(′*′);
    }
    }
    35.int a1=300,a2=400;
    main( )
    {int a3=100,a4=200;
    sub1(a3,a4);
    sub1(a1,a2);
    printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);
    }
    sub1(int x,int y)
    { a1=x;
    x=y;
    y=a1;
    }
    四、程序填充題(本大題共3小題,每小題6分,共18分)
    給出下列程序,將橫線處缺少的部分補上,使其能正確運行。
    36.將十個整數(shù)輸入數(shù)組,求出其平均值并輸出。
    main( )
    {int i,a ,sum=0,*p=______;/*第一空*/
    for(i=0;i<10;i++)
    { scanf(″%d″,p);sum+=______;/*第二空*/
    printf(″%8.2f\n″,______);/*第三空*/
    }
    37.輸入一個無符號整數(shù)后求出它的各位數(shù)之和并輸出。
    例如若輸入123,則將各位之和6(即1+2+3)輸出。
    ______f(num)/*第一空*/
    unsigned int num;
    { unsigned int k=0;
    do
    { k+=______;/*第二空*/
    num/=10;
    } while(num);
    ______;/*第三空*/
    }
    main( )
    {unsigned int n;
    scanf(″%d″,&n);
    printf(″%u\n″,f(n));
    }
    38.為數(shù)組輸入數(shù)據(jù),逆序置換后輸出。(逆序置換是指:數(shù)組的首元素和末元素置換,第二個元素和倒數(shù)第二個元素置換,………)
    # define N8
    main()
    {int i,j,t,a[N];
    for(i=0;i    i=0;j=N-1;
    while(i    { t=*(a+i);________;/*第一空*/
    ______=t;/*第二空*/
    i++;______;/*第三空*/
    }
    for(i=0;i    }
    五、程序設計題(第39小題5分,第40、41小題各6分,共17分)。
    39.將100個整數(shù)輸入數(shù)組后按每行10個數(shù)輸出。
    40.計算e=1+ 的值并輸出(設n=20)。
    41.生成Fibonacci數(shù)列的前20項并輸出,其中
    fi=