C++_考试样卷4_第1页
C++_考试样卷4_第2页
C++_考试样卷4_第3页
C++_考试样卷4_第4页
C++_考试样卷4_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

1、C+考试样卷4注意:将答案写在答题纸上;否则,责任由学生自负。一. 选择题(以下每题有四个选项可供选择,请选择最正确的一个答案,将标 号填入答题纸上,每题1分,共20分)1、_能用作用户自定义标识符。A)frie ndB) -varC) 3xyzD) Float2、 面向对象程序设计将数据与放在一起,做为一个相互依存、不可分割的 整体来处理。A)对数据的操作B)信息C)数据隐藏D)数据抽象3、 一个类的析构函数 。A)唯一的B)允许重载C)至多可有两个D)只能是缺省的4、 类型修饰符unsigned修饰类型是错误的。A) char5、若执行完以下语句, int i;int &j=i;i

2、=5;j=i+1;A) 5,55B) inti和j的值分别为C) long int。D) floatB) 5, 6C) 6, 6D) 6,&对于语句int *pa5;的描述,下列说法正确的是 。A)pa是一个指向数组的指针,所指向的数组是5个int型元素;B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量;C)pa5表示某个数组的第5个元素;D)pa是一个具有5个元素的指针数组,每个元素都是一个int型指针。7、假设整型数i的地址为0x12345678,指针ip地址为0x21850043,则执行以下 语句后,k的值为。int i=100;int *ip=&i;in

3、t k=*ip;A)0x12345678B) 0x21850043C) 100D)不确定8、 在C+中,一个函数带有参数说明时,则参数的默认值应该在 中给出A)函数定义 B)函数声明C)函数定义或声明D)函数调用9、 指针可以用来表示数组元素,若已知语句:int a37;则下列表示中错误的A) *(a+1)5B) *(*a+3)C)*(*(a+1)D)*(&a00+2)10、 有如下定义:int a5,*p;p=a;则下列描述错误的是10。A)表达式p=p+1合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的11、#include <iostrea

4、m.h>int a=3;in t f(in t);void mai n() int a=5;f(a);cout << "a=" <<a<<e ndl;void f(int b)b=4; a+=b;程序的输出结果是11A)3B)5C)712、 以下程序运行结果是12。#i nclude <iostream.h>void mai n()int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break

5、;cout << a<< ” , ” << b;A) 2, 1B)1, 2C) 1, 113、 执行下列程序段时,输出15。int s1=0,s2=0,s3=0,s4=0;for(i nt t=1;t<=4;t+)switch(t)case 4 s1+;break;case 3 s2+;break;case 2 s3+;default:s4+;cout<<s1<< ” , ” v<s2vv” , ” vvs3<v” , ” <<s4<<endl;A)语法出错B) 1 , 1, 1, 2 C)

6、1, 2, 3, 2 D) 114、 下列说法正确的是:口3_。A) 一个类的对象可以是另一个类的成员B) 一个类可以作为另一个类的派生类C) 一个类定义在另一个类的说明中D) 以上说法均正确15、类MyClass的定义如下:D)9D)0, 0,1, 2, 2class MyClasspublic:MyClass()value=O;SetValue(int i)value=i;private:int value;则对语句:MyClass *p,my;p=&my;正确的描述是14。A) 语句p=&my;是把对象my赋值给指针变量p;B) 语句MyClass *p,my;会调用两次

7、类MyClass的构造函数C) 对语句*p.SetValue(5)的调用是正确的D) 语句 p->SetValue(5)与 my.SetValue(5等价16、 下列各类函数中,不是类的成员函数。A)构造函数B)析构函数C)友元函数D)拷贝构造函数17、 派生类的对象对它的基类成员中 是可以访问的。A) 公有继承的公有成员B) 公有继承的私有成员C) 公有继承的保护成员D) 私有继承的公有成员18、有关析构函数的说法不正确的是 。A) 析构函数有且只有一个B) 析构函数无任何函数类型C) 析构函数和构造函数一样可以有形参D) 析构函数的作用是在对象被撤销时收回先前分配的内存空间19、通常

8、拷贝构造函数的参数是 。A) 某个对象名B) 某个对象的成员名C) 某个对象的引用名D) 某个对象的指针名20、若类A和类B的定义如下:class A int i,j;public:void get();class B: A int k;public:void make();void B:make()k=i*j;则上述定义中,是非法的表达式。A) void get();B) int k; C) void make(); D) k=i*j;二、填空题(每空1分,共20分)1、 数学式子x2+y2写成C+语言表达式是1。2、 如果a=1,b=2,c=3,d=4则条件表达式a<b?a:c<

9、;d?c:d的值为。3、 设有函数定义:int fl(void) return 100,200;,调用fl时,函数返回值为 3_。4、 C+使用cin和cout进行输入输出操作的程序必须包含头文件_4,其语句形式为。5、 用C+表达式描述命题“ a与b中有一个小于c”:。6函数调用语句fun(a+b,(x,y),fun(n+k,d,(a,b)中实参的个数为7。7、 定义 内联函数所用的关键字8,定义友元 所用的关键 字为9L。8、 执行常量定义语句const int size=100*sizeof(int);后,符号常量 size的值为迪。9、设 m=1,n=2,则表达式 m+= =n和+m=

10、 =n的值分别为 11 和 12。10、任何类中允许有13、14、15 三种类型的数据,数据和成员函数的默认类型为16。11、 C+支持面向对象程序设计的四个要素是:封装性、继承和派生、17 和 迪 。12、若Queue是一个类,aQueue是它的一个对象,而且该类中定义了一个静态成员函数show()则在类外对该成员的函数进行调用的方式可以为19和20。三、 阅读程序,写出程序运行结果(第3、10空为3分,其余每空1分,共 20分)1、写出下列程序的运行结果#in clude <iostream.h>class CSample public:CSample();void Displ

11、ay。;private:int i;static int k;Csmaple:CSample()i=0;k+;void CSample:Display() cout<< ” i= ” <<i<< ” , ” <<” k=” vvkvvendl;int CSample:k=0;void mai n() CSample a,b;a. Display();b. Display();程序的输出结果为 12。2、#include <iostream.h>void splitfloat(float x, i nt *p1, float *p2)

12、*p1=(i nt)x;*p2 =x-*p1;void mai n()int n;float x ,f;cin> >x;splitfloat(x,&n,&f);cout« ” n=” vvnvv” , ” <<” f= ” <<f<<endl; 输入3.1415,输出结果为33、#in clude <iostream.h>int nextStude ntlD=0; class Stude ntID public:StudentID(int id=0) value=id;<<value<<

13、;e ndl;<<value<<e ndl;,int ssID=0):id(ssID)” <<pname«endl;cout<< “Assigning student id:Stude ntlD()- - nextStude ntID;cout<< “ Destructing ID:”protected:int value;class stude nt public: stude nt(char * pName=“ no n ame cout<<“ Con struct ing stude nt:protecte

14、d:Stude ntID id;void mai n() student s(“ Randy”,9818);student t(“Jenny” ,9819);输出结果为44、#i nclude <iostream.h>class B public:B( ) ;B(int i, int j ); void prin tb();private:int a,b;class A public:A( ) ;A(i nt i, i nt j);void prin ta();private:B c;A:A(i nt i, int j ):c(i,j);void A:pri nta()c.prin

15、 tb( );B:B(int i, int j )a=i; b=j;void B:pri ntb()cout« ” a=” v<a<v” , ” <<” b=” <<b<<endl;void mai n()A m(7,8);m.pri nta();输出结果为 一105、#include<iostream.h>class B public:B();B(int i);B();void Prin t();private:int b;B:B()b=0;cout<<"B's default con str

16、uctor called."<<e ndl;B:B(int i) b=i;cout<<"B's con structor called." <<e ndl; cout«"B's destructor called."«e ndl; void B:Pri nt() coutvvbvve ndl;class C:public B public:C();C(i nt i,i nt j);C();void Prin t();private:in t c;C:C()c=0;cout&

17、lt;<"C's default con structor called."<<e ndl;C:C(i nt i,i nt j):B(i) c=j;cout<<"C's con structor called."<<e ndl;C:C() cout<<"C's destructor called."<<e ndl; void C:Pri nt() B:Pri nt();cout<<c<<e ndl;void mai n()

18、 C obj(5,6);obj.Pri nt();输出结果为 111131516L四、改错题:指出下列程序的错误,并说明原因(每错 2分,共10分)1、#include <iostream.h>class Apublic:void A(i nt i=0)m=i;void show()cout<<m;void A()private:int m;void mai n()A a( 5);a.m+=10;a.show();1232、#i nclude <iostream.h>class A public:void setA(i nt);void showA ();p

19、rivate:int a;class B public:void setB(i nt);void showB ();private:int b;class C : public A, private B public:void setC(i nt, in t, in t);void showC ();private:int c;void A:setA(i nt x)a=x; void B:setB(i nt x)b=x; void C:setC(i nt x, int y, int z) SetA(x);SetB(y);c=z;int main () C obj;obj.setA(5);obj

20、.showA ();obj.setC(6,7,9);obj.showC ();obj.setB(6);obj.showB ();return 0;4 _5五、程序填空:(每空2分,共10分)1、下面程序的功能是:从键盘,上输入若干个整数按升序排序后输出;# in elude “ iostream.h ”void sort(i nt a ,i nt n)for(int i=0;i<n-1;i+)for(i nt j=i+1;j< n;j+)if(IU)int t=ai;ai=aj;aj=t;void In put(i nt *p,i nt n)cout« 输入” vv*v个

21、整数。” <<endl;for(i nt i=0;i <n ;i+)ci n>>2;void Output(i nt *p,i nt n)for(int i=0;i<n;i+)cout<<3<<' /t 'void ma in (void)int x200,i nt num;cout<<输入安排序数的个数:”;cin>>num;In put(x, nu m);Sort(x ,nu m);Output(x, nu m);2、下列程序的功能是:从堆中获取一个整数数组,赋值并打印。#in clude <iostream.h>#in clude <alloc.h>void mai n()i nt arraysize;/定义元素个数int * array;cout<< “ please in put a nu mber of array:” <<e ndl;cin> >arraysize;if(array=4)=Null) “ , ”cout<< “ Can' t allocate more memory! ” <<endl; exit(1);for(i nt

温馨提示

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

评论

0/150

提交评论