[计算机类试卷]国家二级(C++)机试模拟试卷69及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷69及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷69及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 69及答案与解析 一、选择题 1 下列关于栈的叙述正确的是 ( )。 ( A)栈按 “先进先出 “组织数据 ( B)栈按 “先进后出 “组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 2 关于运算符重载,下列表述中正确的是 ( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声明为基本数据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建 C+中原来没有的运算符 3 有如下程序: #include using namespace std; class Music public:
2、void setTitle(char* str) strcpy(title, str); protected: char type 10 ; private: char title 20 ; ; class Jazz : public Music public: void set(char* str) strcpy(type, “Jazz“); / strcpy(title, str); / ; 下列叙述中正确的是 ( )。 ( A)程序编译正确 ( B)程序编译时语句 出错 ( C)程序编译时语句 出错 ( D)程序编译时语句 和 都出错 4 数据库设计中反映用户对数据要求的模式是 ( )。
3、 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 5 在 C+中,编译系统自动为一个类生成默认构造函数的条件是 ( A)该类没有定义任何有参构造函数 ( B)该类没有定义任何无参构造函数 ( C)该类没有定义任何构造函数 ( D)该类没有定义任何成员函数 6 在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是 ( A) () ( B) ( C) 0; i-=3) n+; n的值是 ( A) 23 ( B) 24 ( C) 25 ( D) 71 17 有如下类定义: class Base1 int m; public: Base(int m1): m(m1)
4、; class Base2 int n; public: Base(int n1): n(n1) ; class Derived: public Base2,public Base1 int q; public: Derived(int m1, int n1, int q1): q(q1),Base1(m1),Base2(n1); ; 在创建一个 Derived 对象时,数据成员 m、 n 和 q 被初始化的顺序是 ( A) m、 n、 q ( B) n、 m、 q ( C) q、 m、 n ( D) q、 n、 m 18 有如下程序段: int i=100; while ( int i=10
5、 ) cout #include using namespace std; class MyBag public: MyBag(string br,string cr):brand(br),color(cr) +count; MyBag() -count; static int GetCount() return count; private: string brand,color; static int count; ; int MyBag:count=0; int main() MyBag one(“CityLife“,“Gray“),two(“Micky“,“Red“); cout T1
6、 FUN(T2 n) return n*5.0; 若要求以 int型数据 9作为函数实参调用该模板,并返回一个 double型数据,则该调用应表示为 ( A) FUN(9) ( B) FUN ( C) FUN(9) ( D) FUN(double) 28 下列语句或语句序列中错误的是 ( A) inta;constint*point= ( B) constinta=10; ( C) constint*point=10; ( D) constint*point=newint(10); 29 有如下类和变量定义: class Parents public: int publicData; priv
7、ate: int privateData; ; class dA : public Parents /*类体略 */ ; class dB : private Parents /*类体略 */ ; dA x; dB y; 下列表达式中正确的是 ( A) x.publicData ( B) x.privateData ( C) y.privateData ( D) y.publicData 30 在下列选项中,不允许作为 C+标识符的是 ( A) 999a ( B) _ ( C) T ( D) mmm 31 当一个派生类对象结束其生命周期时,系统自动做的事情是 ( A)先调用派生类的析构函数后调
8、用基类的析构函数 ( B)先调用基类的析构函数后调用派生类的析构函数 ( C)如 果派生类没有定义析构函数,则只调用基类的析构函数 ( D)如果基类没有定义析构函数,则只调用派生类的析构函数 32 设序列长度为 n,在最坏情况下,时间复杂度为 O(log2n)的算法是 ( A)二分法查找 ( B)顺序查找 ( C)分块查找 ( D)哈希查找 33 下面是重载为非成员函数的运算符的函数原型,其中错误的是 ( )。 ( A) Fractionoperator+(Fraction,Fraction); ( B) Fractionoperator-(Fraction); ( C) Fraction (
9、 D) Fraction 34 在下列枚举符号中,用来表示 “相对于当前位置 “文件定位方式的是 ( )。 ( A) ios_base:cur ( B) ios_base:beg ( C) ios_base:out ( D) ios_base:end 35 对 C+编译器区分重载函数无任何意义的信息是 ( )。 ( A)参数类型 ( B)参数个数 ( C)返回 值类型 ( D)常成员函数关键字 const 36 有如下程序: #include using namespace std; class MyClass public: MyClass(int i=0) cout usingnamesp
10、acestd; clasSStudentInfo protected: ERROR*found* CharName; intAge; intID; intCourseNum; floatRecord; public: StudentInfo(char*name, intAge, intID, intcourseNum, floatrecord); ERROR*found* voidStudentInfo() floatAverageRecord() returnRecord CourseNum; voidshow()const coutID=ID; CourseNum=courseNum; R
11、ecord=record; intmain() StudentInfost(”Smith”, 21, 99999, 12, 970); st show(); return0; 三、简单应用题 42 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中包含一个程序文件 main cpp,其中有日期类 Date、人员类 Person及排序函数sortByName和主函数 main的 定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为: 按姓名排序 排序前 张三男出生日期: 1978年 4月 20日 王五女出生日
12、期: 1965年 8月 3日 杨六女出生日期: 1965年 9月 5日 李四男出生日期: 1973年 5月 30日 排序后: 李四男出生日期: 1973年 5月 30日 王五女出生日期: 1965年 8月 3日 杨六女出生日期: 1965年 9月 5日 张三男出生日期: 1978年 4月 20日 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 #include usingnamespacestd; classDate日期类 intyear, month, day;年、月、日 public: Date(intyear, intmonth, i
13、ntday): year(year), month(month), day(day) intgetYear()constreturnyear; intgetMonth()constreturnmonth; intgetDay()constreturnday; ; classPerson人员类 charname14;姓名 boolismale;性别,为 true时表示男性 Datebirthdate;出生日期 public: Person(char*name, booliSmale, Datebirth_date) *found* : _ strcpy(this-name, name); con
14、stchar*getName()constreturnname; boolisMale()constreturnis male; DategetBirthdate()constreturn birthdate; 利用 strcmp()函数比较姓名,返回一个正数、 0或负数,分别表示大于、等于、小于 intcompareName(constPerson p) const *found* _ voidshow() couti) PersonP=psm; psm=psi; psi=p; intmain() Personstaff= Person(“张三 “, true, Date(1978, 4,
15、20), Person(“王五 “, false, Date(1965, 8, 3), Person(“杨六 “, false, Date(1965, 9, 5), Person(“李四 “, true, Date(1973, 5, 30) ; constintsize=sizeof(staff) Si zeof(staff0); inti; cout usingnamespacestd; #include“prj3 h“ intFriFun(FriFunClassx) *333* 由于函数 FriFun()是类 FriFunClass的友元函数。所以它可以直接访问 a和 b *666* in
16、tmain() FriFunClassn(10, 20); if(FriFun(n) cout,所以答案为 C选项 。 7 【正确答案】 D 【试题解析】 用来表示变量、符号常量、函数、数组类型等实体名字的有效字符序列称为标识符,标识符由字母、数字、和下划线 3种字符组成,且第一个字符必须为字母或者下划线。所以 D选项错误。 8 【正确答案】 B 【试题解析】 本题考查运算符重载,重载运算符不能定义新的运算符, C+规定=, , (), -这四个运算符只能被重载为类的非静态成员函数,其他的可以被友元重载,主要是因为其他的运算符重载函数都会根据参数类型或数目进行精确匹配,这四个不具有这种检查的功
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 69 答案 解析 DOC
