一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 执行下列程序段后,x和i的值分别是和

    int x,i;

    for (i=1,x=1;i<=50;i++)

    {

         if(x>=10) break;

         if(x%2==1)

         {

              x+=5;

             continue;

         }

         x-=3;

    }

  2. 下面程序的运行结果是

    typedef union student

    {

       char name[10];

       long sno;

       char sex;

       float score[4];

    }STU;

    main()

    {

       STU a[5];

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

    }

  3. 以下程序的输出结果是

    main()

    {

       int a=0;

       a+=(a=8);

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

    }

  4. 以下程序的输出结果是

    #define  MAX(x,y)  (x)>(y)?(x):(y)

    main()    

    {

        int a = 5, b = 2,c = 3, d = 3, t;

        t = MAX(a + b, c + d)*10;

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

    }

  5. 软件的调试方法主要有:强行排错法、和原因排除法。

  6. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型。请写出函数fun的头部,要求函数的形参为变量b。

    main()

    {

       double s[10][22];

       int n;

       ……

       fun(s);

       ……

    }

  7. 数据库设计包括三个设计阶段,其中分别为概念设计、和物理设计。

  8. 对下列二叉树进行前序遍历的结果是

     

  9. 下面程序的运行结果是

    #include

    #define SIZE 12

    sub(char *a,int t1,int t2)

    {  char ch;

     while(t1

    { ch=*(a+t1);

    *(a+t1)=*(a+t2);

    *(a+t2)=ch;

    t1++;t2--;

    }

    }

    main()

    {  char s[SIZE]={’A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’,’J’,’K’,’L’};

    int i;

    sub(s,7,SIZE-1);

    for(i=0;i

     printf("%c ",s[i]);

    printf("\n");

    }

  10. 关系数据库的数据操作即是建立在关系上的数据操作,一般有、增加、删除和修改四种操作。

  11. 结构化程序设计具有很多优点,但它仍是一种面向的程序设计方法。

  12. 在计算机中,字符的比较是对它们的进行比较。

  13. 以下程序的输出结果是

    main()

    {

        int x=l,a=2,b=3;

    switch(x)

    {

      case 0:b++;

      case 1:a++;break;

      case 2:a++;b++;

    }

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

    }

  14. 若有以下定义和语句

    struct a

    { int n,m;};

     struct a st[3]={{2,3},{4,5},{6,7}};

     struct a*p=st;

    则以下错误的引用是

    • A.(p++)->n;        B.st[0].n;          C.(*p).n;          D.P=&st.m,
  15. 以下程序的输出结果是

    #include 

    main()

    { int k=4,s=0;

        do{

            if((k%3)==0) continue;

            s+=k;k++;

           }while(k>10);

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

    }

  16. 有以下程序

    #define N 15

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

    {  int i,j;

    for(i=m;i>=n;i--)

    • a[i+1]=a[i];    }    main()    {  int i,a[N]={1,2,3,4,5,6,7,8,9,10};
    • fun(a,3,7);
    • for(i=3;i<8;i++)    printf("%d",a[i]);    }    程序的运行结果是
    • A.45678     
    • B.44567
    • C.45567     
    • D.45677
  17. 以下选项中,不能作为合法常量的是

    • A.1.24e03                B.1.34e0.3      C.1.24e+3            D.1.34e0
  18. 25.若有说明:int a[3][4]={0};,则下面正确的叙述是

    • A.只初始化了第一个元素,即a[0][0]可得到初值0
    • B.此初始化语句不正确
    • C.数组a中各元素都可得到初值,但其值不一定为0
    • D.数组a中每个元素均可得到初值0
  19. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是

    • A.for(i=1,p=1;i<=5;i++) p*=i;       B.i=1;p=1;while(i<=5){p*=i; i++;}
    • C.for(i=1;i<=5;i++){ p=1; p*=i;}        D.i=1;p=1;do{p*=i; i++; }while(i<=5);
  20. 有如下程序

    #define N 2

    #define M N+1

    #define NUM 2*M+1

    main()

    {

       int i;

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

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

    }

    该程序中for循环执行的次数是

    • A.5              B.6   
    • C.7         D.8
  21. 有以下函数定义:

    void fun(int n, double x) { …… }

    若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是

    • A.fun(int y,double m);              B.k=fun(10,12.5);       
    • C.fun(x,n);                 D.void fun(n,x);
  22. 若有定义:char *st= "how are you "; 下列程序段中正确的是

    • A.char a[11], *p; strcpy(p=a+1,&st[4]);
    • B.char a[11]; strcpy(++a, st);
    • C.char a[11]; strcpy(a, st);
    • D.char a[], *p; strcpy(p=&a[1],st+2);
  23. 以下选项中,与k=n++完全等价的表达式是

    • A.k=n,n=n+1             B.n=n+1,k=n          
    • C.k=++n          D.k+=n+1
  24. 有如下程序段

    int *p,a=10,b=1;

    p=&a; a=*p+b;

    执行该程序段后,a的值为

    • A.12              B.10      C.11           D.编译出错
  25. 有以下程序

    main()

    {

       int x[]={1,3,5,7,2,4,6,0},i,j,k;

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

           for(j=2;j>=i;j--)

               if(x[j+1]>x[j])

           {

           k=x[j];

           x[j]=x[j+1];

           x[j+1]=k;

           }

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

           for(j=4;j<7-i;j++)

              if(x[j]>x[j+1])

              {

           k=x[j];

           x[j]=x[j+1];

           x[j+1]=k;

              }

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

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

       printf("\n");

    }

    程序运行后的输出结果是

    • A.75310246           B.01234567  
    • C.76310462             D.13570246
  26. C语言中用于结构化程序设计的三种基本结构是

    • A.顺序结构、选择结构、循环结构         B.if、switch、break
    • C.for、while、do-while               D.if、for、continue
  27. 以下不正确的定义语句是

    • A.int y[5.3]={0,1,3,5,7,9};       B.double x[5]={2.0,4.0,6.0,8.0,10.0};
    • C.char c1[]={’1’, ’2’, ’3’, ’4’, ’5’};       D.char c2[]={’\x10’, ’\xa’, ’\x8’};
  28. 有以下程序 (a123.txt在当前盘符下已经存在)

    #include "stdio.h"

    void main()

    {  FILE *fp;

        int a[10],*p=a;

        fp=fopen("a123.txt","w");

        while( strlen(gets(p))>0 )

        { fputs(a,fp);

           fputs("\n",fp);

        }

       fclose(fp);

    }

    程序实现的功能是

    • A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中
    • B.从键盘输入若干行字符,取前两行写入文本文件a123.txt中
    • C.从键盘输入若干行字符,第一行写入文本文件a123.txt中
    • D.从键盘输入若干行字符,依次写入文本文件a123.txt中
  29. 假定已建立以下链表结构,且指针p和q已指向如下图所示的结点:

     

    则以下选项中,可将q 所指结点从链表中删除并释放该结点的语句组是

    • A.(*p).next=(*q).next; free(p);               B.p=q->next; free(q);
    • C.p=q; free(q);         D.p->next=q->next; free(q);
  30. 已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是

    • A.-1      B.0     C.1      D.语句错误
  31. 下面的函数调用语句中func 函数的实参个数是

    func (f2(A1, A2), (A3, A4, A5), (A6, max(A7, A8)));

    • A.3          B.4        C.5        D.8
  32. 有以下程序

    #include 

    main()  

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

       if(x>y)

       if(y

       else printf("%d", ++y);

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

    }

    程序的运行结果是

    • A.331      
    • B.41
    • C.2      
    • D.1
  33. 执行以下程序段后,T的值为

    int T=’a’, x=12, y=5;

    T=((x || y)&&(T>’A’));

    • A.1               B.NULL       C.-l       D.0
  34. 有如下程序段

    void fun(int *a, int *b)

    {  int *k;

    k=a; a=b; b=k;

    }

    main()

    {  int a=3, b=6, *x=&a, *y=&b;

    fun(x,y);

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

    }

    程序运行后输出的结果是

    • A.6 3      
    • B.3 6
    • C.编译出错     
    • D.0 0
  35. 以下说法错误的是

    • A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式
    • B.计算机只能处理由0和1的代码构成的二进制指令或数据
    • C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件
    • D.每一种高级语言都有它对应的编译程序
  36. 下列说法中不正确的是

    • A.C语言规定,不能在一个函数的内部再定义函数
    • B.在没有声明函数返回值类型的情况下,默认的函数返回值类型为int型
    • C.函数的类型可以是整型、实型、字符型,但不能是指针型
    • D.函数可以没有形参,但函数名后的一对圆括号不能省略
  37. 有如下程序段

    #include "stdio.h"

    typedef union

    {  long x[2];

      int y[4];

      char z[8];

    }atx;

    typedef struct aa

    {  long x[2];

    int y[4];

    char z[8];

    } stx;

    main()

    { printf("union=%d,struct aa=%d\n",sizeof(atx),sizeof(stx));}

    则程序执行后输出的结果是

    • A.union=8,struct aa=8 
    • B.union=8,struct aa=24
    • C.union=24,struct aa=8 
    • D.union=24,struct aa=24
  38. 下列是用户自定义标识符的是

    • A._w1          B.3_xy             C.int       D.LINE-3
  39. 若有运算符<<、sizeof、^、&=,则它们按优先级由高至低的正确排列次序是

    • A.sizeof、&=、<<、^        B.sizeof、<<、^、&=     
    • C.^、<<、sizeof、&=        D.<<、^、&=、sizeof
  40. sizeof(float)是

    • A.一个双精度表达式        B.一个整型表达式
    • C.一种函数调用        D.一个不合法的表达式
  41. 设有以下语句

    char x=3,y=6,z;

    z=x^y<<2;

    则z的二进制值是

    • A.00010100 B.00011011   C.00011100 D.00011000
  42. 下列程序段的输出结果是

    int a=1234;

    float b=123.456;

    double c=12345.54321;

    printf("%2d,%2.1f,%2.1f",a,b,c);

    • A.无输出        B.12,123.5,12345.5 
    • C.1234,123.5,12345.5           D.1234,123.4,12345.5
  43. 若变量a,i已正确定义,且i已正确赋值,合法的语句是

    • A.a==1         B.++i;           C.a=a++=5;        D.a=int(i);
  44. 下列函数的功能是

    set(s,t)

    {  char *s,*t;

      while((*s)&&(*t)&&(*t++==*s++));

      return(*s-*t);

    }

    • A.求字符串的长度
    • B.比较两字符串的大小
    • C.将字符串s复制到字符串t中
    • D.将字符串s连接到字符串t后
  45. 模块独立性是软件模块化所提出的要求,衡量模块独立性的一般度量标准是

    • A.抽象和信息隐蔽         B.局部化和封装化           C.内聚性和耦合性          D.激活机制和控制方法
  46. 下列词语中,不属于面向对象方法的是

    • A.对象、消息           B.继承、多态        C.类、封装           D.过程调用
  47. 一间工厂可有多个工人,则实体工厂和工人之间的联系是

    • A.一对一      B.一对多      C.多对一    D.多对多
  48. 在长度为 n 的有序线性表中进行顺序查找,最坏情况下需要比较的次数是

    • A.O(n)       B.O(n2)          C.O(log2n)         D.O(nlog2n) 
  49. 算法的空间复杂度是指

    • A.算法程序的长度    
    • B.算法程序中的指令条数
    • C.算法程序所占的存储空间     
    • D.执行算法需要的内存空间
  50. 设有栈S和队列Q,其状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素则进入队列Q,若6个元素出队列的顺序是a2,a3,a4,a6,a5,a1,则栈的容量至少是

    • A.6         B.4         C.3             D.2
  51. 数据库的故障恢复一般是由

    • A.数据流图完成的   B.数据字典完成的  C.DBA 完成的             D.PAD图完成
  52. 分布式数据库系统不具有的特点是

    • A.数据的物理分布性和逻辑整体性       B.位置透明性和复制透明性
    • C.事物管理的集中性             D.数据冗余
  53. 检查软件产品是否符合需求定义的过程称为

    • A.确认测试         B.集成测试           C.验证测试          D.验收测试
  54. 链表不具有的特点是

    • A.不必事先估计存储空间       
    • B.可随机访问任一元素
    • C.插入和删除不需要移动元素   
    • D.所需空间与线性表长度成正比