一起答

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

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

    void ss(char *s,char t)

    { while(*s)

    { if(*s==t)*s=t-′a′+′A′;

    s++; } }

    main()

    { char str1[100]="abcddfefdbd",c=′d′;

    ss(str1,c); printf("%s\n",str1);}

    程序运行后的输出结果是

    • A.ABCDDEFEDBD
    • B.abcDDfefDbD
    • C.abcAAfefAbA
    • D.Abcddfefdbd
  2. 若有如下程序:  int sub()  {static int n=1;  int x=1;  x*=n;n++;  return x;  }  main()  {int n,t=1;  for(n=1;n<6;n++)t*=sub();  printf("%d\n",t);  }  则程序运行后的输出结果是(  )

    • A.15
    • B.120
    • C.34560
    • D.-30976
  3. 程序设计的任务包括(  )。

    • A.编写程序代码并上机调试
    • B.确定所用数据结构
    • C.确定所用算法
    • D.以上选项均正确
  4. 以下叙述中错误的是 ______。

    • A.C语句必须以分号结束
    • B.复合语句在语法上被看作一条语句
    • C.空语句出现在任何位置都不会影响程序运行
    • D.赋值表达式末尾加分号就构成赋值语句
  5. 以下程序执行后sum的值是( )。

    • A.15
    • B.14
    • C.不确定
    • D.0 main() { int i, sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); }
  6. 下列选项中,当x为大于1的奇数时,值为0的表达式是(  )。

    • A.x%2==1
    • B.x/2
    • C.x%2!=0
    • D.x%2==0
  7. 有以下程序:  void sum(int a[])  {a[0]=a[-1]+a[1];}  main()  {int a[10]={1,2,3,4,5,6,7,8,9,10};  sum(&a[2]);  printf("%d\n",a[2]);  }  程序运行后的输出结果是(   )。

    • A.6
    • B.7
    • C.5
    • D.8
  8. 有以下程序

      #include

      void fun(int x)

    {if(x/2>1)fun(x/2);

      printf(”%d”,x);

      }

      main( )

      {fun(7);printf(”\n”);}

      程序运行后的输出结果是(  )。

    • A.1 3 7
    • B.7 3 1
    • C.7 3
    • D.3 7
  9. 在嵌套使用if语句时,C语言规定else总是(  )。

    • A.和之前与其具有相同缩进位置的if配对
    • B.和之前与其最近的if配对
    • C.和之前与其最近的且不带else的if配对
    • D.和之前的第一个if配对
  10. 有以下定义

     #include  <stdio.h>

     char a[10],*b=a;

     不能给a数组输入字符串的语句是

    • A.gets(A)
    • B.gets(a[0]);
    • C.gets(&a[0]);
    • D.gets(B) ;
  11. 下列4项说法中,不正确的是______。

    • A.数据库减少了数据冗余
    • B.数据库中的数据可以共享
    • C.数据库避免了一切数据的重复
    • D.数据库具有较高的数据独立性
  12. 在进行单元测试时,常用的方法是

    • A.采用白盒测试,辅之以黑盒测试
    • B.采用黑盒测试,辅之以白盒测试
    • C.只使用白盒测试
    • D.只使用黑盒测试
  13. 下列叙述中正确的是______。

    • A.break语句只能用于switch语句
    • B.在switch语句中必须使用default
    • C.break语句必须与switch语句中的case配对使用
    • D.在switch语句中不一定使用break语句
  14. 下面程序的输出结果是______。  main()  {int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;  printf("%d\n",p[3]);  }

    • A.6
    • B.7
    • C.3
    • D.5
  15. 下列关于C语言文件的叙述中正确的是

    • A.文件由一系列数据依次排列组成,只能构成二进制文件
    • B.文件由结构序列组成,可以构成二进制文件或文本文件
    • C.文件由数据序列组成,可以构成二进制文件或文本文件
    • D.文件由字符序列组成,其类型只能是文本文件
  16. 设有以下函数:   f(int a)  { int b=0;  static int c=3;  b++; c++;  return(a+b+c);  }  如果在下面的程序中调用该函数,则输出结果是______。    main()  { int a=2, i;   for(i=0; i<3; i++)printf("% d\n", f(a));  }

    • A.7 8 9
    • B.7 9 11
    • C.7 10 13
    • D.7 7 7
  17. 以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是

    abs(int x)

    { if(x>=0)return x;

      else return -x; }

    main()

    { int y,z,(*p)(int x)=abs;

     scanf(" %d" ,&y);

     z=(*p)(y);

     ; }

    • A.printf(" %d %d\n",&p,z)
    • B.printf(" %d%d\n" ,p,z)
    • C.printf(" %d %d\n",*p,z)
    • D.printf(" %d%d\n" ,p,*z)
  18. 下列描述中正确的是(  )。

    • A.软件工程只是解决软件项目的管理问题
    • B.软件工程主要解决软件产品的生产率问题
    • C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
    • D.软件工程只是解决软件开发中的技术问题
  19. 在学生管理的关系数据库中,存取一个学生信息的数据单位是

    • A.文件
    • B.数据库
    • C.字段
    • D.记录
  20. 有以下程序

    #include

    int fun ()

    { static int x=1;

    x*2; return x;

    }

    main ()

    { int i,s=1 ,

    for ( i=1;i<=2;i++ ) s=fun () ;

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

    程序运行后的输出结果是

    • A. 0
    • B. 1
    • C. 4
    • D. 8
  21. 有以下程序  int f (int A)  { return a%2; }  main ( )  { int s[8]={1,3,5,2,4,6),i,d=0;  for (i=0; f(s[i]; i++) d +=s[i];  print f ("%d\n", D) ;  }  程序运行后的输出结果是

    • A.9
    • B.11
    • C.19
    • D.21
  22. 在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。

    • A.概要设计
    • B.详细设计
    • C.可行性分析
    • D.需求分析
  23. 若有定义float a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为 (  )。

    • A.334H
    • B.30DH
    • C.352H
    • D.31AH
  24. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是

    • A.快速排序
    • B.冒泡排序
    • C.直接插入排序
    • D.堆排序
  25. 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是

    • A.0X0
    • B.0x0
    • C.0
    • D.0XABC
  26. 设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于(  )。

    • A.p="";   
    • B.p="0";
    • C.p=0;
    • D.p="";
  27. 在C语言中,函数返回值的类型最终取决于(  )。

    • A.函数定义时在函数首部所说明的函数类型
    • B.return语句中表达式值的类型
    • C.调用函数时主调函数所传递的实参类型
    • D.函数定义时形参的类型
  28. 下面叙述正确的是 ______ 。

    • A. 算法的执行效率与数据的存储结构无关
    • B. 算法的空间复杂度是指算法程序中指令(或语句)的条数
    • C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
    • D. 以上三种描述都不对
  29. x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是

    • A.INPUT x、v、z;
    • B.scanf("%d%d%d",&x,&y,&z);
    • C.scanf("%d%d%d",x,y,z);
    • D.read("%d%d%d",&x,&y,&z);
  30. 若有说明int a[][3]={0,0};,则不正确的叙述是(  )。

    • A.数组a的每个元素的初值都是0
    • B.数组a的第一维大小为1
    • C.数组a的行数为1
    • D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
  31. 程序流程图中带有箭头的线段表示的是(  )。

    • A.图元关系
    • B.数据流
    • C.控制流
    • D.调用关系
  32. 对线性表进行二分法检索,其前提条件是( )。

    • A.线性表以顺序方式存储,并按关键码值排好序
    • B.线性表以顺序方式存储,并按关键码的检索频率排好序
    • C.线性表以链式方式存储,并按关键码值排好序
    • D.线性表以链式方式存储,并按关键码的检索频率排好序
  33. 有以下程序: #include <stdio.h>point ( char * p) { p + = 3; }main( )  char b[4] = {'a','b','c','d'} , *p=b;  point(p);  printf( "% c \n" , * p);

    • A.a
    • B.b
    • C.c
    • D.d
  34. 若函数中有定义语句:int a;,则(  )。

    • A.系统将自动给a赋初值0
    • B.这时a中的值是和随机数
    • C.系统将自动给a赋初值-1
    • D.这a中无任何值
  35. 以下能正确定义一维数组的选项是(  )。

    • A.int a[5] ={0,1,2,3,4,5};
    • B.char a[ ] = {0,1,2,3,4,5};
    • C.char a = {'A','B','C '};
    • D.int a[5] = "0123";
  36. 已有定义int(*q)(),指针q可以(  )。

    • A.指向函数的入口地址
    • B.代表函数的返回值
    • C.表示函数的类型
    • D.表示函数返回值的类型
  37. 若有定义int a=5,b=7;,则表达式a%=(b%2)运算后,a的值为(  )。

    • A.0
    • B.1
    • C.11
    • D.3
  38. 假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为

    • A.log2n
    • B.n2
    • C.O(n1.5)
    • D.n(n-1)/2
  39. 若有定义语句:int X=10;,则表达式x -=x+X的值为

    • A.-20
    • B.-10
    • C.0
    • D.10
  40. 以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是(  )

    • A.abs(-4.5)
    • B.sqrt(-4.0)
    • C.sin(3.1416/6.0)
    • D.paw(2.0,3.0)
  41. 以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

    • A.feof(fp)
    • B.ftell(fp)
    • C.fgetc(fp)
    • D.rewind(fp)