一起答

2012年9月计算机等级考试二级C考前全真模拟试卷(十)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 数据库管理系统常见的数据模型有层次模型、网状模型和3种。

  2. 设一棵完全二叉树共有700个结点,则在该二叉树中有个叶子结点

  3. 算法复杂度主要包括时间复杂度和复杂度

  4. 一棵二叉树第六层(根结点为第一层)的结点数最多为个

  5. 软件工程包括3个要素,分别为方法、工具和。

  6. 以下程序运行后的输出结果是。

    void main()

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

     if(c=a,b

     else  printf("%d\n",b)

    }

  7. 下列程序的输出结果是。

    void main()

    {int a=1,b=2;

     a=a+b;b=a-b;a=a-b;

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

    }

  8. 有以下程序:

    void main()

    {int t=1,i=5;

      for( ;i=0;) i--;t*=i;

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

    }

    执行后输出结果是。

  9. mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。

    int mystrlen(char *str)

    { int i;

      for(i=0;!=’\0’;i++);

      return();

    }

  10. 以下程序的运行结果是。

    void main()

    {int a=4,b=8,c;

    c=(a/b= =a)&&(a+b!=20);

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

    }

  11. 有以下程序:

    int sub(int n) { return(n/10+n%10); }

    void main()

    { int x,y;

     scanf("%d",&x);

     y=sub(sub(sub(x)));

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

    }

    若运行时输入:4321<回车>,程序的输出结果是。

  12. 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

    Void func(int x,int y,z)

    { *z-x+y; },

  13. 以下函数的功能是删除字符串s中的所有数字字符,请填空。

    void dele(char *s)

    { int n=0,i;

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

         if()

            s[n++]=s[i];

      s[n]=;

    }

  14. 函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp()),请填空。

    #include

    int sstrcmp(char *s,char *t)

    {  while(*s&&*t&&*s= =)

    {s++;t++; }

    return;

    }

  15. 若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

    while(s[i]){d[j]=;j++;}

    d[j]=0;

  16. 为用户与数据库系统提供接口的语言是( )。

    • A.高级语言
    • B.数据描述语言(DDL)
    • C.数据操纵语言(DML)
    • D.汇编语言
  17. 以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。

    #define N 3

    #define M 3

    select(int a[N][M],int *n)

    {int i,j,row=0,colum=0;

    for(i=0;i

    for(j=0;j

    if(a[i][j]>a[row][colum]){row=i;colum=j;}

    *n=;

    return();

    }

  18. 在下列关于二叉树的叙述中,选出正确的一项( )。

    • A.在二叉树中,任何一个结点的度都是2
    • B.二叉树的度为2
    • C.在二叉树中至少有一个结点的度是2
    • D.一棵二叉树的度可以小于2
  19. 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为( )。

    • A.PAD图           B.N—S图            C.结构图      D.数据流图
  20. 程序设计方法要求在程序设计过程中( )。

    • A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图
    • B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释
    • C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释
    • D.以上三种说法都不对
  21. 在E-R图中,用来表示实体的图形是( )。

    • A.矩形      B.椭圆形           C.菱形           D.三角形
  22. 假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为( )。

    • A.log2n      B.n2         C.n/2           D.n(n-1)/2
  23. 在单链表中,增加头结点的目的是( )。

    • A.方便运算的实现
    • B.使单链表至少有一个结点
    • C.标识表结点中首结点的位置
    • D.说明单链表是线性表的链式存储实现
  24. 用黑盒技术测试用例的方法之一为( )。

    • A.因果图         B.逻辑覆盖          C.循环覆盖         D.基本路径测试
  25. 以下叙述中正确的是( )。

    • A.C语言中的全部数据类型都是基本类型
    • B.C语言中的全部数据类型都是构造类型
    • C.C语言中的数据类型只有两种,即基本类型和构造类型
    • D.以上都不对
  26. 串的长度是( )。

    • A.串中不同字符的个数
    • B.串中不同字母的个数
    • C.串中所含字符的个数且字符个数大于零
    • D.串中所含字符的个数
  27. “商品”与“顾客”两个实体集之间的联系一般是( )。

    • A.一对一         B.一对多         C.多对一        D.多对多
  28. 下列不可作为C语言赋值语句的是( )。

    • A.x=3,y=5           B.a=b=6       C.i- -           D.y=6
  29. 以下变量x、y、z均为double类型且已正确赋值,不能正确表示x/(y*z)的C语言表达式是( )。

    • A.x/y*z           B.x*(1/(y*z))      C.x/y*1/z      D.x/y/z
  30. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。

    • A.-3         B.9         C.-12      D.6
  31. 有以下程序:

    void main()

    { int a=1,b=2,m=0,n=0,k;

      k=((n=b>a)+b)‖(m=a  printf("%d,%d\n",k,m);

    }

    程序运行后的输出结果是( )。

    • A.0,0      B.0,1           C.1,0      D.1,1
  32. 以下选项中合法的表达式是( )。

    • A.a=a+7=c+b
    • B.(3+x)++
    • C.3+x++
    • D.x+1=x+1
  33. 以下叙述中错误的是( )。

    • A.C语言中对二进制文件的访问速度比文本文件快
    • B.C语言中,随机文件以二进制代码形式存储数据
    • C.语句FILE fp;定义了一个名为fp的文件指针
    • D.C语言中的文本文件以ASCII码形式存储数据
  34. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与表达式(k%2)!=0含义相同,这个选项是( )。

    • A.k%2= =0           B.k%2= =1           C.!k%2= = 1         D.都不同
  35. 已知字母A的ASCII码为十进制的65,下面程序的输出为( )。

    void main()

    { char ch1,ch2;

    ch1=’A’+’5’-’3’;

    ch2=’A’+6-3;

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

    }

    • A.67,D      B.B,C         C.C,D      D.不确定的值
  36. 下面函数的功能是( )。

    int func(char*x)

    { char*y=x;

    while(*y++);

    return(y-x-1);

    }

    • A.求字符串的长度
    • B.比较两个字符串的大小
    • C.将字符串x复制到字符串y
    • D.将字符串x连接到字符串y后面
  37. 设int i=2,j=1,k=3,则表达式i&&(i+j)&k | i+j的值是( )。

    • A.0        B.2        C.1      D.3
  38. 有以下程序:

    void main()

    { int k=10,n=0;

      for(;n

      { //n++;

         if(n++%3!=0)continue;

         k--; }

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

    }

    程序运行后的输出结果是( )。

    • A.7,7        B.6,6        C.3,3        D.4,4
  39. 以下程序的输出结果是( )。

    #include

    void main()

    {int a,b,d=241;

    • a=d/100%9;
    • b=(-1)&&(-1);    printf("%d,%d\n",a,b);}
    • A.6,1      B.2,1         C.6,0         D.2,0
  40. 如果在C程序中要用到库函数中的字符串比较函数strcmp(),那么在程序前面应该添加的头文件是( )。

    • A.stdio.h      B.string,h        C.alloc.h         D.math.H
  41. 有以下程序:

    #define N 20

    fun(int a[],int n,int m)

    { int i;

     for(i=m;i>n;i--)a[i+1]=a[i];

      return m;

    }

    void main()

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

      fun(a,0,N/2);

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

    }

    程序运行后的输出结果是( )。

    • A.10234       B.12344       C.12334          D.12234
  42. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。

    • A.函数调用可以嵌套和递归
    • B.函数调用可以作为一个函数的实参
    • C.函数调用可以出现在表达式中
    • D.函数调用可以作为一个函数的形参
  43. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。

    • A.p=q         B.*p=*q        C.n=*q         D.p=*n
  44. 已定义以下函数:

          fun(char*p2,char*p1)

          {while((*p2=*p1)!=’\0’){p1++;p2++;}}

          函数的功能是( )。

    • A.将p1所指字符串复制到p2所指向内存空间
    • B.将p1所指字符串的地址赋给指针p2
    • C.对p1和p2两个指针所指字符串进行比较
    • D.检查p1和p2两个指针所指字符串中是否有’\0’
  45. 有以下程序:

    void main()

    {

    int y=10;

    while(y>>1){printf("y=%d\n",y);}

    }

    程序执行后的输出结果是( )。

    • A.y=0         
    • B.y=-1
    • C.y=1
    • D.while构成无限循环
  46. 有以下程序:

    #include

    void main()

    {

    char c1,c2,c3,c4,c5,c6;

    c5=getchar();c6=getchar();

    scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

    putchar(c1);putchar(c2);

    printf("%c%c\n",c5,c6);

    }

    程序运行后,若从键盘输入(从第1列开始),则输出结果是( )。

    123<回车>

    45678<回车>

    • A.3        B.1        C.3       D.3456    12         23   &n
  47. 设有以下定义:

         int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

         int(*ptr)[3]=a,*p=a[0];

    则下列能够正确表示数组元素a【1】【2】的表达式是( )。

    • A.*((*ptr+1)[2])
    • B.*(*(p+5))
    • C.(*ptr+1)+2
    • D.*(*(a+1)+2)
  48. 下面程序段的输出结果是( )。

    #include

    void main()

    {

    char strl[10]={’s’,’t’,’u’,’d’,’e’,’n’,’t’};

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

    }

    • A.7      B.8           C.10          D.存在语法错误
  49. 有以下程序:

    fun(int a[],int m,int n)

    {int i;

    for(i=m;i

    • a[i+1]=a[i]+3;    return a[i+1];    }    void main()    {
    • int i,a[6]={2,4,6,8,10,12};
    • fun(a,2,5);
    • for(i=0;i<6;i++)    printf("%d",a[i]);    }    程序运行后输出的结果是( )。
    • A.24691315         B.24691215           C.249121518           D.249121415
  50. 若有以下说明:

         int a[10]={1,2,3,4,5,6,7,8,9,10},,*p=a;

    则值为6的表达式是( )。

    • A.*p+6          B.*(p+6)         C.*p+=5          D.p+5
  51. 下列与char*pa[3][5]={"a","bb","ccc"}等价的是( )。

    • A.char  (*pa)[][5]={"a","bb","ccc"}
    • B.char*pa[3][]={"a","bb","ccc"}
    • C.char pa[3][]={"a","bb","ccc"}
    • D.都不等价
  52. 已定义以下函数:

    fun(int *p)

    { return &p; }

    该函数的返回值是( )。

    • A.不确定的值
    • B.形参p中存放的值
    • C.形参p所指存储单元中的值
    • D.形参p的地址值
  53. 以下叙述中错误的是( )。

    • A.预处理命令行必须位于源文件的开头
    • B.宏替换可以出现在任何一行的开始部位
    • C.宏替换的作用一直持续到源文件结尾
    • D.宏替换不占有程序的运行时间
  54. 若有以下说明和定义,以下叙述中错误的是( )。

    union dt

    { int a;char b;double c;}data;

    • A.两个共用体变量之间可以相互赋值
    • B.变量data所占内存字节数与成员c所占字节数相等
    • C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
    • D.共用体在初始化时只能用第一个成员的类型进行初始化
  55. 下面叙述中正确的是( )。

    • A.全局变量的作用域一定比局部变量的作用域范围大
    • B.静态类型变量的生存期贯穿于整个程序的运行期间
    • C.函数的形参都属于全局变量
    • D.未在定义语句中赋值的auto变量和static变量的初值都是随机值
  56. 以下程序的输出结果是( )。

    f(int b[],int m,int n)

    {int i,s=0;

    for(i=m;i

    return s;

    }

    void main()

    {int x,a[]={1,2,3,4,5,6,7,8,9};

    x=f(a,3,7);

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

    }

    • A.10    
    • B.18      
    • C.8    
    • D.15
  57. 有以下程序:

    void main()

    {char s[]="159",*p;

    p=s;

    printf("%c",*p++);printf("%c",*p++);

    }

    程序运行后的输出结果是( )。

    • A.15        B.16         C.12         D.59
  58. 当执行下面的程序时,如果输入ABC,则输出结果是( )。

    #include

    #include

    void main()

    {char ss[10]="12345",

    gets(ss);strcat(ss,"6789");

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

    }

    • A.ABC6789          B.ABC67           C.12345ABC6          D.ABC456789
  59. 有以下程序:

    void main()

    {int a=1,b;

    for(b=1;b<1;b++)

    { if(a>=8)break;

    if(a%2= =1){a+5;continue;}

    • a-=3;    }    printf("%d\n",b);    }    程序运行后的输出结果是( )。
    • A.3      B.1       C.5      D.6
  60. 有以下程序:

    void main()

    {int a=15,b=21,m=0;

    switch(a%3)

    {case0:m++;break;

     case 1:m++;

     switch(b%2)

    {defaule:m++;

     case 0:m++;break;

    }

    }

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

    }

    程序运行后的输出结果是( )。

    • A.1            B.2      C.3       D.4
  61. 有以下程序,其输出结果是( )。

    void main()

    {

     floar x=1;

     int y;

     x++;

     y=x+1;

     printf("x=%d,y=%f",x,y);

    }

    • A.x=2,y=3
    • B.x=2,y=3.0
    • C.x=2.0,y=3
    • D.x=0,y=0.000000
  62. 程序中若有如下说明和定义语句:

    char fun(char *);

    main()

    { char *s="one",a[5]={0},(*f1)()=fun,ch;

           ...

    }

    以下选项中对函数fun的正确调用语句是( )。

    • A.(*f1)(a)       B.*f1(*s)      C.fun(&a)           D.ch=*f1(s)
  63. 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。

    struct node

    { int data;struct node *next; }*p,*q,*r;

    现要将这个链表构成一个环,以下( )操作是正确的。

    • A.p->next=q->next
    • B.r->next=p
    • C.p->next=r
    • D.r->next=q->next->next
  64. 整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是( )。

    • A.X‖Y           B.X | Y          C.X&Y           D.X^Y
  65. C语言中,组成数据文件的成分是( )。

    • A.记录    
    • B.数据行     
    • C.数据块    
    • D.字符(字节)序列
  66. 有以下程序:

    #include

    void main()

    { fILE*fp; int i,a[4]={1,2,3,4},b;

     fp=fopen("data.dat","wb");

     for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);

     fclose(fp)

     fp=fopen("data.dat","rb");

     fseek(fp,-2L*sizeof(int),1,fp);/*文件中读取sizeof(int)字节的数据到变量b中*/

     fclose(fp);

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

    }

    程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是( )。

    • A.使位置指针从文件末尾向前移2*sizeof(int)字节
    • B.使位置指针从文件末尾向前移2字节
    • C.使位置指针向文件末尾向前移懂2*sizeof(int)字节
    • D.使位置指针向文件末尾移动2字节