全國計(jì)算機(jī)等級考試二級C模擬試題一

字號(hào):

一、選擇題(每題2分,共計(jì)70分)
    1.棧和隊(duì)列的共同特點(diǎn)是
    A)都是先進(jìn)先出
    B)都是先進(jìn)后出
    C)只允許在端點(diǎn)處插入和刪除元素
    D)沒有共同點(diǎn)
    2.已知二叉樹后序遍歷序列是daBEC,中序遍歷序列是debac,它的前序遍歷序列是
    A)acbed
    B)decab
    C)deabc
    D)cedba
    3.鏈表不具有的特點(diǎn)是
    A)不必事先估計(jì)存儲(chǔ)空間
    B)可隨機(jī)訪問任一元素
    C)插入刪除不需要移動(dòng)元素
    D)所需空間與線性表長度成正比
    4.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是
    A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
    B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
    C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
    D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
    5.為了提高測試的效率,應(yīng)該
    A)隨機(jī)選取測試數(shù)據(jù)
    B)取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
    C)在完成編碼以后制定軟件的測試計(jì)劃
    D)集中對付那些錯(cuò)誤群集的程序
    6.算法的時(shí)間復(fù)雜度是指
    A)執(zhí)行算法程序所需要的時(shí)間
    B)算法程序的長度
    C)算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
    D)算法程序中的指令條數(shù)
    7.軟件生命周期中所花費(fèi)用最多的階段是
    A)詳細(xì)設(shè)計(jì)
    B)軟件編碼
    C)軟件測試
    D)軟件維護(hù)
    8.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為
    A)C
    B)Basic
    C)DDL
    D)DML
    9.下列有關(guān)數(shù)據(jù)庫的描述,正確的是
    A)數(shù)據(jù)庫是一個(gè)DBF文件
    B)數(shù)據(jù)庫是一個(gè)關(guān)系
    C)數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合
    D)數(shù)據(jù)庫是一組文件
    10.下列有關(guān)數(shù)據(jù)庫的描述,正確的是
    A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程
    B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變
    C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段
    D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
    11.以下敘述中正確的是
    A)C語言比其他語言高級
    B)C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行
    C)C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
    D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)
    12.C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是
    A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
    B)if,switch,break
    C)for,while,do-while
    D)if,for,continue
    13.C語言中最簡單的數(shù)據(jù)類型包括
    A)整型、實(shí)型、邏輯型
    B)整型、實(shí)型、字符型
    C)整型、字符型、邏輯型
    D)字符型、實(shí)型、邏輯型
    14.若變量已正確定義并賦值,以下符合C語言語法的表達(dá)式是
    A)a:=b+1
    B)a=b=c+2
    C)int 18.5%3
    D)a=a+7=c+b
    15.下列可用于C語言用戶標(biāo)識(shí)符的一組是
    A)voiddefineWord
    B)a3_b3_123Car
    C)For-abcIFCase
    D)2aDOsizeof
    16.若變量a,i已正確定義,且i已正確賦值,合法的語句是
    A)a==1
    B)++i;
    C)a=a++=5;
    D)a=int(i);
    17.已知
    int t=0;
    while (t=1)
    {...}
    則以下敘述正確的是
    A)循環(huán)控制表達(dá)式的值為0
    B)循環(huán)控制表達(dá)式的值為1
    C)循環(huán)控制表達(dá)式不合法
    D)以上說法都不對
    18.有如下程序
    main()
    {
    int x=1,a=0,b=0;
    switch(x)
    {
    case 0: b++;
    case 1: a++;
    case 2: a++;b++;
    }
    printf("a=%d,b=%d/n",a,b);
    }
    該程序的輸出結(jié)果是
    A)a=2,b=1
    B)a=1,b=1
    C)a=1,b=0
    D)a=2,b=2
    19.有以下程序
    main()
    { int i=1,j=1,k=2;
    if((j++||k++)&& i++)
    printf("%d,%d,%d/n",i,j,k);
    }
    執(zhí)行后輸出結(jié)果是
    A)1,1,2
    B)2,2,1
    C)2,2,2
    D)2,2,3
    20.有如下程序
    main()
    { int n=9;
    while(n>6){n--; printf("%d",n);}
    }
    該程序的輸出結(jié)果是
    A)987
    B)876
    C)8765
    D)9876
    21.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是
    A)int i=100;
    while(1)
    { i=i%100+1;
    if(i>100)break;
    }
    B)for(;;);
    C)int k=10000;
    do{ k++; }while(k>10000);
    D)int s=36;
    while(s)--s;
    22.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是
    A)函數(shù)調(diào)用可以作為獨(dú)立的語句存在
    B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
    C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
    D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
    23.有以下程序
    float fun(int x,int y)
    { return(x+y);}
    main()
    { int a=2,b=5,c=8;
    printf("%3.0f/n",fun((int)fun(a+c,b),a-c));
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)編譯出錯(cuò)
    B)9
    C)21
    D)9.0
    24.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是
    main()
    { …
    int a[50],n;
    …
    fun(n, &a[9]);
    …
    }
    A)void fun(int m, int x[])
    B)void fun(int s, int h[41])
    C)void fun(int p, int *s)
    D)void fun(int n, int a)
    25.設(shè)有以下說明語句
    struct stu
    { int a;
    float b;
    } stutype;
    則下面的敘述不正確的是
    A)struct是結(jié)構(gòu)體類型的關(guān)鍵字
    B)struct stu是用戶定義的結(jié)構(gòu)體類型
    C)stutype是用戶定義的結(jié)構(gòu)體類型名
    D)a和b都是結(jié)構(gòu)體成員名
    26.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是
    main()
    { int x,y;
    scanf("%d",&x);
    y=x>12?x+10:x-12;
    printf("%d/n",y);
    }
    A)0
    B)22
    C)12
    D)10
    27.以下說法正確的是
    A)C語言程序總是從第一個(gè)的函數(shù)開始執(zhí)行
    B)在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義
    C)C語言程序總是從main()函數(shù)開始執(zhí)行
    D)C語言程序中的main()函數(shù)必須放在程序的開始部分
    28.有以下程序
    #define F(X,Y)(X)*(Y)
    main()
    { int a=3, b=4;
    printf("%d/n", F(a++, b++));
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)12
    B)15
    C)16
    D)20
    29.下列程序執(zhí)行后的輸出結(jié)果是
    void func(int *a,int b[])
    { b[0]=*a+6; }
    main()
    { int a,b[5]={0};
    a=0; b[0]=3;
    func(&a,b); printf("%d/n",b[0]);
    }
    A)6
    B)7
    C)8
    D)9
    30.若有下面的程序段
    char s[]="china";char *p; p=s;
    則下列敘述正確的是
    A)s和p完全相同
    B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
    C)s數(shù)組長度和p所指向的字符串長度相等
    D)*p與s[0]相等
    31.以下程序中函數(shù)sort的功能是對a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序
    void sort(int a[],int n)
    { int i,j,t;
    for(i=0;ifor(j=i+1;jif(a[i]}
    main()
    { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
    sort(&aa[3],5);
    for(i=0;i<10;i++)printf("%d,",aa[i]);
    printf("/n");
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)1,2,3,4,5,6,7,8,9,10,
    B)10,9,8,7,6,5,4,3,2,1,
    C)1,2,3,8,7,6,5,4,9,10,
    D)1,2,10,9,8,7,6,5,4,3,
    32.以下程序的運(yùn)行結(jié)果是
    #include "stdio.h"
    main()
    { struct date
    { int year,month,day;}today;
    printf("%d/n",sizeof(struct date));
    }
    A)6
    B)8
    C)10
    D)12
    33.若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8時(shí),結(jié)果為
    main()
    { int a,b,s;
    scanf("%d%d",&a,&b);
    s=a;
    if(as=b;
    s*=s;
    printf("%d",s);
    }
    A)36
    B)64
    C)48
    D)以上都不對
    34.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是
    A)文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
    B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
    C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
    D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
    35.有以下程序
    void ss(char *s,char t)
    { while(*s)
    { if(*s==t)*s=t-′a′+′A′;
    s++;
    }
    }
    main()
    { char str1[100]="abcddfefdbd",c=′d′;
    ss(str1,c); printf("%s/n",str1);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)ABCDDEFEDBD
    B)abcDDfefDbD
    C)abcAAfefAbA
    D)Abcddfefdbd
    二、填空題(每空2分,共計(jì)30分)
    1.算法的基本特征是可行性、確定性、 【1】 和擁有足夠的情報(bào)。
    2.在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為 【2】 。
    3.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組 【3】 。
    4.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為 【4】 。
    5.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和 【5】 3種。
    6.下列程序的輸出結(jié)果是 【6】 。
    maim ()
    { char b[]="Hello you";
    b[5]=0;
    printf ("%s/n",b);
    }
    7.以下程序的輸出結(jié)果是 【7】 。
    main()
    { int a=0;
    a+=(a=8);
    printf("%d/n",a);
    }
    8.函數(shù) void fun(float *sn, int n)的功能是根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?BR>    void fun( float *sn, int n)
    { float s=0.0, w, f=-1.0;
    int i=0;
    for(i=0; i<=n; i++)
    { f= 【8】 * f;
    w=f/(2*i+1);
    s+=w;
    }
    【9】=s;
    }
    9.函數(shù)fun的功能是根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù)且要求m>n。
    例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。
    #include
    #include
    float fun (int m, int n)
    { int i;
    double p=1.0;
    for(i=1;i<=m;i++) 【10】 ;
    for(i=1;i<=n;i++) 【11】 ;
    for(i=1;i<=m-n;i++)p=p/i;
    return p;
    }
    main ()
    { clrscr();
    printf ("p=%f/n",fun (12,8));
    }
    10.該程序運(yùn)行的結(jié)果是 【12】 。
    #include
    #include
    #define M 100
    void fun(int m, int *a, int *n)
    { int i,j=0;
    for(i=1;i<=m;i++)
    if(i%7==0||i%11==0)
    a[j++]=i;
    *n=j;
    }
    main()
    { int aa[M],n,k;
    clrscr();
    fun(10,aa,&n);
    for(k=0;k if((k+1)%20==0)printf("/n");
    else printf("%4d",aa[k]);
    printf("/n");
    }
    11.下列程序的功能是求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
    例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?BR>    #include
    #include
    #define M 81
    int fun(char *ss, char c)
    { int i=0;
    for(; 【13】 ;ss++)
    if(*ss==c)i++;
    return i;
    }
    main()
    { char a[M], ch;
    clrscr();
    printf("/nPlease enter a string: "); gets(a);
    printf("/nPlease enter a char: "); ch=getchar();
    printf("/nThe number of the char is: %d/n", fun(a,ch));
    }
    12.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?BR>    #include "stdio.h"
    FILE *fp;
    { char ch;
    if((fp=fopen( 【14】 ))==NULL)exit(0);
    while((ch=getchar( ))!=′@′)fputc (ch,fp);
    fclose(fp);
    }
    13.設(shè)有如下宏定義
    #define MYSWAP(z,x,y)
    {z=x;x=y;y=z;}
    以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?BR>    float a=5,b=16,c;
    MYSWAP( 【15】 ,a,b);