2011年9月計(jì)算機(jī)二級C語言試題

字號:


    為大家收集整理了《2011年9月計(jì)算機(jī)二級C語言試題》供大家參考,希望對大家有所幫助!??!
     
    一、選擇題((1)-(10)、(21)-(40)每題2分,(11)-(20)每題1分,共70分) 
    下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請將正確選項(xiàng)填涂在答題卡相應(yīng)位置上答在試卷上不得分。

    (1)下列敘述中正確的是( )。 
    A)算法就是程序 
    B)設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 
    C)設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性 
    D)以上三種說法都不對
    (2)下列關(guān)于線性鏈表的敘述中,正確的是( )。 
    A)各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致 
    B)各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù) 
    C)進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素 
    D)以上三種說法都不對
    (3)下列關(guān)于二叉樹的敘述中,正確的是( )。 
    A)葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè) 
    B)葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè) 
    c)葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍 
    D)度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍
    (4)軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( )。 
    A)學(xué)生成績管理系統(tǒng) 
    B)C語言編譯程序 
    C)UNIX操作系統(tǒng) 
    D)數(shù)據(jù)庫管理系統(tǒng)
    (5)某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:
    考試大2011年下半年計(jì)算機(jī)二級C語言試題:文字版 
    該系統(tǒng)總體結(jié)構(gòu)圖的深度是( )。 
    A)7 
    B)6 
    C)3 
    D)2
    (6)程序調(diào)試的任務(wù)是( )。 
    A)設(shè)計(jì)測試用例 
    B)驗(yàn)證程序的正確性 
    C)發(fā)現(xiàn)程序中的錯(cuò)誤 
    D)診斷和改正程序中的錯(cuò)誤
    (7)下列關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述中,正確的是( )。 
    A)在需求分析階段建立數(shù)據(jù)字典 
    B)在概念設(shè)計(jì)階段建立數(shù)據(jù)字典 
    C)在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典 
    D)在物理設(shè)計(jì)階段建立數(shù)據(jù)字
    (8)數(shù)據(jù)庫系統(tǒng)的三級模式不包括( )。 
    A)概念模式 
    B)內(nèi)模式 
    C)外模式 
    D)數(shù)據(jù)模式
    (9)有三個(gè)關(guān)系R、S利T如下: 
    考試大2011年下半年計(jì)算機(jī)二級C語言試題:文字版
    則由關(guān)系R和s得到關(guān)系T的操作是( )。 
    A)自然連接 
    B)差 
    C)交 
    D)并
    (10)下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計(jì)方法主要特征的是( )。 
    A)繼承 
    B)自頂向下 
    C)模塊化 
    D)逐步求精
    (11)以下敘述中錯(cuò)誤的是(    )。
    A)C語言編寫的函數(shù)源程序,其文件名后綴可以是.C
    B)C語言編寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件
    C)C語言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行
    D)一個(gè)C語言程序只能有一個(gè)主函數(shù)
    (12)以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是(    )。
    A)把程序分成若干相對獨(dú)立的模塊,可便于編碼和調(diào)試
    B)把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊
    c)可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序
    D)可采用自項(xiàng)向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序
    (13)以下選項(xiàng)中關(guān)于c語言常量的敘述錯(cuò)誤的是(    )。
    A)所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量
    B)常量分為整型常量、實(shí)型常量、字符常量和字符串常量
    c)常量可分為數(shù)值型常量和非數(shù)值型常量
    D)經(jīng)常被使用的變量可以定義成常量
    (14)若有定義語句:int a=10;double b=3.14;,則表達(dá)式'A'+a+b值的類型是(    )。
    A)char    
    B)int    
    C)double    
    D)float
    (15)若有定義語句:int x=12,3=8,z;,在其后執(zhí)行語句z=0.9+x/y;,則Z的值為(    )。
    A)1.9    
    B)1    
    C)2 
    D)2.4
    (16)若有定義:int a,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是(    )。
    A)3 5    
    B)3,5    
    C)3;5   
    D)35
    (17)若有定義語句:intk1=10,k2=20;,執(zhí)行表達(dá)式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分別為(    )。
    A)0和1    
    B)0和20    
    C)10和1    
    D)10和20
    (18)有以下程序
        #include
        main()
        {int a=1,b=0;
        if(-a)  b++;
        else if(a=0)b+=2:
        else b+=3:
        printf("%d\n",b);
        )
        程序運(yùn)行后的輸出結(jié)果是(    )。
    A)0    
    B)1    
    C)2 
    D)3

    (19)下列條件語句中,輸出結(jié)果與其他語句不同的是(    )。
    A)if(a)printf("%d\-n",x);    else printf("%d\n",y);
    B)if(a—0)printf("%d\n",y);  else printf("%d\n",x);
    C)if(a!=0)p由tf("%d\n",x);  else printf("%d\n",y);
    D)if(a=0)printf("%d\n",x);  else printf("%d\n",y);
    (20)有以下程序
    #include
    main()
    {int a=7;
    while(a--);
    printf("%d\n",a);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)-1    
    B)0    
    C)1    
    D)7
    (21)以下不能輸出字符A的語句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)
    A)printf("%c\n",'a'-32);    
    B)printf("%d\n",'A');
    c)printf("%c\n",65);    
    D)print-f("%c\n",'B'-1);
    (22)有以下程序(注:字符a的ASCIl碼值為97)
    #include
    main()
    {char*s={"abe");
    do
    {printf(”%d”,+s%10);++s;)
    while(+s);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)abc    
    B)789    
    C)7890    
    D)979899

    (23)若有定義語句:double a,+p=&a;以下敘述中錯(cuò)誤的是(    )。
    A)定義語句中的*號是一個(gè)間址運(yùn)算符
    B)定義語句中的*號只是一個(gè)說明符
    C)定義語句中的P只能存放double類型變量的地址
    D)定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
    (24)有以下程序
    #include
    double f(double x);
    main()
    {doublea_0;inti;
    for(i=0;i<30;i+=10)a+--f((double)i);
    printf("%5.0f\n",a);
    }
    double f(double x)
    (return X+x+1;)
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)503    
    B)401    
    C)500    
    D)1404

    (25)若有定義語句:int year=2009,*p=&year;,以下不能使變量year中的值增至2010的語句是(    )。
    A)*p+=1;    
    B)( *p)++;    
    C)++(*p);    
    D)*p++;
    (26)以下定義數(shù)組的語句中錯(cuò)誤的是(    )。
    A)int num[]={1,2,3,4,5,6};    
    B)int num[][3]={{1,2},3,4,5,6};
    C)int num[2][4]=({1,2,,{3,4},{5,6});    
    D)int num[][4]={1,2,3,4,5,6};
    (27)有以下程序
    #include
    void fun(int+p)
    {printf(”%d\n”,p[5]);}
    main()    ;
    {int a[10]={1,2,3,4,5,6,7,8,9,10};
    fun(&a[3]);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)5    
    B)6    
    C)8 
    D)9

    (28)有以下程序
    #include
    #defineN4
    void fun(int a[][N],im b[])
    {int i;
    for(i=0;i    )
    void main()
    {int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
    fun(x,y);
    for(i=0;i    }
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)-12,-3,0,0,    
    B)-3,-1,1,3,    
    C)0,1,2,3,    
    D)-3,-3,-3,-3        

    (29)有以下函數(shù)
    int fun(char *x,char *y)
    {int n=0;
    while((*x=*y)&&*x!='\0'){x++;y++;n++;}
    return n:
    )
    函數(shù)的功能是(  )。
    A)查找x和y所指字符串中是否有'\0'
    B)統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
    c)將y所指字符串賦給X所指存儲(chǔ)空間
    D)統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
    (30)若有定義語句:char *s1="OK",*s2="ok";,以下選項(xiàng)中,能夠輸出"0K"的語句是(    )。
    A)if(strcmp(s1,s2)=0)puts(s1);    
    B)if(strcmp(s1,s2)!=0) puts(s2);
    C)if(strcmp(s1,s2)=1)puts(s1,);    
    D)if(strcmp(s1,s2)!=0) puts(s1);
    (31)以下程序的主函數(shù)中調(diào)用了在其前面定義的fun函數(shù)
    #include
    {
    main()
    {double a[15],k;
    k=fun(a);
    }
    則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是(    )。
    A)double fun(double a[15])    
    B)double fun(double *a)
    C)double fun(double a[])    
    D)double fun(double a)

    (32)有以下程序
    #include
    #include
    main()
    {char a[5][10]={"china","beijing","you","tiananmen","welcome”);
    int i,j;chart[10];
    for(i=0;i<4;i++)
    for(j=i+1;j<5;j++)
    if(strcmp(a[i],a[j])>O)
    {strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}
    puts(a[3]);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)Beijing    
    B)china    
    C)welcome    
    D)tiananmen

    (33)有以下程序
    #include
    int f(int m)
    { static int n=0;
    n+=m:
    return n;
    )
    main()
    {int n=0;
    printf("%d",f(++n));
    printf("%d\n",f(n++));
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)1,2    
    B)1,1    
    C)2,3    
    D)3,3

    (34)有以下程序
    #include
    main()
    {char ch [3][5]={"AAAA","BBB","CC");
    printf ("%s\n",ch[1]);
    }
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)AAAA    
    B)CC    
    C)BBBCC 
    D)BBB

    (35)有以下程序
    #include
    #include
    void fun(char *w,int m)
    {char s,*p1,*p2;
    p1=w;p2=w+m-1;
    while(p1    )
    main()
    {char a[]="123456";
    fun(a,strlen(a));puts(a);
    }
    程序運(yùn)行后的輸出結(jié)果是(    )
    A)654321    
    B)116611    
    C)161616    
    D)123456    

    (36)有以下程序
    #include
    #include
    typedefstruct{char name[9];char sex;int score[2];}STU;
    STUf(STU a)
    {STU b={"Zhao",'m',85,90};
    inti:
    strcpy(a.name,b.name);
    a.sex=b.sex;
    for (i=0;i<2;i++)a.score[i]=b.score[i];
    return a;
    }
    main()
    f STU c={"Qian",'f',95,92},d;
    d=f(c);
    printf("%s,%c,%d,%d,",d.nalne,d.sex,d.score[0],d.score[1]);
    printf("%s,%c,%d,%d,",c.nanle,c.Sex,c.score[0],c.score[1]);
    }
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)Zhao,m,85,90,Qian,f,95,92       
    B)Zhao,m,85,90,Zha0,m,85,90
    C)Qian,f,95,92,Qian,f,95,92   
    D)Qian,f,95,92,Zhao,m,85,90

    (37)有以下程序
    #include
    main()
    { struct node{int n;stmct node+next;} *p;
    structnodex[31={(2,x+l},{4,x+2),{6,NULL}};
    p=x;
    printff"%d,",p->n);
    printf("%dkn",p->next->n);
    }
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)2,3    
    B)2,4    
    C)3,4    
    D)4,6

    (38)有以下程序
    #include
    main()
    {int a=2,b;
    b=a<<2:printr("%d\n",b);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)2    
    B)4    
    C)6    
    D)8

    (39)以下選項(xiàng)中敘述錯(cuò)誤的是(    )。
    A)C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
    B)在C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語句內(nèi)
    C)C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值
    D)C程序函數(shù)的形參不可以說明為static型變量
    (40)有以下程序
    #include
    main()
    {FILE *fp,
    int k,n,j,a[6]=<1,2,3,4,5,6};
    fp=fopen("d2.dat","w");
    for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);
    fclose(fp);
    fp=fopen("d2.dat","r");
    for(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);
    fc|ose(fp);
    printf("%d,%d\n",k,n);
    )
    程序運(yùn)行后的輸出結(jié)果是(    )。
    A)1,2    
    B)3,4    
    C)5,6    
    D)123.456

    二、填空題(每空2分,共30分)
    請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

    (1)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)與非線性結(jié)構(gòu),帶鏈的棧屬于  【1】  。
    (2)在長度為n的順序存儲(chǔ)的線性表中插入一個(gè)元素,最壞情況下需要移動(dòng)表中  【2】  個(gè)元素。
    (3)常見的軟件開發(fā)方法有結(jié)構(gòu)化方法和面向?qū)ο蠓椒?。對某?yīng)用系統(tǒng)經(jīng)過需求分析建立數(shù)據(jù)流圖(DFD),則應(yīng)采用  【3】  方法。
    (4)數(shù)據(jù)庫系統(tǒng)的核心是  【4】  。
    (5)在進(jìn)行關(guān)系數(shù)據(jù)庫的邏輯設(shè)計(jì)時(shí),E—R圖中的屬性常被轉(zhuǎn)換為關(guān)系中的屬性,聯(lián)系通常被轉(zhuǎn)換為  【5】  。
    (6)若程序中已給整型變量a和b賦值10和20,請寫出按以下格式輸出a、b值的語句  【6】  。
    ****a=10.b=20****
    (7)以下程序運(yùn)行后的輸出結(jié)果是  【7】  。
    #include
    main()
    a%=9;printf("%d\n",a);
    )

    (8)以下程序運(yùn)行后的輸出結(jié)果是  【8】  。
    #include
    main()
    {int i,j;
    for(i=6;i>3;i--)j=i;
    printf(”%d%d\n”,i,j);
    }

    (9)以下程序運(yùn)行后的輸出結(jié)果是  【9】  。
    #include
    main()
    {int i,n[]={0,0,0,0,0);
    for(i=1;i<=2;i++)
    {n[i]=n[i-1]*3+1;
    printf("%d",n[i]);
    }
    printf("\n");
    }

    (10)以下程序運(yùn)行后的輸出結(jié)果是  【10】  。
        #include
        main()
        {chara;
        for(a=0;a<15;a+=5)
        {putchar(a+'A');)
        printf("\n");
        )

    (11)以下程序運(yùn)行后的輸出結(jié)果是  【11】  。
        #include    
        void fun(int x)
        {if(x/5>o)fun(x/5);
        prinff("%dt",x);
        )
        main()
        {fun(11);printf("\n");}

    (12)有以下程序
        #include
        main()    
        {int c[3]={0},k,i;
        while((k=getchar())!='\n')
        c[k-'A']++;
        for(i=0;i<3;i++)printf(”%d”,c[i]);printf("\n");
    若程序運(yùn)行時(shí)從鍵盤輸入ABcAcC<回車>,則輸出結(jié)果為  【12】  。

    (13)以下程序運(yùn)行后的輸出結(jié)果是  【13】  。
        #include
        main()
        {int n[2],i,j;
        for(i=0;i<2;i++)n[i]=0;
        for(i=0;i<2;i++)
        for(j=0;j<2;j++)n[j]=n[i]+1;
        printf("%d\n",n[1]);
        }    

    (14)以下程序調(diào)用fun函數(shù)把x中的值插入到a數(shù)組下標(biāo)為k的數(shù)組元素中。主函數(shù)中,n存放a數(shù)組中數(shù)據(jù)的
        個(gè)數(shù)。請?zhí)羁铡?BR>        #include
        void fun(int s[],int *n,int k,int x)
        { int i;    
        for(i=*n-1;i>=k;i--)s[ 【14】 ]=s[i];
        s[k]=x;
        *n=*n+  【15】    ;
        }
        main()
        {int a[20]={1,2,3,4,5,6,7,8,9,10,11},i,x=0,k=6,n=11;
        fun(a,&n,k,X);
        for(i=0;i        }