【福师网考】福师大网考《C++语言程序设计》2023年复习题通关资料_第1页
【福师网考】福师大网考《C++语言程序设计》2023年复习题通关资料_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6781546716541964198653248918161843219416541654351895845646461654319164651654678154671654196419865324891816184321941654165435189584564646165431916465165467815467165419641986532489181618432194165416543518958456464616543191646516546781546716541964198653248918161843219416541654351895845646461654319164667815467165419641986532489181618432194165416543518955165467815467165419641986532489181618432194165416543518958456464616543191646516546781546716541964198653248918161843219416541654351895845646461654319164651654678154671654196419865324891816184321941654165435189584564646165431916465165467815467165419641986532489181618432194165416543518958456464616543191646678154671654196419865324891816184321941654165435189551654《C++程序设计》考试大纲单项选择题1、下面的哪个保留字不能作为函数的返回类型()。A.voidB.intC.newD.long答案:::C2.决定C++语言中函数的返回值类型的是()。A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型答案:::D3.一个函数功能不太复杂,但被频繁调用,则应把它定义为()。A.内联函数B.重载函数C.递归函数D.嵌套函数答案:::A4.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个整体,这整体就是()。A.结构体B.对象C.函数体D.数据块答案:::B5.下列不能作为类的成员的是()。A.自身类对象B.自身类对象的指针C.自身类对象的引用D.另一个类的对象答案:::A6、假定AB为一个类,则执行“ABa(4),b[3],*p[2]”语句时,自动调用该类构造函数的次数为()。A.3B.4C.6D.9答案:::B7.假定一个类的构造函数为A(intaa,intbb){a=aa--;b=a*bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为()。A.4和15B.4和5C.4和20D.3和20答案:::C8.在类中说明成员可以使用的关键字是()。A.registerB.externC.cpuD.public答案:::D9.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。A.x.aB.x.a()C.x->aD.(*x).a()答案:::B10.下列程序的输出结果是()。#include<iostream>usingnamespacestd;intmain(){inta[][3]={10,20,30,40,50,60};int(*p)[3];p=a;

cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;}A.10,20,30B.10,30,50C.20,40,60D.10,30,60答案:::A11.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()。A.constchar*p=“ABCD”;B.char*constp=“ABCD”;C.charconst*p=“ABCD”;D.constchar*constp=“ABCD”;答案:::D12.在创建类的(),类的构造函数被自动调用执行。A.成员函数时B.数据成员时C.对象时D.友元函数时答案:::C13.已知A是类B的友元类,B是类C的友元类,则()。A.类A一定是类C的友元B.类C一定是类A的友元答案:::CC.类B的成员函数可以访问类C的对象的任何成员D.类A的成员函数可以访问类C的对象的任何成员14.假定一个类的构造函数为“A(inti=4,intj=0){a=i;b=j;}”,则执行“Ax(1);”语句后,x.a和x.b的值分别为()。A.1和0B.1和4C.4和0D.4和1答案:::A15.关于this指针使用说法正确的是()。A.保证友元函数可以访问对象的私有数据。B.保证常成员函数可以被调用。C.保证静态数据成员可以被访问。D.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码答案:::D16.友元关系()。A.能提高程序的效率B.是类与类的双向关系C.具有交换性D.是具有传递性的关系答案:::A17.构造函数不具备的特征是()。A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型答案:::D18.C++语言中所有在函数中定义的变量,连同形式参数,都属于()。A.全局变量B.局部变量C.静态变量D.函数答案:::B19.对于int*pa[5];的描述,正确的是()。A.pa是一个指向数组的指针,所指向的数组是5个int型元素B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量C.pa是一个具有5个元素的指针数组,每个元素是一个int型指针D.pa[5]表示某个数组的第5个元素的值答案:::C20.可以重载的运算符是()。A.成员指针运算符“.*”B.取模运算符“%”C.作用域运算符“::”D.sizeof运算符答案:::B21.静态成员函数没有()。A.返回值B.this指针C.指针参数D.返回类型答案:::B22.假定AB为一个类,则执行“ABa(2),b[3],*p[4];”语句时,调用该类构造函数的次数为()。A.3B.4C.5D.9答案:::B23.假定类A的构造函数为“A(inti=4,intj=0){a=i;b=j;}”,则执行“Ax(1);”语句后,x.a和x.b的值分别为()。A.1和0B.1和4C.4和0D.4和1答案:::A24.类MyA的拷贝构造函数是()。A.MyA()B.MyA(MyA*)C.MyA(MyA&)D.MyA(MyA)答案:::C25.以下错误阐述友元关系的是()。A.提高程序的运行效率B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.可以传递答案:::D26.下列不是类成员函数的是()。A.友元函数B.析构函数C.构造函数D.拷贝构造函数答案:::A27.下面有关类说法不正确的是()。A.一个类可以有多个构造函数B.一个类只有一个析构函数C.析构函数需要指定参数D.类中可以没有类型转换成员函数答案:::C28.下列有关重载函数的说法中正确的是()。A.重载函数必须有不同的形参列表B.重载函数参数个数必须相同C.重载函数必须具有不同的返回值类型D.重载函数名可以不同答案:::A29.this指针存在的目的是()。A.保证静态数据成员可以被访问B.保证常成员函数可以被调用C.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码D.保证友元函数可以访问对象的私有数据答案:::C30.关于new运算符的下列描述中,错误的是()。A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值答案:::D二、填空题1.在C++面向对象的程序设计中,将一组对象的共同特性抽象出来形成①。答案:::①类2.表达式cout<<endl;

中的endl也可表示为②。答案:::②‘\n’3.如下while循环执行次数是③。intn=0;while(n=1)n++;答案:::③无限次4.每个对象都是所属类的一个④。答案:::④实例5.用new来动态分配有10个元素的整型数组单元,并用指针ip指向该单元,应使用语句⑤。答案:::⑤int*ip=newint[10];6.函数模板中,template<>尖括号内用于表示“类型名”参数的保留字是⑥。答案:::⑥class7.假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的一个新对象时,会调用⑦构造函数来完成此功能。答案:::⑦拷贝构造函数8.对赋值运算符进行重载时,应声明为⑧函数。答案:::⑧类成员9.如果要把A类成员函数fun()且返回类型为void声明为类B的友元函数,则应在类B的定义中加入的语句⑨。答案:::⑨friendvoidA::fun();10.定义类的动态对象数组时,系统只能自动调用该类的⑩构造函数对其进行初始化。答案:::⑩无参11.类A的静态整形数据x在类外初始化为0的语句①。答案:::①intA::x=0;12.运算符重载不能改变运算符的优先级、结合性和②。答案:::②操作数的个数13.面向对象的4个特征是:③继承和封装。答案:::③抽象、多态、14.友元关系的3个注意点是:(1)友元关系不能被继承。(2)友元关系是单向的,不具有交换性。(3)④。答案:::④友元关系不具有传递性15.设类A有成员函数voidfun(void);若要定义一个指向该成员函数的指针变量pf并指向fun(),该指针变量的定义语句是:⑤。答案:::⑤void(A::*pf)(void)=&A::fun;(或void(A::*pf)(void);和pf=&A::fun;)16.下列程序段的输出结果是⑥。for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j)cout<<k<<",";答案:::⑥0,8,6,17.以下while循环执行次数是⑦。intn=0;while(n=1)n++;答案:::⑦无限次18.C++语言中如果调用函数时,需要改变实参或者返回多个值,形参应该采取⑧方式。答案:::⑧传地址或引用19.若函数的定义位于调用它的函数之后,则在程序调用函数之前必须有该函数的⑨语句。答案:::⑨声明20.函数的形参是对象的引用,实参应是⑩。答案:::⑩对象名21.C++对C语言做了改进与扩展,从面向过程变成为面向对象的主要原因是引进了①的概念。答案:::①类和对象22.类的静态成员函数在类外定义时,不能使用②。答案:::②static作为前缀23.动态分配5个整型元素数组内存的语句是③,而删除该数组的语句是④。答案:::③int*ip=newint[5]; ④delete[]ip;24.在A类中声明常成员函数intfn(char,int)的正确语句是⑤。答案:::⑤intfn(char,int)const;25.this指针始终指向调用成员函数的⑥。答案:::⑥对象26.在#include命令中用<>所包含的头文件,一般是⑦。答案:::⑦系统定义的头文件27.如果要把类B的成员函数voidfun()说明为类A的友元函数,则应在类A中加入语句⑧;。答案:::⑧friendvoidB::fun();28.类的静态成员属于⑨而不属于⑩,它是该类的所有对象共享的成员。答案:::⑨类 ⑩某个对象三、程序填空题1.在下面程序横线处填上适当字句,使该程序执行结果为反向输出数组的元素:50,40,30,20,100,7.5,8.4,9.3,10.2,11.1#include<iostream>usingnamespacestd;template<classT>voidfun(①){②;for(inti=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}intmain(){inti,a[5]={10,20,30,40,50};doubled[6]={11.1,10.2,9.3,8.4,7.5};fun(a,5);fun(d,6);for(i=0;i<5;i++)cout<<a[i]<<",";cout<<endl;for(i=0;i<6;i++)cout<<d[i]<<",";cout<<endl;}答案:::Ta[],intnTt=0;2.在下面程序的底画线处填上适当的字句,使该程序执行结果为37。#include<iostream>usingnamespacestd;classTest{public:Test(inti=10){x=i+x;}staticintGetnum(){returnTest::x;}private:③;};④;intmain(){Testtest1,test2(7);cout<<Test::Getnum()<<endl;}答案:::staticintx;intTest::x=20;3.产生10个[1-100]之间的随机数并输出显示,数间用空格分隔。#include<iostream>#include<time.h>usingnamespacestd;intmain(){inti,a[11];srand(time(NULL));for(i=1;i<=10;i++) ⑤for(i=1;i<=10;i++)⑥cout<<endl;return0;}答案:::a[i]=1+rand()%100;cout<<a[i]<<"";4.程序实现大写字母转换成小写字母。#include<iostream>usingnamespacestd;intmain(){chara;cin>>a;if(①)②;cout<<a<<endl;}答案:::a>=‘A’&&a<=‘Z’;a=a+32;(或a=a|32)5.在下面程序横线处填上适当字句,完成类的定义。classline;classbox{public:③voidset_color(intc){color=c;}voiddefine_box(intx1,inty1,intx2,inty2){ux=x1;uy=y1;bx=x2;by=y2;}private:intcolor;intux,uy;intbx,by;};classline{public:friendintsame_color(linea,boxb);voidset_color(intc){color=c;}voiddefine_line(④){startx=x1;starty=y1;endx=x2;endy=y2;}private:intcolor;intstartx,starty;intendx,endy;};intsame_color(linea,boxb){if(a.color==b.color)return1;return0;}答案:::friendintsame_color(linea,boxb);intx1,inty1,intx2,inty26.在下列程序的空格处填上适当的字句。#include<iostream>#include<cmath>usingnamespacestd;classMagic{public:Magic(doubled=0.00){x=fabs(d);}Magicoperator+(⑤){Magicsum;sum.x=sqrt(x*x+c.x*c.x);returnsum;}⑥operator<<(ostream&output,Magic&c);private:doublex;};ostream&operator<<(ostream&output,Magic&c){output<<c.x;returnoutput;}答案:::Magic&c,friendostream&7.以下程序是打印10到99之间能被3整除且至少有一位是5的数。#include<iostream>usingnamespacestd;voidsub(①){inta1,a2;a1=m/10;a2=m%10;if(m%3==0&&(②))cout<<m<<endl;}intmain(){intk;for(k=10;k<=99;k++)sub(k);return0;}答案:::intma1==5||a2==58.类Test如下所示,num初始化值为5,程序运行后输出的值是:③。#include<iostream>usingnamespacestd;classTest{private:staticintnum;public:Test(int);voidshow();};④Test::Test(intn){num+=n;}voidTest::show(){cout<<num<<endl;}intmain(){Testt1(10),t2(17);t1.show();return0;}答案:::32,intTest::num=5;9.下面程序用来求数组元素值的和。请在程序的横线处填上适当内容,使程序完整。#include<iostream>usingnamespacestd;classArr{public:Arr(){a=0;n=0;}Arr(intaa[],intnn){n=nn;a=newint[n];for(inti=0;i<nn;i++)a[i]=aa[i];}~Arr(){delete[]a;}intGetValue(inti){returna[i];}intGetn(){returnn;}private:int*a,n;};intmain(){intb[5]={10,20,30,40,50};Arra1(b,5);inti,k,s=0;k=a1.Getn();⑤s+=⑥;cout<<"s="<<s<<endl;return0;}答案:::for(i=0;i<k;i++)a1.GetValue(i)四、程序分析题

1.程序的功能是?其中if块起什么作用?#include<iostream>usingnamespacestd;intmain(){intx;cout<<"enterchoice(1-4):";cin>>x;while(x<1||x>4){cout<<"Invalidchoice,tryagain:";cin>>x;if(cin.fail()){cin.clear();cin.sync();cin>>x;}}cout<<"Hadchoice:"<<x<<endl;return0;}答:从键盘输入1-4之间的一位数。if的作用是保护cin对象的输入。2.给出下面程序输出结果。#include<iostream>usingnamespacestd;classTest{public:Test(inti,intj=0){x=i;y=j;}intget(inti,intj){returni+j+x+y;}private:intx,y;};intmain(){Testt1(2),t2(4,6);int(Test::*p)(int,int);p=&Test::get;cout<<(t1.*p)(5,10)<<endl;cout<<(t2.*p)(7,20)<<endl;return0;}答案:::17373、程序运行后的输出结果是?#include<iostream>usingnamespacestd;voidSB(charch){switch(ch){case'A':case'a':cout<<"well!";break;case'B':case'b':cout<<"good!";break;case'C':case'c':cout<<"pass!";break;default:cout<<"bad!";break;}}intmain(){chara1='b',a2='C',a3='f';SB(a1);SB(a2);SB(a3);SB('A');cout<<endl;return0;}答案:::good!pass!bad!well!4.程序运行时输入字符“ABCDEFG123456”回车后的输出结果是?#include<iostream>usingnamespacestd;intmain(){charch;inti=0;while((ch=getchar())!=’\n’){cout<<ch<<”,”;i++;if(i%5==0)cout<<endl;}return0;}答案:::A,B,C,D,E,F,G,1,2,3,4,5,6,给出下面程序输出结果。#include<iostream>usingnamespacestd;intmain(){intb=20,*p1=&b;int**p2=&p1;cout<<(*p1)++<<”,”<<**p2<<endl;return0;}答案:::20,21

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论