付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计复习题一、选择题1、基类中的保护成员在其私有派生类中的访问属性是(A)0A.私有B,公有C.保护D,不确定2、在类的非静态成员函数中,不可以直接访问的数据成员是(D)。A.本类的私有成员B.本类的保护成员C.本类的公有成员D.本类的所有非静态成员3、下列标示符中,不符合C+而示符命名规则的是(C)。A.x10B._totalC.兀D.www4、下列整型常数中,不符合C+加法的是(C)。A.12uB.-671C.059D.0X11ff5、下列常量中,不符合C+加法的是(D)。A.”0"B.*'C.""D."It'sanarr
2、ay!”6、下列数组的初始化形式中,不符合C+加法的是(A)。A.ints13=1,2,3,4B.ints23=0C.chars33='a','x','d'D.chars4="asd”7、如果说明语句为:inta4=10,20,30,40,50,*p=&a2;则*p的值是(B)0A.a2的地址B.30C.20D.不确定8、已知:inta33;下列表示数组元素a00的方法中,不符合C+加法的是(C)。A.*aB.*a0C.a0D.*(*a1-1)9、已知:inta=3,b=5,下列表达式中,值为0的表达式是(B)。A.a%5-5B
3、.a/bC.!a|bD.a&&b10、C+”字符常数的定界符是(B)。A."B.'C.#D.11、已知:inta=9,sum=0;下列循环中,不构成死循环的是(A)。A.for(;a;a+)sum+=a-B.dosum+=a-while(-a);C.while(a=1)sum+=a-;D.dosum+=awhile(a-1);1/2012、如果定义一个函数时未指定该函数的返回值类型,则函数返回值类型应是(B)。A.无B.intC.任意D.void13、下列描述中,属于传值调用的是(C)0A.形参是指针,实参是地址B.形参、实参都是数组C.形参是变量,形参是常数
4、D.形参是指针,实参是数组名。14、在类的友元函数中,可以访问的数据成员是(D)。A.本类的私有成员B.本类的保护成员C.本类的公有成员D.本类的所有成员15、下列各种函数中,在对象生命期结束时自动调用的函数的是(B)。A.构造函数B.析构函数C.友元函数D.虚函数16、下列描述中,属于析构函数的特征是(D)。A.函数的名字与类名无关B.函数可以重载C.函数形参可有可无D.不能指定函数返回值的类型17、列对类的描述中,不符合C+叫法的是(B)。A. 一个派生类至少有一个基类B. 一个派生类只能有一个基类C. 一个基类不可以有多个派生类D.抽象类一定是另一个类的基类18、C+”的虚函数可以实现的
5、面向对象的基本特性是(D)。A.封装性B.继承性C.抽象性D.多态性19、下列关于运算符重载的描述中,错误的是(D)。A.运算符只能重载为成员函数B.运算符只能重载为友元函数C.有些运算符只能重载为成员函数D.有些运算符只能重载为友元函数20、有文件打开语句:ofstreamfout(“data”);则下列描述中,正确的描述是(D)。A.fout是一个标准输入流对象;B.fout是一个标准输出流对象;2/20C.fout是一个文件输入流对象;D.fout是一个文件输出流对象;21、下列标示符中,符合C+而示符命名规则的是(A)。A.AmaxB.x(2)C.intD.姓名22、下列常数中,不符合
6、C+加法的是(C)。A.5B.TC.2e0.5D.3.14f23、下列字符常量中,不符合C+叫法的是(B)。A.''0'B.''C.'3'D.'*24、以下指针用法中错误的是(B)。A.inti;int*ptr=&i;B.int*ptr=2000;C.int*ptr=0;D.inti,*ptr=&i;*ptr=5;25、下列描述中,不属于地址调用的是(D)。A.形参、实参是指针B.形参、实参都是数组C.形参是指针,实参是数组名D.形参是变量的引用,实参是变量26、下列各种函数中,在对象生命期结束时自动调用的函数是(
7、B)A.构造函数B.析构函数C.友元函数D.虚函数27、下列描述中,不属于虚函数的特征是(C)A.函数定义时不加virtualB.是类的非静态成员函数C.函数没有形参D.不能重载28、C+”设置友元函数的目的是(B)。A.解决继承中的二义性问题B.提高编程效率C.实现动态多态性D.实现静态多态性29、下列关于运算符重载的描述中,正确的是(D)A.运算符重载可以改变操作数的个数B.运算符重载可以改变原有运算符的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以定义新的运算方法30、用I/O流打开一个文件时,如果不指定文件存储方式,则该文件的格式是(B)A.二进制文件B.文本文件C.无格
8、式D.不确定二、判断题(每题1分,共10分,对的打,错的打X)3/201、一个程序文件中,main函数有且只能有一个。(V)2、程序中的注释是可执行的语句。(乂)3、C+勺表达式中不允许不同类型数据的混合运算。(x)4、系统函数不需要任何人定义,编程时可直接使用。(X)5、数组名可以看作一个指针变量。(X)6、不同函数间传递数组时,采用的是引用调用方式。(X)7、虚函数可以是类的静态成员。(X)8、抽象类只能做基类,但可以定义该类的对象。(X)9、文本文件只能保存字符数据,不能保存数值数据。(x)10、函数调用在前,定义在后时,需要原型声明。(V)11、main函数总是程序中第一个被执行的函数
9、。(V:12、程序中的注释是写给编程人员看的。(V)13、C+勺表达式中允许不同类型数据的混合运算。(V:14、函数在调用之前必须先定义或声明。(V15、数组名中存放的是一个地址。(V)16、不同函数间传递数组时,采用的是地址调用方式。(V)17、基类的指针可以指向其派生类的对象。(V)18、复制构造函数与构造函数的执行时机是一样的。(x)19、类中定义的成员函数都是内联函数。(V)20、没有main函数的C+E序也可以执行。(x)21、程序中有没有注释不影响程序的执行。(V)22、一个函数的函数体中不能包含另一个函数的定义。(V)23、类的任何公有成员在类体外必须通过对象来访问。(X)24、
10、一个指针变量指向数组元素时可以做+或一操作。(V)25、具有块作用域的变量在块结束时,所占存储空间一定被释放。(X)三、阅读程序写结果1、#include<iostream.h>voidmain()ints=0,k;4/20for(k=7;k>=0;k-)switch(k)case1:case4:case7:s+=k;break;case 2:case 3:case6:break;case0:case5:s+;break;cout<<"S=<<s<<endl;输出结果:答:S=142、写出以下程序运行时分别输入1、0、5时的输出结
11、果#include<iostream.h>voidmain()inta,b=5;cout<<"输入一个整数:”;cin>>a;switch(a>0)case1:switch(b<10)case0:cout<<"*"<<endl;case1:cout<<"#"<<endl;default:cout<<!n;case0:switch(b>0)5/20case0:cout<<ok1ncase1:cout<<&quo
12、t;ok2n”;)输出结果:答:第一次运行:输入一个整数:1#!ok2第二次运行:输入一个整数:0ok2第三次运行:输入一个整数:5#!ok23、写出下列程序运行时输入9的运行结果#include<iostream.h>voidmain()inta10=23,4,78,9,9,37,92,47,9,17,x,i,k=-1;cout<<"Inputanumber:"cin>>x;for(i=0;i<10;i+)if(ai!=x)a+k=ai;for(i=0;i<=k;i+)cout<<ai<<"
13、”;cout<<endl;6/20输出结果:答:23478379247174、#include<iostream.h>voidmain()inta4,i,j,k;for(i=0;i<4;i+)ai=0;k=3;for(i=0;i<k;i+)for(j=0;j<=k;j+)aj=ai+2;cout<<a1<<""<<a3<<endl;输出结果:答:10125、#include<iostream.h>longfac(int);voidmain()inti;for(i=1;i&l
14、t;=5;i+)cout<<i<<<<fac(i+1)<<endl;longfac(intn)staticlongf=1;f=f*n;returnf;输出结果:答:7/201 22 63 244 1205 7206、#include<iostream.h>voidswap(int&m1,int&m2)m1*=2;m2+=2;voidmain()inta(10),b(20);cout<<a<<b<<endl;swap(a,b);cout<<a<<b<<
15、;endl;输出结果:答:102020227、#include<iostream.h>classmyclassprivate:intx,y;staticlongsum;public:myclass(inta,intb)x=a;y=b;voidgetxy()sum*=x*y;cout<<"sum=<<sum<<endl;8/20longmyclass:sum=1;voidmain()myclassob1(1,2);obi-getxy();myclassob2(3,4);ob2getxy();myclassob3(5,6);ob3getxy
16、();)输出结果:答:sum=2sum=24sum=7208、#include<iostream.h>classcubepublic:cube(intht=2,intwd=5,intdp=3)height=ht;width=wd;depth=dp;cout<<"depth="<<depth<<"construnctedcalled”<<endl;)cube()cout<<"depth="<<depth<<"Destructedcalled&
17、lt;<endl;intvolume()returnheight*width*depth;private:intheight,width,depth;voidmain()cubecone(10,20,15),ctwo;cout<<cone.volume()<<endl;9/20cout<<ctwo.volume()<<endl;)输出结果:答:depth=15construnctedcalleddepth=3construnctedcalled300030depth=3Destructedcalleddepth=15Destructedca
18、lled9、#include<iostream.h>classApublic:virtualvoiddisp()cout<<"A<<endl;);classB:publicAvoiddisp()cout<<”B<<endl;voidp1(A&a1)a1.disp();voidp2(Aa2)a2.disp();voidmain()Bb;p1(b);p2(b);输出结果:答:10/20A10、#include<iostream.h>voidf(int);voidmain()for(inti(1);i<=
19、4;i+)f(i);voidf(intj)staticinta=10;intb=1;a+=10;b+=5;cout<<a<<'+'<<b<<'='<<a+b<<endl;输出结果:答:20+6=2630+6=3640+6=4650+6=56四、程序填空1、以下的程序实现求分数序列2/1,3/2,5/3,8/5,13/8,21/13,前15项的和。#include<iostream.h>#defineN15voidmain()inti,m,n,k;11/20doubles=0m=2
20、,n=1;for(i=1;i<=N;i+)s=s+1.0*m/n;k=m;m=m+n;n=k;cout<<"s="<<s<<endl;2、下面是利用运算符重载实现字符串加等的程序,请在空白处填入合适的内容。#include<iostream.h>#include<string.h>classCstringchar*s;public:Cstring(char*s1=0)s=newcharstrlen(s1)+1;strcpy(s,s1);Cstringoperator+=(Cstring&s1);voi
21、dlist()cout<<s<<endl;CstringCstring二operator+=(Cstring&s1)char*t=newcharstrlen(s)+strlen(s1.s)+1;strcpy(t,s);strcat(t,s1.s);deletes;s=t;return*this;voidmain()12/20Cstringcstr1("abcd"),cstr2("1234");cstr1+=cstr2;cstr1.list();)3、下面程序将输入到数组a中的数据重新按逆序存放,然后将逆序存放后的数据输出。
22、#include<iostream.h>constintN10;voidmain()intaN,*p=a,*q,r;cout<<"输入10个整数:”;for(inti=0;i<N;)cin>>aI+;p=a;q=&a9;while(p<q)r=*p;p=q;*q=r;p+;q-;)cout<<"逆序存放2果:”;p=a;for(i=0;i<N;i+)cout<<*p+<<cout<<endl;)4、输入一串有字母和数字混合的字符串,编程序将字符串中的字母和数字分开分
23、别存入两个不同的文件。#include<iostream.h>#include<fstream.h># include<stdlib.h>voidmain()charch100;cout<<"请输入一用有字符和数字的字符串:"<<endl;ofstreamfout1("shuzi.txt");ofstreamfout2("zimu.txt");if(!fout1)cout<<"文件打开失败!"<<endl;exit;13/20if(
24、!fout2)(cout<<"文件打开失败!"<<endl;exit;)cin>>ch;inti=0;doif('0'<=chi&&chi<='9')fout1<<chi;if('a<=chi&&chi<='z')|('A'<=chi&&chi<=Z)fout2<<chi;i+;while(chi!=0);fout1.close();fout2.close();
25、5、下面的程序输出小于200的素数,而且每行最多输出10个素数。# include<iostream.h># include<iomanip.h>classPrimeintp;public:Prime(intn)if(n<3)p=3;elsep=n;voidRun();voidPrime二Run()intk,j,flag,line=0;for(j=2;j<p;j+)flag=1;for(k=2;k<j;k+)if(j%k=0)flag=0;if(flag)14/20cout<<setw(5)<<j;line+;if(iine%1
26、0=0)cout<<endl;)cout<<endl;)voidmain()(Primeobj(200);obj.Run();)6、下面是将一个一维数组及各元素乘积写入文本文件data.txt的程序,请在空白处填入合适的内容。#include<fstream.h>#include<stdlib.h>voidmain()inta10=1,2,3,4,5,6,7,8,9,10,cum=0;ofstreamfout("data.txt");if(!fout)/打开文件失败cout<<"Cannotopenthe
27、file!"<<endl;exit(1);inti;for(i=0;i<10;i+)cum*=ai;fout<<ai<<endl;/将数组元素写入文件fout<<cum<<endl;/将元素的乘积写入文件fout.close();7、以下程序用友元函数实现复数加和复数赋制运算,完成程序。15/20#include<iostream.h>classcomplexprivate:doublereal,image;public:complex()real=0;image=0;complex(doubler,dou
28、blei)real=r;image=i;friendcomplexoperator+(complex&a,constcomplex&b);complex&operator=(complex&c);voidprint();complexoperator+(complex&a,constcomplex&b)returncomplex(a.real+b.real,a.image+b.image);complex&complex:operator=(complex&c)real=c.real;imag=c.imag;return*this
29、;voidcomplex:print(),cout<<real<<"+”<<image<<endl;voidmain()complexc1,c2(1.5,4.0),c3(6.5,-2.8);complexc4=c2+c3;c1=c4;c1.print();c4.print();8、下面是利用运算符重载实现字符串赋值(=)的程序,请在空白处填入合适的内容。#include<iostream.h>#include<string.h>classCstringchar*s;public:Cstring(char*s1=0
30、)s=newcharstrlen(s1)+1;16/20strcpy(s,s1);)Cstringoperator=(Cstring&s1);voidlist()cout<<s<<endl;);CstringCstring:operator=(Cstring&s1)deletes;s=newcharstrlen(s1.s)+1;strcpy(s,s1.s);return*this;voidmain()Cstringcstr1("abcd"),cstr2("1234");cstr1=cstr2;cstr1.list(
31、);五、编程题1、从由键盘输入的若干整数中找出其中最大的数并输出。当输入为负数时结束输入。答:#include<iostream.h>voidmain()inta,smax;cin>>a;smax=a;while(a>=0)smax=a>smax?a:smax;cin>>a;cout<<"smax=<<smax<<endl;17/202、键盘输入10个整数,计算其和并输出到屏幕上。答:#include<iostream.h>voidmain()intx,sum=0;for(inti=0;i
32、<10;i+)cin>>x;sum+=x;cout<<x<<endl;3、编写求n个整数中最大值的函数,函数原型为:intmaxi(intx口,intn);并编写主函数,调用该函数求键盘输入的十个整数之和,并在屏幕上输出。答:#include<iostream.h>intmaxi(intx,intn)intma=x0;for(inti=1;i<n;i+)if(ma<xi)ma=xi;returnma;voidmain()inta10;for(inti=0;i<10;i+)cin>>ai;cout<<"Themaxvalueis:"<<maxi(a,10)<<endl;4、编写一个函数voiddelchar(char*s1,chars2),从字符用s1中删去与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学第四学年(人工智能应用)模型训练实战测试题及答案
- 山东省青岛市崂山区部分中学2026年下学期初三期中英语试题卷(简答)含解析
- 重庆市江北新区联盟2026年初三3月网络考试物理试题含解析
- 山东省沂南县2025-2026学年中考考前质量检测试题(三)英语试题含解析
- 内蒙古巴彦淖尔市临河区达标名校2026年初三第二次模考英语试题理试题含解析
- 2026年风险评估实践中的成功经验分享
- 2026年自动化控制中的仿真模型构建方法
- 2026年自动化系统中的安全培训与意识提升
- 神经性耳聋康复治疗方案
- 界面设计规范介绍
- 2026贵州贵阳经济开发区招聘工作人员20名考试参考题库及答案解析
- T-GFIA 006-2026 金毛狗种苗繁育及林下生态种植技术规范
- 第8课 北宋的政治 课件(27张内嵌视频)-七年级 历史下册(统编版)
- 2026年宁波卫生职业技术学院单招职业倾向性测试题库附答案详解(巩固)
- 三级 模块二 项目六 功能促进 任务三 指导或协助老年人使用安全防护性辅助器具
- 2026年上半年新疆维吾尔自治区招聘事业单位人员考试参考试题及答案解析
- 门窗销售考核制度
- 化工设备操作与应急处理手册
- 2026年浙江机电职业技术学院单招综合素质考试模拟试题含详细答案解析
- 黑龙江2025年黑龙江省疾病预防控制中心招聘27人笔试历年参考题库附带答案详解
- 器材仓库制度规范
评论
0/150
提交评论