2016年计算机二级考试C++试题练习及答案

时间:2016-01-12 13:54:00   来源:无忧考网     [字体: ]
1[单选题] 若变量已正确定义,有下列程序段

  inta=3,b=5,c=7;

  if(a>b)a=b;c=a;

  if(C!=a)C=b;

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

  其输出的结果是(  )。

  A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7

  参考答案:B

  参考解析:如果if判断条件成立时就执行其后的相关语句,否则不执行,第一个if条件a>b不成立,故不执行“a=b”,接着执行“c=a”,把a的值赋给c后,此时第二个if条件不成立,故不执行其后语句,最终点c的值为3。

  2[单选题] 与语句cout<

  A.cout <<’\n’;B.cout<<‘\l2’:C.cout <<’\xA’;D.cout<<‘\0’:

  参考答案:D

  参考解析:题干表示的是回车换行,选项A、B、c都表示回车换行,而选项D是字符串的结尾标志。

  3[单选题]类O定义了私有函数F1。P和Q为O的派生类,定义为class P: protected O{…};class Q: public O{…}。(  )可以访问Fl。

  A.O的对象 B.P类内 C.O类内 D.Q类内

  参考答案:C

  4[单选题]以下程序的输出结果是

  #include(iostream. h>

  void reverse(int a[],int n)

  { int i,t;

  for(i=0;;

  {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

  }

  void main()

  { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;

  reverse(b,8);

  for(i=6;i <10;i++)s+=b[i];

  cout <

  }

  A.22 B.10 C.34 D.30

  参考答案:A

  5[单选题]列选项,不正确的是

  A.for(int a=1;a<=10;a++); B.int a=1;

  do

  {

  a++;

  }while(a<=10) C.int a=1:

  while(a<=10)

  {

  a++;

  } l D.for(int a=1;a<=10;a++)a++;

  参考答案:B

  7[单选题]有如下程序:

  #include

  using namespace std;

  class AA{

  int n;

  public:

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

  int get( ){ return n;}

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

  };

  int main( )

  {

  AA a(5);

  const AA b(6);

  cout <

  }

  执行后的输出结果是(  )

  A.55 B.57 C.75 D.77

  参考答案:B

  8[单选题] 决定c++语言中函数的返回值类型的是( )。

  A.return语句中的表达式类型

  B.调用该函数时系统随机产生的类型

  C.调用该函数时的主调用函数类型

  D.在定义该函数时所指定的数据类型

  参考答案:D

  参考解析:c++语言中,在定义该函数时所指定的数据类璎决定函数的返回值类型。

  9[单选题] C++中的模板包括(  )。

  A.对象模板和函数模板

  B.对象模板和类模板

  C.函数模板和类模板

  D.变量模板和对象模板

  参考答案:C

  10[简答题]使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*sl,char*s2)的空出部分。函数fun(char*s1,char*s2)的功能是将在字符串s1中下标为偶数的字符,紧随其后重复出现一次,放在一个新串s2中,s2中字符按原字符串中字符的顺序排列。(注意0为偶数)

  例如:当s1中的字符串为“abcdef”时,s2中的字符串应为“aaccee”。

  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include(iostream.h)

  voidfun(char*s1,char*s2)

  {

  }

  voidmain()

  {

  charsi[100】,s2【1OO];

  cout<<"Pleaseenterstringstrin9:"<

  cin.getline(s1,100);

  fun(s1,s2);

  cout<<"Theresultis:"<

  return;

  }

  参考解析:

  inti;

  for(i=0;s1[i]!=0;i++)//循环判断每一个字符

  {

  if(i%2==0)//判断字符串中下标为偶数位置

  {

  s2[i]=s1[3];

  s2[i+1]=s1[i];

  s2[i+2]='\0';//新串添加尾符

  }

  }

  【解析】判断一个字符串中的某一个字符下标i是否为偶数,可用“i%2==0”来判断。对串s1中各个字符串逐个进行考查,满足条件的字符就顺序放在新串s2中,否则就不存放。所有字符处理完成后,记得在新串s2的末尾加上结束符“'\0'。