一起答

2017年计算机二级考试C语言模拟试题2

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下列程序利用指针将2个数按从大到小的顺序输出。

     main ()

      { int a,b, 【 】;

        printf("input a,b: ");

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

         【 】;

     p2=&b;

     if (a<b)

     { p=p1;

      p1=p2;

      p2=p;

     }

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

     printf("max=%d min=%d\n",【 】);

  2. 以下程序的运行结果是【 】。

    #include

    long fib(int g)

    { switch(g)

    { case 0:return 0;

    case 1:

    case 2:return 1; }

    return(fib(g-1)+fib(g-2)); }

    main()

    { long k;

    k=fib(5);

    printf("k=%5ld\n",k);}

  3. 若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给s1,下列语句错误的是(  )。

    • A.strcpy(s1,s2)
    • B.strcpy(s1, "ABCDE");
    • C.s1="ABCDE";
    • D.for(i=0;i<6;i++) s1[i]=s2[i];
  4. 当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为(   )。

  5. 以下程序的输出结果为【 】。

     main()

     { int k=1;

       white(k<=15)

       if(++k%3!=2)continue;

       else printf("%d ",k);

       printf("\n");

     }

  6. 数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是(  )。

    • A.DB包括DBS和DBMS
    • B.DBMS包括DB和DBS
    • C.DBS包括DB和DBMS
    • D.没有任何关系
  7. 设R是一个二元关系,S是一个三元关系,则下列运算中正确的是(  )。

    • A.R-S
    • B.R×S
    • C.R∩S
    • D.R∪S
  8. 下述关于C语言文件的操作的结论中,正确的是______。

    • A.对文件操作必须先关闭文件
    • B.对文件操作必须先打开文件
    • C.对文件操作顺序无要求
    • D.对文件操作前必须先测文件是否存在,然后再打开文件
  9. 有以下程序:  main()  { int m=3, n=4, x;  x=-m++;  x=x+8/++n;  printf("% d\n", x);  }  程序运行后的输出结果是______。

    • A.3
    • B.5
    • C.-1
    • D.-216
  10. 在单链表中,增加头结点的目的是

    • A.方便运算的实现
    • B.使单链表至少有一个结点
    • C.标识表结点中首结点的位置
    • D.说明单链表是线性表的链式存储实现
  11. 以下说法正确的是(  )。

    • A.C程序总是从第一个函数开始执行
    • B.在C程序中,被调用的函数必须在main函数中定义
    • C.C程序总是从main函数开始执行
    • D.C程序中的main函数必须放在程序的开始部分
  12. 下面程序运行的结果是______。  main()  { int x,y,z;   x=0;y=z=-1;   x+=-z---y;   printf("x=%d\n",x);  }

    • A.x=4
    • B.x=0
    • C.x=2
    • D.x=3
  13. 执行以下程序后,a,b的值分别为  main()  { in a,b,k=4,m=6,*p1=&k,*p2=&m;   a=p1==&m;   b=(*p1)/(*p2)+7;   printf("a=%d\n",a);   printf("b=%d\n",b);}

    • A.-1,5
    • B.1,6
    • C.0,7
    • D.4,10
  14. 有以下程序  main()  { char s[]="ABCD",*p;    for(p=s+1;p<s+4;p++)printf("%s\n",p);  }  程序运行后的输出结果是

    • A.ABCD BCD CD D
    • B.A B C D
    • C.B C D
    • D.BCD CD D
  15. 有如下程序段:  int a[10]={1,2,3,4,5,6,7,8,9,10};  int *p=&a[3],b;b=P[5];则b的值是(  )。

    • A.5
    • B.6
    • C.9
    • D.8
  16. 有如下程序  #include<stdio.h>  main()  { FILE *fpl;   fpl=fopen("f1.txt","w");   fprintf(fp1,"abc");   fclose(fp1);  }  若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为

    • A.goodabc
    • B.abcd
    • C.abc
    • D.abcgood
  17. C语言可执行程序的开始执行点是(  )。

    • A.包含文件中的第一个函数
    • B.程序中第一个函数
    • C.程序中的main()函数
    • D.程序中第一条语句
  18. 有以下程序

      #include

      main()

      { struct node{int n;struct node*next;}*p;

       struct node x[3]={{2,x+1},{4,x+2},{6,NULL}};

       p=x:

       printf("%d,",p->n);

       printf("%d\n",P->next->n);

      }

      程序运行后的输出结果是

    • A.2,3
    • B.2,4
    • C.3,4
    • D.4,6
  19. 以下选项中不属于字符常量的是

    • A.′C′
    • B.′′C′′
    • C.′\xCC′
    • D.′\072′
  20. 在下列几种排序方法中,要求内存量最大的是() 

    • A. 插入排序
    • B. 选择排序
    • C. 快速排序
    • D. 归并排序
  21. 若有说明:int *p,m=5,n;,以下正确的程序段是

    • A.p=&n;scanf("%d",&p);
    • B.p=&n;scanf("%d",*p)
    • C.scanf("%d",&n);*p=n;
    • D.p=&n;*p=m;
  22. 十六进制数BB转换成十进制数是 ( )

    • A.192
    • B.256
    • C.187
    • D.121
  23. 设x=011050,则x=x&01252的值是(   )。

    • A.0000001000101000
    • B.1111110100011001
    • C.0000001011100010
    • D.1100000000101000
  24. 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 ______ 。

    • A. 调用语句
    • B. 命令
    • C. 口令
    • D. 消息
  25. 有如下程序  main()  { int y=3,x=3,z=1;  printf("%d%d\n",(++x,y++),z+2);  }  运行该程序的输出结果是______。

    • A.3 4
    • B.4 2
    • C.4 3
    • D.3 3
  26. 若有下面的说明和定义 

    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
  27. 若有说明int a[][3]={1,2,3,4,5,6,7,8,9},则a数组第一维的大小是(  )。

    • A.2
    • B.3
    • C.4
    • D.无确定值
  28. 有以下程序:  void swap1(int C[])  {  int t;  t=c[0];  c[0]=C[1];  c[1]=t;  }  void swap2(int c0, int c1)  {  int t;  t=c0;  c0=c1;  c1=t;  }  main()  { int a[2]={3,5}, b[2]={3,5);  swapl(a); swap2(b[0],b[1]);  printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);  }  其输出结果是

    • A.5 3 5 3
    • B.5 3 3 5
    • C.3 5 3 5
    • D.3 5 5 3