一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 以下函数的功能是:求x的y次方,请填空。

    double fun(double x,int y)

    {

         int i;

         double z;

         for(i=1,z=x;i

             z=z*;

         return z;

    }

  2. 若变量n中的值为24,则print()函数共输出行,最后一行有个数。

    void print (int n,int aa[])

    {

         int i;

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

         {

               printf("%6d",aa[i]);

              if(!(i%5))

              printf("\n");

         }

         printf ("\n");

  3. 数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、和处理过程。

  4. 若有以下程序

    main()

    {

        char  a;

        a=’H’-’A’+’0’;

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

    }

    执行后的输出结果是

  5. 以下程序的功能是处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,程序的功能是把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。

    #include 

    #define N 16

    typedef struct

    {   char num[10];

    int s;

    } STREC;

    int fun(STREC *a,STREC *b)

    {  int i,j=0,max=a[0].s;

    for(i=0;i

      if(max  for(i=0;i

      if()b[j++]=a[i];

    return j;

    }

    main()

    {  STREC s[N]={ {"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},

                {"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},

                {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

                {"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};

    STREC h[N];

    int i,n;FILE *out;

    n=fun(s,h);

    printf("The %d highest score :\n",n);

    for(i=0;i

     printf("%s %4d\n",h[i].num,h[i].s);

    printf("\n");

    out=fopen("out15.dat","w");

    fprintf(out, "%d\n",n);

    for(i=0;i

     fprintf(out, "%4d\n",h[i].s);

    fclose(out);

    }

  6. 按照软件测试的一般步骤,系统测试应在之后。

  7. 以下程序按下面指定的数据给x 数组的下三角置数,并按如下形式输出,请填空。

    #include 

    main()

        int x[4][4],n=0,i,j;

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

         for(i=3;i>=j;)

           { n++;x[i][j]=;}

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

        { 

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

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

         printf("\n");

        }

    }

  8. 以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。

    char *fun(char *str,char c)

    {

       int n=0;

       char *p=str;

       if(p!=NULL)

           while(p[n]!=c&&p[n]!=’\0’)

               n++;

       if(p[n]==’\0’)

           return NULL;

       return();

    }

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

    main

    {  int p=30;

    printf("%d\n",(p/3>0?p/10 : p%3));

    }

  10. 在E-R图中,主要的图形有矩形框、菱形框、椭圆框。其中矩形框表示

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

    int f(int x,int y)

    { return(y-x)*x; }

    main()

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

       d=f(f(3,4),f(3,5));

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

    }

  12. 长度为10的顺序存储线性表中,当在任何位置上插入一个元素的概率都相等时,插入一个元素所需移动元素的平均个数为

  13. 关系规范理论是关系数据库进行逻辑设计的基础,这个理论最基本的要求是关系中的每个属性是

    • A.类型不变的                     B.宽度不变的                  
    • C.不可分割的                  D.互不相关的
  14. 数据库设计分为6个设计阶段:需求分析阶段、、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

  15. 有以下程序

    main()

    {  int  a[3][2]={0},(*ptr)[2],i,j;

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

       {  ptr=a+i; scanf("%d",ptr);  ptr++; }

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

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

           printf("\n");

       }

    }

    若运行时输入1  2  3<回车>,则输出结果为

  16. 在数据结构中,与所使用的计算机无关的是数据的

    • A.存储结构       B.物理结构           
    • C.逻辑结构           D.物理和存储结构
  17. 有以下程序

    #define  P(a)  a+a

    void F(int x)  

    { return(P(2)*x*x);}

    main()

    { printf("%d\n",F(1+3)); }

    程序的运行结果是

    • A.10              B.34
    • C.64               D.编译出错
  18. 以下程序的输出结果是

    main()

    {

       int k=4,m=1,p;

       p=func(k,m); printf("%d,",p);

       p=func(k,m); printf("%d\n",p);

    }

    func(int a,int b)

    {

       static int m=0,i=2;

       i+=m+1;

       m=i+a+b;

       return(m);

    }      

    • A.8,17             B.8,16   
    • C.8,20          D.8,8
  19. 有以下程序,若从键盘上输入7和3

    main()

    { int a,b,k;

    scanf("%d,%d ",&a,&b);

    k=a;

    if(aelse k=b%a;

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

    }

    程序运行后的输出结果是

    • A.7       B.3
    • C.1        D.0
  20. 有以下程序

    main()

    { unsigned int a;

      int b=-1;

    • a=b;    printf("%u",a);    }    程序运行后的输出结果是
    • A.-1            B.65535   
    • C.32767             D.-32768
  21. 有以下程序

    int f(int n)

    {

       if(n==1

           return 1;

       else

           return f(n-1)+1;

    }

    main()

    {

       int i,j=0;

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

           j+=f(i);

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

    }

    程序运行后的输出结果是

    • A.4              B.3   
    • C.2        D.1
  22. 面下程序段的运行结果是

    char str[]="ABC",*p=str;

    printf("%d\n",*(p+3));

    • A.67           B.0           C.字符’C’的地址       D.字符’C’
  23. 有以下程序

    #include "stdio.h"

    main()

    { struct date

       {int year,month,day;}today;

       printf("%d\n",sizeof(struct date));

    }

    程序的运行结果是

    • A.6          B.8
    • C.12           D.10
  24. 在位运算中,操作数左移一位,其结果相当于

    • A.操作数乘以2    
    • B.操作数除以2   
    • C.操作数除以4    
    • D.操作数乘以4
  25. 有以下程序

    #include "stdio.h"

    main()  

    { char str[]="tomeetme",str1[]="toseeyou";

       char *p=str,*p1=str1;

       int i;

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

       if(*(p+i)==*(p1+i))

       putchar(*(p+i));

       printf("\n");

    }

    程序的运行结果是

    • A.to      
    • B.tomeet
    • C.toee
    • D.程序段不能通过编译
  26. 有以下程序

    #include 

    #include 

    int fun(int t)

    {  int *p;

        p=(int*)malloc(sizeof(int));

        *p=t; return *p;

    }

    main()

    {  int a;

    • a = fun(8);     printf("%d\n", a+fun(10));    }    程序的运行结果是
    • A.0          B.10  
    • C.18         D.出错
  27. 有如下程序段

    #include "stdio.h"

    typedef struct aa

    {   int a;

    struct aa *next;

    } M;

    void set(M *k,int i,int *b)

    {   int j,d=0;

    for(j=1;j

    {  k[j-1].next=&k[j];

    k[j-1].a=b[d++];

    }

    k[j].a=b[d];

    }

    main()

    {  M k[5],*p;

    int d[5]={23,34,45,56,67};

    set(k,5,d);

    p=k+1;

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

    }

    要输出45,则在下画线处应填入的选项是

    • A.p->next->a       B.++p->a
    • C.(*p).a++          D.p++ ->a
  28. 有以下程序段

    #include "stdio.h"

    main()

    {  int j,i,k=0;

    for(j=50;j<=60;j++)

    {  if(!(k%10)) printf("\n");

    for(i=2;i

    break;

    if(i>=j-1)

    {  printf("%d",j);

    k++;}

    }

    }

    程序执行后输出的结果是

    • A.5359           B.5953 
    • C.3595           D.9535
  29. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是

    main()

    {  int *p,*q,a,b;

    p=&a;

    printf("input a:");

    scanf("%d",*p);

    }

    • A.*p表示的是指针变量p的地址    
    • B.*p表示的是变量a的值,而不是变量a的地址
    • C.*p表示的是指针变量p的值        
    • D.*p只能用来说明p是一个指针变量
  30. 设变量a是int型,f是int型,i是double型,则表达式10+a+i*f值的数据类型为

    • A.int            B.float                C.double           &
  31. 若有以下程序段(n所赋的是八进制数)

    int m=32767, n=032767;

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

    执行后的输出结果是

    • A.32767,32767        B.32767,032767          
    • C.32767,77777           D.32767,077777
  32. 有以下程序段

    #include 

    void fun(char*fname,char*st)

    {  FILE * myf;

    int i;

    myf=fopen(fname,"w");

    for(i=0;i

    fclose(myf);

    }

    main()

    { fun("test.t","new world");

       fun("test.t","hello,");}

    程序执行后,文件test.t中的内容是

    • A.hello,    
    • B.new worldhello,
    • C.new world     
    • D.hello,rld
  33. 在下述程序中,判断条件“i>j”共执行的次数是

    main()

    {  int i=0,j=10,k=2,s=0;

    for(;;)

    {  i+=k;

        if(i>j)

       { printf("%d",s);

           break;

       }s+=i;

     }

    }

    • A.4           B.7  
    • C.5           D.6
  34. 若int k=8;则执行下列程序后,变量k的正确结果是

    main()

    {  int k=8;

    switch(k)

     { case 9:k+=1;

     case 10:k+=1;

     default:k+=1;

     case 11:k+=1;break;

    }

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

    }

    • A.12           B.1
    • C.10        D.9
  35. 下列是用户自定义标识符的是

    • A._w1          B.3_xy             C.int       D.LINE-3
  36. 设有如下说明

    typedef struct

    {  int n;

    char c;

    double x;

    }STD;

    则以下选项中,能正确定义结构体数组并赋初值的语句是

    • A.STD tt[2]={{1,’A’,62},{2,’B’,75}};       B.STD tt[2]={1,"A",62,2,"B",75};
    • C.struct tt[2]={{1,’A’},{2,’B’}};          D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
  37. 有以下程序

    int fun(int n)    

    {

         if(n==1)

          return 1;

         else

          return(n+fun(n-1));

    }

    main()

    {

         int x;

         scanf("%d",&x);

         x=fun(x);

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

    }

    执行程序时,给变量x输入10,程序的输出结果

    • A.55             B.54
    • C.65        D.45
  38. 有以下程序

    #include 

    void prt(int *x,int*y,int*z)

    {  printf("%d,%d,%d\n",++*x,++*y,*z++);}

    main()

    {  int a=10,b=40,c=20;

    prt(&a,&b,&c);

    prt(&a,&b,&c);

    }

    程序的输出结果是

  39. 有下列程序

    main()

    {

    int a[5]={2,4,6,8,10},*p,**k;

    p=a;

    k=&p;

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

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

    }

    运行该程序,其输出结果是

    • A.4       B.22
    • C.24      D.46
  40. 有以下程序

    #define F(X,Y)(X)*(Y)

    main()

    {  int a=3, b=4;

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

    }

    程序运行后的输出结果是

    • A.12           B.15
    • C.16      D.20
  41. 若有函数内部说明:int a[3][4];,则数组a中各元素

    • A.可在程序的运行阶段得到初值0         B.可在程序的编译阶段得到初值0
    • C.不能得到确定的初值        D.可在程序的编译或运行阶段得到初值0
  42. 有以下程序

    float fun(int x,int y)

    {  return(x+y);}

    main()

    {  int a=2,b=5,c=8;

       printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

    }

    程序的运行结果是

    • A.9           B.编译出错
    • C.21          D.9.0
  43. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为

    • A.4             B.16           C.32                &nbs
  44. 以下叙述中错误的是

    • A.C语言源程序经编译后生成后缀为.obj的目标程序  
    • B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
    • C.用C语言编写的程序称为源程序,它以ASCII码形式存放在一个文本文件中
    • D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
  45. 有以下程序

    #include

    void fun(int s[])

    { static int j=0;

       do

          s[j]+=s[j+1];

       while(++j<2);

    }

    main()

    {

       int k,a[10]={1,2,3,4,5};

       for(k=1;k<3;k++) fun(a);

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

          printf("%d",a[k]);

    }

    程序的运行结果是

    • A.34756           B.23445
    • C.35745      D.12345
  46. 为了提高测试的效率,应该

    • A.随机选取测试数据              B.取一切可能的输入数据作为测试数据
    • C.在完成编码以后制定软件的测试计划          D.集中对付那些错误群集的程序
  47. 冒泡排序的时间复杂度为

    • A.O(n)          B.O(n2)           C.O(log2n)        D.O(nlog2n)
  48. 程序调试的目的是

    • A.发现程序中的错误           B.改正程序中的错误       C.验证程序的正确性          D.改善软件的性能
  49. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为

    • A.软件投机              B.软件危机            C.软件工程        D.软件产生
  50. 下列数据模型中,具有坚实理论基础的是

    • A.层次模型              B.网状模型           C.关系模型          D.以上3个都是
  51. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于

    • A.硬件资源         B.通信资源         C.支持软件          D.辅助资源
  52. 用链表表示线性表的优点是

    • A.便于随机存取          B.花费的存储空间较顺序存储少
    • C.便于插入和删除操作          D.数据元素的物理顺序与逻辑顺序相同
  53. 下列有关数据库的描述,正确的是

    • A.数据库是一个DBF文件           B.数据库是一个关系
    • C.数据库是一个结构化的数据集合          D.数据库是一组文件