一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 若fp已正确定义为一个文件指针,d1.dat为二进制文件。请填空,以便“读取”并打开此文件:fp=fopen();。

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

    void swap(int *a,int *b)

    {

        int *t;

        t=a;a=b;b=t;

    }

    main()

    {

        int x=3,y=5,*p=&x,*q=&y;

        swap(p,q);

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

    }

  3. 数据库系统的三级模式分别为模式、内部级模式与外部级模式。

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

    main()

    {

        int x=15;

       while(x>10&&x<50)

       {

            x++;

            if(x/3)

            {

            x++;

             break;

            }

            else

             continue;

        }

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

    }

  5. 软件工程研究的主要内容包括:技术和软件工程管理。

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

    #include "stdio.h"  

     void fun(int k,int *p)

    {  int a,b;

    if(k==1|| k==2)

       *p=1;

     else

     { fun(k-1,&a);

        fun(k-2,&b);

        *p=a+b;

     } 

    }

    main()

    {  int x;

      fun(6,&x);

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

    }

  7. 若有以下程序

    main()

    {  int p=5,a=5;

    if(p=1!=0)

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

    else

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

    }

    程序执行后的输出结果是

  8. 以下程序运行时,若从键盘输入:1 2 3<回车>。输出结果是

    #include   

    main()

    {  int  i=2,j=2,k=2;

    scanf("%d%*d%d",&i,&j,&k);

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

    }

  9. 下列x的值是

    int x;x= sizeof 2.25*4;

  10. 一棵二叉树第5层(根结点为第一层)的结点数最多为个。

  11. 执行以下程序后,输出’#’号的个数是

    #include 

    main

    { int i,j;

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

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

          putchar(′#′);

    }

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

    main()

    {  int x=100,a=10,b=20,ok1=5,ok2=0;

    if(aelse if(ok2)x=10;

    else x=-1;

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

    }

  13. 在结构化分析使用的数据流图中,利用对其中的图形元素进行确切的解释。

  14. 在面向对象的程序设计中,类描述的是具有相似性质的一组

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

    #include 

    #include 

    #define M 100

    void fun(int m, int *a, int *n)

    {   int i,j=0;

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

    if(i%7==0||i%11==0)

          a[j++]=i;

     *n=j;

    }

    main()

    {   int aa[M],n,k;

    clrscr();

    fun(100,aa,&n);

    for(k=0;k

     if((k+1)%20==0)printf("\n");

     else printf("%d",aa[k]);

    printf("\n");

    }

  16. 有以下程序

    #include "stdio.h"

    void fun(int *a,int *b,int c)

    { c=*a+*b; }

    main()

    { int a[2]={6,9},c=0;

    fun(a,a+1,&c);

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

    }

    程序输出的结果是

    • A.6         B.9
    • C.0                D.15
  17. 有如下程序

    #include 

    main()

    {

        FILE *fp1;

        fp1=fopen("f1.txt","w");

        fprintf(fp1,"abc");

        fclose(fp1);

    }

    若文本文件f1.txt中原有内容为good,则运行以上程序后,文件f1.txt中的内容为

    • A.goodabc          B.abcd   
    • C.abc           D.abcgood
  18. 28.以下叙述中错误的是

    • A.对于float类型数组,不可以直接用数组名完成对数组进行整体输入或输出
    • B.数组名代表的是数组所占存储区的首地址,其值是常量,是不可改变的
    • C.当执行程序时,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
    • D.可以通过赋初值的方式确定数组元素的个数
  19. 以下叙述不正确的是

    • A.分号是C语言的必要组成部分           B.C程序的注释可以写在语句的后面
    • C.函数是C程序的基本组成单位      D.程序中可以有一个或多个main函数
  20. 以下程序的输出结果为

    main()

    {

       char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};

       char **p;

       int i;

       p=alpha;

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

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

       printf("\n");

    }     

    • A.ABCDEFGHIJKL         B.ABCD
    • C.ABCDEFGHIJKLMNOP         D.AEIM
  21. 若程序中有以下说明和定义。

    struct abc

    {

    int x;char y;

    }

    struct abc s1,s2;

    则会发生的情况是

    • A.编译时出错                   B.程序将顺序编译、连接、执行
    • C.能顺序通过编译、连接,但不能执行      D.能顺序通过编译,但连接出错
  22. 有以下程序

    #include 

    main()

    {

       int num=0;

       while( num<=2)

       {

           num++;

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

       }

    }

    上面程序的输出结果是

  23. 下面程序的输出结果是

     #include 

     main(){

        int i=2;

        printf("%d",f(i,i+1) );

     }

     int f(int a,int b)

     { int c;

         c=a;

        if(a>b) c=1;

         else if(a==b) c=0; else c=-1;

         return(c);

    }

    • A.-1            B.0   
    • C.1         D.2
  24. 有以下程序

    void fun(int a,int b,int c)

    {

    • a=456,b=567,c=678;    }    main()    {
    • int x=10,y=20,z=30;
    • fun(x,y,z);    printf("%d,%d,%d\n",x,y,z);    }    输出结果是
    • A.10,20,30          B.30,20,10
    • C.456,567,678         D.678,567,456
  25. 设以下变量均为int类型,表达式的值不为7的是

    • A.(x=y=6,x+y,x+1)    
    • B.(x=6,x+1,y=6,x+y)   
    • C.(x=y=6,x+y,y+1)    
    • D.(y=6,y+1,x=y,x+1)
  26. 有以下程序

    void sort(int a[],int n)

    {

       int i,j,t;

       for(i=0;i

           for(j=i+2;j

       if(a[i]   {

           t=a[i];

    • a[i]=a[j];
    • a[j]=t;    }    }    main()    {
    • int aa[10]={1,2,3,4,5,6,7,8,9,10},i;    sort(aa,10);
    • for(i=0;i<10;i++)    printf("%d,",aa[i]);    printf("\n");    }    执行后的输出结果是
    • A.1,2,3,4,5,6,7,8,9,10,           B.10,9,8,7,6,5,4,3,2,1,
    • C.9,2,7,4,5,6,3,8,1,10      D.1,10,3,8,5,6,7,4,9,2,
  27. 下列C语言用户标识符中,不属于合法标识符的是

    • A._1                    B.d3_7       C._a7             
  28. 有以下程序

    main()

    {   

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

       printf("%d\n",x/y&~z);

    }

    程序运行后的输出结果是

    • A.3              B.2   
    • C.1         D.0
  29. 以下程序的运行结果是

    #define MIN(x,y)(x)<(y)?(x):(y)

    main()

    {   

       int i=10,j=15,k;

       k=10*MIN(i,j);

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

    }

    • A.10             B.15   
    • C.100           D.150
  30. 若已定义int a=25,b=14,c=19;以下三目运算符(?:)所构成的语句执行后a<=25&&b--<= 2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d, c=%d\n",a,b,c);程序输出的结果是

    • A.***a=25,b=13,c=19      B.***a=26,b=14,c=19       
    • C.### a=25,b=13,c=19      D.### a=26,b=14,c=19
  31. 有如下程序

    main()

    {

       char s[]="ABCD", *p;

       for(p=s+1; p

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

    }

    该程序的输出结果是

  32. 设有char str[10],下列语句正确的是

    • A.scanf("%s",&str);       B.printf("%c",str);      
    • C.printf("%s",str[0]);        D.printf("%s",str);
  33. 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是

    • A.k%2       B.k%2==1          
    • C.(k%2)!=0      D.!k%2==1
  34. 以下叙述中正确的是

    • A.自定义的函数中一定要有return 语句
    • B.自定义的函数中不可以有多个return 语句
    • C.自定义的函数中可以没有return 语句,此时函数应被定义为void 类型
    • D.函数的return 语句一定要带有表达式
  35. 下面四个选项中,均是不正确的8进制数或16进制数的选项是

    • A.016 0X8F 018           B.0ABC 017 0XA      
    • C.010 -0X11 0X16       D.0A12 7FF -123
  36. 计算机能直接执行的程序是

    • A.源程序              B.目标程序        
    • C.汇编程序                   D.可执行程序
  37. 有如下程序段

    #include "stdio.h"

    main()

    { int k[10];

     int j;

     for(j=0;j<10;j++)

        scanf("%d",&k[j]);

     for(j=9;j>=0;j--)

       printf("%d",k[j]);}

    则程序段实现的功能是

    • A.输入10个数据的顺序输入并输出          
    • B.输入10个数据的逆序存放
    • C.输入10个数据的逆序输出
    • D.以上叙述均错误
  38. 有以下程序段

    struct STU

    { char num[10];float score[3];};

    main()

    {

    struct STU s[3]={

    {"20021",90,95,85},

    {"20022",95,80,75},

    {"20023",100,95,90},

    },*p=s;

    int i;float sum=0;

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

      sum=sum+p->score[i];

    printf("%6.2f\n",sum);

    }

    程序运行后的输出结果是

    • A.260.00          B.270.00
    • C.280.00               D.285.00
  39. 设有如下定义

    char *s[2]={"abcd","ABCD"};

    则下列说法错误的是

    • A.s数组元素的值分别是″abcd″和″ABCD″两个字符串的首地址
    • B.s是指针数组名,它含有两个元素,分别指向字符型一维数组
    • C.s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素
    • D.s数组的两个元素中分别存放了字符′a′和′A′的地址
  40. 已定义以下函数

    fun(char *p2, char *p1)

    {

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

    }

    函数的功能是

    • A.将p1所指字符串复制到p2所指内存空间         B.将p1所指字符串的地址赋给指针p2
    • C.对p1和p2两个指针所指字符串进行比较          D.检查p1和p2两个指针所指字符串中是否有’\0’
  41. 下列关于单目运算符++、--的叙述中,正确的是

    • A.它们的运算对象可以是任何变量和常量
    • B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
    • C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
    • D.它们的运算对象可以是char型变量、int型变量和float型变量
  42. 已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

    • A.scanf("%2d,%2d,%2d", i, j, k);         B.scanf("%d %d %d",&i,&j,&k);
    • C.scanf("%d,%d,%d",&i,&j,&k);          D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
  43. 关于以下程序段的描述,正确的是

    x=-1;

    do

    {x=x*x-1;}while(!x);

    • A.是死循环           B.循环执行两次
    • C.循环执行一次          D.有语法错误
  44. 以下叙述中正确的是

    • A.预处理命令行必须位于源文件的开头      B.在源文件的一行上可以有多条预处理命令
    • C.宏名必须用大写字母表示      D.宏替换不占用程序的运行时间
  45. 在数据库设计中,用E-R图来描述信息结构,但不涉及信息在计算机中的表示,它是数据库设计的阶段。

    • A.需求分析     B.概念设计    C.逻辑设计    D.物理设计
  46. 若以下选项中的变量已正确定义,则正确的赋值语句是

    • A.x1=26.8%3;          B.1+2=x2;        C.x3=0x12;          D.x4=1+2=3;
  47. 数据的存储结构是指

    • A.存储在外存中的数据                  B.数据在计算机中的顺序存储方式  
    • C.数据的逻辑结构在计算机中的表示      D.数据所占的存储空间量
  48. 下列有关数据库的描述,正确的是

    • A.数据处理是将信息转化为数据的过程           
    • B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
    • C.关系中的每一列称为元组,一个元组就是一个字段           
    • D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
  49. 成功的测试是指

    • A.运行测试实例后未发现错误    
    • B.发现程序的错误      
    • C.证明程序正确            
    • D.软件产生
  50. 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是

    • A.堆排序               B.直接插入排序       C.快速排序                 D.
  51. 下列叙述中,不属于软件需求规格说明书的作用的是

    • A.便于用户、开发人员进行理解和交流      
    • B.反映出用户问题的结构,可以作为软件开发工作的基础和依据        
    • C.作为确认测试和验收的依据      
    • D.便于开发人员进行需求分析
  52. 关系模型允许定义三类数据约束,下列不属于数据约束的是

    • A.实体完整性约束          B.参照完整性约束
    • C.域完整性约束       D.用户自定义的完整性约束
  53. 已知一棵二叉树前序遍历和中序遍历分别为ABDEFGCHI和DBFEGACIH,则该二叉树的后序遍历为

    • A.DFGEBHICA        B.DGEBHFCAI          C.DFGEBIHCA         D.DGEBFIHCA
  54. 下列关于结构化设计原则的描述,错误的是

    • A.在块和进程的非正常出口处往往需要调用GOTO语句,使用GOTO语句使程序执行效率提高,但是滥用GOTO语句确实有害,应该避免使用GOTO语句
    • B.程序设计时应该自顶向下,逐步求精
    • C.程序设计时,应该将复杂问题进行模块化,就是将程序设计的总目标分解为若干个分目标,再进一步分解为具体的小目标
    • D.在进行程序设计时,应该尽量在一行写一条语句,尽量做到效率第一,清晰第二
  55. 由两个栈共享一个存储空间的好处是

    • A.减少存取时间,降低下溢发生的概率        B.节省存储空间,降低上溢发生的概率
    • C.减少存取时间,降低上溢发生的概率        D.节省存储空间,降低下溢发生的概率