最新真实全国二级C选择题真题第1套

1.下列叙述中正确的是

 

A.所谓算法就是计算方法

 

B.程序可以作为算法的一种描述方法

 

C.算法设计只需考虑得到计算结果

 

D.算法设计可以忽略算法的运算时间

 

2.下列各序列中不是堆的是

 

A.(91,85,53,36,47,30,24,12)   

 

B.(91,85,53,47,36,30,24,12)

 

C.(47,91,53,85,30,12,24,36) 

 

D.(91,85,53,47,30,12,24,36)

 

3.深度为5的完全二叉树的结点数不可能是

 

A.15

 

B.16

 

C.17

 

D.18

 

4.

 

 

 

A.ABDEGCFH

 

B.DBGEAFHC

 

C.DGEBHFCA

 

D.ABCDEFGH

 

5.下面描述不属于软件特点的是

 

A.软件是一种逻辑实体,具有抽象性

 

B.软件在使用中不存在磨损、老化问题

 

C.软件复杂性高

 

D.软件使用不涉及知识产权

 

6.下面对类-对象主要特征描述正确的是

 

A.对象唯一性

 

B.对象无关性

 

C.类的单一性    

 

D.类的依赖性

 

7.在数据库中,数据模型包括数据结构、数据操作和

 

A.数据约束 

 

B.数据类型

 

C.关系运算  

 

D.查询

 

8.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是

 

A.一对多

 

B.一对一

 

C.多对一

 

D.多对多

 

9.设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为

 

A.19

 

B.20  

 

C.m-19  

 

D.m-20

 

10.

 

 

A.投影            

 

B.交

 

C.选择 

 

D.并

 

11.关于C语言标识符,以下叙述错误的是

 

A.标识符可全部由数字组成

 

B.标识符可全部由下划线组成

 

C.标识符可全部由小写字母组成

 

D.标识符可全部由大写字母组成

 

12.以下叙述正确的是

 

A.只使用三种基本结构即可解决任何复杂问题

 

B.C语言程序并不是必须要定义main()函数

 

C.只要程序包含了任意一种基本结构,就肯定是结构化程序

 

D.程序中的语法错误只能在运行时才能显现

 

13.以下选项中,合法的数值型常量是

 

A. 3.2   

 

B. 'X'

 

C. 099 

 

D.0xEH

 

14.有以下程序

#include  

main( )

{

    int  x = 0x13;

    printf("INT:%d\n", x+1);

 

}

 

程序运行后的输出结果是

 

A. INT:14

 

B.INT:13

 

C. INT:12

 

D.INT:20

 

15.设有定义:int  x=7,y=12;,则以下表达式值为3的是

 

A. y%=(x-x%5)

 

B. y%=(x%=5) 

 

C.y%=x-x%5

 

D. (y%=x)-(x%=5)

 

16.以下不是合法C语言转义字符的是

 

A. '\b'

 

B. '\a' 

 

C. '\c' 

 

D.  '\r'

 

17.有如下程序

#include  

main( )

{

    int  i;

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

        putchar('Z' - i);

}

 

程序运行后的输出结果是

 

A.ZYXWV  

 

B.VWXYZ

 

C. 'X''Y''Z''W''V'

 

D. 'ABCDE'

 

18.字符数组ab中存储了两个字符串判断字符串ab是否相等应当使用的是

 

A.if(strcmp(a,b)==0)      

 

B. if(strcpy(a,b))

 

C. if(a==b)

 

D. if(a=b)

 

19.以下程序段中,与其他三个功能不同的程序段是

 

A.s=0;i=1;

 

     for( ; ; ) {s+=i; i++; if(i<=10) break;}

 

B. s=0,i=1;

 

     for( ; i<=10; ) {s+=i,i++;}

 

 

C. s=0;

 

     for(i=1; i<=10; i++) {s+=i;}

 

 

D.for(s=0,i=1; i<=10; s+=i,i++) ;

 

20.有以下程序

 

#include

main( )

{   int x=1, y=2, z=3;

    if(x>1)

        if(y>x) putchar('A');

        else putchar('B');

    else

        if(z

        else putchar('D');

}

 

程序的运行结果是

 

A.A

 

B.C  

 

C. B 

 

D.D 

 

21.有语句k=x以下选项中与此语句功能相同的是

 

A.if(x

 

B. if(x  k=0;  else if(y

 

C.if(x  if(y 

 

D. if(x

 

 

22. 有如下程序

 

#include  

void change(int*  array, int  len)

{

    for (; len>=0; len--)

        array[len] -= 1;

}

main( )

{

    int  i, array[5] = {2,2};

    change(array, 4);

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

        printf("%d,", array[i]);

    printf("\n");

}

 

程序运行后的输出结果是

 

 

A. 1,0,-1,1,-1, 

 

B. 1,1,-1,-1,-1,

 

 

C. 1,1,1,1,1,

 

D. 1,-1,1,-1,1,

 

23.有以下程序

#include  

main( )

{

    char*  p1 = 0;

    int*  p2 = 0;

    float*  p3 = 0;

    printf("%d,%d,%d\n", sizeof(p1), sizeof(p2), sizeof(p3));

 

}

 

程序运行后的输出结果是

 

A. 1,4,8 

 

B. 4,4,4

 

C.1,2,4

 

D.1,1,4

 

24. 有以下程序段

      int  *p1,*p2,a[10];

      p1=a;

      p2=&a[5];

 

p2-p1的值为

 

A.5

 

B. 10 

 

C. 12

 

D. 无法确定

 

25.以下叙述中错误的是

 

A.字符型指针可以指向一个字符串 

 

B.函数可以通过指针形参向所指单元传回数据

 

C.基类型不同的指针可以直接相互赋值

 

D.指针的运用可使程序代码效率更高

 

26. 有以下程序

#include

main( )

{  int i,j = 0;

   char a[] = "How are you", b[10] = {0};

   for (i=0; a[i]; i++)

     if (a[i] == ' ')

        b[j++] = a[i+1];

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

 

}

 

程序运行后的输出结果是

 

A.  Hay

 

B.Howareyou 

 

C. we  

 

D.ay

 

27. 有以下程序

 

#include

main( )

{  char w[20], a[5][10] = {"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"};

   int i,j;

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

   {   j=0;

       while (a[i][j]!='\0')  j++;

       w[i] = a[i][j/2+1];

   }

   w[5]= '\0';

   puts(w);

 

}

 

程序运行后的输出结果是

 

A.djoty

 

B.agmrw

 

C.flqvz

 

D.ekpuz

 

28.有以下程序

 

#include

main( )

{  int i,j = 0;

   char a[] = "How are you!", b[10] = {0};

   for (i=0; a[i]; i++)

      if (a[i] == ' ')

          b[j++] = a[i-1];

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

 

}

 

程序运行后的输出结果是

 

A.we 

 

B.Howareyou!

 

C.ay 

 

D.we!

 

29.以下涉及字符串数组、字符指针的程序段,没有编译错误的是

 

A.char* str, name[5];

 

     str = "C/C++";

 

B. char* str, name[6];

 

     name = "Hello";

 

C. char str1[7] = "prog.c", str2[8];

 

     str2 = str1;

 

D. char line[];

 

     line = "//////";

 

30.有如下程序

#include  

void get_put()

{

    char  ch;

    ch = getchar();

    if (ch != '\n') get_put();

    putchar(ch);

}

main( )

{

    get_put();

}

 

程序运行时输入ABCD<回车>则输出结果是

 

A. DCDC

 

B.DCBA 

 

C.BABA

 

D.ABCD

 

31.有以下程序

#include  

main( )

{

    char  name[10] = {'S', 'T', 'R'};

    name[2] = '#'; name[6] = 0;

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

 

}

 

程序运行后的输出结果是

 

 

A. STR#0

 

B. STR#

 

C.ST#

 

D.STR0

 

32. 有以下函数

int fun(char  *ps)

{   char  *p;

    p=ps;

    if(*ps==0)      return 0;

    while(*++p);

    return(p-ps);

}

 

该函数的功能是

 

A.计算字符串的长度

 

B.实现字符串的赋值

 

C.将字符串逆序存放

 

D.计算字符串所占字节数

 

33.有以下函数

 

void fun(char *p, char *q)

{ while ((*p++ = *q++) != '\0'); }

 

该函数的功能是

 

A.计算字符串的长度

 

B.计算字符串所占字节数

 

C. 将字符串逆序存放

 

D.实现字符串的复制

 

34. 以下叙述错误的是

 

A. 未经赋值的auto变量值不确定

 

B.未经赋值的全局变量值不确定 

 

C.未经赋值的register变量值不确定

 

D.未经赋值的静态局部变量值为0

 

35.有以下程序

#include

main( )

{  int c, d;

   c = 10^3; 

   d = 10+3;

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

 

}

 

程序运行后的输出结果是

 

A.  13,13 

 

B.9,13 

 

C.10,13

 

D. 103,13

 

36.有以下程序

 

#include

#include

typedef struct stu {

                    char  name[10];

                    char  gender;

                    int  score;

                   } STU;

void f(char  *name, char  *gender, int  *score)

{  strcpy(name, "Qian");

   *gender = 'f';

   *score = 350;

 

}         

 

main( )

{  STU  a = {"Zhao", 'm', 290}, b;

   b = a;

   f(b.name, &b.gender, &b.score);

   printf("%s,%c,%d,", a.name, a.gender, a.score);

   printf("%s,%c,%d\n", b.name, b.gender, b.score);

 

}

 

程序运行后的输出结果是

 

A. Zhao,m,290,Qian,f,350 

 

B.Zhao,m,290,Zhao,m,290

 

C.Zhao,m,290,Qian,m,350

 

D. Zhao,m,290,Qian,m,290

 

37.有如下程序

#include  

main( )

{

    int  a = 9, b;

    b = (a >> 3) % 4;

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

 

 

 

}

 

 

程序运行后的输出结果是

 

A. 9,3

 

B. 4,0 

 

C. 4,3

 

D.9,1

 

38. 有如下定义:

 

 

 

struct

{  int  num;

   char  name[10];

   struct 

      { int  y; int  m; int  d;} birth;

} s,*ps=&s;

 

以下对内嵌结构体成员的引用形式错误的是

 

A.ps.birth.y

 

B.s.birth.y   

 

C.ps->birth.y 

 

D. (*ps).birth.y

 

39. 函数rewind(fp)的作用是

 

A.使文件位置指针移至下一个字符的位置

 

B.使文件位置指针指向文件的末尾

 

C.使文件位置指针移至前一个字符的位置

 

D.使文件位置指针重新返回到文件的开头

 

40.以下选项中错误的是

 

A.a^=b    a=a^b  等价

 

B.a!=b    a=a!b  等价  

 

C.a|=b    a=a|b  等价 

 

D. a&=b    a=a&b  等价

 

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