上海龙凤419

试题

3月计较机二级测验《C++》真题

时候:2024-09-30 11:38:44 敏冰 试题 我要投稿
  • 相干保举

3月计较机二级测验《C++》真题

  在社会的各个范畴,咱们都离不开试题,借助试题能够或许对一小我停止全方位的查核。甚么样的试题才是迷信规范的试题呢?上面是小编帮大师清算的3月计较机二级测验《C++》真题,仅供参考,接待大师浏览。

3月计较机二级测验《C++》真题

  3月计较机二级测验《C++》真题 1

  一、挑选题

  (1)以下对栈论述准确的是

  A)栈顶元素最早能被删除

  B)栈顶元素最初能力被删除

  C)栈底元素永久不能被删除

  D)以上三种说法都毛病

  (2)以下论述中准确的是

  A)有一个以上根结点的数据布局不必然长短线性布局

  B)只要一个根结点的数据布局不必然是线性布局

  C)轮回链表长短线性布局

  D)双向链表长短线性布局

  (3)某二叉树共有7个结点,此中叶子结点只要1个,则该二叉树的深度为(假定根结点在第1层)

  A)3

  B)4

  C)6

  D)7

  (4)在软件开辟中,须要阐发阶段发生的首要文档是

  A)软件集成测试打算

  B)软件具体设想申明书

  C)用户手册

  D)软件须要规格申明书

  (5)布局化法式所请求的根基布局不包含

  A)挨次布局

  B)GOTO跳转

  C)挑选(分支)布局

  D)反复(轮回)布局

  (6)上面描写中毛病的是

  A)体系全体布局图撑持软件体系的具体设想

  B)软件设想是将软件须要转换为软件表现的进程

  C)数据布局与数据库设想是软件设想的使命之一

  D)PAD图是软件具体设想的表现东西

  (7)担任数据库中查问支配的数据库说话是

  A)数据界说说话

  B)数据办理说话

  C)数据支配说话

  D)数据节制说话

  (8)一个教员可教学多门课程,一门课程可由多个教员教学。则实体教员和课程间的接洽是

  A)1:1接洽

  B)1:m接洽

  C)m:1接洽

  D)m:n接洽

  (9)有三个干系R、S和T,则由干系R和S获得干系T的支配是

  A)天然毗连

  B)交

  C)除

  D)并

  (10)界说无标记整数类为UInt,上面能够或许作为类UInt实例化值的是

  A)-369

  B)369

  C)0.369

  D)整数调集{1,2,3,4,5}

  (11)为了进步函数挪用的现实运转速率,能够或许将较简略的函数界说为

  A)内联函数

  B)重载函数

  C)递归函数

  D)函数模板

  (12)若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数界说中拜候a时,其誊写格局为

  A)a

  B)AA.a

  C)a()

  D)AA::a()

  (13)当派生类从一个基类掩护担当时,基类中的一些成员在派生类中成为掩护成员,这些成员在基类华夏有的拜候属性是

  A)任何

  B)私有或掩护

  C)掩护或私有

  D)私有

  (14)若要对Data类中重载的加法运算符成员函数停止申明,以下选项中准确的是

  A)Data+(Data);

  B)Data operator+(Data);

  C)Data+operator(Data);

  D)operator+(Data,Data);

  (15)以下对函数模板的描写中,准确的是

  A)函数模板是一个实例函数

  B)利用函数模板界说的函数不前往范例

  C)函数模板的范例参数与函数的参数不异

  D)经由进程利用差别的范例参数,能够或许从函数模板获得差别的实例函数

  (16) C++体系预界说了4个用于规范数据流的工具,以下选项中不属于此类工具的是

  A)cout

  B)cin

  C)cerr

  D)cset

  (17)Windows情况下,由C++源法式文件编译而成的方针文件的扩大名是

  A)cpp

  B)exe

  C)obj

  D)lik

  (18)字符串“a+b=12\n\t”的长度为

  A)12

  B)10

  C)8

  D)6

  (19)有以下法式:

  #include

  using namespace std;

  int main(){

  int f,f1=0,f2=1;

  for(int i=3;i<=6;i++){

  f=f1+f2;

  f1=f2;f2=f;

  }

  cout<  return 0;

  }

  运转时的输入成果是

  A)2

  B)3

  C)5

  D)8

  (20)有以下法式:

  #include

  using namespace std;

  int main(){

  int a[6]={23,15,64,33,40,58};

  int s1,s2;

  s1=s2=a[0];

  for(int* p=a+1;p  if(s1>*p) s1=*p;

  if(s2<*p) s2=*p;

  }

  cout<  return 0;

  }

  运转时的输入成果是

  A)23

  B)58

  C)64

  D)79

  (21)有以下法式:

  #include

  using namespace std;

  void f1(int& x,int& y) {int z=x; x=y; y=z;}

  void f2(int x;int y) {int z=x; x=y; y=z;}

  int main(){

  int x=10,y=26;

  f1(x,y);

  f2(x,y);

  cout<  return 0;

  }

  运转时的输入成果是

  A)10

  B)16

  C)26

  D)36

  (22)有以下法式:

  #include

  using namespace std;

  class XA{

  int a;

  public:

  static int b;

  XA(int aa):a(aa) {b++;}

  ~XA(){}

  int get(){return a;}

  };

  int XA::b=0;

  int main(){

  XA d1(2),d2(3);

  cout<   return 0;

  }

  运转时的输入成果是

  A)5

  B)6

  C)7

  D)8

  (23)有以下法式:

  #include

  using namespace std;

  class Point{

  int x,y;

  public:

  Point(int x1=0,int y1=0):x(x1),y(y1){}

  int get(){return x+y;}

  };

  class Circle{

  Point center;

  int radius;

  public:

  Circle(int cx,int cy,int r):center(cx,cy),raaius(r){}

  int get(){return center.get()+radius;}

  };

  int main(){

  Circle c(3,4,5);

  cout<  return 0;

  }

  运转时的输入成果是

  A)5

  B)7

  C)9

  D)12

  (24)若要对类BigNumber中重载的范例转换运算符long停止申明,以下选项中准确的是

  A)operator long() const;

  B)operator long(BigNumber);

  C)long operator long() const;

  D)long operator long(BigNumber);

  (25)有以下函数模板界说:

  template

  T1 FUN(T2 n){return n*5.0;}

  若请求以int型数据9作为函数实参挪用该模板,并前往一个double型数据,则该挪用应表现为

  A)FUN(9)

  B)FUN<9>

  

  (26)以下语句都是法式运转时的第1条输入语句,此中一条语句的输入成果与其余三条语句差别,该语句是

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

  (27)以下对析构函数的描写中,毛病的是

  A)析构函数能够或许重载

  B)析构函数由体系主动挪用

  C)每一个工具的析构函数只被挪用一次

  D)每一个类都有析构函数

  (28)以下对机关函数的描写中,毛病的是

  A)机关函数名与类名不异

  B)机关函数能够或许有前往值

  C)机关函数能够或许重载

  D)每一个类都有机关函数

  (29)若PAT是一个类,则法式运转时,语句“PAT(*ad)[3];”挪用PAT的机关函数的次数是

  A)0

  B)1

  C)2

  D)3

  (30)以下描写中,毛病的是

  A)私有担当时基类中的私有成员在派生类中还是私有成员

  B)私有担当时基类中的掩护成员在派生类中还是掩护成员

  C)掩护担当时基类中的私有成员在派生类中还是私有成员

  D)掩护担当时基类中的掩护成员在派生类中还是掩护成员

  (31)天生派生类工具时,派生类机关函数挪用基类机关函数的条件是

  A)无需任何条件

  B)基类中显式界说了机关函数

  C)派生类中显式界说了机关函数

  D)派生类机关函数明白挪用了基类机关函数

  (32)以下对派生类和基类的描写中,准确的是

  A)派生类成员函数只能拜候基类的私有成员

  B)派生类成员函数只能拜候基类的私有和掩护成员

  C)派生类成员函数能够或许拜候基类的一切成员

  D)派生类对基类的默许担当体例是私有担当

  (33)有以下类模板界说:

  template

  class BigNumber{

  long n;

  public:

  BigNumber(T i):n(i){}

  BigNumber operator+(BigNumber b){

  return BigNumber(n+b.n);

  }

  };

  己知b1、b2是BigNumber的两个工具,则以下抒发式中毛病的是

  A)bl+b2

  B)b1+3

  C)3+b1

  D)3+3

  (34)以下对文件流的描写中,准确的是

  A)文件流只能完成针对磁盘文件的输入输入

  B)成立一个文件流工具时,必须同时翻开一个文件

  C)若输入流要翻开的文件不存在,将成立一个新文件

  D)若输入流要翻开的文件不存在,将成立一个新文件

  (35)有以下法式:

  #include

  using namespace std;

  class Pair{

  int m,n;

  public:

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

  int get() {return m;}

  int get() const {return m+n;}

  };

  int main(){

  Pair a(3,5);

  const Pair b(3,5);

  cout+a.get()<  return 0;

  }

  运转时的输入成果是

  A)33

  B)38

  C)83

  D)88

  二、填空题

  (1)有序线性表能停止二分查找的条件是该线性表必须是 【1】 存储的。

  (2)一棵二叉树的中序遍历成果为DBEAFC,前序遍历成果为ABDECF。则后序遍历成果为 【2】 。

  (3)对软件设想的.最小单位(模块或法式单位)停止的测试凡是称为 【3】 测试。

  (4)实体完全性束缚请求干系数据库中元组的 【4】 属性值不能为空。

  (5)在干系A(S,SN,D)和干系B(D,CN,NM)中,A的主关头字是S,B的主关头字是D,则称 【5】 是干系A的外码。

  (6)如有界说语句“int x=10,y=20,z=20;”,则抒发式x>z&&y==z的值为 【6】 。

  (7)有以下语句序列:

  int x=-10;while(++x){ }

  运转时while轮回体的履行次数为 【7】 。

  (8)有以下语句序列:

  int arr[2][2]={{9,8},{7,6}};

  int *p=arr[0]+1; cout<<*p<  运转时的输入成果是 【8】 。

  (9)函数fun的功效是将一个数字字符串转换为一个整数,请将函数补充完全。

  int fun(char *str){

  int num=0;

  while(*str){

  num*=10;

  num+= 【9】 ;

  str++;

  }

  return num;

  }

  (10)若要将函数“void FriFun();”申明为类MyClass的友元函数,则应在类MyClass的界说中加入语句 【10】 。

  (11)以下法式的输入成果为012,请根据正文将横线处的缺失局部补充完全。

  #include

  using namespace std;

  class Test{

  public:

  Test(int a) {data=a;}

  ~Test() {}

  void print(){cout<  private:

  int data;

  };

  int main(){

  Test t[3]={ 【11】 };//对有3个元素的Test类工具数组t初始化t[i].print();

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

  return 0;

  }

  (12)请在横线处填写派生类Derived的担当体例,使得法式的输入成果为Base。

  #include

  using namespace std;

  class Base{

  public:

  void print(){cout<<"Base";}

  };

  class Derived: 【12】 Base{};

  int main(){

  Derived d;

  d.print();

  return 0;

  }

  (13)以下法式的输入成果为1 2.3 2 4.6,请将横线处的缺失局部补充完全。

  #include

  using namespace std;

  class Base{

  public:

  Base(int a):idata(a){}

  void print(){cout<  private:

  int idata;

  };

  class Derived:public Base{

  public:

  Derived(int a;double b): 【13】 ,ddata(b){}

  void print(){Base::print();cout<  private:

  double ddata;

  };

  int main(){

  Derived dl(1,2.3),d2(2,4.6);

  d1.print();

  d2.print();

  return 0;

  }

  (14)以下法式的输入成果为-5/8 -3/4,请将横线处的缺失局部补充完全。

  #include

  using namespace std;

  class Fraction{ //“分数”类

  public:

  Fraction(double a,double b):num(a),den(b){}

  ~Fraction(){}

  //重载取负运算符“-”,前往一个分数工具,其份子是本来份子的相反数。

  Fraction operator-(){

  【14】

  return f;

  }

  void print(){ cout<  private:

  double num; //份子

  double den; //分母

  };

  int main(){

  Fraction f1(5;8),f2(3,4);

  (-f1).print();(-f2).print();

  return 0;

  }

  (15)函数Min的功效是前往具备n个元素的数组array中的最小值。请将横线处的缺失局部补充完全,使得法式的输入成果为1.24。

  #include

  using namespace std;

  template

  T Min(T* array,int n){

  T min=array[0];

  for(int i=1;i  if(array[i]  return min;

  }

  int main(){

  double arr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};

  cout<< 【15】 ;

  return 0;

  }

  3月计较机二级测验《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)浏览以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  #include

  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)有以下法式

  #include

  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)有以下法式

  #include

  #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)有以下法式

  #include

  #include

  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.文件由字符序列构成,其范例只能是文本文件

【3月计较机二级测验《C++》真题】相干文章:

2011年3月计较机二级测验《VFP》真题12-10

2024年9月计较机二级测验Access真题09-26

2011年9月计较机二级测验VB真题03-25

2010年9月计较机品级测验二级Java口试真题03-26

2009年9月计较机品级测验二级ACCESS口试真题12-11

2009年9月计较机品级测验二级Java口试真题12-11

计较机二级测验Java挑选真题09-27

2011年3月计较机一级MSOffice测验真题03-03

3月天下计较机品级测验二级VFP测验真题09-26