[计算机类试卷]国家二级(C++)机试模拟试卷185及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷185及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷185及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 185及答案与解析 一、选择题 1 下列叙述中错误的是 ( )。 ( A)算法的时间复杂度与问题规模无关 ( B)算法的时间复杂度与计算机系统无关 ( C)算法的时间复杂度与空间复杂度没有必然的联系 ( D)算法的空间复杂度与算法运行输出结果的数据量无关 2 设表的长度为 20。则在最坏情况下,冒泡排序的比较次数为 ( )。 ( A) 190 ( B) 20 ( C) 19 ( D) 90 3 下列叙述中正确的是 ( )。 ( A)带链栈的栈底指针是随栈的操作而 动态变化的 ( B)若带链队列的队头指针与队尾指针相同,则队列为空 ( C)若带链队列的队头指针与队
2、尾指针相同,则队列中至少有一个元素 ( D)带链栈的栈底指针是固定的 4 设一棵树的度为 3,共有 27个结点,其中度为 3, 2, 0的结点数分别为 4, 1,10。该树中度为 1的结点数为 ( )。 ( A) 12 ( B) 13 ( C) 11 ( D)不可能有这样的树 5 下面描述中正确的是 ( )。 ( A)好的软件设计应是高内聚低耦合 ( B)内聚性和耦合性无关 ( C)内聚性是指多个模块间相互连接的紧 密程度 ( D)耦合性是指一个模块内部各部分彼此结合的紧密程度 6 某系统总体结构如下图所示 该系统结构图的最大扇出数、最大扇人数的总和是 ( )。 ( A) 5 ( B) 7 (
3、 C) 4 ( D) 8 7 下面属于应用软件的是 ( )。 ( A)人事管理系统 ( B) Oracle数据库管理系统 ( C) C编译系统 ( D) ios操作系统 8 下面选项中不是关系数据库基本特征的是 ( )。 ( A)不同的列应有不同的数据类型 ( B)不同的列应有不同的列名 ( C)与行的次序无关 ( D)与 列的次序无关 9 工厂生产中昕需的零件可以存放在多个仓库中,而每一仓库中可存放多种零件。则实体仓库和零件间的联系是 ( )。 ( A)多对多 ( B)一对多 ( C)多对一 ( D)一对一 10 学生和课程的关系模式定义为 S(S#, Sn, Sd, De, SA)(其属性
4、分别为学号、姓名、所在系、所在系的系主任、年龄 ); C(C#, Cn, P#)(其属性分别为课程号、课程名、先选课 ); SC(S#, C#, G)(其属性分别学号、课程号和成绩 )。 关系中包含对主属性传递依赖的 是 ( )。 ( A) S#Sd , SdDc ( B) S#Sd ( C) S#sd , (S#, C#)G ( D) C#P#, (S#, C#)G 11 下列选项中,不属于 C关键字的是 ( )。 ( A) for ( B) then ( C) inline ( D) while 12 下列选项中,错误的 C表达式是 ( )。 ( A) a 1 ( B) b 65 ( C)
5、 int(x) ( D) x 33 13 有如下程序段 int k 10; do cout *; while(k ); 运行时显示字符 *的个数是 ( )。 ( A) 8 ( B) 9 ( C) 10 ( D) 11 14 下列关于符号常量的叙述中,错误的是 ( )。 ( A)定义符号常量时要使用关键字 const ( B)符号常量在使用前必须先进行定义 ( C)符号常量的值在定义后可以修改 ( D) true是 C中预定义的符号常量 15 下列关于 new和 delete运算符的叙述中,错误的是 ( )。 ( A)使用 new运算符创建对象时要调用构造函数 ( B) new运算符返回指向操作
6、数类型变量的指针 ( C) new申请的动态空间应由 delete释放 ( D) delete运算符不能释放用 New申请的整个动态数组空间 16 下列字符串中不能作为 C标识符使用的是 ( )。 ( A) ab1N25 ( B) test3 ( C) 1481 ( D) _123 17 下列语句中正确的是 ( )。 ( A) const int*pNULL; ( B) const int y 99; ( C) const int x 0: ( D) const int z 100: 18 有如下程序: #inelude iostream using namespace std: int ma
7、in( ) int sum 0: for(int i 1; i 4; i ) for(int j 1; j i; j )sum j; cout sum end1: return 0: 运行后的输出结果是 ( )。 ( A) 20 ( B) 17 ( C) 16 ( D) 14 19 下列 选项中,不属于 C关键字的是 ( )。 ( A) byte ( B) namespace ( C) enum ( D) union 20 有如下枚举类型定义: enum DAY SUN, MON 10, TUE, WED, THU, FRI 20, SAT; 执行下列程序段 for(int i 0; i TH
8、U; i ) cout a end1: 输出字符 a的个数是 ( )。 ( A) 13 ( B) 16 ( C) 19 ( D) 22 21 下列各 程序段中与语句 temp a b?(b? c 1: 0): 0; 等价的是 ( )。 ( A) if(a b)&(b c) temp 1; else temp 0; ( B) if(a b)(b c) temp 1; else temp 0; ( C) if(a b) temp 0; else if(b c) temp 1; else temp 0: ( D) if(a b) temp 1; else if(b c) temp 1: else t
9、emp 0: 22 下列有关指针的操作中,正确的是 ( )。 ( A) int a 10; void*ptr &a; cout *(ptr); ( B) int*ptr new int10; delete ptr; ( C) int Array4; *( Array 3) 10; ( D) int*ptr: new int*10; 23 下列关于运算符重载的叙述中,错误的是 ( )。 ( A)运算符重载函数 不能改变运算符原有的优先级 ( B)重载运算符至少有一个操作数的类型是用户定义类型 ( C)运算符重载函数能够改变运算符原有的操作数个数 ( D)有的运算符可以作为非成员函数重载 24 下
10、列关于运算符函数的叙述中,错误的是 ( )。 ( A)运算符函数的参数表可能是空的 ( B)运算符函数可以创造一个新的运算符 ( C)运算符函数的名称是以 operator为前缀的 ( D)运算符函数的参数类型可以是类 25 下列运算符中,既可作为类成员函数重载,又可作为非成员函数重载的是( )。 ( A) ( B) ( C)输入流的提取运算符 ( D)输出流的插入运算符 26 下列关于运算符函数的叙述中,错误的是 ( )。 ( A)运算符函数的名称总是以 operator为前缀 ( B)有的运算符不能重载 ( C)即使没有重载运算符,也可用进行对象间的赋值 ( D)可以为重载运算符函数的参数
11、设置默认值 27 下列关于运算符重载的叙述中,错误的是 ( )。 ( A)运算符函数的名称总是以 operator为前缀 ( B)重载运算符时应保持其优先级不变 ( C)可以为运算符函数指定 默认参数 ( D)运算符重载是多态性的一种表现 28 下列关于构造函数的叙述中,错误的是 ( )。 ( A)构造函数在创建类对象时自动执行 ( B)可以为构造函数的参数设置默认值 ( C)构造函数要负责对静态数据成员进行初始化 ( D)复制构造函数的参数是对同类对象的引用 29 下列关于友元的叙述中,错误的是 ( )。 ( A)关键字 friend用于声明友元 ( B)友元必须在类体中声明 ( C)友元函
12、数通过 this指针访问对象成员 ( D)一个类的成员函数可以是另一个类的友元 30 下 列关于 this指针的叙述中,正确的是 ( )。 ( A)不能显式使用 this指针 ( B)类的友元函数中都有 this指针 ( C) this指针隐含于类的每一个静态成员函数中 ( D) this指针指出了成员函数当前操作的数据所属的对象 31 下列关于常成员的叙述中,正确的是 ( )。 ( A)常成员函数只能由常对象调用 ( B)常成员函数不能更新对象的状态 ( C)常数据成员可以被类对象共享 ( D)常数据成员可以在构造函数体中初始化 32 有如下类定义和变量定义: class A public:
13、 A( )data 0; A(int x)data x; A( ) void outData( )cout data; int getData(int n)eonst return data * n; private: int data; ; A a(5); const A b(8); 下列函数调用中错误的是 ( )。 ( A) a outData( ); ( B) b outData( ); ( C) a getData(10); ( D) b getData(10); 33 建立一个类对象时,系统自动调用 ( )。 ( A)析构函数 ( B)友元函数 ( C)静态函数 ( D)构造函数 3
14、4 有如下程序: #include iostream using namespaee std; int fun(char x, char y) if(x y) return x; return y; int main( ) int a(9), b(8), e(7); cout fun(fun(a, h), fun(b, c); return 0; 运行后的输出结果是 ( )。 ( A) 8 ( B) 9 ( C) 7 ( D)函数调用出错 35 计算数列第 11项的函数定义如下: int fa(int n) if(n 0)return 0; else if(n 1)return 1; else
15、 return fa(n 1) fa(n 2); 若执行函数调用表达式 fa(3)时,返回的函数值为 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 36 有如下程序; #include iostream using namespace std; void hey(_, int&b) int c; c a; a b; b c; int main( ) int m 14, n 20; hey(n1, n); cout m n: return 0; 运行后的输出结果是 “1414”,则横线处的语句应为 ( )。 ( A) int *a ( B) int &a ( C) int a
16、 ( D) a 37 有如下程序: #include iostream using namespace std; void f(int i)cout i ; void f(double d)cout d*2 ; int main( ) f(3 0); f(3); return 0; 运行后的输出结果是 ( )。 ( A) 6 3 ( B) 6 0 3 ( C) 3 6 ( D) 3 6 0 38 有如下程序: #include iostream using namespaee std; class Goods货物类 double unit_price;单价 int quantity;数量 pu
17、blic: Goods(double u 0 0, int q 0): unit_price(u), quantity(q) double getPrice( )eonstreturn unit_price; 返回单价 int getQuantity( )constreturn quantity; 返回数量 增加数量 Goods operator (int q)const return Goods(unit_price, quantity q); ; 增加数量 Goods operator (_)return g q; 输出货物信息 ostream&operator (ostream& os,
18、 Goods g) cout “单价: “ g getPrice( ) , “数量: “ g getQuantity( ) end1; return OS; f; int main( ) Goods g(35 6, 100); cout g g 33 25 g; return 0; 若运行后的输出结果是: 单价: 35 6,数量: 100 单价: 35 6,数量: 133 单价: 35 6,数量: 125 则程序中下划线处缺失部分应该是 ( )。 ( A) Goods q, Goods g ( B) Goods g, Goods q ( C) int q, Goods g ( D) Goods
19、 g, int q 39 下列关于类的静态成员的叙述中,错误的是 ( )。 ( A)静态成员函数可以直接访问类中的所有成员 ,无需对象名 ( B)静态成员属于类,为该类所有对象共享 ( C)静态数据成员必须在类外进行初始化 ( D)即使没有定义任何对象,也可以使用该类的公有静态成员 40 有如下类定义: class MyClass int k; public: MyClass(int n): k(n) ; 则下列数组定义中,错误的是 ( )。 ( A) MyClass m4 4 MyClass(1), MyClass(2), MyClass(3), MyClass(4); ( B) MyCla
20、ss m4 MyClass(1), MyClass(2), MyClass(3); ( C) MyClass m44 1, 2, 3; ( D) MyClass m4 1, 2, 3; 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,该工程中包含程序文件 main cpp,其中有类 Door(“门 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程 序的输出结果应为: 打开 503号门 门是锁着的,打不开。 打开 503号门的锁 锁开了。 打开 503号门 门打开了。 打开
21、 503号门 门是开着的,无须再开门。 锁上 503号门 先关门 门锁上了。 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespaee std; class Door int rlum;门号 bool closed; true表示门关着 bool locked; true表示门锁着 public: Door(int num) ERROR*found* num this num; dosed locked true: bool isClosed( )eonst return closed; 门关着时
22、返回 true,否则返回 false bool isOpened( )eonst return!closed; 门开着时返回 true,否则返回 false bool isLoeked( )eonst return locked; 门锁着时返回 true,否则返回 false bool isUnlocked( )eonst return!locked; 门未锁时返回 true,否则返回 false void open( ) 开门 cout end1 “打开 “ num “号 门 “ ; ERROR *found* if(closed) cout “门是开着的,无须再开门 “; else if(
23、locked) cout “门是锁着的,打不开。 “; else closed false; cout “门打开了。 “; void close( ) 关门 cout end1 “关上 “ num “号门 “ ; if(closed) cout “门是关着的,无须再关门。 “; eise closed true: cout “门关上了。 “; ERROR*found* void lock( )const锁门 cout end1 “锁上 “ num “号门 “ ; if(locked) cout “门是锁着的,无须再锁门。 “; else if(!closed) cout “先关门 “ ; cl
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 185 答案 解析 DOC
