一起答

2017年国家计算机二级c语言题库试卷(1)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 数据库(DB) 、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是(  )。

    • A.DB包含DBS和DBMS
    • B.DBMS包含DB和DBS
    • C.DBS包含DB和DBMS
    • D.没有任何关系
  2. 以下叙述中错误的是

    • A.gets函数用于从终端读入字符串
    • B.getchar函数用于从磁盘文件读入字符
    • C.fputs函数用于把字符串输出到文件
    • D.fwrite函数用于以二进制形式输出数据到文件
  3. 下列程序的运行结果是(  )。

     #include<stdio.h>

     main()

     { int a=2,b=3,c=4;

      ifa<B)

     if(b<0)c=0;

     else c+=1;

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

     }

    • A.2
    • B.3
    • C.5
    • D.4
  4. 下列能正确进行字符串赋值的是(  )。

    • A.char s[5]={"ABCDE"};
    • B.char s[5]={'A','B','C','D','E'};
    • C.char*s;s="ABCDE";
    • D.char*s;printf("%s",s);
  5. 下列叙述中错误的是(  )。

    • A.在程序中凡是以“#”开始的语句行都是预处理命令行
    • B.预处理命令行的最后不能以分号表示结束
    • C.#define MAX是合法的宏定义命令行
    • D.C程序对预处理命令行的处理是在程序执行的过程中进行的
  6. 设有下列二叉树:

    对此二叉树先序遍历的结果是

    • A.ABCDEF
    • B.DBEAFC
    • C.ABDECF
    • D.DEBFCA
  7. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是______。

    • A.多对多
    • B.一对一
    • C.多对一
    • D.一对多
  8. 下列函数的类型是(   )。

    fun(double x)

    { float y;

    y=3*x-4:

    return y;

    }

    • A. int
    • B.不确定
    • C.void
    • D.float
  9. 以下叙述中正确的是

    • A.构成C程序的基本单位是函数
    • B.可以在一个函数中定义另一个函数
    • C.main()函数必须放在其他函数之前
    • D.C函数定义的格式是K&R格式
  10. 结构化程序所要求的基本结构不包括

    • A.顺序结构        
    • B.GOTO跳转
    • C.选择(分支)结构   
    • D.重复(循环)结构
  11. 有如下程序: 

    long fib(int n) 

    { if(n>2)return(fib(n-1)+fib(n-2)); 

    else return(2); 

    main() 

    { printf("%d\n",fib(3));}  

    该程序的输出结果是

    • A.2 
    • B.4 
    • C.6 
    • D.8
  12. 若有以下定义和语句

    char s1[10]= " abcd! " ,*s2= " \n123\\ ";

    printf ( " %d %d\n ", strlen ( s1 ) ,strlen ( s2 ) ) ;

    则输出结果是

    • A. 5 5
    • B. 10 5
    • C. 10 7
    • D. 5 8
  13. 设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为 ______。

    • A.10101001
    • B.10101000
    • C.11111101
    • D.1010101
  14. 下面程序的输出结果是 ______。#include<stdio.h>main(){ char*p[]={"BOOL","OPK","H","SP"};  int i:  for(i=3;i>=0;i-,i-)   printf("%c",*p[i]);  printf("\n");}

    • A.SO
    • B.SP
    • C.SPOPK
    • D.SHOB
  15. 有如下程序:

    main( )

    { int n[5]={0,0,0},i,k=2;

    for(i=0;i&printf("%d\n",n[k]););

    }

    该程序的输出结果是( )。

    • A.不确定的值
    • B.2
    • C.1 
    • D.0
  16. 下列程序执行后的输出结果是(   )。

    void func(int*a,int b[])

    { b[0]=*a+b;}

    main

    { int a,b[5];

    • a=0.b[0]=3;
    • func(&a,b);printf("%d\n",b[0]);    }
    • A.6
    • B.7
    • C.8
    • D.9
  17. 若有下列定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    • A.p+5
    • B.*a+1
    • C.&a+1 
    • D.&a[0]
  18. 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是

    • A.10
    • B.8
    • C.6
    • D.4
  19. 在结构化方法中,软件功能分解属于下列软件开发中的阶段是

    • A.详细设计
    • B.需求分析
    • C.总体设计
    • D.编程调试
  20. 计算机硬件组成中,CPU包含______。

    • A.控制器和存储器
    • B.控制器和运算器
    • C.控制器、运算器和存储器
    • D.内存储器和外存储器
  21. 若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是 ______。

    • A.for (i=1,p=1; i<=5; i+ +)p* = i;
    • B.for (i=1;i<=5; i+ +) {p=1;p*=i;}
    • C.i=1;p= 1;while( i<=5) { p* =i;i+ +; }
    • D.i=1;p=1;do{ p*=i;i+ +; } while (i<=5);
  22. C语言中最简单的数据类型包括(  )。

    • A.整型、实型、逻辑型
    • B.整型、实型、字符型
    • C.整型、字符型、逻辑型
    • D.字符型、实型、逻辑型
  23. 有以下程序  main()  { int x=102,y=012;   printf("%2d,%2d\n",x,y);  }  执行后输出结果是

    • A.10,01
    • B.02,12
    • C.102,10
    • D.02,10
  24. 若有"double a;",则正确的输入语句是( )。

    • A.scanf("%1f",a);
    • B.scanf("%f",&a);
    • C.scanf("%1f",&a)
    • D.scanf("%1e",&a);
  25. 设有定义int  a=2,b=3,c=4;,则以下选项中值为0的表达式是 ______。

    • A.(!a==1&&(!b==0)
    • B. (a<b) &&!c||1
    • C.a&&b
    • D.a||(b+b) &&(c-a)
  26. 有以下程序:  int f(int n)  { if (n==1) return 1;  else return f(n-1)+1;  }  main()  { int i,j=0;  for(i=i;i<3;i++) j+=f(i);  printf("%d\n",j);  }  程序运行后的输出结果是( )。

    • A.4
    • B.3
    • C.2
    • D.1
  27. 有以下程序

    1.jpg 

    执行程序时,给变量X输入l0,程序的输出结果是( )。

    • A.55
    • B.54
    • C.65
    • D.45
  28. 有以下程序

    #include <stdio.h>

    struct st {

    int x,y;

    } data[2]={1,10,2,20};

    main()

    {

    struct st *p=data;

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

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

    }

    程序的运行结果是______。

    • A.10,1
    • B.20,1
    • C.10,2
    • D.20,2
  29. 以下不正确的定义语句是

    • A.double x[5]={2.0,4.0,6.0,8.0,10.0}; 
    • B.int y[5.3]={0,1,3,5,7,9}; 
    • C.char c1[]={′1′, ′2′, ′3′, ′4′, ′5′}; 
    • D.char c2[]={′\x10′, ′\xa′, ′\x8′};
  30. 下列选项中不是字符常量的是(  )。

    • A.'\v'
    • B.'\x2a'
    • C.'a'
    • D."\0"
  31. 已知  #int t=0;  while(t=1)  {…}  则以下叙述正确的是

    • A.循环控制表达式的值为0
    • B.循环控制表达式的值为1
    • C.循环控制表达式不合法
    • D.以上说法都不对
  32. 有以下程序:  void fun1(char*p)  { char *q;   q=p;   while(*q!='\0')   { (*q)++; q++; }  }  main()  { char a[]={"Program"),*p;   p=&a[3]; fun1(p) printf("%s\n",A) ;  }  程序执行后的输出结果是( )。

    • A.Prohsbn
    • B.Prphsbn
    • C.Progsbn
    • D.Program
  33. 设x,y,t均为int型变量,执行语句: 

    x=y=3; 

    t=++x||++y; 

    完成后,y的值为

    • A.不确定 
    • B.4 
    • C.3 
    • D.1
  34. 以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:  #include<stdio.h>  voidsort(int a[],int n)  { int i,j,t;   for(i=0;i<n-1;i++)     for(j=i+1;j<n;j++)      if(a[i]<a[j])      {t=a[i];a[i]=a[j];a[j]=t;}  }  main()  { int aa[]={1,2,3,4,5,6,7,8,9,10},i;   son(&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,
  35. 有以下程序:

    #include

    main(  )

    {int S;

    scanf("%d",&s);

    while(s>O)

    {switch(s)

    {case l:printf("%d",s+5);

    case 2:printf("%d",s+4);break;

    case 3:printf("%d",s+3);

    default:("%d",s+1);break;

    }

    scanf("%d",&s);

    }

    }

    运行时,若输入1 2 3 4 5 0<回车>,由输出结果是(  )。

    • A.6566456   
    • B.66656
    • C.66666
    • D.6666656
  36. 已定义c为字符型变量,则下列语句中正确的是

    • A.c='97';
    • B.c="97";
    • C.c=97;
    • D.c="a";
  37. 数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是(  )。

    • A.DB包括DBS和DBMS
    • B.DBMS包括DB和DBS
    • C.DBS包括DB和DBMS
    • D.没有任何关系
  38. 有以下程序  main()  { int p[7]={11,13,14,15,16,17,18},i=0,k=0;   while(i<7&&p[i]%2){k=k+p[i];i++;}   printf("%d\n",k);  }  执行后输出结果是

    • A.58
    • B.56
    • C.45
    • D.24
  39. 有以下程序

    #include

    void fun(int P)

    {int d=2;

    P=d++;printf(“%d”,P);}

    main( )

    {int a=1;

    fun(A);prinff(“%.d\n”,A);}

    程序运行后的输出结果是

    • A.32
    • B.12
    • C.21
    • D.22
  40. 在Internet中,域名服务器的主要功能是实现( ) 的转换。

    • A.IP地址到域名(主机名字)
    • B.域名到IP地址
    • C.主机IP地址和路由器IP地址之间
    • D.路由器IP地址之问
  41. 在深度为5的满二叉树叶中,叶子结点的个数为(   )。

    • A.32
    • B.31
    • C.16
    • D.15
  42. 以下程序的主函数中调用了在其面前定义的fun函数

    #include

    .

    .

    .

    main(  )

    {double a[15],k;

    k=fun(a);   

    .

    .

    .

    }

    则以下选项中错误的fun函数首部是(  )。   、

    • A.double fun(double a[l5])
    • B.double fun(double *a)   
    • C.double fun(double a[])
    • D.double fun(double a)