C++期末考试试题投影版.docx

上传人:b****7 文档编号:25046977 上传时间:2023-06-04 格式:DOCX 页数:15 大小:41.33KB
下载 相关 举报
C++期末考试试题投影版.docx_第1页
第1页 / 共15页
C++期末考试试题投影版.docx_第2页
第2页 / 共15页
C++期末考试试题投影版.docx_第3页
第3页 / 共15页
C++期末考试试题投影版.docx_第4页
第4页 / 共15页
C++期末考试试题投影版.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++期末考试试题投影版.docx

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

C++期末考试试题投影版.docx

C++期末考试试题投影版

一、单项选择题(共20个小题,每题2分,共40分)

(1)C++程序从上机到得到结果的几个操作步骤依次是()。

A.编译、编辑、连接、运行

B.编辑、编译、连接、运行

C.编译、运行、编辑、连接

D.编辑、运行、编辑、连接

(2)以下说法中正确的是()。

A.C++程序总是从第一个定义的函数开始执行

B.C++程序总是从main函数开始执行

C.C++函数必须使用return语句

D.C++程序中有调用关系的所有函数必须放在同一个程序文件中

(3)存储以下数据,占用存储字节最多的是()。

A.0B.'0'C."0"D.0.0

(4)下述关于switch语句的描述中,()是正确的。

A.switch语句中default子句可以没有,也可以有一个

B.switch语句中每个语句序列中必须有break语句

C.switch语句中default子句只能放在最后

D.switch语句中case子句后面的表达式可以有变量

(5)与表达式“!

(x>0&&x<=10)”等价的表达式为()。

A.x<=0||x>10B.x<=0&&x>10

C.x<=0||x<=10D.x>0&&x>10

(6)以下程序的输出结果是()。

#include

voidmain()

{charc1='A';

intc2=65;

c1=c1+4;c2=c2+5;

cout<

}

A.E,FB.D,FC.E,70D.69,70

(7)在下面的一维数组定义中,哪一个有语法错误()。

A.inta[]={1,2,3};B.inta[10]={0};

C.inta[];D.inta[5];

(8)假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体之外进行定义,则函数头为()。

A.intAA:

:

a()B.intAA:

a()C.AA:

:

a()D.AA:

:

inta()

(9)以下程序的输出结果是()。

A.18B.1C.81D.63

#include

voidmain()

{

intx=73;

if(x>=0)

if(x<50)

cout<<(x/4)<

elseif(x<80)

cout<

else

cout<<(x+8)<

else

cout<<(x-10)<

}

(10)设有如下函数定义

intf(char*s)

{char*p=s;

while(*p!

='\0')p++;

return(p-s);

}

在主函数中用cout<

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

 

(11)以下程序的输出结果是()。

A.8,0.5B.3,5C.8,5D.8,0

#include

voidfun(intx,inty,int&cp,int*dp)

{cp=x*y;

*dp=x/y;

}

voidmain()

{

inta=2,b=4,c=3,d=5;

fun(a,b,c,&d);

cout<

}

(12)下面有关重载函数的说法中正确的是()。

A.重载函数必须具有不同的返回类型

B.重载函数形参个数必须相同

C.重载函数名可以不同

D.重载函数必须有不同的形参列表

(13)有如下语句:

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

则a[2][3]的值为()。

A.2B.5C.6D.7

(14)派生类的构造函数的参数初始化表列中,不能包含()。

A.基类的构造函数B.派生类中子对象的初始化

C.基类的子对象初始化D.派生类中一般数据成员的初始化

(15)若用数组名作为函数调用的实参,传递给形参的是()。

A.数组的首地址B.数组中第一个元素的值

C.数组全部元素的值D.数组元素的个数

(16)假定有“structBOOK{chartitle[40];floatprice;}book;”,则正确的语句为()。

A.BOOK&x=&book;B.BOOK&x=book;

C.BOOK&x=newBOOK;D.BOOK&x=BOOK;

 

(17)假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。

A.无参构造函数B.带参构造函数C.赋值重载函数D.复制构造函数

(18)以下程序的输出结果是()。

A.1234B.0000C.4444D.4321

#include

voidfunc(int*s,int*y)

{staticintt=3;

*y=s[t];

t--;

}

voidmain()

{

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

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

{func(a,&x);

cout<

}

cout<

}

(19)C++语言的跳转语句中,对于break和continue说法正确的是()。

A.break语句只应用在循环体中

B.continue语句只应用在循环体中

C.break语句和continue语句的功能一致

D.break和continue的跳转范围不够明确,容易产生问题

 

(20)应在下列程序划线处填入的正确语句是()。

classBase

{

public:

voidfun(){

cout<<"base:

:

fun"<

};

classDerived:

publicbase

{public:

voidfun(){

______________//调用基类的成员函数fun()

cout<<"Derived:

:

fun"<

}

};

A.fun();B.Base.fun();C.Base:

:

fun();D.Base->fun();

 

二、阅读程序,将程序补充完整或写出运行结果。

(7个小题,共30分)

(1)(本小题6分)

#include

#include

classBase

{private:

charmsg[30];

protected:

intn;

public:

Base(chars[],intm=0):

n(m)

{strcpy(msg,s);}

voidoutput()

{cout<

};

classDerived1:

publicBase

{

private:

intn;

public:

Derived1(intm=1):

Base("Base",m-1)

{n=m;}

voidoutput()

{cout<

Base:

:

output();}

};

classDerived2:

publicDerived1

{

private:

intn;

public:

Derived2(intm=2):

Derived1(m-1)

{n=m;}

voidoutput()

{cout<

Derived1:

:

output();}

};

voidmain()

{Baseb1("BaseClass",1);

Derived2d1;

b1.output();

d1.output();

}

 

(2)(本小题5分)

#include

voidmain()

{inti=20;

while(--i)

{if(i==5)break;

if(i%3)continue;

cout<

}

}

 

(3)从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。

注意二进制数的存放是按照从低位到高位的次序进行的。

(本小题3分)

#include

voidmain()

{intx;

cout<<"输入一个正整数:

";

cin>>x;

inta[20],k=0,r;

do{

r=x%2;

a[k++]=r;

x=

(1);

}while(

(2));

for(--k;k>=0;k--)(3);

cout<

}

 

(4)(本小题6分)

#include

classAA

{public:

AA(inti,intj)

{A=i;B=j;cout<<"Constructor"<

AA(AA&obj)

{A=obj.A-10;B=obj.B+15;cout<<"Copy_Constructor\n";}

~AA()

{cout<<"Destructor"<

voidprint()

{cout<<"A="<

private:

intA,B;

};

voidmain()

{AAa1(4,8);

AAa2(a1);

a2.print();

AA*pa=newAA(10,20);

pa->print();

deletepa;

}

 

(5)(本小题4分)

#include

classCE{

private:

inta,b;

intgetmin(){return(a

a:

b);}

public:

intc;

voidSetValue(intx1,intx2,intx3)

{a=x1;b=x2;c=x3;}

intGetMin();

};

intCE:

:

GetMin(){

intd=getmin();

return(d

d:

c);

}

voidmain(){

intx=5,y=12,z=8;

CEep;

ep.SetValue(x+y,y-z,10);

cout<

CEa=ep;

cout<

}

 

(6)从一个字符串中删除所有与给定字符相同的字符之后得到一个新字符串并输出。

(本小题3分)

#include

constintlen=20;

voiddelstr(chara[],charb[],charc);

voidmain(){

charstr1[len],str2[len];

charch;

cout<<"输入一个字符串:

";

cin>>str1;

cout<<"输入一个待删除的字符:

";

cin>>ch;

delstr(str1,str2,ch);

cout<

}

voiddelstr(chara[],charb[],charc)

{

intj=0;

for(inti=0;

(1);i++)

if(

(2))b[j++]=a[i];

b[j]=(3);

}

 

(7)对数组a按升序进行的选择排序算法。

(本小题3分)

voidSelectSort(inta[],

(1))

{

inti,j,k,x;

for(i=1;i

k=i-1;

for(j=i;j

if(a[j]

(2);

x=a[i-1];a[i-1]=a[k];(3);

}

}

三、编程题(共30分)

1、编一程序求出满足不等式1+1/2+1/3+……+1/n≥5的最小n值。

(本小题8分)

 

2、定义一个一维数组存放一个年级500名同学某门课程的考试成绩,编写程序找出最高分和最低分,并求出500名同学的平均成绩。

(本小题10分)

要求:

(1)在主函数中用cin输入500名同学的考试成绩;

(2)通过调用自定义的函数计算最高分、最低分和平均成绩;(提示:

可以分别定义3个函数分别用于求最高分、最低分和平均成绩,也可以只定义一个函数、该函数能同时求得以上3个值。

(3)在主函数中输出所求得的最高分、最低分和平均成绩。

 

3、声明描述计算机的基类(Computer),其数据成员为处理器(CPU)、硬盘(HDisk)、内存(Mem),其成员函数Show()为虚函数(用于输出数据成员)。

然后再由Computer派生出台式机类(PC)和笔记本类(NoteBook)。

台式机类的新增数据成员为显示器(Display)、键盘(KeyBoard),笔记本类的新增数据成员为液晶显示屏(LCD),在两个派生类中分别定义成员函数Show()为虚函数(用于输出各自的数据成员)。

在主函数中,分别定义台式机类和笔记本类的对象,并用各自的构造函数对其进行初始化。

定义Computer类的指针变量p,通过p分别调用两个派生类中的虚函数Show(),输出相应对象的数据成员。

说明:

数据成员处理器、硬盘、内存、显示器、键盘、液晶显示屏的数据类型均为string类型。

(本小题12分)

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

当前位置:首页 > 求职职场 > 简历

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

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