計算機(jī)等級考試二級C語言模擬試題(8)

字號:

一、選擇題(每題2分,共計70分)
    1.循環(huán)鏈表的主要優(yōu)點(diǎn)是
    A)不再需要頭指針了
    B)從表中任一結(jié)點(diǎn)出發(fā)都能訪問到整個鏈表
    C)在進(jìn)行插入、刪除運(yùn)算時,能更好的保證鏈表不斷開
    D)已知某個結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件
    2.棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
    A)ABCED B)DCBEA
    C)DBCEA D)CDABE
    3.n個頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有
    A)n-1 B)n(n-1)
    C)n D)n+1
    4.在結(jié)構(gòu)化程序設(shè)計思想提出之前,在程序設(shè)計中曾強(qiáng)調(diào)程序的效率,現(xiàn)在,與程序的效率相比,人們更重視程序的
    A)安全性 B)一致性
    C)可理解性 D)合理性 來源:www.examda.com
    5.模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊的
    A)抽象和信息隱蔽 B)局部化和封裝化
    C)內(nèi)聚性和耦合性 D)激活機(jī)制和控制方法
    6.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成
    A)定義、開發(fā)、運(yùn)行維護(hù)
    B)設(shè)計階段、編程階段、測試階段
    C)總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試
    D)需求分析、功能定義、系統(tǒng)設(shè)計
    7.在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是
    A)路徑的集合 B)循環(huán)的集合
    C)目標(biāo)的集合 D)地址的集合
    8.在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有
    A)特定的數(shù)據(jù)模型 B)數(shù)據(jù)無冗余
    C)數(shù)據(jù)可共享 D)專門的數(shù)據(jù)管理軟件
    9.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是
    A)概念設(shè)計和邏輯設(shè)計
    B)模式設(shè)計和內(nèi)模式設(shè)計
    C)內(nèi)模式設(shè)計和物理設(shè)計
    D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
    10.實體是信息世界中廣泛使用的一個術(shù)語,它用于表示
    A)有生命的事物 B)無生命的事物
    C)實際存在的事物 D)一切事物11.C語言中提供的關(guān)鍵字是
    A)swicth B)cher
    C)Case D)default
    12.以下有4組用戶標(biāo)識符,其中合法的一組是
    A)For-subCase B)4dDOSize
    C)f2_G3Ifabc D)WORDvoiddefine
    13.若有定義:int a=8,b=5,c;,執(zhí)行語句c=a/b+0.4;后,c的值為
    A)1.4 B)1
    C)2.0 D)2
    14.已知各變量的類型如下
    int i=8,k,a,b;
    unsigned long w=5;
    double x=1.42,y=5.2;
    則以下符合C語言語法的表達(dá)式是
    A)a+=a-=(b=4)*(a=3) B)a=a*3+2
    C)x%(-3) D)y=float(i)
    15.設(shè)i是int型變量,f是float型變量,用下面的語句給這兩個變量輸入值:scanf("i=%d,f=%f",&i,&f); 為了把100和765.12分別賦給i和f,則正確的輸入為
    A)100 765.12
    B)i=100,f=765.12
    C)100 765.12
    D)x=100 ,y=765.12
    16.下列程序的輸出結(jié)果是
    main()
    {
    int a=2;a%=4-1;
    printf("%d",a);a+=a*=a-=a*=3;
    printf("\n%d",a);
    }
    A)2,12 B)-1,12
    C)1,0 D)2,0
    17.若有以下程序
    main()
    {
    int k=2,i=2,m;
    m=(k+=i*=k);printf("%d,%d\n",m,i);
    }
    執(zhí)行后的輸出結(jié)果是
    A)8,6 B)8,3
    C)6,4 D)7,4
    18.以下不正確的if語句形式是
    A)if(x>y&&x!=y);
    B)if(x==y)x+=y;
    C)if(x!=y)scanf("%d",&x)else scanf("%d",&y);
    D)if(x
    19.以下程序中循環(huán)體總的執(zhí)行次數(shù)是
    int i,j;
    for(i=6;i>1;i--)
    for(j=0;j{……}
    A)20 B)261
    C)15 D)25
    20.對于下面的程序,說法正確的是
    main()
    {
    int x=3,y=4,z=2;
    if(x=y+z)printf("x=y+z");
    else printf("x!=y+z");
    }
    A)不能通過編譯 B)輸出6
    C)輸出x!=y+z D)輸出x=y+z
    21.下列程序的輸出結(jié)果是
    main()
    {
    int a[3],i,j,k=2;
    for(i=0;i<3;i++)a[i]=i;
    for(i=0;ifor(j=0;ja[j]=a[i];
    printf("%d\n ",a[2]);
    }
    A)2 B)3
    C)1 D)0
    22.標(biāo)準(zhǔn)庫函數(shù)fgets(buf,n,fp)的功能是
    A)從fp所指向的文件中讀取長度為n的字符串存入緩沖區(qū)buf
    B)從fp所指向的文件中讀取長度不超過n-1的字符串存入緩沖區(qū)buf
    C)從fp所指向的文件中讀取n個字符串存入緩沖區(qū)buf
    D)從fp所指向的文件中讀取長度為n-1的字符串存入緩沖區(qū)buf
    23.如下程序的執(zhí)行結(jié)果是
    main()
    {
    static int a[]={1,7,3,9,5,11};
    int *p=a;
    *(p+3)+=4;
    printf("%d,%d",*p,*(p+3));
    }
    A)1,13 B)1,16
    C)3,13 D)1,14
    24.下面程序的輸出是
    int b=3;
    fun(int *k)
    {
    int b=2;
    b=*(k++)*b;
    return(b);
    }
    main()
    {
    int a[]={11,12,13,14,15,16};
    b=fun(&a[1])*b;
    printf("%d\n",b);
    }
    A)24 B)72
    C)11 D)33
    25.執(zhí)行下列程序段,結(jié)果是
    int x=40;
    char y=′C′;
    int n;
    n=(x&0xff)&&(y>′B′);
    printf("%d\n",n);
    A)0 B)1
    C)2 D)326.以下能對二維數(shù)組a進(jìn)行正確初始化的語句是
    A)int a[2][]={{1,0,1},{5,2,3}};
    B)int a[][3]={{1,2,3},{4,5,6}};
    C)int a[2][4]={{1,2,3},{4,5},{6}};
    D)int a[][]={{1,0,1}{},{1,1}};
    27.以下程序的執(zhí)行結(jié)果是
    union un
    {
    int i;
    char c[2];
    }
    main()
    {
    union un x;
    x.c[0]=10;
    x.c[1]=1;
    printf("%d",x.i);
    }
    A)266 B)11
    C)265 D)138 來源:www.examda.com
    28.與 y=(x>0?1:x<0?-1:0);的功能相同的if語句是
    A)if (x>0)y=1;
    else if(x<0)y=-1;
    else y=0;
    B)if(x)
    if(x>0)y=1;
    else if(x<0)y=-1;
    C)y=-1
    if(x)
    if(x>0)y=1;
    else if(x==0)y=0;
    else y=-1;
    D)y=0;
    if(x>=0)
    if(x>0)y=1;else y=-1;
    29.下面程序的執(zhí)行結(jié)果是
    #define SUM(X) X*X
    main()
    {
    int a=6;int i=1,j=2;
    a+=SUM(i+j)/SUM(i+j);
    printf("%d\n",a);
    }
    A)15 B)2
    C)7 D)0
    30.下列程序段的輸出結(jié)果是
    void fun(int *x, int *y)
    { printf("%d %d", *x, *y); *x=3; *y=4;}
    main()
    {
    int x=1,y=2;
    fun(&y,&x);
    printf("%d %d",x, y);
    }
    A)2 1 4 3 B)1 2 1 2
    C)1 2 3 4 D)2 1 1 2 31.下列函數(shù)的功能是將字符串ss中的特定位置上的字母實行轉(zhuǎn)化(若該位置上不是字母,則不轉(zhuǎn)換)。
    #include
    #include
    void fun ( char *ss)
    {
    int i;
    for(i=0;ss[i]!=′\0′;i++){
    if(i%2==1 && ss[i]>=′a′ && ss[i]<=′z′)
    ss[i]=ss[i]-32;
    }
    }
    main()
    {
    char tt[51];
    clrscr();
    printf("Please enter an character string within 50 characters:\n");
    gets(tt);
    printf("\n\nAfter changing,the string\n %s",tt);
    fun(tt);
    printf("\nbecomes\n \%s",tt);
    }
    若輸入abc4Efg,則應(yīng)輸出
    A)aBc4Efg B)abc4Efg
    C)ABC4EFG D)abc4dfg
    32.下面程序的輸出結(jié)果是
    fun(int x)
    {
    int a=3;
    a*=x;
    return a;
    }
    main()
    {
    int x=2,y=1,n;
    n=fun(x);
    n=fun(y);
    printf("%d\n",n);
    }
    A)2 B)4
    C)3 D)8
    33.下列程序的輸出結(jié)果是
    main()
    {
    char *str="12123434";
    int x1=0,x2=0,x3=0,x4=0,i;
    for(i=0;str[i]!=′\0′;i++)
    switch (str[i])
    {
    case′1′: x4++;
    case′2′: x3++;
    case′3′: x2++;
    case′4′: x1++;
    }
    printf("%d,%d,%d,%d\n",x1,x2,x3,x4);
    }
    A)8,6,4,1 B)8,6,3,2
    C)8,8,4,1 D)8,6,4,2
    34.以下程序的結(jié)果是
    main()
    {
    char *p="abcdefgh",*r;
    long *q;
    q=(long*)p;
    q++;
    r=(char*)q;
    printf("%s\n",r);
    }
    A)defg B)cdef
    C)ghab D)efgh
    35.下列函數(shù)的功能是計算并輸出下列多項式值:
    Sn=∑ni=0(2.02*i-1-1.02*i)
    例如,若主函數(shù)從鍵盤給n輸入8后,則輸出為S=0.662872。注意:n的值要求大于1但不大于100。在劃線處應(yīng)填入的選項是
    #include
    double fun(int n)
    {
    int i;
    double s=0.0;
    for(i=1;i<=n;i++)
    s=s+;
    return s;
    }
    main()
    {
    int n; double s;
    printf("\nInput n: "); scanf("%d ",&n);
    s=fun(n);
    printf("\ns=%f\n ",s);
    }
    A)1.0/(2*i-1)-1.0/(2*i) B)1.0/(2*i-1)
    C)1.0/(2*i) D)1.0/(2*i)-1.0/(2*i-1)
    二、填空題(每空2分,共計30分)
    1.常用的黑箱測試有等價分類法、 【1】 、因果圖法和錯誤推測法4種。
    輸入答案,中間不含空格:
    2.測試的目的是暴露錯誤,評價程序的可靠性;而 【2】 的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
    輸入答案,中間不含空格:
    3.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、 【3】 維護(hù)和預(yù)防性維護(hù)。
    輸入答案,中間不含空格:
    4.在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【4】 。
    輸入答案,中間不含空格:
    5.關(guān)鍵字ASC和DESC分別表示 【5】 的含義。
    輸入答案,中間不含空格:
    6.以下程序執(zhí)行結(jié)果為 【6】 。
    main()
    {
    int i,j,k;
    for(i=0,j=5;i<=j;i++,j--);
    printf("k=%d",k=i+j);
    }
    輸入答案,中間不含空格:
    7.設(shè)有以下變量定義,并已賦確定的值
    char w; int x; float y; double z;
    則表達(dá)式w*x+z-y所求得的數(shù)據(jù)類型為 【7】 。 來源:www.examda.com
    輸入答案,中間不含空格:
    8.以下程序的輸出結(jié)果是 【8】 。
    main()
    {
    char s[]="abcdef";
    s[3]=′\0′;
    printf("%s\n",s);
    }
    輸入答案,中間不含空格:
    9.以下程序運(yùn)行后的輸出結(jié)果是 【9】 。
    void fun(int x,int y)
    {
    x=x+y;y=x-y;x=x-y;
    printf("%d,%d, ",x,y);
    }
    main()
    {
    int x=2,y=3;
    fun(x,y);
    printf("%d,%d\n",x,y);
    }
    輸入答案,中間不含空格:
    10.以下程序的功能是從鍵盤上輸入若干個字符(以回車符作為結(jié)束)組成一個字符串存入一個字符數(shù)組,然后輸出該字符數(shù)組中的字符串。請?zhí)羁铡?BR>    #include
    #include
    main()
    {
    char str[81], *sptr;
    int i;
    for(i=0; i<80; i++)
    { str[i]=getchar(); if (str[i] == ′\n′)break; }
    str[i] = 【10】 ; sptr=str;
    while(*sptr)putchar(*sptr 【11】 );
    }
    輸入答案,中間不含空格: 11.設(shè)有定義“#define F(N)2*N”,則表達(dá)式F(2+3)的值是 【12】 。
    輸入答案,中間不含空格:
    12.若在程序中用到“putchar()”函數(shù)時,應(yīng)在程序開頭寫上包含命令 【13】 ,若在程序中用到"strlen()"函數(shù)時,應(yīng)在程序開頭寫上包含命令 【14】 。
    輸入答案,中間不含空格:
    13.下面的程序用來統(tǒng)計文件中字符的個數(shù),請?zhí)羁铡?BR>    #include
    main()
    {
    FILE *fp;
    long num=0;
    if ((fp=fopen("fname.dat", "r"))== NULL)
    { printf("Cant't open file!\n"); exit(0); }
    while ( 【15】 ){ fgetc(fp); num++; }
    printf("num=%ld\n", num);
    fclose(fp);
    }