试题

全国计算机二级考试C++真题

时间:2024-09-20 10:25:32 欧敏 试题 我要投稿

全国计算机二级考试C++真题

  无论是身处学校还是步入社会,我们需要用到试题的情况非常的多,试题是命题者按照一定的考核目的编写出来的。你所了解的试题是什么样的呢?以下是小编为大家收集的全国计算机二级考试C++真题,欢迎大家分享。

全国计算机二级考试C++真题

  全国计算机二级考试C++真题1

  一、选择题

  (1)下列叙述中正确的是

  A)栈是“先进先出”的线性表

  B)队列是“先进后出”的线性表

  C)循环队列是非线性结构

  D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

  (2)支持子程序调用的数据结构是

  A)栈

  B)树

  C)队列

  D)二叉树

  (3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是

  A)10

  B)8

  C)6

  D)4

  (4)下列排序方法中,最坏情况下比较次数最少的是

  A)冒泡排序

  B)简单选择排序

  C)直接插入排序

  D)堆排序

  (5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

  A)编译程序

  B)操作系统

  C)教务管理系统

  D)汇编程序

  (6)下面叙述中错误的是

  A)软件测试的目的是发现错误并改正错误

  B)对被调试的程序进行“错误定位”是程序调试的必要步骤

  C)程序调试通常也称为Debug

  D)软件测试应严格执行测试计划,排除测试的随意性

  (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

  A)提高耦合性降低内聚性有利他哦高模块的独立性

  B)降低耦合性提高内聚性有利于提高模块的独立性

  C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度

  D)内聚性是指模块间互相连接的紧密程度

  (8)数据库应用系统中的核心问题是

  A)数据库设计

  B)数据库系统设计

  C)数据库维护

  D)数据库管理员培训

  (9)有如下程序:

  using namespace std;

  class ONE{

  int c;

  public:

  ONE():c(0){cout<<1;}

  ONE(int n):c (n){cout<<2;}

  };

  class TWO{

  ONE onel;

  ONE one2;

  public:

  TWO(int m):one2(m){cout<<3;}

  };

  int main()t

  TWO t(4)

  return 0

  }

  运行时的输出结果是

  A)3

  B)23

  C)123

  D)213

  (10)将E-R图转换为关系模式时,实体和联系都可以表示为

  A)属性

  B)键

  C)关系

  D)域

  (11)对C++编译器区分重载函数无任何意义的信息是

  A)参数类型

  B)参数个数

  C)返回值类型

  D)常成员函数关键字coast

  (12)有如下类定义和变量定义:

  class A{

  publie:

  A(){data=0;}

  ~A(){}

  int GetData ( ) coast { return data;}

  void SetData(int n) {data=n;}

  private:

  int data;

  };

  ccnst A a;

  A b;

  下列函数调用中错误的是

  A)a .GetData();

  B)a .SetData(10);

  C)b .GetData();

  D)b .SetData(10);

  (13)有如下类定义和变量定义:

  class Parents{

  public:

  int publicuata;

  private:

  int privateData;

  };

  class ChildA:public Parents{/*类体略*/};

  class ChildB:private Parents{/*类体略*/);

  ChildA a;

  ChildBb;

  下列语句中正确的是

  A)cout< B)cout< C)cout< D)cout<

  (14)运算符重载时不需要保持的性质是

  A)操作数个数

  B)操作数类型

  C)优先级

  D)结合性

  (15)下列关于函数模板的描述中,错误的是

  A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

  B)对于常规参数所对应的模板实参,任何情况下都不能省略

  C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

  D)模板参数表不能为空

  (16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是

  A)ifstream fin=ifstream.open(“file.dat”);

  B)ifstream*fir.=new ifstream(“file.dat”);

  C)ifstream fin; fin.open(“file.dat”);

  D)ifstream *fin=new ifstream( );fin一>open(“file.dat”);

  (17)下列描述中,不属于面向对象思想主要特征的是

  A)封装性

  B)跨平台性

  C)继承性

  D)多态性

  (18)有如下程序段:

  Tnt i=4;int j=l;

  int main(){

  int i=8,j=i;

  cout< }

  运行时的输出结果是

  A)44

  B)41

  C)88

  D)81

  (19)有如下程序段:

  int i=5;

  while(int i=0){cout《*;i--;}

  运行时输出“*”的个数是

  A)0

  B)1

  C)5

  D)无穷

  (20)己知有数组定义

  char a[3][4];

  下列表达式中错误的是

  A)a[2]=“WIN”

  B)strcpy(a[2],“WIN”)

  C)a [2][3]=W

  D)a[0][1]=a[0][1]

  (21)已知函数fun的原型为

  int fun(int,int,int);

  下列重载函数原型中错误的是

  A)char fun(int,int);

  B)double fun(int,int,double);

  C)int fun(int,char*);

  D)float fun (int, int, int);

  (22)建立一个类对象时,系统自动调用

  A)析构函数

  B)构造函数

  C)静态函数

  D)友元函数

  (23)通过派生类的对象可直接访问其

  A)公有继承基类的公有成员

  B)公有继承基类的私有成员

  C)私有继承基类的公有成员

  D)私有继承基类的私有成员

  (24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为

  A)a .orerator++(1)

  B)operator++(a)

  C)operator++(a,l)

  D)a.operator++( )

  (25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是

  A)( )

  B)[ ]

  C)< >

  D){ }

  (26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为

  A)ios_base::in

  B)ios_base::in|ios_base::out

  C)ios_base::out

  D)ios_base::in&ios_base::out

  (27)有如下程序:

  using namespace std;

  class XCD{

  char* a;

  int b;

  public:

  XCD(char* aa, int bb){

  a=new char[strlen(aa)+1];

  strcpty(a,aa);

  b=bb;

  }

  Char* Geta (){return a;)

  int Getb(){ return b;}

  };

  int main(){

  char *pl=“abcd”,*p2=“weirong”;

  int dl=6, d2=8;

  XCD x(pl,dl),Y(p2,d2);

  cout< return 0;

  }

  运行时的输出结果是

  A)12

  B)16

  C)14

  D)11

  (28)有如下程序:

  using namespace std;

  class XCF{

  int a;

  public:

  XCF(int aa=0):a (aa){cout<<“1”;}

  XCF(XCF& x){a=x .a; cout<<“2”;)

  ~XCF(){cout< int Geta(){return a;}

  };

  int main(){

  XCF dl(5),d7 (dl);

  XCF *pd=new XCF(8);

  cout

   pd;

  return 0;

  }

  运行时的输出结果是

  A)121SS88

  B)12188SS

  C)12185

  D)128512

  (29)已知类MyClass声明如下:

  class MyClass{

  int n;

  public;

  MyClass(int k):n(k){}

  int getValue()const{return n;}

  };

  在下列数组定义中正确的是

  A)MyClass x1[2];

  B)MyClass x2[2]={new MyClass(1),new MyClass(2)};

  C)MyClass *x3[2];

  D)MyClass *x4[2]={MyClass(1),MyClass(2)};

  (30)有如下程序:

  using namespace std;

  class AA{

  lilt k;

  protected:

  int n;

  void setK(int k){ this->k=k;}

  public:

  void setN(int n){ this->n=n;}

  };

  class BB: public }{/*类体略*/};

  int main(){

  BB x_ ; //1

  x .n=1; //2

  x.setN (2); //3

  x.k=3; //4

  x .setK(4);

  return 0;

  }

  在标注号码的四条语句中正确的是

  A)1

  B)2

  C)3

  D)4

  (31)有如下类定义:

  class XX{

  int xx;

  public:

  XX():xx(0){cout<< A;}

  XX(int n):xx ( n){tout<< B;}

  };

  Class YY:public XX{

  Int yy;

  public:

  YY():yy ( 0){cout+yy;}

  YY(int n):XX(n+1),yy(n){cout< YY (int m, int n):XX (m),yy(n){cout< };

  下列选项中,输出结果为A0的语句是

  A)YY y1(0,0);

  B)YY y2(1);

  C)YY y3(0);

  D)YY y4;

  (32)有如下程序:

  Using namespace std;

  class A{

  public:

  virtual void f(){cout+1;}

  void g(){cout<<2;}

  };

  class B:public A{

  public:

  virtual void f(){cout<<3;}

  void g(){ecut<<4;}

  };

  void show(A &a){a.f();a.g( );}

  int main(){

  B b;

  show(b);

  return 0;

  }

  运行时的输出结果是

  A)12

  B)34

  C)14

  D)32

  (33)有如下程序:

  using namespace std;

  class Pair{

  int m;

  int n;

  public:

  Pair(int i,int j):m(i),n(j){}

  boot operator >(pair p)const; //须在类体外给出定义

  };

  int main(){

  Pair Al(3,4),p2(4,3);p3(4,5);

  Cout<<(pl>p2)<<(p2>P1)<<(p2>p3)<<(p3>p2);

  return 0;

  }

  运算符函数。operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是

  A)bool Pair::operator>(Pair p)const

  {if (m!=p.m) return m>p.m; return n>p.n;}

  B)bool Pair:;operator>(Pair p)

  {if (m!=p.m) return m>p.m; return n>p.n;}

  C)bool Pair::operator>(Pair p)const

  {if (m>p.m) return true; return n>p.n;}

  D)bool Pair:;operator>(Pair p)

  {if (m>p.m) return true; return n>p.n;}

  (34)假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是

  A)cout< B)cout< C)cout<<123< D)cout<

  二、填空题

  (1)假设用一个长度为50的数组(数组元索的下标从0到49)作为栈的存化空间,栈底指针bottom指间栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。

  (2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试。

  (3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。

  (4)数据库系统的核心是【4】。

  (5)在E-K图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】框。

  (6)有如下程序段:

  int x=1,Y=2,z=3;

  x=x^z;

  y=y^z;

  z=x^y;

  cout< 执行这个程序段的输出是【6】。

  (7)有如下程序段:

  fer(int i=1; i<=50;i++){

  if(i%3 != 0)

  continue;

  else

  if(i%5!=0)

  continue;

  tout< }

  执行这个程序段的输出是【7】。

  (8)有如下程序段:

  Char c [20]=“examination”;

  c[4]=0;

  cout< 执行这个程序段的输出是【8】。

  (9)下面的函数利用递归实现了求1+2+3+……+n的功能:

  int sum(int n){

  if(n==0)

  return 0;

  else

  return n+sum(n-1);

  }

  在执行sum(10)的过程中,递归调用sum函数的次数是【9】。

  (10)非成员函数应该声明为类【10】函数才能访问该类的私有成员。

  (11)有如下程序:

  using namespace std;

  class Monitor{

  public:

  Monitor(char t):type (t){}

  void print( ) const

  {cout<<“The type of monitor is”< private:

  char type;

  };

  class Computer{

  public:

  Computer(int i,char c): 【11】{}

  void Print()const

  {cout<<“The computer is”< private:

  int id;

  Monitor mon;

  };

  const Computer myComputer(101,B‘);

  myComputer .Print();

  return 0;

  }

  请将程序补充完整,使程序在运行时输出:

  The computer is 101

  The type of monitor i.s 8

  (12)有如下程序:

  using namespace std

  class Animal{

  public:

  virtual char* getType()const { return “Animal”;}

  virtual char* getVoice()const { return “Voice”;}

  };

  Class Dog : public Animal {

  public:

  char* getType ( ) const {return “Dog”;}

  char* getVoice ( ) const {return “Woof”}

  };

  void type(Animal& a) {cout< void speak(Animal a) {cout< int main( ) {

  Dog d; type (d);cout<<“ speak”;speak(d);cout< return 0;

  }

  运行时的输出结果是【12】。

  (13)补充完整下面的类定义:

  const double PI=3 .14;

  class Circle{ //圆形物体的抽象基类

  protected:

  double r; //半径

  public:

  Circle(double radius=0):r(radius){}

  【13】;//计算圆形物体表面积的纯虚函数声明

  };

  class Cylinder:public Circle { //圆柱体类

  double h; //高度

  public:

  Cylindr(double radius=0, doubli height=0):

  Circle(radius),h (height){}

  Virtual double Area() { //计算圆柱体的表面积

  return 2*PI*r*(r+h);

  }

  };

  (14)补充完整下面的类定义:

  class XCH{

  char* a;

  public:

  XCH(char* as) { //构造函数

  a=new char[strlen(aa)+1];

  strcpy(a,aa);

  }

  XCH& operator=(const XCH& x) //重载赋值函数

  Delele []a;

  A=new char[strlen(x.a)+l];

  strcpy(a, x .a)

  【14】;

  }

  ~XCH() { []a;}

  };

  (15)补充完整下面的模板定义:

  template //Type为类型参数

  class Xtwo{ //由两个Type类型的数据成员构成的模板类

  Type a;

  Type b;

  public:

  Xtwe(Type aa=0, Type bb=0):a(aa),b(bb){}

  int Ccmpare (){//比较a和b的大小

  if (a>b)returm 1;

  else if(a==b) return 0;

  else return -1;

  }

  Type Snm() {return a+b;} //返回a和b之和

  Type Mult(); //函数声明,返回a和b之乘积

  };

  Template

  【15】:Mult(){return a*b;} //Mult 函数的类外定义

  全国计算机二级考试C++真题2

  一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)

  (1)下列数据结构中,属于非线性结构的是

  A.循环队列

  B.带链队列

  C.二叉树

  D.带链栈

  (2)下列数据结果中,能够按照“先进后出”原则存取数据的是

  A.循环队列

  B.栈

  C.队列

  D.二叉树

  (3)对于循环队列,下列叙述中正确的是

  A.队头指针是固定不变的

  B.队头指针一定大于队尾指针

  C.队头指针一定小于队尾指针

  D.队头指针可以大于队尾指针,也可以小于队尾指针

  (4)算法的空间复杂度是指

  A.算法在执行过程中所需要的计算机存储空间

  B.算法所处理的数据量

  C.算法程序中的语句或指令条数

  D.算法在执行过程中所需要的临时工作单元数

  (5)软件设计中划分模块的一个准则是

  A.低内聚低耦合

  B.高内聚低耦合

  C.低内聚高耦合

  D. 高内聚高耦合

  (6)下列选项中不属于结构化程序设计原则的是

  A.可封装.

  B. 自顶向下

  C.模块化

  D. 逐步求精

  (7)软件详细设计产生的图如下:

  该图是

  A.N-S图

  B.PAD图

  C.程序流程图

  D. E-R图

  (8)数据库管理系统是

  A.操作系统的一部分

  B.在操作系统支持下的系统软件

  C.一种编译系统

  D. 一种操作系统

  (9)在E-R图中,用来表示实体联系的图形是

  A.椭圆图

  B.矩形

  C.菱形

  D. 三角形

  (10)有三个关系R,S和T如下:

  其中关系T由关系R和S通过某种操作得到,该操作为

  A.选择

  B.投影

  C.交

  D.并

  (11)以下叙述中正确的是

  A.程序设计的任务就是编写程序代码并上机调试

  B.程序设计的任务就是确定所用数据结构

  C.程序设计的任务就是确定所用算法

  D.以上三种说法都不完整

  (12)以下选项中,能用作用户标识符的是

  A.void

  B.8_8

  C._0_

  D.unsigned

  (13)阅读以下程序

  main()

  { int case; float printF;

  printf(“请输入2个数:”);

  scanf(“%d %f”,&case,&pjrintF);

  printf(“%d %f ”,case,printF);

  }

  该程序编译时产生错误,其出错原因是

  A.定义语句出错,case是关键字,不能用作用户自定义标识符

  B.定义语句出错,printF不能用作用户自定义标识符

  C.定义语句无错,scanf不能作为输入函数使用

  D.定义语句无错,printf不能输出case的值

  (14)表达式:(int)((double)9/2)-(9)%2的值是

  A.0

  B.3

  C.4

  D.5

  (15)若有定义语句:int x=10;,则表达式x-=x+x的值为

  A.-20

  B.-10

  C.0

  D.10

  (16)有以下程序

  main()

  { int a=1,b=0;

  printf(“%d,”,b=a+b);

  printf(“%d ”,a=2*b);

  }

  程序运行后的输出结果是

  A.0,0

  B.1,0

  C.3,2

  D.1,2

  (17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是

  A.if(a>B. c=a,a=b,b=c;

  B.if(a>B. {c=a,a=b,b=c;}

  C.if(a>B. c=a;a=b;b=c;

  D.if(a>B. {c=a;a=b;b=c;}

  (18)有以下程序

  main()

  { int c=0,k;

  for (k=1;k<3;k++)

  switch (k)

  { default: c+=k

  case 2: c++;break;

  case 4: c+=2;break;

  }

  printf(“%d ”,C.;

  }

  程序运行后的输出结果是

  A.3

  B.5

  C.7

  D.9

  (19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是

  A.if((a>b)&&(b>C.) k=1;

  else k=0;

  B.if((a>b)||(b>C. k=1;

  else k=0;

  C.if(a<=B. k=0;

  else if(b<=C.k=1;

  D.if(a>B. k=1;

  else if(b>C.k=1;

  else k=0;

  20)有以下程序

  main()

  { char s[]={“012xy”};int i,n=0;

  for(i=0;s[i]!=0;i++)

  if(s[i]>=’a’&&s[i]<=’z’) n++;

  printf(“%d ”,n);

  }

  程序运行后的输出结果是

  A.0

  B.2

  C.3

  D.5

  (21)有以下程序

  main()

  { int n=2,k=0;

  while(k++&&n++>2);

  printf(“%d %d ”,k,n);

  }

  程序运行后的输出结果是

  A.0 2

  B.1 3

  C.5 7

  D.1 2

  (22)有以下定义语句,编译时会出现编译错误的是

  A.char a=’a’;

  B.char a=’ ’;

  C.char a=’aa’;

  D.char a=’x2d’;

  (23)有以下程序

  main()

  { char c1,c2;

  c1=’A’+’8’-‘4’;

  c2=’A’+’8’-‘5’;

  printf(“%c,%d ”,c1,c2);

  }

  已知字母A的ASCII码为65,程序运行后的输出结果是

  A.E,68

  B.D,69

  C.E,D

  D.输出无定值

  (24)有以下程序

  void fun(int p)

  { int d=2;

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

  main()

  { int a=1;

  fun(a); printf(“%d ”,a);}

  程序运行后的输出结果是

  A.32

  B.12

  C.21

  D.22

  (25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能

  #define MIN -2147483647

  int findmax (int x[],int n)

  { int i,max;

  for(i=0;i

  { max=MIN;

  if(max

  return max;

  }

  造成错误的原因是

  A.定义语句int i,max;中max未赋初值

  B.赋值语句max=MIN;中,不应给max赋MIN值

  C.语句if(max

  D.赋值语句max=MIN;放错了位置

  (26)有以下程序

  main()

  { int m=1,n=2,*p=&m,*q=&n,*r;

  r=p;p=q;q=r;

  printf(“%d,%d,%d,%d ”,m,n,*p,*q);

  }

  程序运行后的输出结果是

  A.1,2,1,2

  B.1,2,2,1

  C.2,1,2,1

  D.2,1,1,2

  (27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是

  A.p=a

  B.q[i]=a[i]

  C.p=a[i]

  D.p=&a[2][1]

  (28)有以下程序

  main()

  { char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];

  printf(“%d,”,strlen(p));printf(“%s ”,p);

  }

  程序运行后的输出结果是

  A.9,One*World

  B.9,One*Dream

  C.10,One*Dream

  D.10,One*World

  (29)有以下程序

  main()

  { int a[ ]={2,3,5,4},i;

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

  switch(i%2)

  { case 0:switch(a[i]%2)

  {case 0:a[i]++;break;

  case 1:a[i]--;

  }break;

  case 1:a[i[=0;

  }

  for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);

  }

  A.3 3 4 4

  B.2 0 5 0

  C.3 0 4 0

  D.0 3 0 4

  (30)有以下程序

  main()

  { char a[10]=”abcd”;

  printf(“%d,%d ”,strlen(a),sizeof(a));

  }

  程序运行后的输出结果是

  A.7,4

  B.4,10

  C.8,8

  D.10,10

  (31)下面是有关C语言字符数组的描述,其中错误的是

  A.不可以用赋值语句给字符数组名赋字符串

  B.可以用输入语句把字符串整体输入给字符数组

  C.字符数组中的内容不一定是字符串

  D.字符数组只能存放字符串

  (32)下列函数的功能是

  fun(char * a,char * b)

  { while((*b=*a)!=’’) {a++,b++;} }

  A.将a所指字符串赋给b所指空间

  B.使指针b指向a所指字符串

  C.将a所指字符串和b所指字符串进行比较

  D.检查a和b所指字符串中是否有’’

  (33)设有以下函数

  void fun(int n,char * s) {……}

  则下面对函数指针的定义和赋值均是正确的是

  A.void (*pf)(); pf=fun;

  B.viod *pf(); pf=fun;

  C.void *pf(); *pf=fun;

  D.void (*pf)(int,char);pf=&fun;

  (34)有以下程序

  int f(int n);

  main()

  { int a=3,s;

  s=f(a);s=s+f(a);printf(“%d ”,s);

  }

  int f(int n)

  { static int a=1;

  n+=a++;

  return n;

  }

  程序运行以后的输出结果是

  A.7

  B.8

  C.9

  D.10

  (35)有以下程序

  #define f(x) x*x*x

  main()

  { int a=3,s,t;

  s=f(a+1);t=f((a+1));

  printf(“%d,%d ’,s,t);

  }

  程序运行后的输出结果是

  A.10,64

  B.10,10

  C.64,10

  D.64,64

  (36)下面结构体的定义语句中,错误的是

  A.struct ord {int x;int y;int z;}; struct ord a;

  B.struct ord {int x;int y;int z;} struct ord a;

  C.struct ord {int x;int y;int z;} a;

  D.struct {int x;int y;int z;} a;

  (37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是

  A.char str[ ]=”string”;c=str;

  B.scanf(“%s”,C.;

  C.c=get);

  D.*c=”string”;

  (38)有以下程序

  struct A

  { int a; char b[10]; double c;};

  struct A f(struct A t);

  main()

  { struct A a={1001,”ZhangDa”,1098.0};

  a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;

  }

  struct A f(struct A t)

  ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )

  程序运行后的输出结果是

  A.1001,ZhangDa,1098.0

  B.1001,ZhangDa,1202.0

  C.1001,ChangRong,1098.0

  D.1001,ChangRong,1202.0

  (39)若有以下程序段

  int r=8;

  printf(“%d ”,r>>1);

  输出结果是

  A.16

  B.8

  C.4

  D.2

  (40)下列关于C语言文件的叙述中正确的是

  A.文件由一系列数据依次排列组成,只能构成二进制文件

  B.文件由结构序列组成,可以构成二进制文件或文本文件

  C.文件由数据序列组成,可以构成二进制文件或文本文件

  D.文件由字符序列组成,其类型只能是文本文件

  二、填空题(每空2分,共30分)

  (1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】 个结点。

  (2)程序流程图中的菱形框表示的是 【2】 。

  (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 【3】 阶段产生“软件需求规格说明书。

  (4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为 【4】 。

  (5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是 【5】 。

  (6)若有定义语句:int a=5;,则表达式:a++的值是 【6】 。

  (7)若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为 【7】 。

  (8)以下程序运行后的输出结果是 【8】 。

  #include

  main()

  { int x=20;

  printf(“%d”,0

  printf(“%d ”,0

  (9)以下程序运行后的输出结果是 【9】 。

  #include

  main()

  { int a=1,b=7;

  do {

  b=b/2;a+=b;

  } while (b>1);

  printf(“%d ”,a);}

  (10)有以下程序

  #include

  main()

  { int f,f1,f2,i;

  f1=0;f2=1;

  printf(“%d %d”,f1,f2);

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

  { f=f1+f2; printf(“%d”,f);

  f1=f2; f2=f;

  }

  printf(“ ”);

  }

  程序运行后的输出结果是 【10】 。

  (11)有以下程序

  #include

  int a=5;

  void fun(int b)

  { int a=10;

  a+=b;printf(“%d”,a);

  }

  main()

  { int c=20;

  fun(c);a+=c;printf(“%d ”,a);

  }

  程序运行后的输出结果是 【11】 。

  (12)设有定义:

  struct person

  { int ID;char name[12];}p;

  请将scanf(“%d”, 【12】 );语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。

  (13)有以下程序

  #include

  main()

  { char a[20]=”How are you?”,b[20];

  scanf(“%s”,b);printf(“%s %s ”,a,b);

  }

  程序运行时从键盘输入:How are you?<回车>

  则输出结果为 【13】 。

  (14)有以下程序

  #include

  typedef struct

  { int num;double s}REC;

  void fun1( REC x ){x.num=23;x.s=88.5;}

  main()

  { REC a={16,90.0 };

  fun1(a);

  printf(“%d ”,a.num);

  }

  程序运行后的输出结果是 【14】 。

  (15)有以下程序

  #include

  fun(int x)

  { if(x/2>0) run(x/2);

  printf(“%d ”,x);

  }

  main()

  { fun(6);printf(“ ”); }

  程序运行后的输出结果是 【15】 。

  全国计算机二级考试C++真题3

  单选题

  1). 如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是( )。

  A.e3、e1、e4、e2

  B.e2、e4、e3、el1

  C.e3、e4、e1、e2

  D.任意顺序

  正确答案:B

  答案解析:根据栈先进后出的特点可知el肯定是最后出栈的,因此正确答案为选项B。

  2). 对于重载的运算符>>,它是一个( )

  A.用于输入的友元函数

  B.用于输入的成员函数

  C.用于输出的友元函数

  D.用于输出的成员函数

  正确答案:A

  3). NULL是指

  A.0

  B.空格

  C.未知的值或无任何值

  D.空字符串

  正确答案:C

  答案解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。

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

  A.便于随机存取

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

  C.便于插入和删除操作

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

  正确答案:C

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

  A.程序的规模

  B.程序的效率

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

  D.程序易读性

  正确答案:D

  6). 下面关于C++流的叙述中,正确的是( )。

  A.cin是一个输入流对象

  B.可以用ifstream定义一个输出流对象

  C.执行语句序列char* y=″PQMN″;cout<

  D.执行语句序列char x[80];cin.getline(x,80);时,若输入Happy new year,则x中的字符串是″Happy″

  正确答案:A

  答案解析:本题考查C++流的概念和I/()的格式化。cin是istream类的对象,即输入流对象。ifstream是输入文件流,类不能定义个输出流对象。getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除该终止字符,所以D选项中的语句序列后x中字符串应该是Happy new year。

【全国计算机二级考试C++真题】相关文章:

上半年全国计算机二级C++考试真题03-21

2010下半年全国计算机二级C++考试真题03-07

2007年3月全国计算机等级考试二级C++笔试真题03-28

2006上半年全国计算机二级C++笔试真题11-17

2005年上半年全国计算机二级C++笔试真题03-02

全国计算机二级MS Office考试真题及答案06-19

2007年3月全国计算机等级考试二级C++笔试真题参考答案03-28

全国计算机二级考试《C语言》真题练习及答案09-20

全国计算机二级考试《C++》笔试样卷06-12