




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024年大学试题(计算机科学)-C++语言程序设计笔试历年真题荟萃含答案(图片大小可自由调整)答案解析附后卷I一.参考题库(共25题)1.关于类模板的静态数据成员,错误叙述的是()A、一个类模板实例化的所有对象共享一个静态数据成员B、每一个实例化的模板类都有自己的静态数据成员副本C、一个模板类实例化的所有对象共享一个静态数据成员D、类模板实例化的静态数据成员应该在文件范围内定义和初始化2.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。3.在下列选项中,()不是类的成员函数。A、构造函数B、析构函数C、友元函数D、复制构造函数4.设计一个程序,一行是信息,下一行画线,所画的线与信息行同长。例如C++Programming。5.在C++中,标识符Max和MAX是不一样的。6.只有for循环的循环体可以是空语句,其他种循环的循环体不能是空语句。7.编一程序,输入一行字符串,统计其中的小写英文字母的个数。8.编写一个将十进制整数转换为十六进制字符串的函数。9.要进行文件的输出,除了包含头文件iostream外,还要包含头文件()A、ifstreamB、fstreamC、ostreamD、cstdio10.用Vi编译器底行命令模式实现字符串替换,把当前文件中的“xiaodai”全部替换成“banzhang”。11.编写程序形成如下矩阵。 12.使用函数模板与类模板可能造成哪些性能问题?13.通常情况下,函数模板中的类型参数个数不能是()A、0个B、1个C、2个D、3个14.在C++中运行时多态性是通过什么方式来实现的?15.如果静态成员函数访问了非静态数据成员会出现怎样的错误并说明原因。16.指向对象的常指针的地址值是可以改变的。17.判断一个整数是否为回文数。18.编程要求打印下面图形。 19.内联函数的正确定义是()A、inlineintsmall();intsmall(){/*……*/}B、intsmall();inlineintsmall(){/*……*/}C、intinlinesmall();intsmall(){/*……*/}D、intsmall();intinlinesmall(){/*……*/}20.使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。21.在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于()中。A、 主文件B、 实现文件C、 库文件D、 头文件22.已知:constAa;其中A是一个类名,指向常对象指针的表示为()。A、const*ApaB、constA*paC、A*constpaD、const*paA23.在下列选项中,用于清除基数格式位设置以十六进制数输出的语句是()。A、cout<<setf(ios::dec,ios::basefield);B、cout<<setf(ios::hex,ios::basefield);C、cout<<setf(ios::oct,ios::basefield);D、cin>>setf(ios::hex,ios::basefield);24.结构化程序设计方法存在什么问题?25.具有纯虚函数的类是抽象类,它的特点是不可以定义对象。卷II一.参考题库(共25题)1.如何引用一个已经定义过的全局变量?2.如何打印出当前源文件的文件名以及源文件的当前行号?3.设置虚基类的目的是()。A、简化程序B、消除二义性C、提高运行效率D、减少目标代码4.重载函数在调用时选择的依据中,错误的是()。A、参数个数B、参数的类型C、参数的位置D、函数的返回值类型5.用new建立一个动态一维数组,并初始化int[10]={1,2,3,4,5,6,7,8,9,10},用指针输出,最后销毁数组所占空间。6.()是不可以作为某类的成员的。A、自身类对象的指针B、自身类的对象C、自身类对象的引用D、另一个类的对象7.在内存中,一个字符常量或变量是以ASCII码值存储的,它可直接作为整数值参加运算。8.编写一个程序,将两个字符串连接起来,不要使用strcat函数。9.输入十个同学成绩,统计80分以上的和不及格的人数并输出平均值。10.以下关于this指针的叙述中正确的是()A、任何与类相关的函数都有this指针B、类的成员函数都有this指针C、类的友员函数都有this指针D、类的非静态成员函数才有this指针11.在定义二维数组时,语句“inta[][3]={{1,3,5},{2}};”是正确的。12.将1元钱换成1分、2分、5分的硬币,问共有多少种换法,请将结果存入变量count。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 13.将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。然后将它和数组中的最前面的元素对换。14.类模板可以生成若干个模板类,每个模板类又可定义若干个对象。15.常成员指的是类体内使用const关键字说明的常数据成员和常成员函数。16.在创建派生类对象时,构造函数的执行顺序是()A、对象成员构造函数―基类构造函数―派生类本身的构造函数B、派生类本身的构造函数―基类构造函数―对象成员构造函数C、基类构造函数―派生类本身的构造函数―对象成员构造函数D、基类构造函数―对象成员构造函数―派生类本身的构造函数17.下面for语句执行时的循环次数为() A、0B、5C、10D、无限18.运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能直接通过函数调用是否可以?19.先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,在增加数据成员h(高)。编写程序,重载运算符“”,使之能够用于输出以上类对象。20.从若干学生成绩中统计高于平均分的人数k,用-1做为学生成绩数据的结束标志(说明:数组cj表示学生成绩)。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 21.使用关闭文件函数close()关闭一个文件时,但流对象仍存在。22.简述类模板实例化特点。23.在编译时将所用函数的代码嵌入到主调函数中,这种函数称为()。24.关于函数模板的同名函数重载,叙述正确的是()A、函数模板由调用自行实例化,不可以定义重载版本B、函数模板可以用不同类型,不同个数的参数重载C、函数模板只能用其他类属参数重载D、函数模板只能用参数个数相同参数重载25.每个对象都维护了一个指向自身的指针,这个指针称为()指针。卷III一.参考题库(共25题)1.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()A、public成员B、private成员C、protected成员D、友员2.定义一个基类Student(学生),在定义Student类的公用派生类Graduate(研究生),用指向基类对象的指针输出数据。为减少程序长度,在每个类中只设很少成员。学生类只设num(学号),name(姓名)和score(分数)3个数据成员,Gradute类只增加一个数据成员pay(工资)。具体初始化数据自己设定。3.在下列关于类型转换的描述中,错误的是()A、任何形式的构造函数都可以实现数据类型转换。B、带非默认参数的构造函数可以把基本类型数据转换成类类型对象。C、类型转换函数可以把类类型对象转换为其他指定类型对象。D、类型转换函数只能定义为一个类的成员函数,不能定义为类的友元函数。4.static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?5.为什么需要使用堆,使用堆空间的原因?6.以app方式打开文件时,当前的读指针和写指针都定位于文件尾。7.请用c++语句声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a。8.对象引用作为函数参数比用对象指针更方便些。9.如果在一个类的对象之间要进行数据交换,可以使用该类的静态数据成员来完成。10.switch语句中必须有break语句,否则无法退出switch语句。11.构造函数是一个其名与类名相同的特殊的成员函数。12.如果派生类的继承方式是protected的,则在main()函数中,可以通过派生类对象来访问基类的公有的成员。13.程序中的函数inv对数组m中的数据进行翻转转换,即将数组中第一个数和最后一个数交换、第二个数和倒数第二个数交换,依此类推。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 14.在C++中,关于下列设置参数默认值的描述中,()是正确的。A、不允许设置参数的默认值B、设置参数默认值只能在定义函数时设置C、设置参数默认值时,应该是先设置右边的再设置左边的D、设置参数默认值时,应该全部参数都设置15.有以下函数定义,该函数的类型是() A、B、C、D、double16.写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这10个整数中的素数的累加和。17.链表和数组有什么区别?18.输入10个同学的成绩,统计80分以上和不及格的人数,并输出平均值。19.C++中的struct和class有什么区别?20.一个类的友元不是该类的成员,与该类的关系密切,所以它()A、 有this指针,有默认操作的对象B、 没有this指针,可以有默认操作的对象C、 有this指针,不能执行默认操作D、 没有this指针,也就没有默认操作的对象21.关于类和对象不正确的说法是()A、类是一种类型,它封装了数据和操作B、对象是类的实例C、一个类的对象只有一个D、一个对象必属于某个类22.具有转换函数功能的构造函数,应该是()。A、不带参数的构造函数B、带有一个参数的构造函数C、带有两个以上参数的构造函数D、缺省构造函数23.简述类中使用常对象和常成员函数需要注意的问题。24.静态类标识符在它的作用域之外是不存在的。25.关于引用,下列的说法中错误的是()。A、引用是给被引用的变量取一个别名B、引用主要是用来作函数的形参和函数的返回值C、在声明引用时,要给它另开辟内存单元D、在声明引用时,必须同时使它初始化卷I参考答案一.参考题库1.参考答案:A2.参考答案:正确3.参考答案:C4.参考答案: 5.参考答案:正确6.参考答案:错误7.参考答案: 8.参考答案: 9.参考答案:B10.参考答案::%s/xiaodai/banzhang/g11.参考答案:12.参考答案:函数模板和类模板提供了软件复用的好处。但是尽管函数模板和类模板只编写一次,但程序中仍然实例化多个副本。这些副本仍然会占用大量内存。13.参考答案:A14.参考答案:在C++语言中,使用重载、模板和虚函数等概念来支持多态性。15.参考答案:将提示非法操作,静态成员函数无法访问非静态数据成员。由于静态成员函数不与任何类的对象相联系,故不能对非静态成员进行默认访问。16.参考答案:错误17.参考答案: 18.参考答案: 19.参考答案:A20.参考答案:正确21.参考答案:B22.参考答案:D23.参考答案:B24.参考答案:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。25.参考答案:正确卷II参考答案一.参考题库1.参考答案:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错2.参考答案: 3.参考答案:B4.参考答案:D5.参考答案:6.参考答案:B7.参考答案:正确8.参考答案:9.参考答案: 10.参考答案:D11.参考答案:正确12.参考答案:13.参考答案:14.参考答案:正确15.参考答案:正确16.参考答案:D17.参考答案:B18.参考答案: 运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能可以直接通过函数调用。19.参考答案:20.参考答案:21.参考答案:正确22.参考答案: (1)只有在类模板实例真正使用时才进行实例化; (2)实例化类模板时编译器需要知道类模板的定义; (3)实例化类模板时,除了构造函数和析构之外不会自动实例化类模板的其他成员函数。23.参考答案:内联函数24.参考答案:B25.参考答案:this卷III参考答案一.参考题库1.参考答案:A2.参考答案:3.参考答案:A4.参考答案: 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错 误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和 定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。5.参考答案:直到运行时才知道一个对象需要多少内存空间;不知道对象的生存期到底有多长。6.参考答案:正确7.参考答案: const定义的常量是有类型的,所以在使用它们时编译器可以检查类型错误;而且,这些常量在调试时是可见的。8.参考答案:正确9.参考答案:正确10.参考答案:错误11.参考答案:正确12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团队建设的年度提升计划
- 2025年着作权授权协议
- 医疗行业职业规划建议计划
- 主管年度信息化任务计划
- 学生参与课外活动的引导计划
- 股份划分协议(2025年版)
- 学期工作总结与持续发展计划
- 优化仓库供应链管理计划
- 加强行业趋势的分析研究计划
- 一年级下数学教案-两位数减整十数和一位数-新西师大版
- 语文-福建省莆田市2025届高中毕业班第二次教学质量检测试卷(莆田二检)试题和答案
- 师德师风培训笔记
- 江苏省扬州市广陵区扬州中学2024-2025学年高三下学期2月月考语文试题(含答案)
- 2025年南京城市职业学院单招职业技能测试题库完整
- 2024年安徽机电职业技术学院高职单招(英语/数学/语文)笔试题库含答案解析
- 个人所得税专项附加扣除及个人所得税计算培训
- 某电厂330MW机组八级热力系统及管道通流部分的设计
- 国际收付清算体系与实务从原理看SWIFT
- 迈达斯建模(贝雷梁、钢栈桥)
- ⊙生活中的“一次模型”
- 广东海事局辖区主要防台锚地或泊区情况表
评论
0/150
提交评论