一起答

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

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

    main()

    {int a=10;

    a=(3*5,a+4);printf("a=%d\n",a);

    }

  2. 设有如下宏定义

     #define MYSWAP(z,x,y){z=x;x=Y;Y=z;}

     以下程序段通过宏调用实现变量a、b内容的交换,请填空。

     float a=5,b=16,c;

     MYSWAP( 【 】,a,b) ;

  3. 下列程序段的运行结果是______。

     int x=0,y=0;

     while(x<15) y++,x+=++y;

     printf("%d,%d",y,x);

  4. 已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树后,最后2层上的结点总数为______。

    • A.1
    • B.2
    • C.3
    • D.4
  5. 下列可用于C语言用户标识符的一组是______。

    • A.void define WORD
    • B.a3_b3 _123 Car
    • C.For -abc IFCase
    • D.2a DO sizeof
  6. 若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((   ),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

  7. 程序流程图(PFD)中的箭头代表的是(  )。

    • A.数据流
    • B.控制流
    • C.调用关系
    • D.组成关系
  8. 以下叙述中正确的是______。

    • A.局部变量说明为static存储类,其生存期将得到延长
    • B.全局变量说明为static存储类,其作用域将被扩大
    • C.任何存储类的变量在未赋初值时,其值都是不确定的
    • D.形参可以使用的存储类说明符与局部变量完全相同
  9. 计算机能够直接识别和执行的语言是

    • A.汇编语言
    • B.自然语言
    • C.机器语言
    • D.高级语言
  10. 有下列程序段:  int k=0,a=1,b=2,c=3;  k=a<b?b:a;k=k>c?c=k;  执行该程序段后,k的值是(  )。

    • A.3
    • B.2
    • C.1
    • D.0
  11. 以下程序中函数reverse 的功能是将a所指数组中的内容进行逆置。 void reverse(int a [ ], int n){ int i, t; for(i=0;i<n/2;i++) {t=a[i]; a[i] =a[n-1-i];a[n-1-i]=t; }}main(){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i, s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf("%d\n", s);}  程序运行后的输出结果是

    • A.22
    • B.10
    • C.34
    • D.30
  12. 在C语言中,变量的隐含存储类别是

    • A.auto
    • B.static
    • C.extern
    • D.无存储类别
  13. 下列对于线性链表的描述中正确的是 ______。

    • A.存储空间不一定是连续,且各元素的存储顺序是任意的
    • B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
    • C.存储空间必须连续,且前件元素一定存储在后件元素的前面
    • D.存储空间必须连续,且各元素的存储顺序是任意的
  14. 下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }

    • A.3
    • B.3.2
    • C.0
    • D.3.07
  15. 下列变量声明合法的是(  )。

    • A.short a=1.4e-1;
    • B.double b=1+3e2.8;
    • C.long do=OxfdaL;
    • D.float 2
  16. 若二维数组a有m列,则在a[i][j]刚前的元素个数为(  )。

    • A.i*m+j-1
    • B.i*m+j
    • C.j*m+I
    • D.i*m+j+1
  17. 栈和队列的共同点是(  )。

    • A.都是先进先出
    • B.都是先进后出
    • C.只允许在端点处插入和删除元素
    • D.没有共同特点
  18. 有定义语句int b;char c[10];,则正确的输入语句是 ______。

    • A.scallf("%d%s",&b,&c);
    • B.scallf("%d %s",&b,c);
    • C.scanf("%d %s",b,c)
    • D.scanf("%d%s",b,&c);
  19. 下列程序的输出结果是( )。   main()    { int a=1,b=2;      printf("%d,%d\n",--a,++b);   }

    • A.1,2
    • B.1,3
    • C.0,2
    • D.0,3
  20. 以下程序运行后的输出结果是______。  int d=1;  fun(int p)  {static int d=d; d+=p;  printf("%d",d) ;return d;  }  main()  {int a=3; printf("%d\n",fun(a+fun(d)));}

    • A.699
    • B.669
    • C.61515
    • D.6615
  21. 以下有4组用户标识符,其中合法的一组是______。

    • A.FOR -sub Case
    • B.4d DO Size
    • C.f2_G3 IF abc
    • D.WORD void define
  22. 排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。

    • A.希尔排序
    • B.冒泡排序
    • C.插入排序
    • D.选择排序
  23. 以下不能对二维数组a进行正确初始化的语句是

    • A.int a[2][3]={0};
    • B.int a[][3]={{1,2},{0}};
    • C.int a[2][3]={{1,2},{3,4},{5,6}};
    • D.int a[][3]={1,2,3,4,5,6};
  24. 算法的时间复杂度是指

    • A.执行算法程序所需要的时间
    • B.算法程序的长度
    • C.算法执行过程中所需要的基本运算次数
    • D.算法程序中的指令条数
  25. 若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是

    • A.#define N 10 int a [N];
    • B.#define n 5 int a [2*n];
    • C.int a [5+5];
    • D.int n=10,a [n];
  26. 下列有关格式输入函数scanf的叙述中正确的是  (  )

    • A.输入项可以是C语言中规定的任何变量,并且在任何变量前必须加地址符号“&”
    • B.可以只有格式控制项,没有地址列表项
    • C.在输入数据时,必须规定精度。如:scanf("%4.2f",&d) ;
    • D.当输入数据时,必须指明变量地址
  27. 以下叙述中正确的是

    • A.局部变量说明为static存储数,其生存期将得到延长
    • B.全局变量说明为static存储类,其作用域将被扩大
    • C.任何存储类的变量在未赋初值时,其值都是不确定的
    • D.形参可以使用的存储类说明符与局部变量完全相同
  28. 设有定义:intk=1,m=2;noat f=7;则下列选项中错误的表达式是(  )。

    • A.k=k>=k
    • B.-k++
    • C.k%int(f)
    • D.k>=f>=m
  29. 有如下定义  #define D2  int x=5;float y=3.83;  char C='D';  则下面选项中错误的是

    • A.x++;
    • B.y++;
    • C.c++;
    • D.D++;
  30. 有如下说明:int a [10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是______。

    • A.*p+9
    • B.*(p+8)
    • C.*p+=9
    • D.p+8
  31. 有以下程序:  #include<string.h>  main(int argc,char*argv[])  {int i=1,n=0;  while(i<argC){n=n+strlen(argv[i]);i++}  printf("%d\n",n);  }  该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行:  proc 123 45 67  则该程序的输出结果是(   )。

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