语言程序设计_第1页
语言程序设计_第2页
语言程序设计_第3页
语言程序设计_第4页
语言程序设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、机 密启用前大连理工大学网络教育学院2018年春C/C+语言程序设计期末考试复习题 注意事项:本复习题满分共:400分。一、单选题1、已知int x=2,y=8;执行 x*=y+2;后x的值是( )。A20B18C16D122、下列while循环的执行次数是( )。while(int i=0) i+;A0B1C5D无限3、以下不属于C语言关键字的是( )。AshortBintCcaseDDIM4、当一个类对象离开它的作用域时,系统将自动调用该类的( )。A构造函数B拷贝构造函数C析构函数D默认构造函数5、下列哪个函数不是类的成员函数。( )A析构函数B构造函数C拷贝构造函数D友元函数6、在执行

2、int a3=1,2,3,4,5,6;语句后,a00的值是( )。A4B1C2D57、C+中用3个保留字实现异常处理,除了throw和catch外,还有( )。AifBclassCtryDreturn8、当类的继承方式为( )时,基类中的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。A私有继承B公有继承C保护继承D以上都不是9、作用域分辨符可以用来限定要访问的成员所在的类的名称,它的符号表示为( )。A:B?:C;D10、下列哪个函数的作用是字符串比较( )。Astrlen( )Bstrcmp( )Cstrcat( )Dstrcpy( )11、指出下

3、面合法的标识符是( )。A3abBintC_stu2D$abc12、设有数组定义char array ="Public"则数组array所占的空间为( )。A4个字节B5个字节C6个字节D7个字节13、下面表达式中错误的是( )。Ab=a+Ba/=2Ca+b=5Da=5,b=6,c=714、在定义int a5;之后,对a的引用正确的是( )。Aa5Ba4.3Ca(5)Da015、执行下面的程序段后,输出结果是( )。main()char a="english"printf("%c",a0);AengliBeCenglishDsh16、

4、当类的继承方式为( )时,基类的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。A私有继承B公有继承C保护继承D以上都不是17、类中将关键字( )写在函数体之前函数头之后,说明该函数是一个常成员函数(或const成员函数),可以防止函数改变数据成员的值。AconstBstaticCfriendDvoid18、设int n=10,i=3;则赋值运算n%=i+1执行后,n的值是( )。A0B3C2D119、下列选项中正确的语句是( )。Ax+Bint(x+5)Cy+5=6;Dx=y+5;20、绑定工作在编译连接阶段完成的情况称为( )。A静态绑定B动态绑定C重载 D继承21、

5、在下面的一维数组定义中,哪一个有语法错误( )。Aint a=1,2,3;Bint a10=0;Cint a;Dint a5;22、假定AB为一个类,则该类的拷贝构造函数的声明语句为( )。AAB&(AB x);BAB(AB x);CAB(AB&);DAB(AB* x)23、( )是给对象取一个别名,它引入了对象的同义词。A指针B引用C枚举 D结构24、下列运算符中,( )运算符在C+中不能重载。A?:B+C-D<=25、一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值能取多种数据类型。A函数模板B模板函数C类模板D模板类26、如果一

6、个类至少有一个纯虚函数,那么就称该类为( )。A抽象类B虚基类C派生类D以上都不对27、进行文件操作时需要包含( )文件。Aiostream.hBfstream.hCstdio.hDstdlib.h28、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是( )。Aios:inBios:outCios:truncDios:binary29、在ios中提供控制格式的标志位中,( )是转换为十六进制形式的标志位。AhexBoctCdecDleft30、C+中用3个保留字实现异常处理,除了try和catch外,还有( )。AifBclassCthrow Dreturn3

7、1、设有定义int x; double v;,则10+x+v值的数据类型是( )。AintBdoubleCcharD不确定32、对于while、dowhile循环结果说法正确的是( )。A只是表达形式不同Bwhile结构中的语句至少执行一次Cdowhile结构中的语句至少执行一次D条件成立时,他们有可能一次也不执行33、下列符号中可以用作C+标识符的是( )。A_radiusBfoobarCelseD3room34、预处理命令在程序中都是以( )符号开头的。A*B#C&D35、当说明一个结构变量时,系统分配给它的内存为( )。A各成员所需内存量的总和B结构中第一个成员所需内存量C成员中

8、占内存量最大的成员所需的容量D结构中最后一个成员所需内存量36、( )的功能是对对象进行初始化。A析构函数B数据成员C构造函数D静态成员函数37、( )只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。A虚函数B静态函数C构造函数D析构函数38、在下列各类函数中,( )不是类的成员函数。A析构函数B构造函数C拷贝构造函数D友元函数39、在执行int a3=1,2,3,4,5,6;语句后,a11的值是( )。A4B1C2D540、下列不可以被重载的运算符是( )。A?:B+C- D*41、C+语言对C语言做了很多改进,C+语言相对于C语言的最根本的变化是( )。

9、A增加了一些新的运算符C规定函数说明符必须用原型B允许函数重载,并允许设置缺省参数D引进了类和对象的概念42、设array为一个数组,则表达式sizeof(array)/sizeof(array0)的结果为( )。Aarray数组首地址Carray数组中每个元素所占的字节数Barray数组中元素个数Darray数组占的总字节数43、将两个字符串连接起来组成一个字符串时,选用( )函数。Astrlen()Cstrcat() Bstrcap()Dstrcmp()44、函数调用不可以( )。A出现在一个表达式中C作为一个函数的实参B出现在执行语句中D作为一个函数的形参45、C+源程序文件的扩展名是(

10、 )。A.CPPC.DLLB.CD.EXE46、下列运算符中优先级最高的为( )。A!C-=B%D&&47、有关构造函数的说法错误的是( )。A构造函数名字和类的名字一样C构造函数无任何函数类型B构造函数在说明类变量时自动执行D构造函数有且只有一个48、通常的拷贝构造函数的参数是( )。A某个对象名C某个对象的引用名B某个对象的成员名D某个对象的指针名49、为了判断两个字符串s1和s2是否相等,应当使用( )。Aif(s1=s2)Cif(strcpy(s1,s2) Bif(s1=s2)Dif(strcmp(s1,s2)=0)50、在定义int a36;后,第10个元素是()。A

11、a24Ca31Ba13Da42单选题答案1、A 2、A 3、D 4、C 5、D 6、B 7、C 8、A 9、A 10、B 11、C 12、D 13、C 14、D 15、B 16、B 17、A 18、C 19、D 20、A 21、C 22、C 23、B 24、A 25、C 26、A 27、B 28、A 29、A 30、C 31、B 32、C 33、A 34、B 35、A 36、C 37、B 38、D 39、D 40、A 41D 42B 43C 44D 45A 46A 47D 48C 49D 50B 二、填空题1、C+类中可以包含公有、私有和 三种具有不同访问控制权的成员。2、在C+中有两种类型的

12、注释符,一种是C语言中使用的注释符(/*/),另一种是 。3、 是给对象取一个别名,它引入了对象的同义词。4、语句while(int i=0) i-;while循环的次数是 。5、类模板的使用实际上是将类模板实例化成一个具体的 。6、执行 操作将释放由P所指向的动态分配的数组空间。7、假定x=1, 则表达式(x<=1?20:30)的值为 。8、表达式sqrt(81)和pow(6,3)的值分别为 和 。9、空串的长度为 ,存储它需要占用 个字节。10、strlen("apple")的值为 。11、当一个类对象离开它的作用域时,系统将自动调用该类的 。12、定义一个模板函

13、数或模板类时要用到的第一个C+保留字是 。13、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 。14、C+中默认main函数的返回类型是 ,所以在定义main函数时可以不写返回值类型。15、使用cin和cout进行输入输出操作的程序必须包含头文件 ,其语句格式为 。16、假定x=10.5,y=-4.6,则表达式floor(fabs(x+y)的值为 。17、对一个一维字符数组a进行初始化的数据为"12345",则a0和a3元素对应的初值分别为 和 。18、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。19、

14、随机函数rand()%20的值在 至 区间内。20、类中数据和成员函数默认访问控制权类型为 。21、假定一个类对象数组为A10,当离开它的作用域时,系统自动调用该类析构函数的次数为 。22、若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB 定义中加入一条语句: 。23、假定一个类AB中有一个静态整数成员bb,在类外为它进行定义并初始化为0时,所使用的语句为 。24、在一个类的后缀加的运算符重载成员函数的定义中,带有 个整型参数。填空题答案1保护 2/ 3引用 40次 5类6delete p; 720 89、216 90、1105 11析构函数 12template

15、 13AB() 14int15iostream.h #include<iostream.h> 165 171、4 18初始化表、函数体190、19 20私有 2110 22friend void F(); 23int AB:bb=0;241 三、判断题1、循环语句的循环体可能一次都不执行。( )2、使用cin和cout进行输入输出操作的程序必须包含头文件math.h。( )3、C+源程序文件的扩展名是.exe。( )4、关键字中,用以说明类中公有成员的是private。( )5、一个类只能有一个对象。( )6、拷贝构造函数不是类的成员函数。( )7、内联函数的关键字为friend。

16、( )8、构造派生类的对象时,就要对基类数据成员、新增数据成员和成员对象的数据成员进行初始化。( )9、一个派生类可以同时有多个基类,这种情况称为单继承。( )10、抽象类不能实例化。( )11、在C+类中可以包含私有、公有和友元三种具有不同访问控制权的成员。( )12、定义枚举类型的关键字是union。( )13、设有定义int x; double v;则5+x+v值的数据类型是int。( )14、strcat()函数的作用是求字符串长度。( )15、说明静态数据成员时,前边要加关键字static。( )16、成员函数可以重载。( )17、delete的功能是动态分配内存。( )18、关键字

17、中,用以说明类中公有成员的是protected。( )19、流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。( )20、类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。( )21、do-while循环可以写成while循环。( ) 22、所谓指令,就是计算机可以识别的命令。( ) 23、使用内联函数是以牺牲增大空间开销为代价的。( ) 24、对象是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。( )25、内联函数的关键字为void。( )26、友元关系可以继承。( )27、new的功能是动态分配内存。( )28、析

18、构函数是在对象的生存期即将结束的时刻被自动调用的。( )29、绑定工作在编译连接阶段完成的情况称为静态绑定。( )30、使用I/O流的程序需要包含iostream.h。( )判断题答案1、 2、× 3、× 4、× 5、× 6、× 7、× 8、 9、× 10、 11、× 12、× 13、× 14、× 15、 16、 17、× 18、× 19、 20、 21、 22、 23、 24、 25、× 26、× 27、 28、 29、 30、 四、阅读下列程

19、序,请在答题卡上写出输出结果1、#include<iostream.h>void main() int x=1,y=2,z=3; x+=y+=z; cout<<(x<y?y:x)<<"," cout<<(x<y?x+:y+)<<"," cout<<y<<endl;输出结果:6,5,62、#include <iostream.h>void main()int i;for(i=4;i<=10;i+)if(i%3=0)continue;cout&l

20、t;<i;输出结果:4578103、#include<iostream.h>class CSampleprivate:int i;static int k;public:CSample();void Display();CSample:CSample()i=0;k+;void CSample:Display()cout<<"i="<<i<<",k="<<k<<endl;int CSample:k=0;void main()CSample a,b;a.Display();b.Di

21、splay();输出结果:i=0,k=2i=0,k=24、#include <iostream.h>void main()int x=1,y=0;switch(x)case 1:switch(y)case 0:cout<<"first "break;case 1:cout<<"second "break;case 2:cout<<"thirdn"输出结果:first third5、#include<iostream.h>void main()int i,j;for(i=4;i

22、>=1;i-)cout<<"*"for(j=1;j<=4-i;j+)cout<<"*"cout<<endl;输出结果:*6、#include<iostream.h>class CSampleint i;public:CSample();void Display();CSample();CSample:CSample()cout<<"Constructor"<<","i=0;void CSample:Display()cout<

23、<"i="<<i<<","CSample:CSample()cout<<"Destructor"<<endl;void main()CSample a;a.Display();输出结果:Constructor,i=0,Destructor7、#include<iostream.h>void Swap(int& a, int& b);void main( )int x(5), y(10);cout<<”x=”<<x<<”

24、,y=”<<y<<endl;Swap(x, y);cout<<”x=”<<x<<”,y=”<<y<<endl;void Swap(int& a, int& b)int t;t=a;a=b;b=t;输出结果:x=5, y=10x=10, y=58、#include <iostream.h>class Samplepublic:Sample( ) cout<<”Constructor”<<endl;void fn(int i)static Sample c;cou

25、t<<”i=”<<i<<endl;void main()fn(10);fn(20);输出结果:Constructori=10i=209、#include<iostream.h>const int N=8;void main()int aN=1,2,3,4,5,6,7,8;int i,x;for(i=0; i<N/2; i+)x=ai; ai=aN-1-i;aN-1-i=x;for(i=0; i<N; i+)cout<<ai;输出结果:8765432110、#include <iostream.h>class C

26、Sampleint i;public:CSample();CSample(int val);void Display();CSample();CSample:CSample()cout<<"Constructor1"<<endl;i=0;CSample:CSample(int val)cout<<"Constructor2"<<endl;i=val;void CSample:Display()cout<<"i="<<i<<endl;CSample:CS

27、ample()cout<<"Destructor"<<endl;void main()CSample a,b(10);a.Display();b.Display();输出结果:Constructor1Constructor2i=0i=10DestructorDestructor五、编程题 1、编写一个程序输入一华氏温度,编程输出摄氏温度。已知:华氏温度(F)转换为摄氏温度(C)的计算公式为: #include<iostream.h>void main()float c,f;cout<<"华氏温度:"cin&

28、gt;>f;c=(f-32)*5/9;cout<<"摄氏温度:"<<c<<endl;2、编写一个程序将输入的一个三位正整数逆转,例如,输入123,输出321。#include<iostream.h>void main()int n,i,j,k;cout<<"输入一个三位正整数:"cin>>n;i=n/100;/求百位数n=n-i*100;j=n/10;/求十位数n=n-j*10;k=n;/求个位数cout<<"逆转数:"<<k<

29、<j<<i<<endl;3、编写一个程序求一元二次方程的解。讨论下述情况:(1),有两个相等实根;(2),有两个不等实根;(3),无实根(4),不是二次方程#include<iostream.h>#include<math.h>void main()float a,b,c,d;cout<<"a="cin>>a;cout<<"b="cin>>b;cout<<"c="cin>>c;d=b*b-4*a*c;if(a=

30、0)cout<<"不是二次方程!"<<endl;else if(d=0)cout<<"一个实根:"<<-b/(2*a)<<endl;else if(d>0)cout<<"两个实根:"<<(-b+sqrt(d)/(2*a)<<","<<(-b-sqrt(d)/(2*a)<<endl;elsecout<<"无实根!"<<endl;4、编写一个程序输入3

31、个学生的英语和计算机成绩,并按总分从高到低排序。要求设计一个学生类Student,其定义如下:class Studentint english,computer,total;public:void getscore();/获取一个学生成绩void display();/显示一个学生成绩;#include<iostream.h>class Studentint english,computer,total;public:void getscore();void display();int retotal()return total;void Student:getscore()cou

32、t<<"输入英语成绩:"cin>>english;cout<<"输入计算机成绩:"cin>>computer;total=english+computer;void Student:display()cout<<"英语="<<english<<" 计算机="<<computer<<" 总分="<<total<<endl;void sort(Student *p1,S

33、tudent *p2)/交换两个对象if(*p1)->retotal()<(*p2)->retotal()Student *tmp=*p1;*p1=*p2;*p2=tmp;void main()Student *A3;for(int j=0;j<3;j+)Aj=new Student;cout<<"学生"<<j+1<<endl;Aj->getscore();int i;for(j=0;j<2;j+)for(i=0;i<2;i+)sort(A+i,A+i+1);cout<<endl<

34、;<"排序结果如下:"<<endl;for(i=0;i<3;i+)Ai->display();5、编写一个程序,求下列分数序列的前15项之和。#include<iostream.h>void main()int i,m,n,k;double s=0;m=1;n=2;for(i=1;i<=15;i+)s=s+1.0*n/m;k=m;m=n;n=k+n;cout<<"s="<<s<<endl;6、编写一个程序,计算三角形、正方形的面积。(要求:抽象出一个基类base,在其中说

35、明一个虚函数,用来求面积)#include<iostream.h>class baseprotected:int x,y;public:base(int x,int y)base:x=x;base:y=y;virtual void disp()/定义一个接口cout<<"这个类没有面积"<<endl;class triangle:public base/定义三角形类,基类成员x为底边长,y为高public:triangle(int x,int y):base(x,y);void disp()cout<<"三角形面积:"<<x*y*0.5<<endl; class square:public base/定义正方形类,基类成员x为边长public:square(int x):base(x,x);void disp()cout<<"正方形面积:"<<x*x<<endl;void main()base *p;triangle t(20,20);square s(20);p=&t;p->disp();p=&s;p->disp();7、编写一个程序求“水仙花数”。“水仙花数”是指一

温馨提示

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

评论

0/150

提交评论