2023年全国10月自学考试C++程序设计试题及答案.doc
《2023年全国10月自学考试C++程序设计试题及答案.doc》由会员分享,可在线阅读,更多相关《2023年全国10月自学考试C++程序设计试题及答案.doc(15页珍藏版)》请在咨信网上搜索。
全国2023年10月自学考试C++程序设计试题 课程代码:04737 选择题部分 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目规定的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。 1.使用下列哪一限定符可强制改变访问方式 A.const B.short C.1ong D.signed 2.下列表达式,哪一是声明P为指向常量的指针 A.const int *p B.int* const p; C.const int *const p D.int *p 3.运算符::叫做 A.下标运算符 B.自增运算符 C.成员访问运算符 D.作用域运算符 4.假如为一个类定义了自己的构造函数,下列描述对的的是 A.系统不再提供默认构造函数,但提供其他构造函数 B.系统提供其他非默认构造函数 C.系统不再提供默认构造函数 D.系统仍提供默认构造函数 5.对于类中的成员,使用protected修饰,表白该成员的访问权限是 A.公有的 B.私有的 C.保护的 D.不可见的 6.类不是内存中的物理实体,只有当使用类产生对象时,才进行内存分派,这种对象建 立的过程称为 A.程序化 B.结构化 C.过程化 D.实例化 7.下列关于类的权限描述错误的是 A.类自身的成员函数可以访问自己定义的任何成员 B.类的对象只能访问公有成员 C.普通函数只能通过对象访问类的公有成员 D.一个类不能包含另一个类的对象作为成员 8.在派生中,访问控制方式没有下列哪种 A.publish B.public C.protected D.private 9.采用重载函数的目的是 A.实现共享 B.减少空间 C.提高速度 D.使用方便,提高可读性 10.设类A中包含若干其他类的对象作为成员,则在定义类A的构造函数时,应使用下列哪个符号将A::A(参数表)与成员初始化列表隔开 A., B.; C.: D.. 11.设存在数组a,其长度为Len,则下列哪个泛型算法用于对a进行升幂排序 A.reverse(a,a+Len); B.sort(a,a+Len); C.find(a,a+Len,value); D.copy(a,a+Len,b); l2.函数int sum(int a=10,int b=15,int c=25);不可与下列哪个函数同时声明 A.int sum(int,int,int,int) B.int sum(int,int,int) C.int sum(double) D.int sum(double,double,double); 13.对函数int saveName(char * first,char * sec=" ",char * thd=" ")下列调用方法不对的的是 A.int s=saveName("1","2","3"); B.int s=saveName("1","2"); C.int s=saveName("1"); D.int s=saveName("1",,"3"); 14.下列哪个不是函数重载需要满足的条件 A.返回值类型不同 B.参数个数不同 C.参数个数相同时,参数类型不同 D.函数名相同 15.关于对象性质,下列描述错误的是 A.同一类对象之间不可互相赋值 B.可以使用对象数组 C.对象可以用作函数参数 D.一个对象可以用作另一个类的成员 16.可用作C++语言用户标记符的一组标记符是 A.void,define,+WORD B.a3_b3,_123,YN C.for,-abc,Case D.2a,DO,sizeof 1 7.设函数int& index(int a,int i)返回数组a中下标为i的元素,假如在整型数组int array[]={1,2,3},在执行index(array,1)+=3后,array中各元素值为 A.{4,2,3} B.{1,5,3} C.{1,2,6} D.{4,5,6} 1 8.对指针动态分派空间用的关键字是 A.define B.int C.new D.float 19.一个函数功能不太复杂,但规定被频繁调用,应选用 A.内联函数 B.重载函数 C.递归函数 D.嵌套函数 20.在int a=3,*p=&a;中,*p的值是 A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 非选择题部分 注意事项: 用黑色笔迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。 二、填空题(本大题共20小题,每小题1分,共20分) 21.默认参数是在___函数原型___中说明的,默认参数可以多于1个,但是必须放在参数序列的后部。 22.类所声明的内容用__花括号__括起来,之间的内容称为类体。 23.执行代码double pi=3.141592;cout<<pi;程序的输出结果是___3.14159___。 24.在文献输入流类中,用于判断提取操作是否已达成文献尾的方法是__eof()____。 25.常量成员涉及常量数据成员,静态常数成员,和___常引用___。 26.通过C++语言中的__派生____机制,可以从现存类中构建其子类。 27.假如一个函数直接或间接地调用自身,这样的调用称为___递归___调用。 28.使用C++编译器对C++源程序进行编译产生文献的扩展名是__.obj____。 29.C++的类成员由数据成员和__成员函数____组成。 30.C++面向对象程序设计的特点为:抽象,封装,继承和__多态____。 31.C++标准库string类中用于在主串中检索所需字符串的成员函数是__find____。 32.C++中函数参数有两种传递方式:传值和___传引用___。 33.在删除一个动态对象时,将自动调用该动态对象所属类的__析构____函数。 34.在C++当中,类外的函数只能通过类的对象使用该类的___公有成员___。 35.简朴成员函数是指声明中不含const,volatile,___static___关键字的函数。 36.执行cout<<char('a'+2)<<endl;后的显示结果为___c___。 37.假定类A有一个公有属性的静态数据成员b,在类外不通过对象名访问b的写法是__A::b____。 38.拷贝构造函数使用__已有的对象或对象____作为参数初始化创建中的对象。 39.一旦基类定义了虚函数,该基类的派生类中的___同名函数___也自动成为虚函数。 40.在C++类中,有一种类不能生成对象只能被继承,称之为___虚基类___。 三、改错题(本大题共5小题,每小题4分,共20分) 下面的类定义中有一处错误,请写犯错误所在行并给出修改意见。 41.#include<iostream.h> template<class T> T minx(T x,T y){ if(x>y) x=y; return x; } void main() { int a; double d; cout<<minx(a,d)<<endl; 函数参数不一致时怎么回事?具体 } 42.#include<iostream.h> class People{ public: void People(){} 构造函数不应当制定返回值类型 const int age()const{return 15;} char * name(){return"Green";} } ; void main() { const People s; int i=s.age(); cout<<"age="<<i<endl; } 43.#include<iostream.h> class A{ public:void show(){cout<<"class A show"<<endl;} } ; class B{ public:void show(){cout<<"class B show"<<endl;} } ; class C:public A,public B{ public:void print(){cout<<"class C print"<<endl;} } ; void main(){ C c; c.show();多继承中,基类函数名相同,出现不明确的调用 c.print(); } 44.#include<iostream.h> class Student{ int x=0,y=0;类声明成员时不允许初始化。 public: Student(){ x=1; y=l; } Student(int a,int b){ x=a; y=b; } void get(){ cout<<x<<" "<<y<<endl; } } ; int main(){ Student student(5,6); student.get(); } 45.#include <iostream.h> class Base{ public:virtual void fun()=0; } ; class Test:public Base{ public:virtual void fun(){cout<<"Test.fun="<<endl;} } ; void main(){ Base a;抽象类不能实例化 Test *p;p=&a; } 四、完毕程序题(本大题共5小题,每小题4分,共20分) 46.在下面程序横线处填上适当内容,使程序执行结果为:40:15 程序如下: #include <iostream.h> template<class T> T func(T x,T y){ if(sizeof(T)==8) return __x+y____; else return __x*y____; } void main(){ cout <<func(8,5)<<":"<<func(5.0,10.0)<<endl; int d;cin >>d: } 47.在下面程序横线处填上适当内容,使程序执行结果为: x=0,y=0 x=1,y=2 x=10,y=20 程序如下: #include<iostream.h> class Sample } int x,y; public: Sample(){__x=y=0;____} Sample(_int a ,int b_____){x=a;y=b;} void disp() { cout<<"x="<<x<<",y="<<y<<endl; } }; void main() { Sample s1,s2(1,2),s3(10,20); Sample *pa[3]={&s1,&s2,&s3}; for(int i=0;i<3;i++) pa[i]->disp(); } 48.在下面程序横线处填上适当内容,使程序执行结果为: n=30 程序如下: #include<iostream.h> template<class T> class Test { T n; public: Test(){} Test(T i){n=i;} Test<T>__operator+___(const Test<T>&s) { static Test<T>temp; _temp.n=n+s.n_____; return temp; } void disp(){cout<<"n="<<n<<endl;} } ; void main() { Test <int>t1(4),t2(5),t3; t3=t1+t2; t3.disp(); } 49.在下面程序横线处填上适当内容,使程序执行结果为: n=2,sum=2 n=3,sum=5 n=5,sum=10 程序如下: #include<iostream.h> class Test { int n; static int sum; public: Test(int x){n=x;} void add(){_sum+=n_____;} void disp() { cout<<{"n="<<n<<",sum="<<sum<<endl; } } ; int __test::sum____=0; void main() { Test a(2),b(3),c(5); a.add(); a.disp(); b.add(); b.disp(); c.add(); c.disp(); } 50.在下面程序中的横线处填上适当内容,使程序完整 #include<iostream.h> _class b_____ class A { int i; public: int set(B&); int get(){return i;} A(int x){i=x;} } ; class B { int i; public: B(int x){i=x;} _friend_____ A; } ; int A::set(B&b) { return i=b.i; } void main() { A a(1); B b(2); cout<<a.get()<<","; a.set(b); cout<<a.get()<<endl; } 五、程序分析题(本大题共2小题,每小题5分,共10分) 51.下面程序中A是抽象类,其输出是什么? #include <iostream.h> class A{ public: virtual void printMe(){cout<<"This is class A printing. "<<endl;}; } ; class B:public A{ public: void printMe() {cout << "This is class B printing. "<<endl;} } ; class C:public B{ public: void printMe() {cout <<"This is class C printing. "<<endl;} } ; void print(A a) { a.printMe(); } void main() { B b; C c; print(b);print(c); } 52.写出此程序的执行结果: #include <iostream.h> template<class T> T func(T x,T y){ if(sizeof(T)==8) return x+y; else return x*y; } void main(){ cout <<func(8,5)<<":"<<func(5.0,10.0)<<endl; int d;cin>>d: } 六、程序设计题(本大题共1小题,共10分) 53.设计一个Bank类,实现银行某账号的资金往来账目管理,涉及建账号、存入、取出等。解:Bank类涉及私有数据成员top(当前账指针),date(日期),money(金额),rest(余额)和sum(累计余额)。有三个成员函数bankin()(解决存入账),bankout()解决取出账)和disp()(输出明细账)请完毕函数的实现。 本题程序如下: #include<stdio.h> #include<string.h> #define Max 100 class Bank { int top; char date[Max][10];//日期 int money[Max];//金额 int rest[Max];//余额 static int sum;//累计余额 public: Bank(){top=0;} void bankin(char d[ ],int m){…} void bankout(char d[ ],int m){…} void disp(){…}; } ; 2023年10月全国自考C加加程序设计试题参考答案- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 全国 10 自学考试 C+ 程序设计 试题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文