江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2015年3月全國計算機二級C語言選擇第2套

1.下列敘述中正確的是

 

A.算法復雜度是指算法控制結構的復雜程度

 

B.算法復雜度是指設計算法的難度

 

C.算法的時間復雜度是指設計算法的工作量

 

D.算法的復雜度包括時間復雜度與空間復雜度

 

2.設循環隊列的存儲空間為Q(1:50),初始狀態為front=rear=50。現經過一系列入隊與退隊操作后,front=rear=1,此后又正常地插入了兩個元素。最后該隊列中的元素個數為

 

A.2

 

B.1

 

C.3

 

D.52

 

3.一棵完全二叉樹共有360個結點,則在該二叉樹中度為1的結點個數為

 

A.0

 

B.1

 

C.180

 

D.181

 

4.設某二叉樹的后序序列與中序序列均為ABCDEFGH,則該二叉樹的前序序列為

 

A.HGFEDCBA

 

B.ABCDEFGH

 

C.EFGHABCD

 

D.DCBAHGFE

 

5.在排序過程中,每一次數據元素的移動會產生新的逆序的排序方法是

 

A.快速排序

 

B.簡單插入排序

 

C.冒泡排序

 

D.以上說法均不正確

 

6.下面對軟件工程描述正確的是

 

A.軟件工程是用工程、科學和數學的原則與方法研制、維護計算機軟件的有關技術及管理方法

 

 

B.軟件工程的三要素是方法、工具和進程

 

C.軟件工程是用于軟件的定義、開發和維護的方法

 

D.軟件工程是為了解決軟件生產率問題

 

7.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是

 

A.內聚性是指模塊間互相連接的緊密程度

 

B.提高耦合性降低內聚性有利于提高模塊的獨立性

 

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

 

D.降低耦合性提高內聚性有利于提高模塊的獨立性

 

8.下列關于數據庫系統的敘述中正確的是

 

A.數據庫系統中數據的一致性是指數據類型一致

 

B.數據庫系統避免了一切冗余

 

C.數據庫系統減少了數據冗余

 

D.數據庫系統比文件系統能管理更多的數據

 

9.一名演員可以出演多部電影,則實體演員和電影之間的聯系是

 

A.多對多

 

B.一對一

 

C.多對一 

 

D.一對多

 

10.

 

A.表S中所有學生都選修了的課程的課號

 

B.全部課程的課號

 

C.成績不小于80的學生的學號

 

D.所選人數較多的課程的課號

 

11.有以下程序

#include   <stdio.h>

main()

{   int  a=2,b=3,c=4;

    a*=16 +(b++) - (++c);

    printf("%d \n",a );

 

 

}

 

程序運行后的輸出結果是

 

A.15

 

B.30

 

C.28

 

D.14

 

12.以下敘述正確的是

 

A.通過分解成簡單子任務,可以完成任何復雜任務

 

B.每個結構化程序都要包含全部三種基本結構

 

C.C語言程序的所有自定義函數只能寫在同一個源文件中

 

D.C語言程序允許使用多個main函數,只要它們的函數體各不相同即可

 

13.以下選項中,合法的C語言實數是

 

A.E4.8

 

B.4.3e0.2

 

C..4e0

 

D.0.29E

 

14.設a,b,c已定義為整型變量,以下選項中不正確的賦值表達式是

 

A.a = 3 = (b = 2) = 1;

 

B.a = (b = 0) * c + 1;

 

C.a = (b = 0) * c + 1;

 

D.a = 10 % (b = c = 2.0);

 

15.若變量已正確定義并賦初值,以下合法的賦值語句是

 

A.k=(m==n);

 

B.k=-m-n

 

C.k=int(m+n);

 

D.k=m*n=1;

 

16.以下關于邏輯運算符兩側運算對象的敘述中正確的是

 

A.只能是整數0或1

 

B.只能是整數0或非0整數

 

C.可以是結構體類型的數據

 

D.可以是任意合法的表達式

 

17.以下選項中錯誤的是

 

 

A.printf("%s\n", 's');

 

B.printf("%d %c\n", 's','s');

 

C.printf("%c\n", 's'- 32);

 

D.printf("%c\n", 65);

 

18.若有定義:char  ch;當執行以下循環時從鍵盤輸入abcde<回車>,將輸出*的個數是

          while((ch=getchar())=='e')  printf("*");

 

 

A.4

 

B.0

 

C.5

 

D.1

 

19.有以下程序

#include  <stdio.h>

main()

{ int  x=10,y=11,z=12;

  if( y< z )

        x=y; y=z; z=x;

  printf("x=%d y=%d z=%d\n", x, y, z );

 

 

}

程序運行后的輸出結果是

 

 

A.x=11 y=12 z=11

 

B.x=10 y=10 z=10

 

C.x=11 y=11 z=10

 

D.x=10 y=10 z=12

 

20.對于if(表達式)語句,以下敘述正確的是

 

 

A."表達式"不能是變量

 

B."表達式"的值只能是整數值

 

C."表達式"可以是常量

 

D."表達式"中不可以出現字符型變量的比較

 

21.有以下程序

#include   <stdio.h>

main( )

{  char  ch = '1';

   while (ch < '9')

   {

        printf("%d", ch - '0');

        ch++;

   }

}

程序運行后的輸出結果是

 

 

A.12345678  

 

B.01234567

 

C.0

 

D.1

 

22.以下與表達式(!x==0) 的邏輯值不等價的選項是

 

 

A.x==1

 

B.x

 

C.x!=0

 

D.x>0 || x<0

 

23.以下敘述正確的是

 

 

A.表達式9-'0'的值是數值 9

 

B.表達式'A'+32的值是字母AASCII

 

C.表達式'a'-32的值是字母aASCII

 

D.表達式9+'0'的值是字符9ASCII

 

24.有以下程序

    #include <stdio.h>

    int  fun (int  x, int  y )

    {  if (x!=y)  return  ( (x+y) /2 );

           else      return  ( x );

    }

    main()

    {  int  a=4, b=5, c=6;

       printf(  "%d\n" , fun(2*a, fun( b, c ) )  );

    }

 

 

 

程序運行后的輸出結果是

 

A.3

 

B.6

 

C.8

 

D.12

 

25.有以下程序

    #include <stdio.h>

    int f( int x,int y)

    { return((y-x)*x); }

    main()

    { int a=3,b=4,c=5,d;

      d=f(f(a,b),f(a,c));

      printf("%d\n",d);

    }

 

 

 

程序運行后的輸出結果是

 

A.8

 

B.10

 

C.9

 

D.7

 

26.有以下程序

#include  <stdio.h>

void  fun( int  a[ ], int  n, int  flag )

{  int  i=0,j, t;

   for ( i=0; i<n-1; i++ )

      for ( j=i+1; j<n; j++ )

        if ( flag )

 

        {   if ( a[i] < a[j] )

            {  t = a[i];  a[i] = a[j];  a[j] = t;  }

        }

       else

       {   if ( a[i] > a[j] )

           {  t = a[i];  a[i] = a[j];  a[j] = t;  }

       }

}

main( )

{  int  c[10]={ 7,9,10,8,3,5,1,6,2,4 },i;

   fun( c, 4, 1 );

   fun( c+4, 6, 0 );

   for ( i=0;i<10; i++ )    printf( "%d,", c[i] );

   printf("\n");

}

 

 

程序運行后的輸出結果是

 

A.7,8,9,10,6,5,4,3,2,1,

 

B.10,9,8,7,6,5,4,3,2,1,

 

C.10,9,8,7,1,2,3,4,5,6,

 

D.1,2,3,4,5,6,7,8,9,10,

 

27.有以下程序

#include  <stdio.h>

int  m1(int  x, int  y )

{  if( x<= y ) return 2*x+1;

   else  return   y;

}

int  m2(int  x, int  y )

{  if( x<= y ) return 2*y+1;

   else  return   x;

}

main()

{  int  i,  t1=10, t2=0;

   for( i=1; i<=4; i++ )

   {  t1=m1( i,t1 );    t2=m2( i,t2 ); }

   printf("t1=%d   t2=%d \n", t1, t2 );

 

 

}

程序運行后的輸出結果是

 

 

A.t1=9    t2=4

 

B.t1=4    t2=9

 

C.t1=9    t2=9

 

D.t1=1    t2=4

 

28.有以下程序

#include  <stdio.h>

void  f1(char  *a, char  b ){  char  c; c=*a; *a=b;  b=c; }

void  f2(char   a, char  b ){  char  c; c=a;   a=b;  b=c; }

void  f3(char  *a, char *b ){  char  c; c=*a; *a=*b; *b=c; }

main()

{   char  t1, t2;

    t1 = 'A'; t2 = 'B'; f3( &t1,&t2 ); putchar(t1); putchar(t2);

    t1 = 'A'; t2 = 'B'; f2(  t1, t2 ); putchar(t1); putchar(t2);

    t1 = 'A'; t2 = 'B'; f1( &t1, t2 ); putchar(t1); putchar(t2);

    printf("\n");

}

 

 

程序運行后的輸出結果是

 

A.ABBABB

 

B.BAABBB

 

C.BABABA

 

D.BABAAB

 

29.以下敘述正確的是

 

A.char  c1, *c2, *c3[10]; 是合法的變量定義語句

 

B.數組說明符的一對方括號中不能使用表達式

 

C.數組元素下標可以是非整數

 

D.若有定義 char array[4]; 則語句 printf("%c", array["3"]);是合法的

 

30.有以下程序

#include   <stdio.h>

main( )

{  int  a[3][3]={{1,3,5,},

                 {7,9,11,},

                 {13,15,17}};

   int  (*p)[3]=a,  i,j,n=0;

   for(i=0;i<3;i++)

      for(j=0;j<2;j++)

        n+=*(*(p+i)+j);

   printf("%d\n",n); 

 

 

}

 

程序運行后的輸出結果是

 

A.54

 

B.60

 

C.36

 

D.48

 

31.設有定義:

    char  p[]={'1', '2', '3'},*q=p;

 

以下不能計算出一個char型數據所占字節數的表達式是

 

 

A.sizeof(*q)

 

B.sizeof(char)

 

C.sizeof(p)

 

D.sizeof(p[0])

 

32.有以下程序

     #include <stdio.h>

     fun(int  x, int  y)

     { static int  m=0, i=2;

       i+=m+1;    m=i+x+y;    return m;

     }

     main()

     { int  j=1, m=1, k;

       k=fun(j,m);    printf("%d,",k);

       k=fun(j,m);    printf("%d\n",k);

     }

 

 

 

執行后的輸出結果是

 

A.5, 11

 

B.5, 5

 

C.11, 11

 

D.11, 5

 

33.有以下程序

#include   <stdio.h>

int  f( int  x[], int  n )

{  if ( n> 1)

      return  x[n-1]+ f(x, n-1)*10;

   else

      return  x[0];

}

main( )

{  int  z[3] = {1,2,3}, y;

   y = f(z,3);

   printf( "%d\n", y );

}

 

 

程序運行后的輸出結果是

 

A.321

 

B.123

 

C.1

 

D.3

 

34.有以下程序

#include  <stdio.h>

#include  <string.h>

main()

{   char  ss[10]="12345";

    strcat( ss, "6789" );

    gets( ss );

    printf("%s\n", ss );

 

 

}

 

執行時輸入:ABC<回車>,則輸出結果是

 

A.123456ABC

 

B.ABC9

 

C.ABC

 

D.ABC456789

 

35.有以下程序

#include   <stdio.h>

#include   <string.h>

main()

{

    printf("%d\n", strlen("0\t\n\0C011\1"));

 

 

}

 

程序運行后的輸出結果是

 

A.3

 

B.13

 

C.1

 

D.0

 

36.有以下程序

#include   <stdio.h>

int show( char  *str )

{  while (*str)

   {   putchar(*str+1);

       str++;

   }

   return *str+1;

}

main( )

{

    printf("%d\n", show("ABCD"));

 

 

}

 

程序運行后的輸出結果是

 

A.ABCD0

 

B.BCDE0

 

C.BCDE1

 

D.ABCD1

 

37.有以下程序

#include   <stdio.h>

void my_put()

{  char  ch;

   ch = getchar();

   if (ch != 'C')  my_put();

   putchar(ch);

}

main( )

{

    my_put();

}

 

 

執行時輸入ABC<回車>則輸出結果是

 

A.ABC

 

B.CBA

 

C.AB

 

D.ABCC

 

38.有以下程序

#include   <stdio.h>

void fun(int  n)

{  static int  x[3]={1,2,3};

   int  k;

   for( k=0; k<3; k++ ) x[k] += x[k]-n;

   for( k=0; k<3; k++ ) printf("%d,",x[k]);

}

main()

{   fun(0);  fun(1);   }

 

 

程序運行后的輸出結果是

 

A.1,2,3,0,1,2,

 

B.2,4,6,1,3,5,

 

C.2,4,6,3,7,11,

 

D.2,4,6,4,8,12,

 

39.有以下定義

    struct  person  { char  name[10]; int  age; };

    struct  person  class[10]={ "Johu",17,

                                "Paul",19,

                                "Mary",18,

                                "Adam",16,

                               };

 

 

能輸出字母M的語句是

 

A.printf("%c \n", class[2].name[0] );

 

B.printf("%c \n", class[3].name[0] );

 

C.printf("%c \n", class[3].name[1] );

 

D.printf("%c \n", class[2].name[1] );

 

40.若要通過位運算使整型變量a中的各位數字全部清零,以下選項正確的是

 

A.a=a^0;

 

B.a=a|0;

 

C.a=a&0;

 

D.a=!a;

 

1.D  2.A  3.B  4.A  5.A  6.A  7.D  8.C  9.A  10.A  11.C  12.A  13.C  14.A  15.A  16.D  17.A  18.B  19.A  20.C  21.A  22.A  23.D  24.B  25.C  26.C  27.A  28.B  29.A  30.D  31.C  32.A  33.B  34.C  35.A  36.C  37.B  38.C  39.A  40.C 

彩票30选5开奖结果