笔试B卷09103C++电类ⅡWord文档下载推荐.docx

上传人:b****5 文档编号:19551458 上传时间:2023-01-07 格式:DOCX 页数:18 大小:28.02KB
下载 相关 举报
笔试B卷09103C++电类ⅡWord文档下载推荐.docx_第1页
第1页 / 共18页
笔试B卷09103C++电类ⅡWord文档下载推荐.docx_第2页
第2页 / 共18页
笔试B卷09103C++电类ⅡWord文档下载推荐.docx_第3页
第3页 / 共18页
笔试B卷09103C++电类ⅡWord文档下载推荐.docx_第4页
第4页 / 共18页
笔试B卷09103C++电类ⅡWord文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

笔试B卷09103C++电类ⅡWord文档下载推荐.docx

《笔试B卷09103C++电类ⅡWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《笔试B卷09103C++电类ⅡWord文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

笔试B卷09103C++电类ⅡWord文档下载推荐.docx

B.存储空间根据需要动态开辟,不会溢出

C.可以直接随机访问元素

D.插入和删除元素的时间开销与位置无关

8.编制派生类时分下列四步顺序进行,下面的描述哪一步有错误?

(A)吸收基类的成员,除构造函数与析构函数外,全部吸收为派生类的成员。

(B)改造基类成员,如果派生类声明了一个和某个基类成员同名的新成员,当基类的成员函数是虚函数,且派生类的成员函数与基类的成员函数声明一致,构成同名覆盖。

如果仅是同名或着基类的成员函数不是虚函数,则构成同名隐藏。

(C)发展新成员,新成员必须与基类成员不同名,派生类新成员的加入使得派生类在功能上有所发展。

(D)重写构造函数与析构函数,因为派生类不继承这两种函数。

基类的构造函数与析构函数完全不可利用。

9.实现多态的派生类函数不一定要。

A.与基类虚函数同名B.用virtual修饰

C.与基类虚函数同参数表D.与基类虚函数同返回类型

10.在get、getline、read和>

>

四个标准输入流成员函数中有个可以读取字符串。

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

二、填空题(每空1分,共20分)

1.顺序表是以数组为基础的,当使用时数组元素不够用时是不能增加的,所以在定义顺序表时数组必须大开。

2.的线性表才可以进行对半查找。

3.有序数组intB[17]中存放17个元素,用对半查找法找到B[6]元素,则进行比较的数组下标值依次是,,,6。

4.类的继承方式有:

、和。

5.以下程序中Sort()函数是顺序表的成员函数。

template<

typenameT,intsize>

voidOrderedlist<

T,size>

:

Sort(){

Ttemp;

inti,j;

for(i=1;

i<

=last;

i++){

temp=slist[i];

j=i;

while(j>

0&

&

temp<

slist[j-1]){

slist[j]=slist[j-1];

j--;

//查找与移动同时做

}

slist[j]=temp;

}

}

该成员函数用到的是排序。

若未排序前的数据为:

553498217643

for循环执行完第一次后的数据顺序为:

6.运算符重载时,其函数名由构成。

成员函数重载双目运算符时,左操作数是,右操作数是。

7.对含有动态分配的数据成员的类对象应该采用复制,动态分配的资源通常要求在中释放,

8.全局标准流对象有、、和。

9.通过表达式可以判断文件流fd是否正确打开。

三、阅读程序,根据要求填空:

(共40分)

1.写出下面程序的输出结果(每空1~2分,本题8分)

#include<

iostream>

usingnamespacestd;

classCSample{

intn;

staticintk;

public:

CSample(inti)

{

cout<

<

"

constructoriscalled\n"

;

n=i;

k++;

~CSample()

destructoriscalled\n"

voiddisp()

n="

n<

k="

k<

endl;

};

intCSample:

k=0;

intmain()

{

CSamplea(10),b(20);

a.disp();

b.disp();

return0;

输出结果:

(1分)

(1分)

(2分)

2.写出下面程序的输出结果(每空2分,共4分)

intMAX(int*arr,intn)

inti,max=arr[0];

for(i=0;

i<

n;

i++)

if(arr[i]>

max)

max=arr[i];

return(max);

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

int*b=(int*)array;

cout<

b[4]<

MAX(b,2*5)<

'

\n'

return0;

3.写出下面程序的输出结果(每空2分,共6分)

template<

typenameT>

classTAdd{

Tx,y;

public:

TAdd(Ta,Tb)

{x=a;

y=b;

Tadd()

{returnx+y;

TAdd<

int>

A(5,6);

B(2.4,5.8);

double>

C(2.4,5.8);

s1="

A.add()<

cout<

s2="

B.add()<

s3="

C.add()<

4.写出下面程序的输出结果(每空2分,共12分)

#include<

string>

classStudent{

private:

intnum;

stringname;

charsex;

Student(intn,stringnam,chars)

num=n;

name=nam;

sex=s;

Constructor"

~Student()

Destructor"

voiddisplay()

num:

"

num<

name:

name<

sex:

sex<

intmain()

Studentstud1(10010,"

Wang_li"

'

f'

);

stud1.display();

Studentstud2(10011,"

Zhang_fun"

m'

stud2.display();

5.写出下面程序的输出结果(每空2分,共6分)

classB

virtualvoidfun1(){cout<

B:

fun1()"

virtualvoidfun2(){cout<

fun2()"

voidfun3(){cout<

fun3()"

classD:

publicB

voidfun1(){cout<

D:

voidfun2(){cout<

voidmain()

B*pb;

Dd;

pb=&

d;

pb->

fun1();

fun2();

fun3();

6.请根据程序解密字符串。

(每空2分,共4分)

voiddesecret(char*s){

while(*s!

='

\0'

){

if(*s>

=65&

*s<

=90||*s>

=97&

=122)//判断*s是否为英文字母

*s=*s+2;

s++;

intmain(){

charst[]="

Ucjamkcrmmspqafmmj"

st<

desecret(st);

四、完善程序(每空2分,共30分)

1.编一个冒泡排序的成员函数模板实现降序排序。

//使用字符串类string

classOrderedlist{

intmaxsize;

intlast;

Tslist[size];

Orderedlist(){last=-1;

maxsize=size;

voidBubbleSort();

boolInsert(T&

elem,inti);

//Insert函数实现将元素elem插入到序列中第i个位置(第一个元素位置为0),并保持序列元素的连续性。

提示:

先判断i的有效性。

boolOrderedlist<

Insert(T&

elem,inti){

if(

(1))returnfalse;

else{

last++;

for(intj=last;

j>

i;

j--)

(2);

slist[i]=elem;

returntrue;

//BubbleSort函数实现降序冒泡排序

voidOrderedlist<

BubbleSort(){

boolnoswap;

for((3)){//从上往下冒泡

noswap=true;

for(j=0;

j<

j++){

if((4)){//降序排列

temp=slist[j];

slist[j]=slist[j+1];

slist[j+1]=temp;

noswap=false;

}

if((5))break;

constinth=8;

inti;

Orderedlist<

string,100>

ordlist;

stringn[h];

stringsp[h]={"

江苏"

"

重庆"

陕西"

北京"

天津"

上海"

浙江"

安徽"

h;

i++)n[i]=sp[i];

i++)ordlist.Insert(n[i],i);

//建立顺序表

ordlist.BubbleSort();

2.下列程序的运行结果如下:

Program1Print()called.

Program2Print()called.

根据结果将程序补充完整。

classBase

Base(inti){b=i;

(6);

protected:

intb;

classProgram1:

publicBase

(7)

voidPrint()

Program"

<

b<

Print()called."

classProgram2:

(8)

voidfun((9))

obj->

Print();

Program1*d1=newProgram1

(1);

(10);

fun(d1);

fun(d2);

3.完善单链表类模板相关函数

classList;

classNode{

Tinfo;

//数据域

Node<

T>

*link;

//指针域

Node();

//生成头结点的构造函数

Node(constT&

data);

//生成一般结点的构造函数

voidInsertAfter(Node<

*P);

//在当前结点后插入一个结点

*RemoveAfter();

//删除当前结点的后继结点,返回该结点备用

T&

Getinfo();

//增加取数据域函数

friendclassList<

Node(){link=NULL;

Node(constT&

data){

info=data;

link=NULL;

voidNode<

InsertAfter(Node<

*p){

p->

link=link;

link=p;

Node<

*Node<

RemoveAfter(){

*tempP=link;

if(link==NULL)tempP=NULL;

elselink=tempP->

link;

returntempP;

Getinfo(){returninfo;

}

//定义链表类

classList{

*head,*tail;

//链表头指针和尾指针

List();

//构造函数,生成头结点(空链表)

~List();

//析构函数

List&

operator=(List<

voidMakeEmpty();

//清空一个链表,只余表头结点

voidInsertFront(Node<

*p);

//可用来向前生成链表,在表头插入一个结点

voidInsertRear(Node<

//可用来向后生成链表,在表尾添加一个结点

voidInsertOrder(Node<

*p);

//按升序生成链表

List<

List()

head=tail=newNode<

();

~List()

MakeEmpty();

deletehead;

//将当前链表清空

voidList<

MakeEmpty(){

*tempP;

while(head->

link!

=NULL){

tempP=head->

(11);

//把头结点后的第一个节点从链中脱离

deletetempP;

tail=head;

//表头指针与表尾指针均指向表头结点,表示空链

//链表赋值运算符

List<

operator=((12))

*TempP=ls.head->

link,*P1;

(13);

while(TempP!

=NULL){

P1=newNode<

(TempP->

info);

//向后生成当前链表

(14);

tail->

link=P1;

tail=P1;

(15);

return*this;

InsertFront(Node<

*p){

link=head->

head->

link=p;

if(tail==head)tail=p;

InsertRear(Node<

link=tail->

tail->

tail=p;

InsertOrder(Node<

*tempP=head->

link,*tempQ=head;

//tempQ指向tempP前面的一个节点

while(tempP!

if(p->

info<

tempP->

info)break;

//找第一个比插入结点大的结点,由tempP指向

tempQ=tempP;

tempP=tempP->

tempQ->

InsertAfter(p);

//插在tempP指向结点之前,tempQ之后

if(tail==tempQ)tail=tempQ->

 

09-10-3-程序设计及算法语言(电类)Ⅱ-B卷(答案)

1

2

3

4

5

6

7

8

9

10

B

A

D

C

二、填空题(每空1分,共20分)

1.小用

2.有序

3.8,3,5

4.公有继承、私有继承、保护继承

5.直接插入

345598217643

6.关键字operator和该运算符当前对象该函数的参数

7.深析构函数

8.cincoutcerrclog

9.!

fd

constructoriscalled(1分)

constructoriscalled(1分)

n=10,k=2(2分)

n=20,k=2(2分)

destructoriscalled(1分)

destructoriscalled(1分)

0

16

s1=11

s2=7

s3=8.2

Constructor

num:

10010name:

Wang_lisex:

f

Constructor

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

当前位置:首页 > 总结汇报 > 其它

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

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