2003年4月全國(guó)高等教育自學(xué)考試計(jì)算機(jī)軟件基礎(chǔ)(一)試題

字號(hào):

第一部分 選擇題 (共40分)
    一、單項(xiàng)選擇題(本大題共40小題,每小題1分,共40分)
    在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。
    1.C語(yǔ)言正確的類型說明符是( )
    A.Char B.char
    C.real D.string
    2.C語(yǔ)言中,已知:int i,j,k;下列運(yùn)算符使用錯(cuò)誤的是( )
    A.i++ B.j-
    C.++k D.8++
    3.下列敘述中錯(cuò)誤的描述是( )
    A.一個(gè)C源程序至少包括一個(gè)函數(shù)。
    B.一個(gè)C源程序可以包含一個(gè)main()函數(shù)和其它函數(shù)。
    C.主函數(shù)和其它函數(shù)可以互相調(diào)用。
    D.C程序的基本單位是函數(shù)。
    4.C語(yǔ)言中,字符串在計(jì)算機(jī)中的結(jié)束標(biāo)志是( )
    A.空格 B.換行
    C.′\0′ D.′\t′
    5.C語(yǔ)言中,s=i++;等價(jià)于( )
    A.s=i;i=i+1; B.i=i+1;s=i;
    C.s=i;s=s+1; D.s=i;s=i+1;
    6.C語(yǔ)言中,賦值語(yǔ)句的賦值號(hào)(“=”)左邊( )
    A.可以是常數(shù) B.可以是變量名
    C.只能是表達(dá)式 D.可以是常數(shù)或表達(dá)式
    7.下列程序的運(yùn)行結(jié)果是( )
    #include
    #include
    main()
    { int a=3;
    a=3+a%4+sqrt(9);
    a=a/3;
    a++;
    printf(″%d\n″,a);
    }
    A.2 B.2.6
    C.3 D.4
    8.下列程序的運(yùn)行結(jié)果是( )
    #include
    main()
    { int a=15;
    printf(″%d\n″,(a>10 40:50));
    }
    A.10 B.15
    C.40 D.50
    9.代數(shù)式 ,其錯(cuò)誤的C語(yǔ)言表達(dá)式是( )
    A.a*d/b/c*3 B.3*a*d/b*c
    C.a/b*d/c*3 D.3*a*d/b/c
    10.已知:int u=010,v=0x10,w=10;則printf(″%d,%d,%d\n″,u,v,w);執(zhí)行后的輸出結(jié)果是( )
    A.8,8,10 B.8,10,10
    C.8,16,10 D.10,10,10
    11.C語(yǔ)言中,下列運(yùn)算符優(yōu)先級(jí)的是( )
    A.>= B.==
    C.!= D.&&
    12.C語(yǔ)言中,if和switch語(yǔ)句屬于( )
    A.說明語(yǔ)句 B.注釋語(yǔ)句
    C.程序流程控制語(yǔ)句 D.順序執(zhí)行語(yǔ)句
    13.已知:int a=1,b=2,c=3,d=4;則表達(dá)式a>b a:(c>d c:d)的值是( )
    A.1 B.2
    C.3 D.4
    14.下列程序段的輸出結(jié)果是( )
    int a=2,b=3,c=4,e=5;
    e=a+b>c && b==c;
    printf(″e(cuò)=%d″,e)
    A.e=0 B.e=1
    C.e=4 D.e=5
    15.C語(yǔ)言中,語(yǔ)句while后一對(duì)圓括號(hào)中的表達(dá)式( )
    A.只能是邏輯表達(dá)式
    B.只能是關(guān)系表達(dá)式
    C.只能是關(guān)系表達(dá)式或邏輯表達(dá)式
    D.可以是任意表達(dá)式
    16.C語(yǔ)言中,下列只循環(huán)一次的do-while循環(huán)是( )
    A.do B.do
    {; {;
    } while(5); }while(k=0);
    C.do D.int k=5;
    {; do
    } while(-1); {k-;
    }while(k);
    17.C語(yǔ)言程序中,for循環(huán)語(yǔ)句中的表達(dá)式2為一非零常數(shù)且循環(huán)體內(nèi)無break語(yǔ)句及goto語(yǔ)句,則循環(huán)體的執(zhí)行次數(shù)為( )
    A.0次 B.表達(dá)式2表示的非零常數(shù)
    C.不確定,由循環(huán)體決定 D.無窮次
    18.下列程序的運(yùn)行結(jié)果是( )
    #include
    mian()
    { int x=3,y=6,z=0;
    while(x++!=(y=y-1))
    { z++;
    if(y    }
    printf (“x=%d,y=%d,z=%d”,x,y,z);
    }
    A.x=4,y=4,z=1 B.x=5,y=4,z=1
    C.x=5,y=4,z=2 D.x=5,y=5,z=1
    19.C語(yǔ)言中,下列定義數(shù)組的正確語(yǔ)句是( )
    A.char a,b; B.char a&#;;
    C.int b[″7″]; D.int j=3;int a[j];
    20.已知:char a&#;={′0 ′, ′0 ′, ′0 ′, ′0 ′, ′0 ′, ′0 ′, ′0 ′, ′0 ′};則( )
    A.該數(shù)組元素個(gè)數(shù)為7 B.該數(shù)組長(zhǎng)度不確定
    C.該數(shù)組元素的下標(biāo)是7 D.該數(shù)組至少有9個(gè)數(shù)組元素
    21.已知:char str&#;=″\t\v\56\7 morning″;則strlen(str)的值是( )
    A.8 B.11
    C.16 D.17
    22.已知:char a&#;=″abcdef″;char b&#;={′a′,′b′,′c′,′d′,′e′,′f′};則( )
    A.a數(shù)組的長(zhǎng)度比b數(shù)組長(zhǎng) B.a數(shù)組和b數(shù)組長(zhǎng)度相等
    C.a數(shù)組的長(zhǎng)度比b數(shù)組短 D.a數(shù)組和b數(shù)組完全相同
    23.下列程序的運(yùn)行結(jié)果是( )
    #include
    int mul(int x)
    {int z;
    z=x*x;
    return z;
    }
    main()
    {int a=10,k=2,m=1;
    a=a/(mul(k+m)/mul(k+m));
    printf(″%d\n″,a);
    }
    A.0 B.1
    C.9 D.10
    24.關(guān)于C語(yǔ)言函數(shù),正確的敘述是( )
    A.實(shí)參與形參的類型應(yīng)一致,當(dāng)形參為整型時(shí),實(shí)參也必須為整型。
    B.函數(shù)可以用void定義為“無類型”,函數(shù)不返回值。
    C.函數(shù)如有return語(yǔ)句,則return語(yǔ)句中表達(dá)式的類型必須和函數(shù)類型一致。
    D.函數(shù)類型為實(shí)型時(shí),類型標(biāo)識(shí)符可以省略。
    25.能正確定義指針變量cp的C語(yǔ)言語(yǔ)句是( )
    A.char *cp=&′0′; B.char cp;
    C.char cp=″abc″; D.char ch,*cp=&ch;
    26.指針變量作為形參時(shí),下列錯(cuò)誤的敘述是( )
    A.實(shí)參可以為同類型指針變量。
    B.形參的變化將改變相應(yīng)實(shí)參的地址。
    C.實(shí)參可以為同類型數(shù)組變量。
    D.可以實(shí)現(xiàn)函數(shù)間多個(gè)數(shù)據(jù)的傳遞。
    27.已知:int a,*ip;使ip指向a的正確語(yǔ)句是( )
    A.ip=&a; B.*ip=a;
    C.*ip=&a; D.ip=a;
    28.已知:char *cp=″12345″;則printf(″%s″,++cp);的輸出結(jié)果是( )
    A.1 B.2
    C.2345 D.12345
    29.如果磁盤上沒有文本文件test.dat,執(zhí)行下列程序段后,其結(jié)果是( )
    FILE *fp;
    fp=fopen(″test.dat″,″r″);
    A.系統(tǒng)打開文件test.dat,且fp的值不是NULL.
    B.系統(tǒng)建立新文件test.dat.
    C.fp的值是NULL.
    D.fp的值不確定。
    30.對(duì)文本文件正確的敘述是( )
    A.文本文件占用存儲(chǔ)空間較少,但不能直接在屏幕上原樣顯示。
    B.文本文件可以在屏幕上原樣顯示,但占用存儲(chǔ)空間較大。
    C.文本文件占用存儲(chǔ)空間大且不能直接在屏幕上原樣顯示。
    D.文本文件占用存儲(chǔ)空間較小且可以直接在屏幕上原樣顯示。
    31.FoxPro中,內(nèi)存變量文件的擴(kuò)展名是( )
    A.DBF B.IDX
    C.BAK D.MEM
    32.FoxPro中,命令“TOTAL ON 單位 TO XM”中的XM是( )
    A.內(nèi)存變量名 B.字段變量名
    C.數(shù)據(jù)庫(kù)文件名 D.文本文件名
    33.FoxPro中,已知內(nèi)存變量A=″Fox □″,B=″Pro″,則函數(shù)LEN(A-B)的值是(注:□表示空格)( )
    A.3 B.4
    C.6 D.7
    34.FoxPro中,執(zhí)行命令FNAME=″ST″和USE &FNAME后,打開的數(shù)據(jù)庫(kù)文件是( )
    A.&FNAME.DBF B.FNAME.DBF
    C.ST.DBF D.ST.IDX
    35.現(xiàn)有P1,P2兩個(gè)過程,要根據(jù)N(1或2)值的不同調(diào)用相應(yīng)的程序,下列四個(gè)程序段中會(huì)出現(xiàn)錯(cuò)誤的程序段是( )
    A.CLEAR B.INPUT TO N
    SET TALK OFF DO CASE
    ACCEPT TO N CASE N=1
    H=′P′+N DO P1
    DO H OTHERWISE
    SET TALK ON DO P2
    RETURN ENDCASE
    C.INPUT TO N D. ACCEPT TO N
    IF N=1 DO CASE
    DO P1 CASE N=′1′
    ELSE DO P1
    DO P2 CASE N=′2′
    ENDIF DO P2
    ENDCASE
    36.已知學(xué)生記錄描述為:
    struct student
    { int no;
    char name,sex;
    struct
    { int year,month,day;
    } birth;
    };
    struct student s;
    設(shè)變量s中的“生日”是“1984年11月12日”,對(duì)“birth”正確賦值的程序段是( )
    A.year=1984;month=11;day=12;
    B.s.year=1984;s.month=11;s.day=12;
    C.birth.year=1984;birth.month=11;birth.day=12;
    D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;
    37.已知下列定義語(yǔ)句,則對(duì)pup中成員sex的正確引用是( )
    struct pupil
    { char name;
    int sex;
    } pup,*p=&pup;
    A.p.pup.sex B.p->pup.sex
    C.(*p)。pup.sex D.(*p)。sex
    38.入隊(duì)運(yùn)算( )
    A.只能在隊(duì)頭進(jìn)行。 B.只能在隊(duì)尾進(jìn)行。
    C.可以在隊(duì)頭或隊(duì)尾進(jìn)行。 D.可以在隊(duì)列中間的任意位置進(jìn)行。
    39.假定用上界為m的向量s(1∶m)存儲(chǔ)棧,設(shè)棧頂指針top總是指向棧頂元素,要將x入棧的操作步驟是( )
    A.top=top+1;s[top]=x; B.s[top]=x;top=top+1;
    C.top=(top+1)%m;s[top]=x; D.s[top]=x;top=(top+1)%m;
    40.將遞歸算法轉(zhuǎn)化為非遞歸算法通常使用的數(shù)據(jù)結(jié)構(gòu)是( )
    A.棧 B.隊(duì)列
    C.鏈表 D.數(shù)組
    第二部分 非選擇題 (共60分)
    二、填空題(本大題共10個(gè)空,每空1分,共10分)
    請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
    41.C語(yǔ)言中,的三目運(yùn)算符是_______,而&&是_______目運(yùn)算符。
    42.執(zhí)行下列程序段后,i的值是_______,j的值是_______.
    int i,j=5;
    for(i=0;i<5;i++)
    j=j+i;
    43.下列程序的功能是將字符串″country″縱向顯示在屏幕上。填空完成程序。
    #include
    main()
    { static char a&#;=″country″;
    int i;
    for(i=0;a[i]!=′\0′;_______)
    printf(″%c\n″,_______);
    }
    44.FoxPro支持三種工作方式,它們是_______工作方式、_______工作方式和菜單工作方式。
    45.C語(yǔ)言中,要?jiǎng)討B(tài)申請(qǐng)內(nèi)存空間可使用函數(shù)_______;要釋放動(dòng)態(tài)空間可使用函數(shù)_______.
    三、閱讀程序題(本大題共8小題,每小題4分,共32分)
    46.寫出下列程序的運(yùn)行結(jié)果。
    #include
    main()
    { int a,b=0,m=3,n=2;
    a=(m>5) && ((b=3)>n);
    printf(″a=%d,b=%d″,a,b);
    }
    結(jié)果:
    47.下列程序的功能是輸出1至100之間的自然數(shù)中各位數(shù)字的乘積大于各位數(shù)字之和的那些數(shù),填空完成程序。(例如:58,各位數(shù)字的乘積為5*8=40,各位數(shù)字之和為5+8=13)
    #include
    main()
    { int n,k,s,m;
    for (n=1;n<=100;n++)
    { k=1;s=0;
    m=n;
    while (_______)
    { k*=m%10;
    s+=m%10;
    m=m/10;
    }
    if (_______) printf(″%d″,n);
    } }
    48.下列程序的功能是:從鍵盤輸入一個(gè)數(shù)值插入有序數(shù)組,插入后仍保持?jǐn)?shù)組元素值有序。填空完成程序。
    #include
    main()
    { int a ={2,4,6,8,10,12,14,16,18,20},i,x;
    printf(″please input x:″);
    scanf(″%d″,&x);
    for (i=9;i>=0;i-)
    { if (a[i]>x)
    a[i+1]=a[i];
    else
    { a[i+1]=x;
    _______;
    }
    }
    if(_______)a