全国计算机等级考试二级c语言模拟试卷及答案
公共基础知识
  一、选择题
  (1)下列关于栈的叙述正确的是
  A)栈是非线性结构  B)栈是一种树状结构 
  C)栈具有先进先出的特征  D)栈具有后进先出的特征

(2)结构化程序设计所规定的三种基本控制结构是
  A)输入、处理、输出  B)树形、网形、环形 
  C)顺序、选择、循环  D)主程序、子程序、函数
  (3)结构化程序设计的一种基本方法是
  A)筛选法  B)递归法  C)归纳法  D)逐步求精法
  (4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性
个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择  B)投影  C)连接  D)
 
    二、填空题

.对于输入为N个数进行快速排序算法的平均时间复杂度是(   )
  2.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是(  )
  3.软件测试方法中,黑盒测试个白盒测试法是常用的方法,其中黑盒测试法主要是用于测试(  )

  .关系型数据库管理系统中存储与管理数据的基本形式是(  )

                                                C语言程序设计
  一、选择题
  (1)以下程序的输入结果是
  main( )
  {  int i=010,j=10,k=x10;
    printf("%d,%d,%d ",i,j,k);
  }
  A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,16
 
  (2)指针s所指字符串的长度
    char *s=" "Name Address ";
  A)说法不合法 B)19 C)18 D)15
 
  (3C语言中最简单的数据类型包括
  A)整型、实型、逻辑型 B)整型、实型、字符型
  C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
 
  (4)为表示关系x大于等于y大于等于z,应使用C语言表达式
  A)x>=Y)&&(Y>=z) B)(x>=Y)AND(y>=z) C)(x>=Y>=z) D)(x>=Y)&(Y>=z)
 
  (5)下列对C语言字符数组的描述中错误的是
  A)字符数组可以存放字符串 B)字符数组中的字符串可以整体输入、输出
  C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较
 
  (6)以下说法中正确的是
  A)C语言程序总是从第一个定义的函数开始执行 B)C语言程序中,要调用的函数必须在main()函数中定义
  C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分
 
  (7)以下程序段的输出结果是
  int x=3;
  do
  {  printf("%3d",x-=2); }
  while(!(- -x));
  A)1 B)30 C)1 -2 D)死循环
 
  (8)设有如下定义:
  char *aa[2]={"abcd","ABCD"};
  则以下说法中正确的是
  A)aa数组元素的值分别是"abcd""ABCD"
  B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
  D)aa数组的两个元素中各自存放了字符'a''A'的地址
 
  (9)设有以下定义:
  int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
  int (*prt)[3]=a, * p=a[0];
  则下列能够正确表示数组元素a[1][2]的表达式是
  A)*((* prt + 1)[2]) B)*(*(p+5)) C)(* prt + 1)+2 D)*(*(a+1)+2)
 
  (10)以下程序的输出结果是
  fut( int * *s,int p[2][3])
  { * *s=p[1][1]; }
  main( )
  {  int a[2][3]={1,3,5,7,9,11},*P;
    p=(int * )malloc(sizeof(int));
    fut(&p,a);
    print("% ",*p);
  }
  A)1 B)7 C)9 D)11
  二、填空题
  (1)表示条件:10 
    2)下列程序的输出结果是(
  #include
  main( )
  {  char b[ ]="ABCDEFG";
    char *chp=&b[7];
    while(- -chp>&b[0])
    putchar(*chp);
    putchar(" ");
  }
 
  (3)下列程序的输出结果是(  )
   int ast( int x,int Y,int * cp,int * dp)
  {  * cp=x+y;
    * dp=x-y;
  }
  main( )
  {  int a,b,c,d;
    a=4;b=3;
    ast(a,b,&c,&d);
    print("% d % d n",c,d);
  }
 
  (4)阅读程序:
全国计算机二级考试报名入口   main( )
  {  char str1[ ]="how do you do",str2[10];
    char *p1=str1,*p2=str2;
    scanf("% s",p2);
    printf("%s",p2);
    printf("%s ",p1);
  }
  运行上面的程序,输入字符串 HOW DO YOU DO 则程序的输出结果是(
 
  (5)以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志。请填空。
  #include
  main( )
  {  FILE * fp;
    char ch,fname [10];
    printf("Input the name of file ");
    gets(fname);
    gets(fname);
    if((fp=[5])= =NULL)
    {  printf("Cannot open "); exit(0); }
    printf("Enter data ");
    while((ch=getchar())!='#')
    fputc([6],fp);
    fclose(fp);
  }