2020年度自考C试题及答案11套合集.docx
《2020年度自考C试题及答案11套合集.docx》由会员分享,可在线阅读,更多相关《2020年度自考C试题及答案11套合集.docx(224页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、自考C+试题及答案11套合集资料仅供参考全国10月自学考试C+程序设计试题课程代码:04737、单项选择题(本大题共20小题,每小题1分,共20分)1 .对C+语言和C语言的兼容性,描述正确的是(A )A. C+兼容C B. C+部分兼容CD. C兼容C+2 .在C+中使用流进行输入输出,其中用于屏幕输出的对象是(C )A. cerr B. cin C. coutD. cfile(cerr:标准错误输出(非缓冲方式);cin:标准输入;clog标准错误输出(缓冲方式)3 .对使用关键字new所开辟的动态存储空间,释放时必须使用(C )A. free B. create C. delete D.
2、 realse4 .如没有使用private关键字定义类的数据成员,则默认为(A )A. private B. public C. protected D. friend5 .使用值传递方式将实参传给形参,下列说法正确的是(A )A,形参是实参的备份B.实参是形参的备份C.形参和实参是同一对象D.形参和实参无 联系6,在函数调用时,如某一默认参数要指明一个特定值,则有(A )A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值C.其前、后所有参数都必 须赋值D.其前、后所有参数都不必赋值7 .设存在函数int max(int, int)返回两参数中较大值,若求22, 59, 70三者中最大
3、值, 下列表示式不正确的是(C )A. int m = max (22, max (59, 70) ; B. int m = max (max (22, 59), 70) ; C. int m = max(22, 59, 70);D. int m = max(59, max(22, 70);资料仅供参考8 .下列哪个类型函数不适合声明为内联函数(A )A.函数体语句较多B.函数体语句较少C.函数执行时间较短D.函数执行时间过长9 . int Func(int, int)5不可与下列哪个函数构成重载( B )A. int Func(int, int, int); B. double Func(i
4、nt, int);C. double Func(double, double); D. double Func(int, double);说明:不能以形参名来区分函数;不能以函数返回值来区分函数。必须是形参的个数或者类型不同才能构成函数重载。10 .对类中声明的变量,下列描述中正确的是(C )A.属于全局变量B.只属于该类C.属于该类,某些情况下也可被该类不同实例所共享D.任何情况下都可被该类所有实例共享11 .类的私有成员可在何处访问(D )A.经过子类的对象访问B,本类及子类的成员函数中C.经过该类对象访问D.本类的成员函数中12 .如果没有为个类定义任何构造函数的情况下,下列描述正确的是
5、(A )A.编译器总是自动创立一个不带参数的构造函数B.这个类没有构造函数C.这个类不需要构造函数D.该类不能经过编译13 . 个类可包含析构函数的个数是(B )A. 0个 B. 1个C.至少个D. 0个或多个14 . this指针存在的目的是(B )A.保证基类公有成员在子类中能够被访问B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C.保证基类保护成员在子类中能够被访问D.保证基类私有成员在子类中能够被访问资料仅供参考15 .下列关于类的权限的描述错误的是(A )A.类本身的成员函数只能访问自身的私有成员B.类的对象只能访问该类的公有成员C,普通函数不能直接访问类的公有成员
6、,必须经过对象访问D. 个类能够将另个类的 对象作为成员16 .在编译指令中,宏定义使用哪个指令(B )A. #include B. #define C. #if D. #else17 .设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(B )A. A类构造函数先执行B.成员构造函数先执行C.两者并行执行D.不能确定类的组合,描述的是一个类内嵌其它类的对象作为成员的情况,它们之间的关系是种包含 与被包含的关系。在声明一个组合类的对象时,不但它自身的构造函数将被调用,而且还将调用其内嵌对象的 构造函数。这时构造函数的调用顺序是:(1)按照内嵌对象在组合类的声明中出现的次序,依次调用
7、内嵌对象的构造函数;(2)执行本类构造函数的函数体析构函数的调用执行顺序与构造函数刚好相反。18 .下列描述错误的是(A )A,在创立对象前,静态成员不存在B.静态成员是类的成员C.静态成员不能是虚函数D.静态成员函数不能直接访问非静态成员说明:静态成员函数能够直接访问该类的静态数据和函数成员,而访问非静态成员,必须经 过参数传递方式得到对象名,然后经过对象名来访问。19 .对于友元描述正确的是(B )A.友元是本类的成员函数B.友元不是本类的成员函数C.友元不是函数D.友元不能访问 本类私有成员20 .在哪种派生方式中,派生类能够访问基类中的protected成员(B )A. public
8、和 private B. public 和 protectedC. protected 和 privateD. 仅 protected资料仅供参考二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。21 .设要把个文件输出流对象myFile与文件“f: myText. txt相关联,所用的C+语 句是:myFile. open ( f: myText. txt);。22 . C+中ostream类的直接基类是ios类。23 .运算符只能用成员运算符来重载,不能用友元运算符来重载。24 .定义虚函数所用的关键字是字rtual。25. vector
9、类中用于返回向量中第1个对象的 方法是front ( )o26 .在C+中,利用向量类模板定义个具有20个char的向量E,其元素均被置为字符 t,实现此操作的语句是vectorcharE(20,)。27 .类的继承是指子类继承基类的数据成员和成员函数。28 .不同对象能够调用相同名称的函数,但可导致完全不同的行为的现象称为多态性或(类 的多态性)。29 .提皿返指令指示编译器将一个源文件嵌入到带该指令的源文件之中。30 .设类A有成员函数void Fun(void);若要定义个指向类成员函数的指针变量pafn来指向Fun该指针变量的声明语句是: void(A:*pafn)(void);。31
10、 .设在程序中使用如下语句申请了一个对象数组:Point * ptr = new Point2;则在需要释放ptr指向的动态数组对象时,所使用的语句是delete1 ptr;。32 .在保护派生中,基类权限为Private的成员在派生类中 不可访问。33 .类A有如下成员函数int A:fun(double x)return (int) x / 2; int A:fun(int x)return x*2; 资料仅供参考设a为类A的对象,在主函数中有int s=a. fun(6. 0)+a. fun(2),则执行该语句后,s的 值为。34 .对象传送的消息一般由3部分组成:接收对象名、调用操作名
11、和必要的参数。35 .将指向对象的指针作为函数参数,形参是对象指针,实参是对象的地址值。36 .在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中 不含指定的子串,find函数的返回值是:。37 .在C+中,声明布尔类型变量所用的关键字是也38 .执行下列代码int a=29, b=100;cout setw (3) a b endl;程序的输出结果是:29100 039 .执行下列代码cout Hex: hex 255;程序的输出结果为Hex:ff。4. C+语言中能够实现输出个换行符并刷新流功能的操控符是endl三、改错题(本大题共5小题,每小题2分,共10
12、分)下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。41. #includeiostream. hvoid main( ) int x=5, y=6;const int * p=&x;p=y;cout*pendl;*P=y; 指针p所指向的为常量,不能进行左值操作42. #includeclass fprivate: int x, y;public: fl( )x=0; y=0; print ( ) coutx n yendl; 11void main( ) f a;a. fl (1,1);a. print ();a. fl(l, 1); fl ()调用时实参与形参数量不一致
13、43. #includeclass f(private: int x=0, y=0;public: void fl(int a, int b)x=a; y=b; void get ( ) coutx, yendl; );void main( ) a. fl (1,3);a. get (); )private:int x=0, y=0;数据成员声明时不允许直接赋值44. #includeclass pointprivate: float x;public: void f(float a)x=a;void f( )x=0;friend float max(point& a9 point& b);)
14、 ?float max(point& a, point& b)return(a. xb. x)? a. x: b. x; void main( ) point a, b;a. f(2. 2); b. f(3. 3);couta. max (a, b);couta. max(a, b); max()不是类的成员函数,不能用a. max ()方式调用45. 斗includeiostream. htemplateclass fprivate: T x, y;public: void fl(T a, T b)x=a; y=b; T max( )return(xy)?x:y;void main( ) f
15、 a;a. fl(l. 5, 3. 8);couta. xa. ya. max ( ) endl;couta. xa. ya. max () endl; x, y是私有类型,不能在主函数中直接使用四、完成程序题(本大题共5小题,每小题4分,共20分)46 .完成下面类中的成员函数的定义。class pointprivate:int m, n;public:point(int, int);point(point&););point:point(int a, int b)(m=a;n =b;point:point(point&t )m=t. m;n=t. n;)47 .下面是个输入半径,输出其面积
16、和周长的C+程序,在下划线处填上正确的语句。#includeusing namespace std;const double pi=3.14159;void main()(double r;cout r=;cinr ;double 1=2. 0*pi*r;double s=pi*r*r;cout n The long is: lendl;cout The area is: sendl;48 .在下划线处填上缺少的部分。#include#includeusing namespace std; class complexpublic:int real;int imag;complex(int r=
17、0, int i=0)(real=r;imag=i;;complex operator+( complex&ay complex& b)(int r=a. real+b. real;int i=a. imag+b. imag;return complex(r, i);void main()(complex x(L 2) 9 y(3, 4), z;z=x+y;coutz real + z. imag i endl;49 .程序的输出结果如下:50, 30请根据输出数据在下面程序中的下划线处填写正确的语句。源程序如下:#includeusing namespace std;class basepr
18、ivate:int m;public:base( ) ;base (int a) :m(a) int get( )return m;void set(int a)m=a;void main()(base*ptr=new base2;ptr- set (30);ptr= ptr+1;ptr- set (50); base a2 = L 9;资料仅供参考couta0. get( )z, , al.get( )endl;coutptr- get ( ) ,;ptr=ptr-l;cout ptr-get( )endl;delete ptr;50 .在下面横线处填上求两个浮点数之差的cha函数的原型声明
19、、调用方法。include using namespace std;void main()float a, b;float cha(float, float); / / 函数 cha 的原型声明a=12. 5;b=6. 5;float c= cha(a, b) ;/ /调用函数 chacoutcendl;float cha(float x, float y)(float w;w=x-y;五、程序分析题(本大题共4小题,每小题5分,共20分)51 .给出下面程序的输出结果。#include template class Sample(T n;public:Sampled i) n=i;int o
20、perator=(Sample &););template int Sample: :operator= (Sample &s)(if (n=s. n)return 1;elsereturn 0;)void main()Samplesl(2), s2 (3);资料仅供参考cout S1 与 s2 的数据成员 (sl=s2 ? 相等:不相等) endl;Samples3(2. 5), s4 (2.5);cout s3与s4的数据成员 (s3=s4 ? 相等:不相等) endL S1与S2的数据成员不相等S3与S4数据成员相等52 .给出下面程序的输出结果。#includeusing namesp
21、ace std;templateT max (T mL T m2)return (mlm2) ?ml: m2:void main( ) coutmax(L 7) t max (2. 0, 5. 0)endl;coutmax(, y, b t max( A , a)endl;75y a53 .给出下面程序的输出结果#include using namespace std;class A (publics int x;A( ) A(int a) x=a;int get (int a)return x+a; ;void main( ) A a(8);int(A:*p) (int);p=A:get;c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2020 年度 自考 试题 答案 11 套合集
限制150内