C++试题17.docx

上传人:b****6 文档编号:8450407 上传时间:2023-01-31 格式:DOCX 页数:17 大小:19.94KB
下载 相关 举报
C++试题17.docx_第1页
第1页 / 共17页
C++试题17.docx_第2页
第2页 / 共17页
C++试题17.docx_第3页
第3页 / 共17页
C++试题17.docx_第4页
第4页 / 共17页
C++试题17.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C++试题17.docx

《C++试题17.docx》由会员分享,可在线阅读,更多相关《C++试题17.docx(17页珍藏版)》请在冰豆网上搜索。

C++试题17.docx

C++试题17

试卷编号:

8785

所属语言:

C++

试卷方案:

C+_20091213211338

试卷总分:

70分

共有题型:

3种

 

一、填空共16题(共计34分)

第1题(1.0分)题号:

2367

如果inta='\65',b='\100';则a的值为____【1】_____,b的值为____【2】______。

答案:

1).53

2).64

 

第2题(1.0分)题号:

1547

下列程序输出的第二行是【1】,第三行的是【2】.

#include

inta=5;

voidmain()

{

inta=10,b=20;

cout<

{

inta=0;

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

{

a+=i;b+=a;

}

cout<

}

cout<

}

答案:

1).15,55

2).10,55

 

第3题(1.0分)题号:

1579

若有定义intj=2,s=1;intb[][3]={{1},{3,2},{4,5,6},{0}};则表达式b[j+s][j-s]+b[j++][--s]的值是【1】.

答案:

1).4

 

第4题(1.0分)题号:

2404

设有语句“chars[]="Rep\0Ch";intm=sizeof(s);”,则m的值为______【1】_______。

答案:

1).7

 

第5题(1.0分)题号:

90

下列程序中函数invert的功能是将单链表逆置。

若原链表结点上的值依次为2、6、7、1、9,则逆置后链表结点上的值依次为9、1、7、6、2。

请完善程序。

structnode

{intx;node*next;};

node*invert(node*first)

{node*p=first,*q;

first=【1】;

while(p)

{q=p->next;

p->next=【2】;

first=【3】;

p=【4】;

}

returnfirst;

}

voidmain()

{nodea[10]={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}},*hd=a,*p;

for(inti=0;i<9;i++)a[i].next=&a[i+1];

a[9].next=NULL;

p=invert(hd);

while(p){cout<x;p=p->next;}

}

答案:

1).NULL

2).first

3).p

4).q

 

第6题(1.0分)题号:

2421

同一个类的两个对象,其非静态数据成员是不同的,但__【1】___是共享的。

答案:

1).成员函数和静态数据成员

 

第7题(1.0分)题号:

933

如果类的成员对象不提供成员初始化值,则调用该对象的【1】。

答案:

1).构造函数或缺省的构造函数

 

第8题(1.0分)题号:

1770

以下程序输出的第二行【1】,第三行【2】,第四行【3】.#include

#include

classBase{

charstr[20];

public:

Base(char*s="Basedefault"){strcpy(str,s);cout<

};

classInh1:

publicvirtualBase{

charstr1[20];

public:

Inh1(char*s1,char*s2):

Base(s1){strcpy(str1,s2);cout<

};

classInh2:

publicvirtualBase{

charstr2[20];

public:

Inh2(char*s1,char*s2):

Base(s1){strcpy(str2,s2);cout<

};

classInh3:

publicInh1,publicInh2{

charstr3[20];

public:

Inh3(char*s1,char*s2,char*s3,char*s4):

Inh1(s1,s2),Inh2(s1,s3)

{strcpy(str3,s4);cout<

};

voidmain(void)

{Inh3a("classBase","classInh1","classInh2","classInh3");}

答案:

1).classInh1

2).classInh2

3).classInh3

 

第9题(1.0分)题号:

1792

假设类A中有一个公有属性的静态数据成员b,在类外不通过对象名访问该成员b的写法是【1】.

答案:

1).A:

:

b

 

第10题(1.0分)题号:

2423

C++中不可重载为友元函数的运算符为___【1】_______运算符。

答案:

1).类型转换

 

第11题(4.0分)题号:

1716

以下程序执行后第一行结果为【1】,第二行结果为【2】.

voidmain()

{

chararr[]="ABc";

char*ptr;

for(ptr=arr;ptr

cout<<*ptr<<'\n';

}

答案:

1).A

2).B

 

第12题(4.0分)题号:

1753

下列程序第一行和第二行输出结果分别为【1】,【2】。

#include

classSample{

public:

intx,y;

Sample(){x=y=0;}

Sample(inta){x=a;}

Sample(doublea){x=++(int)a;}

voidshow(){cout<<"x="<

};

voidmain()

{Samples1(5),s2(10/5.0);s1.show();s2.show();}

答案:

1).x=5

2).x=3

 

第13题(4.0分)题号:

1542

以下程序运行结果是【1】.

#include

voidf1(intn)

{cout<

if(n/10)f1(n/10);

}

voidf2(intn)

{intj=n%10;

if(n/10)f2(n/10);

cout<

}

voidmain(void)

{f1(234);cout<<'\n';

f2(234);cout<<'\n';

}

答案:

1).432234或234

 

第14题(4.0分)题号:

1697

程序输出的第一行是【1】.第二行是【2】.#include

voidmain()

{inta[6][2]={{1,3},{5,7},{9,11},{13,15},{17,19},{21,23}};

int(*p)[2],i;

p=a+3;

for(i=0;i<3;p=p+1,i++)

cout<<*p[0]<<"";

cout<<"\n";

for(p=a;p

cout<<**p<<""<<*(*(p)+1)<

}

答案:

1).131721

2).13

 

第15题(4.0分)题号:

1791

下列程序的输出结果第一行是【1】,第二行是【2】。

#include

classBase{

public:

voiddisplay1(){cout<<"Base:

:

display1()"<<'\n';}

virtualvoiddisplay2(){cout<<"Base:

:

display2()"<<'\n';}

};

classDerived:

publicBase{

public:

voiddisplay1(){cout<<"derived:

:

display1()"<

voiddisplay2(){cout<<"derived:

:

display2()"<

};

voidmain()

{Base*pbase;Derivedd;

pbase=&d;pbase->display1();pbase->display2();}

答案:

1).Base:

:

display1()

2).Derived:

:

display2()

 

第16题(4.0分)题号:

1592

下列程序输出的第一行、第二行分别是【1】、【2】。

#include

intFirst(inta[],intn,intm)

{

for(inti=0;i

if(a[i]==m)

{

for(intj=i+1;j

return1;

}

return0;

}

voidprint(inta[],intn)

{

for(inti=0;i

cout<

cout<

}

voidmain(void)

{

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

if(First(a,7,2))print(a,6);

if(First(a,3,6))print(a,5);

if(First(a,5,1))print(a,4);

cout<<"Endofmain()!

"<

}

答案:

1).134567

2).3456

 

二、单项选择共20题(共计20分)

第1题(1.0分)题号:

2277

一个C++程序总是从____开始执行的。

A:

主过程

B:

主函数

C:

子过程

D:

子函数

答案:

B

第2题(1.0分)题号:

3931

下列定义变量和常用语句中,语法正确的是____.

A:

floati,j,intk;

B:

constinti;

C:

intconstk=1;

D:

#definePI=3.14159

答案:

C

第3题(1.0分)题号:

2280

不正确的int类型的常数是____。

A:

32450

B:

0

C:

0387

D:

0xA1L

答案:

C

第4题(1.0分)题号:

2339

设有下列语句:

inti=17;

cin>>hex>>i;

cout<<"i="<

若输入10,则运行结果值为____。

A:

17

B:

10

C:

1

D:

16

答案:

D

第5题(1.0分)题号:

2364

下列关于while与do…while循环语句的叙述正确的是____.

A:

do...while的循环体至少执行一次

B:

while的循环体至少执行一次

C:

do...while的循环体不能是复合语句

D:

do...while允许从循环体外跳到循环体内

答案:

A

第6题(1.0分)题号:

2360

若有循环语句for(inta=0,b=1;a<3;a++,b++)a+=b;则循环结束后a、b、的值分别是____.

A:

a=3b=3

B:

a=5b=5

C:

a=5b=3

D:

a=3b=2

答案:

C

第7题(1.0分)题号:

3604

在一个函数中定义的静态变量的作用域为____.

A:

本程序的全部范围

B:

本函数的全部范围

C:

从定义该变量的位置开始到本文件结束

D:

以上说法都不正确

答案:

D

第8题(1.0分)题号:

3613

若定义函数:

intf(intx){x++;returnx;}

执行以下语句:

inta=5;f(a)+f(a);

则a的值是____.

A:

5

B:

6

C:

7

D:

8

答案:

A

第9题(1.0分)题号:

3669

若有定义inta[5]={1,3,5};,则数组元素a[3]的值是____.

A:

0

B:

3

C:

1

D:

5

答案:

A

第10题(1.0分)题号:

3660

下列程序的运行结果是____.

#include

#include

voidmain(void)

{chars[]="Rep\0ch";

intm=sizeof(s);

intn=strlen(s);

cout<

}

A:

73

B:

63

C:

77

D:

67

答案:

A

第11题(1.0分)题号:

3663

执行以下程序时,输入一行字符串为Thankyouverymuch!

程序的输出结果为____.

#include

voidmain(void)

{charline[100];

cin>>line;

cout<

}

A:

T

B:

Thank

C:

Thankyouverymuch!

D:

Thankyou

答案:

B

第12题(1.0分)题号:

2392

以下程序的输出结果为____.

#include

voidmain()

{structcmplx

{intx;inty;}cnum[2]={1,3,2,7};

cout<

}

A:

0

B:

1

C:

3

D:

6

答案:

D

第13题(1.0分)题号:

3152

设有说明语句:

inti=2,*p=&i;chars[20]="Hello",*q=s;

以下选项中存在语法错误的是____.

A:

cin>>p

B:

cout<

C:

cin>>q

D:

cout<

答案:

A

第14题(1.0分)题号:

2404

若有以下的定义inta[3][4];(*p)[4]=a;则与表达式*(a+1)+2不等价的是____.

A:

p[1][2]

B:

*(p+1)+2

C:

p[1]+2

D:

a[1]+2

答案:

A

第15题(1.0分)题号:

2410

若有以下说明和定义

structnode

{intdata;

node*next;

}a,*p;

不能正确表示结构体成员值的是____。

A:

a.data

B:

p->data

C:

(*p).data

D:

p.data

答案:

D

第16题(1.0分)题号:

4325

在定义类A时,下列______不可以作为类的成员。

A:

指向类A的对象指针

B:

类A的对象

C:

指向另一个不同的类的对象指针

D:

另一个不同类的对象

答案:

B

第17题(1.0分)题号:

3222

系统提供的默认拷贝构造函数中形参表和函数体分别为____.

A:

形参表为空,函数体为空

B:

形参表为空,函数体不为空

C:

形参表不为空,函数体为空

D:

形参表不为空,函数体不为空

答案:

C

第18题(1.0分)题号:

3627

下列程序的运行结果是____.

#include

classA{

public:

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

};

classB:

A{

public:

voidshow(){cout<<"B";}

};

voidmain()

{Bb;A*p=&b;p->show();}

A:

A

B:

B

C:

A和B

D:

编译时出错

答案:

D

第19题(1.0分)题号:

1614

下列关于虚基类的描述中,错误的是____。

A:

设置虚基类的目的是为了消除二义性

B:

虚基类的构造函数在非虚基类之后调用

C:

若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用

D:

若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数

答案:

B

第20题(1.0分)题号:

4340

若通过类的成员函数和友员函数实现的运算符重载功能是一样的,下列说法正确的是____

A:

两种函数的参数相同,函数体实现过程不同

B:

两种函数在程序中使用时编译器所作的解释相同

C:

两种函数在使用时表达式的形式不同

D:

重载为友元函数比重载为成员函数多一个参数

答案:

D

三、程序填空共2题(共计16分)

第1题(8.0分)题号:

629

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

阅读并完善下列程序。

-------------------------------------------------------*/

#include

classA{

ints[2];

public:

A(intx=0,inty=0){s[0]=x;s[1]=y;}

/***********SPACE***********/

______【?

】______//定义“=”重载函数

{s[0]=t.s[0];s[1]=t.s[1];return*this;}

Aoperator++()//定义前置++重载函数

{++s[0];++s[1];

/***********SPACE***********/

return____【?

】____;

}

/***********SPACE***********/

_______【?

】_________//定义后置++重载函数

{At=*this;++(*this);

/***********SPACE***********/

return【?

】;}

voidprint()

{cout<

};

voidmain()

{Aa1,a2,a3(10,20);

a1=a2=a3++;//连续赋值

a1.print();a2.print();a3.print();

}

答案:

1).Aoperator=(At)

2).*this

3).Aoperator++(int)

4).t

 

第2题(8.0分)题号:

635

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

下列程序可求数组a中最小的元素在数组中的位置,并返回之。

请完善程序。

-------------------------------------------------------*/

#include

#include

fun(inta[],intn)

{

inti,p;

/***********SPACE***********/

【?

】;

for(i=1;i

/***********SPACE***********/

if(a[i]

】;

return(p);

}

voidmain()

{

inta[]={41,23,45,7,89,10},k;

/***********SPACE***********/

k=sizeof(a)/【?

】;

/***********SPACE***********/

cout<

】,k);

}

答案:

1).p=0

2).p=i

3).sizeof(int)

4).a

 

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

当前位置:首页 > 高中教育 > 高考

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

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