度C++程序设计复习模拟试题.docx

上传人:b****8 文档编号:11095188 上传时间:2023-02-25 格式:DOCX 页数:12 大小:18.32KB
下载 相关 举报
度C++程序设计复习模拟试题.docx_第1页
第1页 / 共12页
度C++程序设计复习模拟试题.docx_第2页
第2页 / 共12页
度C++程序设计复习模拟试题.docx_第3页
第3页 / 共12页
度C++程序设计复习模拟试题.docx_第4页
第4页 / 共12页
度C++程序设计复习模拟试题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

度C++程序设计复习模拟试题.docx

《度C++程序设计复习模拟试题.docx》由会员分享,可在线阅读,更多相关《度C++程序设计复习模拟试题.docx(12页珍藏版)》请在冰豆网上搜索。

度C++程序设计复习模拟试题.docx

度C++程序设计复习模拟试题

2008—2009年度《C++程序设计》复习模拟试题

一、单选题

1、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为             。

A.main          B.MAIN          C.name          D.function

2、设x和y均为bool量,则x&&y为真的条件是               。

A.它们均为真   B.其中一个为真   C.它们均为假    D.其中一个为假

3、下面的哪个保留字不能作为函数的返回类型?

               。

A.void          B.int             C.new            D.long

4、假定a为一个整型数组名,则元素a[4]的字节地址为                。

A.a+4           B.a+8            C.a+16           D.a+32

5、假定AB为一个类,则执行“AB a(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为                。

A.3             B.4              C.6              D.9

6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:

                。

A. AB operator+(AB &a,AB &b)     B. AB operator+(AB &a)

C. operator+(AB a)                      D. AB &operator+()

二、填空题

1、C++语言中的每条基本语句以            作为结束符,每条复合语句以           作为结束符。

2、执行“cout<

3、float和double类型的大小分别为           和           。

4、关系表达式x+y>5的相反表达式为                         。

5、假定一个一维数组的定义为“char *a[8];”,则该数组所含元素的个数为         ,所占存储空间的字节数为           。

6、变量分为全局和局部两种,             变量没有赋初值时,其值是不确定的。

7、假定a是一个二维数组,则a[i][j]的指针访为                        。

8、假定一个结构类型定义为

“struct D{int a; union{int b;double c;};D *d[2];};”,

则该类型的大小为             字节。

9、对一个类中的数据成员的初始化可以通过构造函数的                 实现,也可以通过构造函数中的                   实现。

10、假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为                      。

11、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为                                   。

12、在C++中建立参数类型和个数不同的同名函数是可能的,这称为_____。

13、运算符_____动态分配一个对象。

14、关键字_____、_____、_____和_____在C++中用来建立新的数据类型。

15、类的_____成员只能被该类的成员函数或友元访问。

三、给出下列程序运行后的输出结果

1、#include

usingnamespacestd;

classbase{

intx;

public:

base(inta){x=a;cout<<"base..."<

base(base&t){x=t.x;cout<<"basecopy..."<

virtual~base(){cout<<"~base..."<

};

classderived:

publicbase{

inty;

public:

derived(inta,intb):

base(a)

{

y=b;cout<<"derived..."<

}

derived(derived&t):

base(t){y=t.y;cout<<"derived..."<

~derived(){cout<<"~derived..."<

};

voidmain()

{

base*pb=newderived(52,54);

basea(*pb);

deletepb;

}

2、

#include

usingnamespacestd;

classA{

public:

virtualvoidfa(void){cout<<"A:

:

fa"<

voidfb(void){cout<<"B:

:

fb"<

};

classB:

publicA{

public:

voidfa(void){cout<<"B:

:

fa"<

voidfb(void){cout<<"B:

:

fb"<

};

voidmain()

{

A*pa=newA;

A*pb=newB;

pa->fa();

pb->fb();

pb->fa();

pb->A:

:

fa();

((B*)pb)->fb();

}

3、#include

voidSB(charch){

   switch(ch){

   case'A':

case'a':

          cout<<"well!

";break;

   case'B':

case'b':

          cout<<"good!

";break;

   case'C':

case'c':

          cout<<"pass!

";break;

   default:

          cout<<"nad!

";break;

   }}

voidmain(){

   chara1='b',a2='C',a3='f';

   SB(a1);SB(a2);SB(a3);SB('A');

   cout<

4、#include

#include

voidmain(){

   char*a[5]={"student","worker","cadre","soldier","peasant"};

   char*p1,*p2;

   p1=p2=a[0];

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

          if(strcmp(a[i],p1)>0)p1=a[i];

          if(strcmp(a[i],p2)<0)p2=a[i];

   }

   cout<

}

5、#include

inta=5;

voidmain(){

   inta=10,b=20;

   cout<

   {  inta=0,b=0;

      for(inti=1;i<6;i++){

          a+=i;b+=a;

   }

          cout<

:

a<

   }

   cout<

6、#include

intLB(int*a,intn){

   ints=1;

   for(inti=0;i

          s*=*a++;

   returns;

}

voidmain(){

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

   intb=LB(a,5)+LB(&a[3],3);

   cout<<"b="<

}

7、#include

#include

structWorker{

   charname[15];  //姓名

   intage;        //年龄

   floatpay;      //工资

};

voidmain(){

   Workerx;

   char*t="liouting";

   intd=38;floatf=493;

   strcpy(x.name,t);

   x.age=d;x.pay=f;

   cout<

}

8、#include

classA{

   inta;

public:

   A(intaa=0){a=aa;}

   ~A(){cout<<"DestructorA!

"<

};

classB:

publicA{

   intb;

public:

   B(intaa=0,intbb=0):

A(aa){b=bb;}

   ~B(){cout<<"DestructorB!

"<

};

voidmain(){

   Bx(5),y(6,7); //后定义的变量将先被释放

}

四、写出下列每个函数的功能

1、#include

intSA(inta,intb){

   if(a>b)return1;

   elseif(a==b)return0;

   elsereturn-1;

}

2、floatFI(intn){

   //n为大于等于1的整数

   floatx,y=0;

   do{

          cin>>x;

          n--;y+=x*x;

   }while(n>0);

   return y;

}

3、template

voidWE(Typea[],Typeb[],intn){

   for(inti=0;i

          b[n-i-1]=a[i];

}

4、structStrNode{

   charname[15];    //字符串域

   StrNode*next;   //指针域

};

voidQB(StrNode*&f,intn){

   if(n==0){f=NULL;return;}

   f=newStrNode;

   cin>>f->name;

   StrNode*p=f;

   while(--n){

          p=p->next=newStrNode;

          cin>>p->name;

   }

   p->next=NULL;

}

五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:

xxk1.dat”中。

 

参考答案及评分标准

一、单选题(每小题1分,共6分)

评分标准:

选对者得1分,否则不得分。

1、A      2、A       3、C       4、C      5、B      6、B

二、填空题(每小题2分,共24分)评分标准:

每题与参考答案相同者得2分,否则不得分。

1、  :

   }                       2、  C

3、  4    8                       4、  x+y<=5                    5、  8     32

    6、局部7、 *(a[i]+j)  或 *(*(a+i)+j)

8、  20                           9、 初始化表   函数体

10、 10                           11、 AB:

:

bb

12、函数重载13、new

14、enumstructunionclass

15、私有

三、给出下列程序运行后的输出结果(每小题6分,共36分)

评分标准:

每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。

1、base...52

derived...54

basecopy...52

~derived...54

~base...52

~base...52

2、A:

:

fa

B:

:

fb

B:

:

fa

A:

:

fa

B:

:

fb

3、 good!

 pass!

 bad!

 well!

4、 worker cadre

5、 10 20

15 35 5

10 20

6、 b=240

7、 liouting 38 493

8、 Destructor B!

 7

Destructor A!

 6

Destructor B!

 0

Destructor A!

 5

四、写出下列每个函数的功能(每小题6分,共24分)

   评分标准:

每题与参考答案的叙述含义相同者得6分,否则酌情给分。

   1、比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a

   2、求出从键盘上输入的n个常数的平方和并返回。

   3、模板函数,把数组a的每个元素按逆序放入数组b中。

   4、建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。

五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:

xxk1.dat”中。

(10分)评分标准:

见参考程序中的注释。

#include  //使用此命令得1分

#include

#include

voidmain(){

      ofstreamfout("a:

xxk1.dat"); //定义输出文件流打开文件2分

      if(!

fout){

             cerr<<"文件没有打开!

"<

             exit

(1);

      }       //可有可无

      intx;

      cin>>x;

      while(x!

=-1){

             fout<

             cin>>x;

      }   //能够从键盘向文件正确输出数据得6分

      fout.close();  //关闭输出文件流得1分

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1