一起答

2017年全国计算机二级考试题库3(C语言)

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

     main()

     { int p,a=5;

     if(p=a!=0)

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

     else

     printf("%d\n",p+2);

     }

     执行后输出结果是【 】。

  2. 以下程序运行后的输出结果是【 】。(注:如果结果中含有回车,可加一空格写在一行,例如:

     1 1 1

     1 1 1

     1 1 1

    可以写成:1 1 1 1 1 1 1 1 1。

     #include <stdio.h>

     mala()

     { int i,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

         for(j=i+1;j<3;j++) a[j][i]=0;

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

       { for(j=0;j<3;j++) printf("%d",a[i][j]);

         printf("\n");

       }

     }

  3. 以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

      int fun(int a[N][M])

      {int i,j,row=0,col=0;

      for(i=0;i

      for(j=0;j

      if(a[i][j]>a[row][col])(row=i;col=j;)

      return(_____);

      }

  4. 有以下语句段:

     int n1=10,n2=20;

     printf("【 】",n1,n2);

     要求按以下格式输出n1和n2的值:

     n1=10

     n2=20

    每个输出行从第一列开始,请填空。

  5. 数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为(   )。

    • A.C
    • B.Basic
    • C.DDL
    • D.DML
  6. 以下有关宏的描述不正确的是(  )。

    • A.宏定义不做语法检查
    • B.双引号中出现的宏名不进行替换
    • C.宏名无类型
    • D.宏名必须用大写字母表示
  7. 下列叙述错误的是(  )。

    • A.函数名是属于用户标识符,需符合C语言对标识符的规定
    • B.形参只能是变量
    • C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
    • D.函数中定义的变量可以与其他函数中的变量同名
  8. 有以下程序

    #include

    #include 

    typedef strlIct{char name[9];char sex;float score[2];}STU;

    STU f(STU a) 

    { STU b={"Zhao",m,85.0,90.0);int i;

    strcpy(a name,b.name);

    sex:b.sex;

    for(i=0;i<2;i++)a.score[i]=b.score[i];

    return a;

    }

    main

    {STU c="Qian",f,95.0,92.0},d;

    d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

    }

    程序的运行结果是( )。

    • A.Qian,f,95,92
    • B.Qian,m,85,90
    • C.Zhao,m,85,90 
    • D.Zhao,f,95,92
  9. 下列关于栈叙述正确的是

    • A.栈顶元素最先能被删除
    • B.栈顶元素最后才能被删除
    • C.栈底元素永远不能被删除
    • D.上述三种说法都不对
  10. 判断字符串s1是否大于字符串s2,应该使用(  )。

    • A.if(strcmp(s1,s2)<0)
    • B.if(s1>s2)
    • C.if(strcmp(s2,s1)<0)
    • D.if(strcmp(s1,s2))
  11. 以下叙述中错误的是

    • A.在程序中凡是以“#”开始的语句行都是预处理命令行
    • B.预处理命令行的最后不能以分号表示结束
    • C.#define MAX是合法的宏定义命令行
    • D.C程序对预处理命令行的处理是在程序执行的过程中进行的
  12. 栈和队列的共同特点是

    • A.都是先进先出
    • B.都是先进后出
    • C.只允许在端点处插入和删除元素
    • D.没有共同点
  13. 有以下程序:

    main(  )

    {int X,i;

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

    {x=i;

    if(X%2=O)

    if(x%3=O)

    if(X%7=0)    

    printf("%d,i)";

    }

    }

    输出结果是(  )。

    • A.28   
    • B.27   
    • C.42   
    • D.41
  14. 有以下程序

    main()

    { int i;

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

     { if(i++%5==0)

      if(++i%8==0) printf("%d",i);

     }

     printf("\n");

    }

    执行后的输出结果是

    • A.5
    • B.24
    • C.32
    • D.40
  15. 下列二维数组的说明中,不正确的是(  )。

    • A.float a[][4]={0,1,8,5,9};
    • B.int a[3][4];
    • C.)#define N 5 float a [N][3];
    • D.int a [2][9.5];
  16. 现有如下程序段  #include"stdio.h"  main()  { int a[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};   int i=0,j=5;   printf("%d\n",*(&a[0][0]+2*i+j-2));}  则程序的输出结果为

    • A.21
    • B.78
    • C.23
    • D.28
  17. 算法的时间复杂度是指

    • A.算法的执行时间
    • B.算法所处理的数据量
    • C.算法程序中的语句或指令条数
    • D.算法在执行过程中所需要的基本运算次数
  18. 以下不能正确进行字符串赋初值的语句是

    • A.char str[5]="good!";
    • B.char str[]="good!";
    • C.char*srt="good!";
    • D.char str[5]={ 'g', 'o', 'o', 'd'};
  19. 以下程序的输出结果是(  )。

    main(  )

    { char st[20]="hell0\O\t\\\”;

    printf("%d%d\n",strlen(st),sizeof(st));

    }

    • A.9 9   
    • B.5 20   
    • C.13 20
    • D.20 20
  20. 有以下程序:

    main

    { int num[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

    12,},{13,14,15,16}},i,j;

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

    { for(j=0;j

    for(j=________;J<4;j++)printf("%4d",num

    [i][j]);

    printf("\n");}}

    若要按以下形式输出数组右上半三角

    1 2 3 4

    6 7 8

    11 12

    16

    则在程序下划线处应填入的是( )。

    • A.i-1
    • B.i
    • C.i+1 
    • D.4一i
  21. 下列叙述中错误的是(  )。

    • A.在数据库系统中,数据的物理结构必须与逻辑结构一致
    • B.数据库技术的根本目标是要解决数据的共享问题
    • C.数据库设计是指在已有数据库管理系统的基础上建立数据库
    • D.数据库系统需要操作系统的支持
  22. 现有如下程序段

    #include "stdio.h"

    main()

    { int k[30]={12,324,45,6,768,98,21,34,453,456};

    int count=0,i=0;

    while(k[i])

    { if(k[i]%2==0||k[i]%5==0)count++;

    i++; }

    printf("%d,%d\n",count,i);}

    则程序段的输出结果为

    • A.7,8
    • B.8,8
    • C.7,10
    • D.8,10
  23. 算法具有五个特性,以下选项中不属于算法特性的是(   )。

    • A.有穷性
    • B.简洁性
    • C.可行性
    • D.确定性
  24. 下列叙述中错误的是( )。

    • A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
    • B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
    • C.在C语言中,外部变量的隐含类型是自动存储类别
    • D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
  25. 以下是if语句的基本形式:

    if(表达式) 语句,其中表达式

    • A.必须是逻辑表达式
    • B.必须是关系表达式
    • C.必须是逻辑表达式或关系表达式
    • D.可以是任意合法的表达式
  26. 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是

    • A.有零个输入或多个输入 
    • B.高效性 
    • C.有穷性 
    • D.确定性
  27. 若希望下列的程序运行后输出25,程序空白处的正确选项是(  )。

     main()

     {int i,j=50,a[]={7,4,10,5,8}; 

    for(  )

     j+=a[i];

     primf("%d,j-40);

     }

    • A.i=1;i<4;++i
    • B.i=1;i<3;++i
    • C.i=4;i>2;i--
    • D.i=2;i<4;++i
  28. 已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

    • A.scanf ("%2d%2d%2d",&i,&j,&k);
    • B.scanf ("%d %d %d",&i,&j,&k);
    • C.scanf ("%d,%d,%d",&i,&j,&k);
    • D.scanf ("i=%d,j=%d,k=%d",&i,&j,&k);
  29. 在关系数据模型中,通常可以把()称为属性,其值称为属性值。

    • A.记录
    • B.基本表
    • C.模式
    • D.字段