2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案_第1页
2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案_第2页
2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案_第3页
2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案_第4页
2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

2023年大学试题(计算机科学)-C++语言程序设计考试历年重点考核试题含答案(图片大小可自由调整)第1卷一.参考题库(共50题)1.中国有句俗语叫"三天打鱼两天晒网"。某人从1990年1月1日起开始 "三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是"晒网"。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 2.编程计算:1!+2!+3!+…+20!,并将结果输出。输出格式:1!+2!+3!+…+20!=表达式的值。3.如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。4.友元函数是被说明在()内的()成员函数。友元函数可访问该类中的成员。5.什么叫做可见性?6.键盘输入m和n(10<m<n≤32000),求出m~n间所有素数且按每行8个数形式输出。7.对象的存储类只有外部的和静态的。8.子类型是不可逆的。9.使用new运算符创建的对象,如果不使用delete运算符释放,它们会在生存期到了时被系统释放吗?10.虚拟函数是如何实现面向对象编程的多态性的,它会带来什么益处?11.在创建派生类对象时,构造函数的执行顺序是()A、对象成员构造函数―基类构造函数―派生类本身的构造函数B、派生类本身的构造函数―基类构造函数―对象成员构造函数C、基类构造函数―派生类本身的构造函数―对象成员构造函数D、基类构造函数―对象成员构造函数―派生类本身的构造函数12.利用顺序排序法将10个数按降序排列。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 13.多重继承是指一个基类派生出多个派生类的情况。14.在文件操作中,代表以追加方式打开文件的模式是()A、iso::ateB、iso::appC、iso::outD、iso::trunc15.分别用成员函数和友元函数重载运算符,使对实型的运算符“*”适用于复数运算。提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。16.简述队列和栈的异同17.C++语言中模板分为函数模板和类模板两种。18.有关专家十分关注珠江渔业资源的问题。目前珠江中大约有8000万条鱼,平均每年以3.5%的速度减少。请编写一个程序,计算在多少年之后鱼的数目下降到目前的一半?多少年后下降到目前的十分之一?(提示注意整数类型的取值范围)。19.面向对象的编程语言有哪些特点?20.派生类中成员的访问权限与基类的继承方式有关。21.简述使用友元的利弊。22.常类型指针有两种,一种是指针的地址值是常量,另一种是指针所指向的变量或对象是常量。23.给对象数组元素赋值时都要创建临时对象。24.采用inline定义内联函数时,在对于函数代码少、频繁调用的情况下特别有效。25.什么叫递归函数?简述其执行过程。26.求100以内(不含100)能被3整除且个位数为6的所有整数,并按从小到大的顺序存入数组a中。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 27.有如下程序:执行后的输出结果应该是() A、ACB、CAC、AD、C28.运算符[ ]只能用()运算符来重载,不能用友元运算符来重载。29.定义重载函数时,应保证()或()有所不同。30.定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写main函数使用这个类,实现对学生数据的赋值和输出。31.s1和s2是两个结构类型变量,若要使赋值s1=s2合法,则它们的说明应该是()A、s1只能接收相同类型的数据成员B、结构中的成员相同C、同一结构类型的变量D、存储字节长度一样的变量32.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为:()A、 x.aB、 x.a()C、 x->aD、 x->a()33.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。34.若有类T说明classT{inti;friendvoidfFriend(T&,int);};,则函数fFriend的错误定义是()A、voidfFriend(T&objT,intk){objT.i=k;}B、voidfFriend(T&objT,intk){k=objT.i;}C、voidT::fFriend(T&objT,int k){k+=objT.i;}D、voidfFriend(T&objT,intk){objT.i+=k;}35.编写一个程序,把一张1元钞票换成1分、2分和5分的硬币,每种至少有1枚,问有多少种换法?36.完成函数days,计算某个日期在这一年中是第几天。如1989年1月8是这一年的第8天。闰年判断条件:年份是4的倍数且不是100的倍数,或者年份是400的倍数。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 37.完数问题:若有一数,其值等于它的因子之和,则该数称为完数。例如,6的因子为1、2、3,而6=1+2+3,故6是完数。编程输出1000之内的所有完数及其因子。38.设计函数int-digit(int-num,int-k);返回整数num从右边开始的第k位数字的值,要求num位数小于10位。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在*Program*和*End*所标记的区域内完成题干要求的函数功能。 39.在c++中,类之间的继承关系具有()A、自反性B、对称性C、传递性D、反对称性40.以下正确的函数定义是()A、B、C、D、41.文件"file.txt"中存放了若干字符。函数int-tongji(int&n)是统计文件"file.txt"中数字和字母的个数。将字母个数存入到n中,数字的个数作为函数值返回。请实现该函数。 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。 42.在C++程序中使用的cout标识符是系统类库中定义的()类中的一个对象。A、 istreamB、 ostreamC、 iostreamD、 fstream43.C和C++中struct有什么区别?44.输入一个字符,如果为字母,则输出其ASCII码。45.编写程序找出二维整形数组中所有这样的元素及其位置:它在所在的行上是最大的,在所在的列上也是最大的。设数组中的元素各不相同。(提示:先在第i行中寻找此行最大值元素,记下其行和列,然后在其所在的列判断它是否也是最大的,若是则输出结果。可以引入标志变量表示找到这个元素。)46.编写函数distance,计算两点(x1,y1)和(x2,y2)之间的距离。47.构造函数可以被继承。48.商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3名销货员的销售情况为: 请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数据成员和静态成员函数。(提示:将折扣discount、总销售款sum和商品销售总件数n声明为静态数据成员,再定义静态成员函数average(求平均售价)和display(输出结果)。49.使用MFC编程时,OnDraw函数是CView类的成员函数。50.下列关于类之间关系的描述,正确的是()A、has-a表示一个类部分地使用另一个类B、uses-a表示类的包含关系C、is-a关系具有对称性D、is-a机制称为“继承”第1卷参考答案一.参考题库1.正确答案:2.正确答案:3.正确答案:错误4.正确答案:类体;非5.正确答案:可见性是标识符是否可以引用的问题。6.正确答案: 7.正确答案:错误8.正确答案:正确9.正确答案: 使用new运算符创建的对象,如果不使用delete运算符释放,它们不会在生存期到了时被系统释放。10.正确答案:虚拟函数的运用使操作不在编译时被关联到指针的原始类型的实现上,而是在运行时关联到指针真正指向的对象类型的实现上,即动态联编,从而实现了面向对象编程的多态性。虚拟函数和多态性使得设计和实现易于扩展的系统成为可能;虚拟函数和多态性的程序设计无需使用switch逻辑,使用用虚拟函数机制自动完成等价的逻辑,避免了与swilch逻辑有关的各类错误;当通过基类指针或引用请求使用虚函数时,编译器会在与对象关联的派生类中正确的选择重定义的函数;使用虚拟函数和多态性能够使成员函数的调用根据接收到该调用的对象的类型产生不同的动作。11.正确答案:D12.正确答案:13.正确答案:错误14.正确答案:B15.正确答案:16.正确答案:队列和栈都是线性存储结构,但是两者的插入和删除数据的操作不同,队列是“先进先出”,栈是“后进先出”。注意:区别栈区和堆区。堆区的存取是“顺序随意”,而栈区是“后进先出”。栈由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。它与本题中的堆和栈是两回事。堆栈只是一种数据结构,而堆区和栈区是程序的不同内存存储区域。17.正确答案:正确18.正确答案: 19.正确答案:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。20.正确答案:正确21.正确答案:使用友元的益处:在有些情况下,能够利用某些特定的全局函数或类的成员函数对某类的隐藏成员进行存取的这种特性是非常方便的,避免了将类中所有成员都设定为公有成员;使用友元的弊端:虽然声明友元可以方便的对类的非公有数据进行访问,但同时破坏了类的封装与信息隐藏性,并且难以维护。22.正确答案:正确23.正确答案:错误24.正确答案:正确25.正确答案:递归函数是指一个函数的函数体中直接调用或间接调用了该函数自身的函数。递归函数调用的执行过程分为两个阶段:(1)递推阶段:从原问题出发,按递归公式递推,从未知到已知,最终达到递归终止条件。(2)回归阶段:按递归终止条件求出结果,逆向逐步代入递归公式,回归到原问题求解。26.正确答案:27.正确答案:A28.正确答案:成员29.正确答案:参数个数;参数类型30.正确答案:31.正确答案:C32.正确答案:B33.正确答案:34.正确答案:C35.正确答案: 36.正确答案:37.正确答案: 38.正确答案:39.正确答案:C40.正确答案:A41.正确答案:42.正确答案:B43.正确答案: C.语言中:Struct是用户自定义数据类型(UDT)C++语言中: S.truct是抽象数据类型(ADT),支持成员函数的定义。 在C++中,struct的成员的默认访问说明符为public,class为private。c中

温馨提示

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

评论

0/150

提交评论