江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
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