就业数据资源平台
当前位置:首页 > C语言程序设计
2010年9月计算机等级考试二级C语言模拟试题(二)-1

 笔试部分


  一、选择题


  1.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是( )


  A.acbed B.decab C.deabc D.cedba


  【参考答案】D


  2.结构化程序设计的3种结构是( )


  A.顺序结构、选择结构、转移结构 B.分支结构、等价结构、循环结构


  C.多分支结构、赋值结构、等价结构 D.顺序结构、选择结构、循环结构


  【参考答案】D


  3.算法的时间复杂度是指( )


  A.执行算法程序所需要的时间 B.算法程序的长度


  C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数


  【参考答案】C


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


  A.C B.Basic C.DDL D.DML


  【参考答案】C


  5.下列有关数据库的描述,正确的是( )


  A.数据处理是将信息转化为数据的过程


  B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变


  C.关系中的每一列称为元组,一个元组就是一个字段


  D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字、则称其为本关系的外关键字


  【参考答案】C


 6.用链表表示线性表的优点是( )


  A.便于随机存取


  B.花费的存储空间较顺序存储少


  C.便于插入和删除操作


  D.数据元素的物理顺序与逻辑顺序相同


  【参考答案】C


  7.结构化程序设计主要强调的是( )


  A.程序的规模 B.程序的效率


  C.程序设计语言的先进性 D.程序易读性


  【参考答案】C


  8.检查软件产品是否符合需求定义的过程称为( )


  A.确认测试 B.集成测试 C.验证测试 D.验收测试


  【参考答案】A


  9.应用数据库的主要目的是( )


  A.解决数据保密问题 C.解决数据完整性问题


  C.解决数据共享问题 D.解决数据量大的问题


  【参考答案】C


  10.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是( )


  A.数据库系统 B.文件系统 C.人工管理 D.数据项管理


  【参考答案】A


 11.在C语言中,int ,char和short三种类型数据在内存中所占用的字节数( )

  A.由用户自己定义


  B.均为2个字节


  C.是任意的


  D.由所用机器的机器字长决定


  【参考答案】D


  12.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )


  A.必须为字母


  B.必须为下划线


  C.必须为字母或下划线


  D.可以是字母,数字和下划线中任一字符


  【参考答案】C


  13.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( )


  A.INPUT x,y,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);


  【参考答案】B


  14.以下程序的输出结果是( )


  main()


  { int a=4,b=5,c=0,d;


  d=!a&&! b||! c;


  printf(″%d\n″,d);


  }


  A.1 B.0 C.非0的数 D.-1


  【参考答案】A


  15.下面有关for循环的正确描述是( )


  A.for循环只能用于循环次数已经确定的情况


  B.for循环先执行循环体语句,后判断表达式


  C.在for循环中,不能用break语句跳出循环体


  D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来


  【参考答案】D


16.设有以下程序段


  int x=0,s=0;


  while(! x!=0)s+=++x;


  printf(″%d″,s);


  则( )


  A.运行程序段后输出0 B.运行程序段后输出1


  C.程序段中的控制表达式是非法的 D.程序段执行无限次


  【参考答案】B


  17.以下描述中正确的是( )


  A.由于do-while循环中循环体语句只能是可执行语句,所以循环体内不能使用复合语句


  B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号


  C.在do-while循环体中,是先执行一次循环,再进行判断


  D.do-while循环中,根据情况可以省略while


  【参考答案】C


  18.以下程序的运行结果是( )


  sub(int x,int y,int *z)


  {*z=y-x;}


  main()


  { int a,b,c;


  sub(10,5,&a);


  sub(7,a,&b);


  sub(a,b,&c);


  printf(″%4d,%4d,%4d\n″,a,b,c);


  }


  A.5,2,3  B.-5,-12,-7  C.-5,-12,-17  D.5,-2,-7


  【参考答案】B


 19.对下面程序描述正确的一项是(每行程序前面的数字表示行号)( )

  ① main()


  ② {


  ③ float a[3]={0.0};


  ④ int i;


  ⑤ for(i=0;i<3;i++)scanf(″%d″,&a[i]);


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


  ⑦ printf(″%f\n″,a[0]);


  ⑧ }


  A.没有错误 B.第3行有错误 C.第5行有错误 D.第7行有错误


  【参考答案】C


  20.下面程序的输出结果是( )


  struct st


  { int x;


  int *y;


  } *p;


  int dt[4]={10,20,30,40};


  struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};


  main()


  { p=aa;


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


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


  printf(″%d\n″,++(*p->y));


  }


  A.10          B.50        C.51          D.60


    20            60          60            70


    20            21          21            31


  【参考答案】C


 21.以下程序的输出结果是( )


  long fun(int n)


  { long s;


  if(n==1||n==2)s=2;


  else s=n-fun(n-1);


  return s;}


  main()


  { printf(″%1d\n″,fun(3));}


  A.1  B.2  C.3  D.4


  【参考答案】A


  22.以下程序的输出结果是( )


  union myun


  { struct


  { int x,y,z;}u;


  int k;


  } a;


  main()


  { a.u.x=4;a.u.y=5;a.u.z=6;


  a.k=0;


  printf(″%d\n″,a.u.x);}


  A.4〖DW〗 B.5〖DW〗 C.6〖DW〗 D.0


  【参考答案】D


23.以下有4组用户标识符,其中合法的一组是( )

  A.For -sub Case B.4d DO Size C.f2_G3 IF abc D.WORD void define


  【参考答案】C


  24.已知各变量的类型如下


  int i=8,k,a,b;


  unsigned long w=5;


  double x=1.42,y=5.2;


  则以下符合C语言语法的表达式是( )


  A.a+=a-=(b=4)*(a=3) B.a=a*3+2 C.x%(-3) D.y=float(i)


  【参考答案】A


  25.下列程序的输出结果是( )


  main()


  {


  int a=2;a%=4-1;


  printf(″%d″,a);a+=a*=a-=a*=3;


  printf(″\n%d″,a);


  }


  A.2,12  B.-1,12  C.1,0  D.2,0


  【参考答案】D


 26.以下不正确的if语句形式是( )


  A.if(x>y&&x!=y);


  B.if(x==y)x+=y;


  C.if(x!=y)scanf(″%d″,&x)else scanf(″%d″,&y);


  D.if(x

  【参考答案】C


  27.对于下面的程序,说法正确的是( )


  main()


  {


  int x=3,y=4,z=2;


  if(x=y+z)printf(″x=y+z″);


  else printf(″x!=y+z″);


  }


  A.不能通过编译 B.输出6 C.输出x!=y+z D.输出x=y+z


  【参考答案】D


  28.标准库函数fgets(buf,n,fp)的功能是( )


  A.从fp所指向的文件中读取长度为n的字符串存入缓冲区buf


  B.从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf


  C.从fp所指向的文件中读取n个字符串存入缓冲区buf


  D.从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf


  【参考答案】D


29.下面程序的输出是( )

  int b=3;


  fun(int *k)


  {


  int b=2;


  b=*(k++)*b;


  return(b);


  }


  main()


  {


  int a[]={11,12,13,14,15,16};


  b=fun(&a[1])*b;


  printf(″%d\n″,b);


  }来源:考试网IT学院


  A.24  B.72  C.11  D.33


  【参考答案】B


30.以下能对二维数组a进行正确初始化的语句是( )


  A.int a[2][ ]={{1,0,1},{5,2,3}};   B.int a[ ][3]={{1,2,3},{4,5,6}};


  C.int a[2][4]={{1,2,3},{4,5},{6}};  D.int a[ ][ ]={{1,0,1}{},{1,1}};


  【参考答案】B


  31.与y=(x>0? 1:x<0? -1:0);的功能相同的if语句是( )


  A.if(x>0)y=1;  B.if(x)


  else if(x<0)y=-1; if(x>0)y=1;


  else y=0; else if(x<0)y=-1;


  C. y=-1 D.y=0;


  if(x) if(x>=0)


  if(x>0)y=1; if(x>0)y=1;


  else if(x==0)y=0; else y=-1;


  else y=-1;


  【参考答案】A


  32.下列程序段的输出结果是( )


  void fun(int *x,int *y)


  { printf(″%d%d″,*x,*y);*x=3;*y=4;}


  main()


  {


  int x=1,y=2;


  fun(&y,&x);


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


  }


  A.2 1 4 3  B.1 2 1 2  C.1 2 3 4  D.2 1 1 2


  【参考答案】A

就业数据资源平台