




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++等级考试复习
一、选择题
1.(2001年秋)设有说明:intx=10,y=4,f;floatm;执行表达式f=m=x/y后,那么f、m的值分别为。
A.2,2.5B.3,2.5C.2.5,2.5D,2,2.0
2.(2003秋)设有说明语句:chars[]="f\0\123\\\n89";sizeof(s)的值是。
A.2B.9C.11D.15
3.(2002年春)实型变量x的取值范围为闭区间[・2,10]或开区间(15,34),那么正确表示x取值
范围的逻辑表达式是。
A.-2<=x<=10||15<x<40B.(-2<=x&&x<=10)||(15<x&&x<34)
C.-2<=x<=10&&15<x<40D.(-2<=x&&x<=10)&&(15<x&&x<34)
4.(2003秋)设x为整数,C++中能正确地表达数学式OWxv5的是。
A.0<=x<15B.x=O||x=l||x=2||x=3||x=4
C.x>=0||x<5D.!(x<0||x>=5)
5.(2009年春)以下关于break语©的描述中,不正确的选项是。
A.break语句可用在循环语句中,其作用是完毕本层循环的执行
B.break语句可用switch语句中,其作用是完毕该switch语句的执行
C.break语句可用if语句中,其作用是完毕该if语句的执行
D.break语句在同一循环体中可以屡次使用
6.(2011秋)C++的break语句。
A.用在能出现语句的任意位置B.只能用在循环体内
C.只能用在循环体内或switch语句中D.能用在任一复合语句中
7.(2003秋)以下四组函数原型说明中,满足C++函数重载规那么的是。
A.floatf(floatx);voidf(floaty);
B.floatf(floatx);voidf2(floatx,floaty);
C.floatf(floatx,inty);voidf(floaty);
D.floatf(floaty);floatf(floaty);
8.(2005秋)函数重载是指。
A.函数名一样,但函数的参数个数不同或参数的类型不同
B.函数名一样,但函数的参数个数不同或函数的返回值的类型不同
C.函数名不同,但函数的参数个数和参数的类型一样
D.函数名一样,但函数的参数类型不同或函数的返回值的类型不同
9.(2011春)下述关于函数重载的描述中,不正确的选项是。
A.两个或两个以上的函数取一样的函数名,但形参的个数不同
B.两个或两个以上的函数取一样的函数名,各函数的返回值的类型必须不同
C.两个或两个以上的函数取一样的函数名,形参的个数一样但类型不同
D.两个或两个以上的函数取一样的函数名,形参的个数不同或类型不同
10.(2012春)C++中,函数重载是指两个或两个以上的函数,其函数名。
A.不同,但形参的个数或类型一样B.一样,但返回值类型不同
C.一样,但形参的个数或类型不同D.一样,形参的个数一样,但其类型不同
11.(2002秋)以下关于类的构造函数和析构函数的表达中,不正确的选项是。
A.类的析构函数可以重载B.类的构造函数可以重载
C.定义一个类时可以不显式定义构造函数
D.定义一个类可以不显式定义析构函数
12.(2003春)以下有关对象的表达中,不正确的选项是。
A.产生对象时必定要调用构造函数B.撤消对象时必定要调用析构函数
C.对象被保护,其私有成员不能任意访问D.对象可以没有构造函数或析构函数
13.(2011春)以下有关this指针的表达中,不正确的选项是。
A.当调用对象的非静态成员时,总存在一个this指针
B.非静态成员函数调用类中的成员时,可直接使用this指针
C.this指针隐含地指向要用到的当前对象
D.静态成员函数也存在this指针
14.(2010春)类的成员函数中,没有this指针的是。
A.构造函数B.析构函数C,虚函数D.静态成员函数
15.(2003秋)下面有关运算符重载的表达中,正确的选项是。
A.非静态成员函数重载运算符时带有this指针
B.友元函数重载运算符时带有this指针
C.成员函数与友元函数重载运算符时都不带有this指针
D.用成员函数或友元函数重载同一运算符时,两者的参数类型与参数个数一样
16.(2004春)以下有关析构函数的表达中,正确表达的是。
A.析构函数可以有一个或多个参数B.可以重载析构函数
C.析构函数可以定义为虚函数D.必须显式地自定义析构函数
17.(2004春)下面有关基类与其派生类的的表达中,正确的选项是。
A.派生类对象不能赋给基类对象B.派生类对象的地址不能赋给其基类的指针变量
C.基类对象不能赋给派生类对象D.基类对象的地址能赋给其派生类的指针变量
18.(2006秋)以下关于赋值兼容规那么的表达中,不正确的选项是。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化其基类的引用
D.可以将派生类对象的地址赋值给其基类的指针变量
19.(2011秋)在C++中,没有this指针的函数是。
A.静态成员函数B.构造函数C.析构函数D.非静态的内联成员函数
20.(2011秋)以下关于C++类的表达中,不正确的选项是。
A.类可以动态地描述和动态地产生B.虚基类可以解决多重继承中的二义性
C.类是具有一样行为的假设干对象的统一抽象D.类是创立对象的一个模板
二、填空题
1.(2006秋)当一个类的非静态成员函数被调用时,该成员函数的指向调用它的对象。
2.(2008春)在C++中,重载赋值运算符“二〃和下标运算符“[]〃等只能用实现,而重载插入运算
符«<<"和提取运算符“>>〃等只能用实现。
(成员函数,友元函数)
3.(2001年秋)多态性分为两种:静态多态性和动态多态性。函数重载属于二种多态性中的哪一种:。
4.(2002秋)设有语句:inta=6,b=3;floatx=8,y;y=b/a*x/2;那么y的值为。
5.(2003春)设有语句:chars[]=MChina\ONanjin";inlm=slrlen(s);那么ni的值为。(引号,ASCII
值,换行符)
6.(2003春)在C++中函数的参数传递方式有三种:第一种是值传递,第二种是指针传递,第三种是传递。
7.(2004春)函数重载是指函数名一样,但函数的不同或函数的②不同。
8.[程序](2002年春)
#include<iostream.h>
voids(inta,int&b){intt=a;a=b;b=t;}
voidmain(void)
{intx=500,y=1000;
cout«x«*\t*«y«*\n*;s(x,y);
cout«x«,\t,«y«,\n,;
)
程序的第一行输出为in,第二行输出为g。
9.[程序](2004春)(全局变量通过指针传递)
#include<iostream.h>
intz;
voidfun(intx,int&y)
{z=x;x=x+y;y=y+z;
cout«x«*,*«y«,/«z«endl;
}
voidmain(void)
{intx=5,y=10;
z=15;
fun(x,y);
cout«x«,,,«y«,,,«z«endl;
程序的第一行输出为第二行输出为g。
10.[程序](2004秋)(内部循环)
#include<iostream.h>{intcl[3]={10,20,30},c2[3]={40,50,60);
voidfun(int*a,int*b)fun(cl,c2);
{(*a)++;*b++;*a++;(*b)++;cout«cl[0]«,\t,«cl[l]«endl;
cout«*a«*\t*«*b«endl;cout«c2|0]«'\t,«c2[1]«endl;
))
voidmain(void)
程序的第一行输出为山,第二行输出为g,第三行是
H.[程序](2002秋)
#include<iostreaiii.h>classA{
intx,n;{y=k;m=h;p=10;}
intmul;intpower(void)
public:{P=l;
A(inta,intb){x=a;n=b;mul=1;}for(inti=l;i<=m;i++)p*=y;
virtualintpower(void)returnp;
{mul=l;)
for(inti=l;i<=n;i++)mul*=x;voidshow(void)
returnmul;{A::show();cout«p«*\n,;}
));
voidshow(void){cout«}voidfun(A*f)
);{cout«f->power()«,\n,;}
classB:publicA{voidmain()
inty,m;{Aa(5,3);Bb(2,4,3,3);
intp;fun(&a);fun(&b);
public:b.show();
B(inti,intj,intk,inth):A(i,j)}
程序输出的第一行和第三行分别是应,②。
12.[程序](2003秋)
#include<iostream.h>
ints(int(*f)(int),intm,intn)
{intk,sum=0;
for(k=m;k<=n;k++){
sum+=f(k)+f(k);
cout«,,s=,,«sum«endl;
)
returnsum;
}
intfl(intx){returnx+=2;}
intf2(intx){returnx-=2;}
voidmain(void)
{cout«,,result=n«(s(fl,l,2)+s(f2,l,2))«endl;}
程序输出的第一行是第三行是⑵,第五行是⑶
13.[程序](2003年春)
#include<iostream.h>
classShape{
public:
Shape(){}
virtualfloatArea()=0;
};
classCircle:publicShape{
floatr;
public:
Circle(floatc){r=c;}
floatArea(){return3*r*r;}
);
classRectangle:publicShape{
floath,w;
public:
Rectangle(floatc,floatd){h=c;w=d;}
floatArea(){returnh*w;}
voidfun(Shape*s){cout«s->Area()«,\n,;}
voidmain(void)
{Circlec(4);
fun(&c);
Rectangler(5,2);
fun(&r);}
程序输出的第一行是0},第二行是⑵。
14.(2003年春)以下程序的功能是求三角函数sinx的近似值。求sinx近似值的计算公式
『(2w-D
xx5X
为:⑥^二工一3+不一下+-+(-1)“五Eo其中X的值为弧度。当输入的X值为度数时,要求出
sinx的近似值,必须将度数转换为弧度。转换公式为:
y=3.1415926x/360
要走计算精度到达0.000001o
[程序]
#include<iostream.h>sum+=(2);//term
#include<math.h>n++;
doublesin(doublex,doubleeps)term=term*v/(3);//((2*n-2)*(2*n-i))
{doubleterm,sum,y;term*=-1;
intn=1;)
y=x*x;return(4);//sum+term或sum
term=(l);//x)
sum=0;voidmain(void)
while(fabs(term)>=eps){{doublex,y;
coutv<“输入X的值(角度conf度数为:“VVX;
cin»x;cout<v"其sin值为:“vvsin(y,le-6)vv,\n,;
while(x>360)x-=360;
y=3.1415926:Kx/180;
15.(2005春)设已建设一条单向链表,指针head指向该链表的首结点。结点的数据构造如下:struct
Node{intdata;Node*next;};
以下函数sort(Node*head)的功能是:将head所指向链表上各结点的数据按data值从小到大的
顺序排序。
算法提示:初始时,使p指向链表的首结点,从p之后的所有结点中找出data值最小的结点,
让pl指向该结点。将p指向的结点的data值与pl指向的结点的data值进展交换。让p指向下一个
结点,依此类推,直至p指向链表的最后一个结点为止。
[程序](4分)
Node*sort(Node*head))
{Node*p=head,*pl,*p2;if(p!=pl){
if(p==NULL)returnhead;intt;
while(p->next!=NULL){t=p->data;
P1=P;p->data=⑵;//pl->data
p2=p->next;⑶=t;//pl->data
while(p2!=NULL){}
if((1))//p2->data<pl->data(4);//p=p->next}
pl=p2;returnhead;
p2=p2->nexl;}
16.(2008辛春)在以下程序中,函数CreateLink()根据键盘输入的数据建设一个单向无序链表,
链表上的每一个结点包含一个整型数;函数SortLink()通过改变结点在链表中的位置将链表调整为
一条有序链表;函数PrintLink()将链表上的数据输出;函数DeleteLink()将链表删除。
[程序]
#include<iostream.h>
structnode{intdata;node*next;};
node*CreateLink(void)〃创立无序链表
{node*pl,*p2,*head=0;
inta;
COlltVd产生一条无序链,请输入数据,以・1完毕了;
cin»a;
while(a!=-1){
pl=newnode;
pl->data=a;
if(head==O){
head=pl;
p2=pl;
)
else{
(1)〃D2・>next二pl;
p2=pl;
)
coutvv”请输入数据,以完毕:“;
cin»a;
)
p2->next=0;
return(head);
)
voidSortLink(node*&head)〃通过移动每个节点的指针来完成链表排序
{node*q,*tq,*p,*tp;
intflag=O;
if(!head)return;
for(q=head,tq=0;q;q=q->next){
for(tp=q,p=q->next;p;tp=p,p=p->next)
if(q->data>=p->data){〃将p和q指向的两个节点所处位置互换
(2)〃tp・>next二p・>next;
p->next=q;
q=p;
P=tp;
)
if(!tq)head=q;
elsetq->next=q;
tq=q;
)
}
voidPrintLink(node*head)//打印链表
{node*p=head;
coutVV”链上各结点的数据为八n";
while(p!=NULL){
cout«p->data«*\f;
(3)〃p=p・>next;
)
cout«,'\nM;
)
voidDeleteLink(node*head)〃删除链表
{node*pl;
while(head){
pl=head;
head=head->next;
(4)“deletepl;
}
voidmain(void)
{node*head=0;
head=CreateLink();
PrintLink(head);
SortLink(head);
PrintLink(head);
DeleteLink(head);
}
17.(2011春)在以下程序中,函数create0根据键盘输入的整数建设一条单向无序链表,链表上的
每一个结点包含一个整数;函数sort()根据链表结点的数据按从小到大的顺序将链表调整为一条有
序链表;函数print()将链表上的整数依次输出;函数del()将链表删除。
排序算法提示:(1)初始时,使p指向链表的首结点,(2)从p之后的所有结点中找出data值
最小的结点,(3)让pl指向该结点,并将p指向结点的data值与pl指向结点的data值进展交换,
让p指向下一个结点,(4)重复步骤(2)和(3),直至p指向链表的最后一个结点为止。
[程序]
#include<iostream.h>
structNode{参考答案:
intdata;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品设计与研发战略
- 全球化背景下的企业发展策略
- 创业公司的运营管理与成长路径
- 中小型企业财务税务策划与管理
- 品牌建设与传播的策略制定
- 企业日常运营管理优化
- 健康食品产业发展现状及前景分析
- 体育活动与员工福利的结合
- 个人简历中避免常见错误的技巧
- 中考体育训练计划总结与反思
- 国家安全教育高教-第六章坚持以经济安全为基础
- 信息检索与利用课件 第7章 网络信息检索(上)
- 三方报关委托协议书模板
- 输变电工程施工质量验收统一表式(电缆工程电气专业)
- 山东省2024年夏季普通高中学业水平合格考试地理试题02(解析版)
- 山东省人工智能融合创新职业技能竞赛(人工智能训练师)试题及答案
- Classroom English英文课堂用语
- 立体几何解答题罕见压轴难题(解析版)
- 13J933-2体育场地与设施(二)
- 温室大棚租赁合同标准范本
- 箱式变电站吊装方案设计规范
评论
0/150
提交评论