繁体中文
设为首页
加入收藏
当前位置:IT认证首页 >> 其他认证 >> 计算机等级 >> 历年真题 >> 2005年9月第22次全国计算机等级考试二级C++考试真题

2005年9月第22次全国计算机等级考试二级C++考试真题

2007-04-05 01:51:50  作者:小罗  来源:ITZERO收集整理  浏览次数:208  文字大小:【】【】【

  全国计算机等级考试二级笔试试卷C++语言程序设计

  (考试时间90分钟,满分100分)

  一、选择题(每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  (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)PDL(过程设计语言)B)PAD图

  C)N-S图D)DFD图

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

  A)软件交付使用后还需要进行维护

  B)软件一旦交付使用就不需要再进行维护

  C)软件交付使用后其生命周期就结束

  D)软件维护是指修复程序中被破坏的指令

  (8)数据库设计的根本目标是要解决

  A)数据共享问题B)数据安全问题

  C)大量数据存储问题D)简化数据维护

  (9)设有如下关系表:

  RST

  ABCABCABC

  112313112

  223223

  313

  则下列操作中正确的是

  A)T=R∩SB)T=R∪SC)T=R×SD)T=R/S

  (10)数据库系统的核心是

  A)数据模型B)数据库管理系统

  C)数据库D)数据库管理员

  (11)下列关于C++函数的叙述中,正确的是

  A)每个函数至少要具有一个参数B)每个函数都必须返回一个值

  C)函数在被调用之前必须先声明D)函数不能自己调用自己


  (10)用树形结构表示实体之间联系的模型是C

  A)关系模型

  B)网状模型

  C)层次模型

  D)以上三个都是

  (11)算法具有五个特性,以下选项中不属于算法特性的是B

  A)有穷性

  B)简洁性

  C)可行性

  D)确定性

  (12)以下选项中可作为C语言合法常量的是A

  A)-80。

  B)-080

  C)-8e1。0

  D)-80。0e

  (13)以下叙述中正确的是C

  A)用C程序实现的算法必须要有输入和输出操作

  B)用C程序实现的算法可以没有输出但必须要有输入

  C)用C程序实现的算法可以没有输入但必须要有输出

  D)用C程序实现的算法可以既没有输入也没有输出

  14。以下不能定义为用户标识符的是D

  A)Main

  B)_0

  C)_int

  D)sizeof

  (15)以下选项中,不能作为合法常量的是B

  A)1。234e04

  B)1。234e0。4

  C)1。234e+4

  D)1。234e0

  (16)数字字符0的ASCII值为48,若有以下程序

  main()

  {chara='1',b='2';

  printf("%c,",b++);

  printf("%d\n",b-a);

  }

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

  A)3,2

  B)50,2

  C)2,2

  D)2,50

  (17)有以下程序

  main()

  {intm=12,n=34;

  printf("%d%d",m++,++n);

  printf("%d%d\n",n++,++m);

  }

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

  A)12353514

  B)12353513

  C)12343514

  D)12343513

  (18)有定义语句:intb;charc[10];,则正确的输入语句是B

  A)scanf("%d%s",&b,&c);

  B)scanf("%d%s",&b,c);

  C)scanf("%d%s",b,c);

  D)scanf("%d%s",b,&c);

  (19)有以下程序

  main()

  {intm,n,p;

  scanf("m=%dn=%dp=%d",&m,&n,&p);

  printf("%d%d%d\n",m,n,p);

  }

  若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是A

  A)m=123n=456p=789

  B)m=123n=456p=789

  C)m=123,n=456,p=789

  D)123456789


  (20)有以下程序

  main()

  {

  inta,b,d=25;

  a=d/10%9;

  b=a&&(-1);

  printf("%d,%d\n",a,b);

  }

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

  A)6,1

  B)2,1

  C)6,0

  D)2,0

  (21)有以下程序

  main()

  {inti=1,j=2,k=3;

  if(i++==1&&(++j==3||k++==3))

  printf("%d%d%d\n",i,j,k);

  }

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

  A)123

  B)234

  C)223

  D)233

  (22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值A

  A)1B)2c)3D)4

  (23)有以下程序

  main()

  {

  intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

  while(i++<7)if(p[i]%2)j+=p[i];

  printf("%d\n",j);

  }

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

  A)42

  B)45

  C)56

  D)60

  (24)有以下程序

  main()

  {chara[7]="a0\0a0\0";inti,j;

  i=sizeof(a);j=strlen(a);

  printf("%d%d\n",i,j);

  }

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

  A)22

  B)76

  C)72

  D)62

  (25)以下能正确定义一维数组的选项是B

  A)inta[5]={0,1,2,3,4,5};

  B)chara[]={0,1,2,3,4,5};

  C)chara={'A','B','C'};

  D)inta[5]="0123";

  (26)有以下程序

  intf1(intx,inty){returnx>y?x:y;}

  intf2(intx,inty){returnx>y?y:x;}

  main()

  {inta=4,b=3,c=5,d=2,e,f,g;

  e=f2(f1(a,b),f1(c,d));

  f=f1(f2(a,b),f2(c,d));

  g=a+b+c+d-e-f;

  printf("%d,%d%d\n",e,f,g);

  }

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

  A)4,3,7

  B)3,4,7

  C)5,2,7

  D)2,5,7

  (27)已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是C

  A)数组a和b的长度相同

  B)a数组长度小于b数组长度

  C)a数组长度大于b数组长度

  D)上述说法都不对


  (28)有以下程序

  voidf(int*x,int*y)

  {intt;

  t=*x;*x=*y;*y=t;

  }

  main()

  {inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

  p=a;q=&a[7];

  while(p<q)

  {

  f(p,q);

  p++;

  q--;

  }

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

  printf("%d,",a[i]);

  }

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

  A)8,2,3,4,5,6,7,1,

  B)5,6,7,8,1,2,3,4,

  C)1,2,3,4,5,6,7,8,

  D)8,7,6,5,4,3,2,1,

  (29)有以下程序

  main()

  {

  inta[3][3],*p,i;

  p=&a[0][0];

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

  p[i]=i;

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

  printf("%d",a[1][i]);

  }

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

  A)012

  B)123

  C)234

  D)345

  (30)以下叙述中错误的是C

  A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

  B)数组名代表的是数组所占存储区的首地址,其值不可改变

  C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

  D)可以通过赋初值的方式确定数组元素的个数

  (31)有以下程序

  #defineN20

  fun(inta[],intn,intm)

  {inti,j;

  for(i=m;i>=n;i--)

  a[i+1]=a[i];

  }

  main()

  {

  inti,a[N]={1,2,3,4,5,6,7,8,9,10};

  fun(a,2,9);

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

  printf("%d",a[i]);

  }

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

  A)10234

  B)12344

  C)12334

  D)12234

  (32)有以下程序

  main()

  {inta[3][2]={0},(*ptr)[2],i,j;

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

  {ptr=a+i;

  scanf("%d",ptr);

  ptr++;

  }

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

  {

  for(j=0;j<2;j++)

  printf("%2d",a[i][j]);

  printf("\n");

  }

  }

  若运行时输入:123<回车>,则输出结果为B

  A)产生错误信息

  B)10

  20

  00

  C)12

  30

  00

  D)10

  20

  30


  (33)有以下程序

  prt(int*m,intn)

  {

  inti;

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

  m[i]++;

  }

  main()

  {

  inta[]={1,2,3,4,5},i;

  prt(a,5);

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

  printf("%d,",a[i]);

  }

  程序运行后的输出结果是:B

  A)1,2,3,4,5,

  B)2,3,4,5,6,

  C)3,4,5,6,7,

  D)2,3,4,5,1,

  (34)有以下程序

  main()

  {inta[]={1,2,3,4,5,6,7,8,9,0},*p;

  for(p=a;p<a+10;p++)

  printf("%d,",*p);

  }

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

  A)1,2,3,4,5,6,7,8,9,0,

  B)2,3,4,5,6,7,8,9,10,1,

  C)0,1,2,3,4,5,6,7,8,9,

  D)1,1,1,1,1,1,1,1,1,,1,

  (35)有以下程序

  #defineP3

  #defineF(intx){return(P*x*x);}

  main()

  {

  printf("%d\n",F(3+5));

  }

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

  A)192

  B)29

  C)25

  D)编译出错

  (36)有以下程序

  main()

  {

  intc=35;printf("%d\n",c&c);

  }

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

  A)0

  B)70

  C)35

  D)1

  (37)以下叙述中正确的是D

  A)预处理命令行必须位于源文件的开头

  B)在源文件的一行上可以有多条预处理命令

  C)宏名必须用大写字母表示

  D)宏替换不占用程序的运行时间

  (38)若有以下说明和定义

  uniondt

  {

  inta;charb;doublec;

  }data;

  以下叙述中错误的是C

  A)data的每个成员起始地址都相同

  B)变量data所占内存字节数与成员c所占字节数相等

  C)程序段:data。a=5;printf("%f\n",data。c);输出结果为5。000000

  D)data可以作为函数的实参


  (39)以下语句或语句组中,能正确进行字符串赋值的是D

  A)char*sp;*sp="right!";

  B)chars[10];s="right!";

  C)chars[10];*s="right!";

  D)char*sp="right!";

  (40)设有如下说明

  typedefstructST

  {

  longa;

  intb;

  charc[2];

  }NEW;

  则下面叙述中正确的是C

  A)以上的说明形式非法

  B)ST是一个结构体类型

  C)NEW是一个结构体类型

  D)NEW是一个结构体变量

  (41)有以下程序

  main()

  {

  inta=1,b;

  for(b=1;b<=10;b++)

  {

  if(a>=8)break;

  if(a%2==1){a+=5;continue;}

  a-=3;

  }

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

  }

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

  A)3

  B)4

  C)5

  D)6

  (42)有以下程序

  main()

  {

  chars[]="159",*p;

  p=s;

  printf("%c",*p++);

  printf("%c",*p++);

  }

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

  A)15

  B)16

  C)12

  D)59

  (43)有以下函数

  fun(char*a,char*b)

  {

  while((*a!='\0')&&(*b!='\0')&&(*a==*b))

  {a++;b++;}

  return(*a-*b);

  }

  该函数的功能是D

  A)计算a和b所指字符串的长度之差

  B)将b所指字符串复制到a所指字符串中

  C)将b所指字符串连接到a所指字符串后面

  D)比较a和b所指字符串的大小

  (44)有以下程序

  main()

  {

  intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

  {

  for(j=1;j<=i;j++)printf("%c",'');

  for(j=j<4;j++)printf("%4d",num[i][j]);

  printf("\n");

  }

  }

  若要按以下形式输出数组右上半三角

  1234

  678

  1112

  16

  则在程序下划线处应填入的是B

  A)i-1

  B)i

  C)i+1

  D)4-i


  (49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是D

  A)feof(fp)

  B)ftell(fp)

  C)fgetc(fp)

  D)rewind(fp)

  (50)有以下程序

  #include"stdio。h"

  voidWriteStr(char*fn,char*str)

  {

  FILE*fp;

  fp=fopen(fn,"W");

  fputs(str,fp);

  fclose(fp);

  }

  main()

  {

  WriteStr("t1。dat","start");

  WriteStr("t1。dat","end");

  }

  程序运行后,文件t1。dat中的内容是B

  A)start

  B)end

  C)startend

  D)endrt

  待续……

  2005年4月2日C笔试试卷及答案,快来对答案(三)!!!!!!!

  填空题(每空2分,共40分)

  (1)某二*树中,度为2的结点有18个,则该二*树中有19个叶子结点。

  (2)在面向对象的方法中,类的实例称为对象。

  (3)诊断和改正程序中错误的工作通常称为程序调试。

  (4)在关系数据库中,把数据表示成二维表,每一个二维表称为关系。

  (5)问题处理方案的正确而完整的描述称为算法。

  (6)以下程序运行时若从键盘输入:102030<回车>。输出结果是10300。

  #include<stdio。h>

  main()

  {inti=0,j=0,k=0;

  scanf("%d%*d%d",&i,&j,&k);

  printf("%d%d%d\n",i,j,k);

  }

  (7)以下程序运行后的输出结果是81。

  #defineS(x)4*x*x+1

  main()

  {

  inti=6,j=8;

  printf("%d\n",S(i+j));

  }

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

  main()

  {

  inta=3,b=4,c=5,t=99;

  if(b<a&&a<c)t=a;a=c;c=t;

  if(a<c&&b<c)t=b;b=a;a=t;

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

  }

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

  main()

  {

  inta,b,c

  a=10;b=20;c=(a%b<1)||(a/b>1);

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

  }

  (10)以下程序运行后的输出结果是0918273645

  main()

  {

  charc1,c2;

  for(c1='0',c2='9';c1<c2;c1++,c2--)

  printf("%c%c",c1,c2);

  printf("\n");

  }


  (11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>。输出结果是1B

  #include"stdio。h"

  main()

  {

  chara,b;

  a=getchar();scanf("%d",&b);

  a=a-'A'+'0';

  b=b*2;

  printf("%c%c\n",a,b);

  }

  (12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。br[i]

  voidfun(int,int,int(*)[4],int*)

  main()

  {

  inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

  fun(3,4,a,b);

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

  printf("%4d",b[i]);

  printf("\n");

  }

  voidfun(intm,intn,intar[][4],int*br)

  {

  inti,j,x;

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

  {x=ar[i][0];

  for(j=0;j<n;j++)

  if(x<ar[i][j])x=ar[i][j];

  【12】=x;

  }

  (13)以下程序运行后的输出结果是4334

  voidswap(intx,inty)

  {intt;

  t=x;x=y;y=t;

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

  }

  main()

  {inta=3,b=4;

  swap(a,b);

  printf("%d%d\n",a,b);

  }

  (14)以下程序运行后的输出结果是abcfg

  #include"string。h"

  voidfun(char*s,intp,intk)

  {inti;

  for(i=p;i<k-1;i++)

  s[i]=s[i+2];

  }

  main()

  {chars[]="abcdefg";

  fun(s,3,strlen(s));

  puts(s);

  }

  (15)以下程序运行后的输出结果是abcbcc

  #include"string。h"

  main()

  {

  charch[]="abc",x[3][4];inti;

  for(i=0;i<3;i++)strcpy(x[i],ch);

  for(i=0;i<3;i++)printf("%s",&x[i][i]);

  printf("\n");

  }


  (16)以下程序运行后的输出结果是010111212

  fun(inta)

  {

  intb=0;staticintc=3;

  b++;c++;

  return(a+b+c);

  }

  main()

  {

  inti,a=5;

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

  printf("%d%d",i,fun(a));

  printf("\n");

  }

  (17)以下程序运行后的输出结果是13431

  structNODE

  {intk;

  structNODE*link;

  };

  main()

  {

  structNODEm[5],*p=m,*q=m+4;

  inti=0;

  while(p!=q)

  {p->k=++i;p++;

  q->k=i++;q--;

  }

  q->k=i;

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

  printf("%d",m[i]。k);

  printf("\n");

  }

  (18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes

  yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。

  #include"string。h"

  char*huiwen(char*str)

  {

  char*p1,*p2;inti,t=0;

  p1=str;p2=①

  for(i=0;i<=strlen(str)/2;i++)

  if(*p1++!=*p2--)

  {t=1;break;}

  if(②)return("yes!");

  elsereturn("no!");

  }

  main()

  {

  charstr[50];

  printf("Input:");scanf("%s",str);

  printf("%s\n",③);

  }

  ①str+strlen(str)-1

  ②t==0或!t

  ③huiwen(str)


  (22)有如下类声明:

  classFoo{intbar;};

  则Foo类的成员bar是

  A)公有数据成员B)公有成员函数C)私有数据成员D)私有成员函数

  (23)有如下类声明:

  classMyBASE{

  intk;

  public:

  voidset(intn){k=n;}

  intget()const{returnk;}

  };

  classMyDERIVED:protectedMyBASE{

  protected:

  intj;

  public:

  voidset(intm,intn){MyBASE::set(m);j=n;}

  intget()const{returnMyBASE::get()+j;}

  };

  则类MyDERIVED中保护的数据成员和成员函数的个数是

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

  (24)已知在一个类体中包含如下函数原型:VOLUMEoperator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是

  A)这是运算符-的重载运算符函数

  B)这个函数所重载的运算符是一个一元运算符

  C)这是一个成员函数

  D)这个函数不改变类的任何数据成员的值

  (25)有如下函数模板定义:

  template<classT>

  Tfunc(Tx,Ty){returnx*x+y*y;}

  在下列对func的调用中,错误的是

  A)func(3,5);B)func(3。0,5。5);

  C)func(3,5。5);D)func<int>(3,5。5);

  (26)有如下程序:

  #include<iostream>

  usingnamespacestd;

  intmain()

  {

  cout。fill('*');

  cout。width(6);

  cout。fill('#');

  cout<<123<<endl;

  return0;

  }

  执行后的输出结果是

  A)###123B)123###C)***123D)123***

  (27)在下列函数原型中,可以作为类AA构造函数的是

  A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);

  (28)下列关于this指针的叙述中,正确的是

  A)任何与类相关的函数都有this指针

  B)类的成员函数都有this指针

  C)类的友元函数都有this指针

  D)类的非静态成员函数才有this指针

  (29)有如下程序:

  #include<iostream>

  usingnamespacestd;

  classTest{

  public:

  Test(){n+=2;}

  ~Test(){n-=3;}

  staticintgetNum(){returnn;}

  private:

  staticintn;

  };

  intTest::n=1;

  intmain()

  {

  Test*p=newTest;

  deletep;

  cout<<"n="<<Test::getNum()<<endl;

  return0;

  }

  执行后的输出结果是

  A)n=0B)n=1C)n=2D)n=3


  (30)有如下程序:

  #include<iostream>

  usingnamespacestd;

  classA{

  public:

  A(){cout<<"A";}

  };

  classB{public:B(){cout<<"B";}};

  classC:publicA{

  Bb;

  public:

  C(){cout<<"C";}

  };

  intmain(){Cobj;return0;}

  执行后的输出结果是

  A)CBAB)BACC)ACBD)ABC

  (31)有如下类声明:

  classXA{

  intx;

  public:

  XA(intn){x=n;}

  };

  classXB:publicXA{

  inty;

  public:

  XB(inta,intb);

  };

  在构造函数XB的下列定义中,正确的是

  A)XB::XB(inta,intb):x(a),y(b){}

  B)XB::XB(inta,intb):XA(a),y(b){}

  C)XB::XB(inta,intb):x(a),XB(b){}

  D)XB::XB(inta,intb):XA(a),XB(b){}

  (32)有如下程序:

  #include<iostream>

  usingnamespacestd;

  classBASE{

  public:

  ~BASE(){cout<<"BASE";}

  };

  classDERIVED:publicBASE{

  public:

  ~DERIVED(){cout<<"DERIVED";}

  };

  intmain(){DERIVEDx;return0;}

  执行后的输出结果是

  A)BASEB)DERIVED

  C)BASEDERIVEDD)DERIVEDBASE

  (33)在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是

  A)operator+有两个参数,operator*有两个参数

  B)operator+有两个参数,operator*有一个参数

  C)operator+有一个参数,operator*有两个参数

  D)operator+有一个参数,operator*有一个参数

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

  A)cin是一个输入流对象

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

  C)执行语句序列char*y="PQMN";cout<<y;将输出字符串"PQMN"的地址

  D)执行语句序列charx[80];cin。getline(x,80);时,若键入

  Happynewyear

  则x中的字符串是"Happy"


  (35)有如下程序:

  #include<iostream>

  usingnamespacestd;

  classAA{

  intn;

  public:

  AA(intk):n(k){}

  intget(){returnn;}

  intget()const{returnn+1;}

  };

  intmain()

  {

  AAa(5);

  constAAb(6);

  cout<<a。get()<<b。get();

  return0;

  }

  执行后的输出结果是

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

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

  请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。

  (1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【1】。

  (2)算法复杂度主要包括时间复杂度和【2】复杂度。

  (3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中【3】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

  (4)一棵二叉树第六层(根结点为第一层)的结点数最多为【4】个。

  (5)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。

  (6)下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。

  boolfun(char*str)

  {

  inti=0,j=0;

  while(str[j])【6】;

  for(j--;i<j&&str[i]==str[j];i++,j--);

  returni【7】j;

  }

  (7)执行语句序列

  intx=10,&r=x;

  cout><<x><<'-'<<r><<endl;

  输出结果为【8】。

  (8)下列程序的输出结果为

  Objectid=0

  Objectid=1

  请将程序补充完整。

  #include<iostream>

  usingnamespacestd;

  classPoint

  {

  public:

  Point(intxx=0,intyy=0){X=xx;Y=yy;countP++;}

  ~Point(){countP--;}

  intGetX(){returnX;}

  intGetY(){returnY;}

  staticvoidGetC(){cout<<"Objectid="<<countP><<endl;}

  private:

  intX,Y;

  staticintcountP;

  };


  【9】//静态数据成员的初始化

  intmain()

  {

  Point::GetC();

  PointA(4,5);

  A。GetC();

  return0;

  }

  (9)非成员函数应声明为类的【10】函数才能访问这个类的private成员。

  (10)派生类中的成员不能直接访问基类中的【11】成员。

  (11)下列程序的输出结果为2,请将程序补充完整。

  #include<iostream>

  usingnamespacestd;

  classBase

  {

  public:

  【12】voidfun(){cout<<1;}

  };

  classDerived:publicBase

  {

  public:

  voidfun(){cout<<2;}

  };

  intmain()

  {

  Base*p=newDerived;

  p->fun();

  deletep;

  return0;

  }

  (12)请将下列类定义补充完整。

  classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};

  classDerived:publicBase{

  public:

  voidfun(){

  【13】//显式调用基类的fun函数

  cout<<"Derived::fun"<<endl;

  }};

  (13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的【14】函数重载。

  (14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。

  template<classT>

  classTstack

  {

  enum{size=1000};

  Tstack[size];

  inttop;

  public:

  Tstack():top(0){}

  voidpush(constT&i){

  if(top<size)

  stack[top++]=i;

  }

  Tpop(){

  if(top==0)exit(1);//栈空时终止运行

  return【15】;

  }

  };


责任编辑:itzero

本文引用地址: http://exam.itzero.com/2007/0405/16596.html 请粘贴到你的QQ/MSN上推荐给你的好友

相关文章
武汉市2008年上半年全国英语等级考试(PETS)、全国计算机等级考试(NCRE)报名即将开始
计算机等级考试二级C语言超级经典400道题目
全国计算机软件资格考试网上报名3月20日截止
软件水平考试规则
软件水平考试备考要略
全球统一的软件工程师的标准
程序员资格与水平考试大纲
计算机技术与软件考试11月举行郑州23日报名止
软件水平考试规则
决战软件设计师
2006年上半年软件评测师下午试卷
 

最新文章

更多

· 2005年4月全国计算机等级...
· 2005年9月第22次全国计算...
· 2006年4月全国计算机等级...
· 2006年广西区等级考试二...
· 07年4月等级考试二级C语...
· 07年4月等级考试二级C语...
· 07年4月等级考试二级C语...
· 2006年9月二级C答案
· 2005年4月全国计算机等级...
· 2006年4月全国计算机等级...

热点文章

更多

其它推荐