2007年9月計(jì)算機(jī)等級(jí)考試二級(jí)C模擬試題(11)

字號(hào):

一 、選擇題
    (1)已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為
    A)GEDHFBCA
    B)DGEBHFCA
    C)ABCDEFGH
    D)ACBFEDHG
    正確答案: B
    (2)樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是
    A)有且只有1
    B)1或多于1
    C)0或1
    D)至少2
    正確答案: A
    (3)如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是
    A)e3,e1,e4,e2
    B)e2,e4,e3,e1
    C)e3,e4,e1,e2
    D)任意順序
    正確答案: B
    (4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是
    A)不限制goto語(yǔ)句的使用
    B)減少或取消注解行
    C)程序越短越好
    D)程序結(jié)構(gòu)應(yīng)有助于讀者理解
    正確答案: D
    (5)程序設(shè)計(jì)語(yǔ)言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和
    A)對(duì)象成分
    B)變量成分
    C)語(yǔ)句成分
    D)傳輸成分
    正確答案: D
    (6)下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書(shū)的作用的是
    A)便于用戶(hù)、開(kāi)發(fā)人員進(jìn)行理解和交流
    B)反映出用戶(hù)問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)
    C)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)
    D)便于開(kāi)發(fā)人員進(jìn)行需求分析
    正確答案: D
    (7)下列不屬于軟件工程的3個(gè)要素的是
    A)工具
    B)過(guò)程
    C)方法
    D)環(huán)境
    正確答案: D
    (8)單個(gè)用戶(hù)使用的數(shù)據(jù)視圖的描述稱(chēng)為
    A)外模式
    B)概念模式
    C)內(nèi)模式
    D)存儲(chǔ)模式
    正確答案: A
    (9)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成
    A)屬性
    B)關(guān)系
    C)鍵
    D)域
    正確答案: B
    (10)SQL語(yǔ)言又稱(chēng)為
    A)結(jié)構(gòu)化定義語(yǔ)言
    B)結(jié)構(gòu)化控制語(yǔ)言
    C)結(jié)構(gòu)化查詢(xún)語(yǔ)言
    D)結(jié)構(gòu)化操縱語(yǔ)言
    正確答案: C
    (11)下列敘述中正確的是
    A)C語(yǔ)言編譯時(shí)不檢查語(yǔ)法
    B)C語(yǔ)言的子程序有過(guò)程和函數(shù)兩種
    C)C語(yǔ)言的函數(shù)可以嵌套定義
    D)C語(yǔ)言的函數(shù)可以嵌套調(diào)用
    正確答案: D
    (12)在C語(yǔ)言中,退格符是
    A)\n
    B)\t
    C)\f
    D)\b
    正確答案: D
    (13)以下敘述中正確的是
    A)構(gòu)成C程序的基本單位是函數(shù)
    B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
    C)main()函數(shù)必須放在其他函數(shù)之前
    D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
    正確答案: A
    (14)在C程序中,判邏輯值時(shí),用"非0"表示邏輯值"真", 又用"0"表示邏輯值"假"。 在求邏輯值時(shí),用()表示邏輯表達(dá)式值為"真", 又用()表示邏輯表達(dá)式值為"假"。
    A)1 0
    B)0 1
    C)非0 非0
    D)1 1
    正確答案: A
    (15)在C語(yǔ)言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是
    A)%
    B)\
    C)%和\
    D)**
    正確答案: A
    (16)字符型數(shù)據(jù)在機(jī)器中是用ASCII碼表示的,字符"5"和"7"在機(jī)器中表示為
    A)10100011和 01110111
    B)01000101和01100011
    C)00110101和00110111
    D)01100101和01100111
    正確答案: C
    (17)若已定義:int a=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語(yǔ)句的執(zhí)行后
    a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
    A)***a=25,b=13,c=19
    B)***a=26,b=14,c=19
    C)### a=25,b=13,c=19
    D)### a=26,b=14,c=19
    正確答案: C
    (18)若有定義:int a=7;float x=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是
    A)2.500000
    B)2.750000
    C)3.500000
    D)0.000000
    正確答案: A
    (19)下列程序段的輸出結(jié)果是:
    int a=1234;
    float b=123.456;
    double c=12345.54321;
    printf("%2d,%2.1f,%2.1f",a,b,c);
    A)無(wú)輸出
    B)12,123.5,12345.5
    C)1234,123.5,12345.5
    D)1234,123.4,1234.5
    正確答案: C
    (20)若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入 ADescriptor表示回車(chē)),則下面程序的運(yùn)行結(jié)果是#include
    main()
    {char c;
    int v0=1,v1=0,v2=0;
    do{switch(c=getchar())
    {case ′a′:case ′A′:
    case ′e′:case ′E′:
    case ′i′:case ′I′:
    case ′o′:case ′O′:
    case ′u′:case ′U′:v1+=1;
    default:v0+=1;v2+=1; }
     }while(c!=′\n′);
     printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
    A)v0=7,v1=4,v2=7
    B)v0=8,v1=4,v2=8
    C)v0=11,v1=4,v2=11
    D)v0=13,v1=4,v2=12
    正確答案: D
    (21)設(shè)有以下程序段
    int x=0,s=0;
    while(!x!=0)s+=++x;
    printf("%d",s);
    則
    A)運(yùn)行程序段后輸出0
    B)運(yùn)行程序段后輸出1
    C)程序段中的控制表達(dá)式是非法的
    D)程序段執(zhí)行無(wú)限次
    正確答案: B
    (22)有如下程序
    main()
    { float x=2.0,y;
    if(x<0.0)y=0.0;
    else if(x>10.0)y=1.0/x;
    else y=1.0;
    printf("%f\n",y);}
    該程序的輸出結(jié)果是
    A)0.000000
    B)0.250000
    C)0.500000
    D)1.000000
    正確答案: D
    (23)執(zhí)行下面的程序段后,變量k中的值為
    int k=3, s[2];
    s[0]=k; k=s[1]*10;
    A)不定值
    B)33
    C)30
    D)10
    正確答案: A
    (24)以下程序段的描述,正確的是
    x=-1;
    do
    {x=x*x;}
    while(!x);
    A)是死循環(huán)
    B)循環(huán)執(zhí)行兩次
    C)循環(huán)執(zhí)行一次
    D)有語(yǔ)法錯(cuò)誤
    正確答案: C
    (25)以下選項(xiàng)錯(cuò)誤的是
    A)main()
    { int x,y,z;
    x=0;y=x-1;
    z=x+y;}
    B)main()
    { int x,y,z;
    x=0,y=x+1;
    z=x+y;}
    C)main()
    { int x;int
    int y;
    x=0,y=x+1;
    z=x+y;}
    D)main()
    { int x,y,z;
    x=0;y=x+1;
    z=x+y,}
    正確答案: D
    (26)有如下程序段
    int a=14,b=15,x;
    char c=′A′;
    x=(a&&b)&&(c<′B′);
    執(zhí)行該程序段后,x的值為
    A)ture
    B)false
    C)0
    D)1
    正確答案: D
    (27)下列程序執(zhí)行后的輸出結(jié)果是
    void func1(int i);
    void func2(int i);
    char st[]="hello,friend!";
    void func1(int i)
    { printf("%c",st[i]);
    if(i<3){i+=2;func2(i);}}
    void func2(int i)
    { printf("%c",st[i]);
    if(i<3){i+=2;func1(i);}}
    main()
    { int i=0; func1(i); printf("\n");}
    A)hello
    B)hel
    C)hlo
    D)hlm
    正確答案: C
    (28)以下函數(shù)返回a所指數(shù)組中值所在的下標(biāo)值
    fun(int *a,int n)
    { int i,j=0,p;
    p=j;
    for(i=j;i    if(a[i]>a[p])_________;
    return(p);}
    在下劃線處應(yīng)填入的內(nèi)容是
    A)i=p
    B)a[p]=a[i]
    C)p=j
    D)p=I
    正確答案: D
    (29)下面說(shuō)明不正確的是
    A)char a[10]="china";
    B)char a[10],*p=a;p="china"
    C)char *a;a="china";
    D)char a[10],*p;p=a="china"
    正確答案: D
    (30)以下程序的輸出結(jié)果是
    #include
    void prt (int *x, int *y, int *z)
    {printf("%d,%d,%d\n",++*x,++*y,*(z++));}
    main()
    {int a=10,b=40,c=20;
    prt (&a,&b,&c);
    prt (&a,&b,&c);}
    A)11,42, 31
    12,22,41
    B)11,41,20
    12,42,20
    C)11,21,40
    11,21,21
    D)11,41,21
    12,42,22
    正確答案: B
    (31)若有函數(shù)內(nèi)部說(shuō)明:int a[3][4];則數(shù)組a中各元素
    A)可在程序的運(yùn)行階段得到初值0
    B)可在程序的編譯階段得到初值0
    C)不能得到確定的初值
    D)可在程序的編譯或運(yùn)行階段得到初值0
    正確答案: C
    (32)有如下程序
    main()
    { char s[]="ABCD", *p;
    for(p=s+1; p    該程序的輸出結(jié)果是
    A)ABCD
    BCD
    CD
    D
    B)A
    B
    C
    D
    C)B
    C
    D
    D)BCD
    CD
    D
    (33)下列程序執(zhí)行后的輸出結(jié)果是
    main()
    { int a[3][3], *p,i;
    p=&a[0][0];
    for(i=1; i<9; i++)p[i]=i+1;
    printf("%d\n",a[1][2]);}
    A)3
    B)6
    C)9
    D)隨機(jī)數(shù)
    正確答案: B
    (34)定義如下變量和數(shù)組:
    int k;
    int a[3][3]={9,8,7,6,5,4,3,2,1};
    則下面語(yǔ)句的輸出結(jié)果是
    for(k=0;k<3;k++)printf("%d",a[k][k]);
    A)7 5 3
    B)9 5 1
    C)9 6 3
    D)7 4 1
    正確答案: B
    (35)下列程序執(zhí)行后的輸出結(jié)果是
    main()
    { char arr[2][4];
    strcpy(arr,"you"); strcpy(arr[1],"me");
    arr[0][3]=′&′;
    printf("%s\n",arr);}
    A)you&me
    B)you
    C)me
    D)err
    正確答案: A
    (36)有以下函數(shù)
    char fun(char *p)
    {return p;}
    該函數(shù)的返回值是
    A)無(wú)確切的值
    B)形參p中存放的地址值
    C)一個(gè)臨時(shí)存儲(chǔ)單元的地址
    D)形參p自身的地址值
    正確答案: B
    (37)以下正確的說(shuō)法是
    A)定義函數(shù)時(shí),形參的類(lèi)型說(shuō)明可以放在函數(shù)體內(nèi)
    B)return后邊的值不能為表達(dá)式
    C)如果函數(shù)值的類(lèi)型與返回值類(lèi)型不一致,以函數(shù)值類(lèi)型為準(zhǔn)
    D)如果形參與實(shí)參類(lèi)型不一致,以實(shí)參類(lèi)型為準(zhǔn)
    正確答案: C
    (38)有以下程序
    int f(int n)
    { if(n==1)return 1;
    else return f(n-1)+1;}
    main()
    { int i,j=0;
    for(i=1;i<3;i++)j+=f(i);
    printf("%d\n",j);}
    程序運(yùn)行后的輸出結(jié)果是
    A)4
    B)3
    C)2
    D)1
    正確答案: B
    (39)設(shè)有如下定義:
    struck sk
    { int a;
    float b;
    } data;
    int *p;
    若要使P指向data中的a域,正確的賦值語(yǔ)句是
    A)p=&a;
    B)p=data.a;
    C)p=&data.a;
    D)*p=data.a;
    正確答案: C
    (40)以下對(duì)結(jié)構(gòu)體類(lèi)型變量的定義中,不正確的是
    A)typedef struct aa
    { int n;
    float m;
    }AA;
    AA tdl;
    B)#define AA struct aa
    AA{ int n;
    float m;
    } tdl;
    C)struct
    { int n;
    float m;
    } aa;
    struct aa tdl;
    D)struct
    { int n;
    float m;
    } tdl;
    正確答案: C
    (41)若說(shuō)明int *p,n;則通過(guò)語(yǔ)句scanf能夠正確讀入數(shù)據(jù)的程序段是
    A)p=&n;scanf("%d",&p);
    B)p=&n;scanf("%d",*p);
    C)scanf("%d",n);
    D)p=&n;scanf("%d",p);
    正確答案: D
    (42) 在下述程序中,判斷i>j共執(zhí)行的次數(shù)是
    main()
    {int i=0, j=10, k=2, s=0;
    for (;;)
    {i+=k;
    if(i>j)
    {printf("%d",s);
    break;
    }s+=i;
    }
    }
    A)4
    B)7
    C)5
    D)6
    正確答案: D (43)以下4個(gè)選項(xiàng)中,不能看做一條語(yǔ)句的是
    A);
    B)a=5,b=2.5,c=3.6;
    C)if(a<5);
    D)if(b!=5)x=2;y=6;
    正確答案: D
    (44)在C語(yǔ)言中,變量的隱含存儲(chǔ)類(lèi)別是
    A)auto
    B)static
    C)extern
    D)無(wú)存儲(chǔ)類(lèi)別
    正確答案: A
    (45)若有以下程序
    #include
    void f(int n);
    main()
    { void f(int n);
    f(5);
    }
    void f(int n)
    { printf("%d\n",n); }
    則以下敘述中不正確的是
    A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說(shuō)明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
    B)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說(shuō)明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f
    C)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說(shuō)明
    D)函數(shù)f無(wú)返回值,所以可用void將其類(lèi)型定義為無(wú)返回值型
    正確答案: C
    (46)若有下面的說(shuō)明和定義
    struct test
    { int ml; char m2; float m3;
    union uu {char ul[5]; int u2[2];} ua;
    } myaa;
    則sizeof(struct test )的值是
    A)12
    B)16
    C)14
    D)9
    正確答案: A
    (47)以下程序的輸出是
    struct st
    { int x; int *y;} *p;
    int dt[4]={ 10,20,30,40 };
    struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};
    main()
    { p=aa;
    printf("%d\n",++(p->x));
    }
    A)10
    B)11
    C)51
    D)60
    正確答案: C
    (48)若有運(yùn)算符<<,sizeof,^,&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是
    A)sizeof,&=,<<,^
    B)sizeof,<<,^,&=
    C)^,<<,sizeof,&=
    D)<<,^,&=,sizeof
    正確答案: B
    (49)函數(shù)fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是
    A)文件開(kāi)始
    B)文件末尾
    C)文件當(dāng)前位置
    D)以上都不對(duì)
    正確答案: B
    (50)有以下程序
    #include
    main()
    { FILE *fp; int i=20,j=30,k,n;
    fp=fopen("d1.dat","w");
    fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
    fclose(fp);
    fp=fopen("d1.dat","r");
    fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
    fclose(fp);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)20 30
    B)20 50
    C)30 50
    D)30 20
    正確答案: A
    二 、填空題
    (1)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于 【1】 。
    正確答案: 1.(存儲(chǔ)結(jié)構(gòu))
    (2)在面向?qū)ο蠓椒ㄖ?,?lèi)之間共享屬性和操作的機(jī)制稱(chēng)為 【2】 。
    正確答案: 1.(繼承)
    (3)耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中 【3】 反映了模塊內(nèi)各成分之間的聯(lián)系。
    正確答案: 1.(內(nèi)聚)
    (4)一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于 【4】 的聯(lián)系。
    正確答案: 1.(一對(duì)多或1:N)
    (5)數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、 【5】 、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
    正確答案: 1.(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)
    (6)以下程序的運(yùn)行結(jié)果是【6】。
    #define MAX (a,b)(a>b?a:b)+1
    main ()
    { int i=6,j=8,k;
    printf ("%d\n",MAX(i,j));
    }
    正確答案: 1.(9)
    (7)以下程序的功能是從健盤(pán)輸入若干學(xué)生的成績(jī),并輸出成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請(qǐng)?zhí)羁铡?BR>    main ()
    {float x,amax,amin;
    scanf ("%f",&x);
    amax=x;
    amin=x;
    while (【7】)
    {if (x>amax)
    amax=x;
    else
    if【8】
    amin=x;
     else scanf ("%f",&x);
    }
    printf ("\n amax=%f\n amin=%f\n",amax,amin);
    }
    正確答案: 1.(x>0) 2.(x
    (8)在對(duì)文件操作的過(guò)程中,若要求文件的位置指針回到文件的開(kāi)始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【9】。
    正確答案: 1.(rewind()或fseek())
    (9)在計(jì)算機(jī)中,字符的比較是對(duì)它們的【10】進(jìn)行比較。
    正確答案: 1.(ASCII碼)
    (10)在內(nèi)存中,存儲(chǔ)字符′x′要占用1個(gè)字節(jié),存儲(chǔ)字符串″X(qián)″要占用【11】個(gè)字節(jié)。
    正確答案: 1.(2)
    (11)下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁铡?BR>    main()
    {int a=9, b=2;
    float x=【12】, y=1.1,z;
    z=a/2+b*x/y+1/2;
    printf("%5.2f\n", z );
    }
    正確答案: 1.(6.6)
    (12)設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類(lèi)型;請(qǐng)寫(xiě)出fun函數(shù)的首部【13】。要求形參名為b。
    main()
    {double s[10][22];
    int n; ┆
    ┆
    fun(s);
    ┆
    }
    正確答案: 1.(void fun(double b[][22]))
    (13)下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)?zhí)羁铡?BR>    main()
    {int i, x, y=1;
    scanf("%d", &x);
    for(i=2; i<=x/2; i++)
    if【14】{ y=0; break;}
    printf("%d\n", y);
    }
    正確答案: 1.((x%i==0))
    (14)下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?BR>    #include
    main()
    { int i,j,【15】;char str[]={"1234567"};
    for(i=0,j=strlen(str)【16】;i    {k=str[i];str[i]=str[j];str[j]=k;}
    printf("%s\n",str);
    }
    正確答案: 1.(k) 2.(-1)
    (15)以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁铡?BR>    main()
    {char b[17]={"0123456789ABCDEF"};
    int c[64],d,i=0,base=16;
    long n;
    printf("Enter a number:\n");scanf("%ld",&n);
    do{c[i]=【17】;i++;n=n/base;}
    while(n!=0);
    printf("Transmite new base:\n");
    for(--i;i>=0;--i)
    {d=c[i];printf("%c",b【18】);}
    printf("\n");
    }
    正確答案: 1.(n%base) 2.([d])
    (16)若給fun函數(shù)的形參s傳送字符串:"]]6354abcc" (其中]表示空格字符),則函數(shù)的返回值是【19】。
    #include
    long fun(char s[])
    {long n;int sign;
    for(;isspace(*s);s++);
    sign=(*s==′-′)?-1:1;
    if(*s==′+′||*s==′-′)s++;
    for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);
    return sign*n;
    }
    正確答案: 1.(6354)
    (17)設(shè)有定義"struct {int a; float b; char c;} abc, *p_abc=&abc;",則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【20】a。
    正確答案: 1.(->)