一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 以下程序的输出结果是

    main()

    {

         char s[]="abcdef";

         s[3]=’\0’;

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

    }

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

    main()

    {

        int i=10,j=0;

        do

        {

             j=j+i;

             i--;

        }while(i>2);

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

    }

  3. 在树形结构中,树根结点没有

  4. 一个类可以从直接或间接的祖先中继承所有的属性和方法。采用这个方法提高了软件的

  5. 软件工程是采用的方法开发和维护软件的工程学科。

  6. 以下程序的功能是:通过函数func 输入字符,并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。

    #include 

    long ; /* 函数说明语句 */

    main()

       long n;

       n=func();

      printf("n=%ld\n",n);

    }

    long func()

      long m;

      for( m=0; getchar()!=’@’;);

      retum m;

    }

  7. 在最坏情况下,冒泡排序的时间复杂度为

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

    #include 

    main()

         int j, a[]={1,3,5,7,9,11,13,15},*p=a+5;

         for(j=3; j; j--)

         { switch(j)

             { case 1:

             case 2: printf("%d",*p++); break;

              case 3: printf("%d",*(--p));

             }

         }

    }

  9. 以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果,请填空。

    int fun( int n)

    {  int m=0,f=1,i;

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

     { m+=i*f;

        f=-f;

     }

        return m;

    }

    main

    { printf("m=%d\\n",); }

  10. 若有以下定义

    char a;int b;

    float c;double d;

    则表达式a*b+d-c值的类型为

  11. 应用数据库的主要目的是解决问题。

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

    void dele(char *s)

    { int n=0,i;

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

    if()

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

    s[n]=;

    }

  13. 定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为

  14. 有以下程序

    struct STU

    {

         char name[10];

         int num;

         int Score;

    };

    main()

    {

       struct STU s[5]={{"YangSan",20041,703},

            {"LiSiGuo",20042,580},

            {"WangYin",20043,680},

            {"SunDan",20044,550},

            {"Penghua",20045,537}}, *p[5], *t;

        int i,j;

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

            p[i]=&s[i];

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

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

               if(p[i]->Score>p[j]->Score)

               {

            t=p[i];

            p[i]=p[j];

            p[j]=t;

               }

       printf("%d %d\n",s[1].Score,p[1]->Score);

    }

    程序运行后的输出结果是

    • A.550 550      B.580 550 
    • C.680 680          D.580 680
  15. 有以下程序

    main()

    {

       char a[]={ ′a′, ′b′, ′c′,′d′, ′\0′, ′f′, ′g′,′h′,′\0′}; int i,j;

       i=sizeof(a);

       j=strlen(a);

       printf("%d,%d\b",i,j);

    }

    程序运行后的输出结果是

    • A.9,4             B.8,4           C.1,8          D.9,8
  16. 若有如下语句

    int x=3;

    do{ printf("%d\n",x-=2);}

    while(!(--x));

    则上面程序段

    • A.输出的是1  B.输出的是1和-2 C.输出的是3和0         D.是死循环
  17. 假定x和y为double型,则表达式x=2,y=x+3/2的值是

    • A.3.500000                B.3       C.2.000000               &nbs
  18. 30.下列关于C语言数据文件的叙述中正确的是

    • A.文件由ASCII码字符序列组成,C语言只能读写文本文件
    • B.文件由二进制数据序列组成,C语言只能读写二进制文件
    • C.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
    • D.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
  19. 有以下程序

    main()

    {

       int c=35;

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

    }

    程序运行后的输出结果是

    • A.0         B.70         C.35         D.1
  20. 有以下程序段

    main()

    {   

       int a=5,*b,**c;

       c=&b; b=&a;

       ……

    }

    程序在执行了c=&b;b=&a;语句后,表达式**c的值是

    • A.变量a的地址          B.变量b中的值
    • C.变量a中的值          D.变量b的地址
  21. 以下选项错误的是

     

  22. 有以下程序

    #include 

    #define N 4

    void fun(int a[][N], int b[])    

    {  int i;

        for(i=0; i

        b[i]=a[i][i];

    }

    main()

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

        fun(x,y);

        for (i=0; i

        printf("\n");

    }

    程序的运行结果是

    • A.l,2,3,4,
    • B.1,0,7,0, 
    • C.1,4,5,9, 
    • D.3,4,8,10,
  23. 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是

    main()  

    { char s[100];int c,i;

      scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

      prinnf("%c,%d,%s\n",c,i,s);}

    • A.123,456,789         B.1,456,789
    • C.1,23,456,789           D.1,23,456
  24. 有以下程序

    fun(int *a,int n) 

    {  int i,j=0,p;

       p=j;

       for(i=j;i

       if(a[i]   ____;

       return(p);

    }

    在下画线处应填入的是

    • A.i=p            B.a[p]=a[i]
    • C.p=j          D.p=i
  25. 若变量已正确定义并赋值,下面符合C语言要求的表达式是

    • A.a:=b+1  B.a=b=c+2       C.int 18.5%3 D.a=a+7=c+b
  26. 设有:

    int a=1,b=2,c=3,d=4,m=2,n=2;

    执行(m=a>b)&&(n=c>d)后,n的值是

    • A.1           B.2         C.3           D.4
  27. 若有如下说明和定义

    struct test

    {  int ml; char m2; float m3;

     union uu {char ul[5]; int u2[2];} ua;

    } myaa;

    则sizeof(struct test)的值是

    • A.12             B.16     
    • C.14                D.9
  28. 如下程序段

    #include 

    #include 

    #include 

    int fun (char *str)

    {  int i,j=0;

    for(i=0;str[i]!= ’\0’;i++)

    if(str[i]!= ’ ’)str[j++]=str[i];

    str[j]= ’\0’;

    }

    main()

    {

    char str[81];

    int n;

    clrscr();

    printf("Input a string : ");

    gets(str);

    fun(str);

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

    }

    当运行程序时,输入asd af aa z67<回车>,则输出是

    • A.asdafaaz67    
    • B.asd af aa z67 
    • C.asd      
    • D.z67
  29. 以下叙述中正确的是

    • A.C 程序的基本组成单位是函数       B.C程序中的每一行只能写一条语句
    • C.main()函数必须放在其他函数之前        D.C语句必须在一行内写完
  30. 下面各选项中,均是C语言中合法标识符的选项组是

    • A.for china to       B.long_123 short 56_do   
    • C.void union _342         D.text _023 _3ew
  31. 若变量c为char类型,能正确判断出c为小写字母的表达式是

    • A.’a’<=c<=’z’         B.(c>=’a’)||(c<=’z’)
    • C.(’a’<=c)and(’z’>=c)                   D.(c>=’a’)&&(c<=’z’)
  32. 有如下程序

    void func1(int st[],int i)

    {  printf("%c",st[i]);

    if(i<3){i+=2;func2(st,i);}

    }

    void func2(int st[],int i)

    {  printf("%c",st[i]);

    if(i<3){i+=2;func1(st,i);}

    }

    main()

    {  char st[ ]="hello,friend! ";

    int i=0;func1(st,i);

    printf("\n");}

    程序执行后输出的结果是

    • A.hello      B.hel   
    • C.hlo            D.编译出错
  33. 下面程序的功能是输出以下形式的金字塔图案。

     main()

    {

    int i,j;

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

     {

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

     printf(" ");

    for(j=1;j<=______;j++)

     printf("*");

    printf("\n");

     }

    }

    在下画线处应填入的是

    • A.i    B.2*i-1    C.2*i+1    D.i+2
  34. 有如下程序段

    #include "stdio.h"

    #include "string.h"

    #define N 10

    #define M 10

    char *find(char(*a)[M],int n)

    {  char *q;int i;

    q=a[0];

    for(i=0;i

    if(strcmp(a[i],q)<0)q=a[i];

    return q;}

    main()

    { char s[N][M]={"tomeetme","you","and","he","china"};

    char *p;

    int n=5;

    p=find(s,n);

    puts(p);}

    则执行后输出的结果为

    • A.he
    • B.and
    • C.you
    • D.tomeetme
  35. 以下程序中,函数sort的功能是对a数组中的数据进行由大到小的排序。

    void sort(int a[],int n)

    {  int i,j,t;

    for(i=0;i

    for(j=i+1;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[3],5);

    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.1,2,3,8,7,6,5,4,9,10
    • D.1,2,10,9,8,7,6,5,4,3
  36. 若有以下程序

    #include 

    main()

    {  int i;

    int a[]={1,3,5,7,9}

    int *p=a;

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

    • a[i]=*p;    printf("%d,%d\n",a[2],a[4]);    }    上面程序的输出结果是
    • A.3,9          B.5,9
    • C.1,9         D.1,1
  37. 以下描述错误的是

    • A.C程序中,函数可以直接或间接调用自己
    • B.函数调用时,函数名必须与所调用的函数名字完全一致
    • C.函数说明语句中的类型必须与函数返回值的类型一致
    • D.实参个数可以与形参个数不一致
  38. 若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是

    • A.a,point,*&a          B.&*a,&a,*point         
    • C.*&point,*point,&a           D.&a,&*point,point
  39. 已知int a,b;double c;,则以下语句中错误的函数调用是

    • A.scanf("%d,%x,%lf",&a,&b,&c);        B.scanf("%d,%d,%le",&a,&b,&c);
    • C.scanf("%o,%x,%o",&a,&b,&c);         D.scanf("%d,%o,%e",&a,&b,&c);
  40. 有以下计算公式:

    若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是

    ([answer]

  41. 以下符合C语言语法的实型常量是

    • A.1.2E0.7           B.3.33.145E           C.E23        D..4E-2
  42. 若有以下程序段,w和k都是整型变量。

    w=k;

    LB:if(w==0)goto LE;

         w--;

         printf("*");

         goto LB;

    LE:

         M

    则不能与上面程序段等价的循环语句是

    • A.for(w=k;w!=0;w--)printf("*");
    • B.w=k;while(w--!=0)printf("*");w++;
    • C.w=k;do { w--;printf("*");}while(w!=0);
    • D.for(w=k;w;--w)printf("*");
  43. 有以下程序

    #include "stdio.h"

    void fun(int *a,int *b)

    {  int c=20,d=20;

       *a=c/3;

       b=d/5;}

    main()

    {  int a=3,b=5;

       fun(&a,&b);

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

    }

    程序的运行结果是

    • A.6,5       B.5,6
    • C.20,25       D.3,5
  44. 在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是

    • A.数据库系统 B.文件系统    C.人工管理    D.数据项管理
  45. 下列描述中正确的是

    • A.软件指的就是程序        B.软件开发不受任何计算机系统的限制
    • C.软件既是逻辑实体,又是物理实体      D.软件是程序、数据与相关文档的集合
  46. 用树形结构来表示实体之间联系的模型称为

    • A.层次模型          B.关系模型           C.网状模型           D.数据模型
  47. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是

    • A.插入排序            B.冒泡排序            C.直接插入排序         D.堆排序
  48. 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序只看做是

    • A.路径的集合              B.循环的集合       C.目标的集合               D.地址的集合
  49. 非空的循环单链表head的尾结点(由p所指向)满足

    • A.p->next==NULL         B.p==NULL         C.p->next=head          D.p=head
  50. 开发大型软件时,产生困难的根本原因是

    • A.大系统的复杂性       B.人员知识不足         C.客观世界千变万化          D.时间紧、任务重
  51. 对建立良好的程序设计风格,下面描述正确的是

    • A.程序应简单、清晰、可读性好        B.符号名的命名只需符合语法
    • C.充分考虑程序的执行效率          D.程序的注释可有可无
  52. 下列叙述中不正确的是。

    • A.算法的效率不仅与问题的规模有关,还与数据的存储结构有关
    • B.算法的时间复杂度是指执行算法所需要的计算工作量
    • C.数据的逻辑结构与存储结构是一一对应的
    • D.算法的时间复杂度与空间复杂度不一定相关
  53. 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图内容的是

    • A.控制流 B.加工   C.数据存储    D.数据流