[计算机类试卷]国家二级(C++)机试模拟试卷165及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷165及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷165及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 165及答案与解析 一、选择题 1 下列关于栈叙述正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先被删除 2 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)以上说法都不正确 3 某二叉树共 有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在第 1层 )( )。 ( A) 3
2、 ( B) 4 ( C) 6 ( D) 7 4 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)学生成绩管理系统 ( B) C语言编译程序 ( C) UNIX操作系统 ( D)数据库管理系统 5 结构化程序所要求的基本结构不包括 ( )。 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 6 下面描述中错 误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) PAD图
3、是软件详细设计的表示工具 7 负责数据库中查询操作的数据库语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 8 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联 系 ( D) m: n联系 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)并 ( C)交 ( D)差 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( )。 ( A) -369
4、( B) 369 ( C) 0 369 ( D)整数集合 1, 2, 3, 4, 5 11 C+语言对 C语言做了很多改进, C+语言相对于 C语言的最根本的变化是( )。 ( A)增加了一些新的运算符 ( B)允许函数重载,并允许设置默认参数 ( C) 规定函数说明符必须用原型 ( D)引进了类和对象的概念 12 下列 ( )是 C+语言的有效标识符。 ( A) No1 ( B) No 1 ( C) 12345 ( D) int 13 设有定义 int x; float y;,则 10+x+y值的数据类型是 ( )。 ( A) int ( B) double ( C) float ( D)不
5、确定 14 下列程序的执行结果为 ( )。 #include iostream h void main() int a=3, b=0; int*p=&a; b=+a+: cout *p “, “ b endl; ( A) 3, 4 ( B) 4, 3 ( C) 3, 4 ( D) 4, 4 15 下面程序的运行结果为 ( )。 #include iostream h void main() for(int a=0, x=0; !x&a =10; a+) a+; cout a endl; ( A) 10 ( B) 11 ( C) 12 ( D) 0 16 下面有关 for循环的正确描述是 ( )
6、。 ( A) for循环只能用于循环次数已经确定的 情况 ( B) for循环是先执行循环体语句,后判断表达式 ( C)在 for循环中,不能用 break语句跳出循环体 ( D)在 for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 17 以下程序中调用 cin函数给变量 a输入数值的方法是错误的,其错误原因是( )。 #include iostream h void main() int*p, *q, a, b; p=&a; cout “input a: “: cin p; ( A) *p表示的是指针变量 p的地址 ( B) p表示的是变量 a的 地址,而不是变量 a的值 (
7、 C) *p表示的是指针变量 P的值 ( D) *P只能用来说明 P是一个指针变量 18 假定 int类型变量占用两个字节,其有定义 int x10=0, 2, 4;,则数组 x在内存中所占字节数是 ( )。 ( A) 3 ( B) 6 ( C) 10 ( D) 20 19 下列选项,不正确的是 ( )。 ( A) for(int a=1; a =10; a+); ( B) int a=1; do a+: while(a =10); ( C) int a=1; while(a =10) a+; ( D) for(int a=1; a =10; a+)a+; 20 下面关于数组的初始化正确的是
8、( )。 ( A) char str=a, b, c ( B) char str2=a, b, c ( C) char str23=a, b, c, d, e, f ( D) char str()=a, b, c 21 下列程序的输出结果为 ( )。 #include iostream h void main() char*a=“hello“, “the“, “world“; char*pa=a: pa+; cout *pa endl; ( A) hello ( B) the ( C) wodd ( D) hellotheworld 22 决定 C+语言中函数的返回值类型的是 ( )。 ( A
9、) return语句中的表达式类型 ( B)调用该函数时系统随机产生的类型 ( C)调用该函数时的主调用函数类型 ( D)在定义该函数时所指定的数据类型 23 有以下程序: #include iostream h void fun(int a, int b, int c) a=456, b=567, c=678; void main() int x=10, y=20, z=30; fun(x, y, z); cout x , y , z endl; 输出结果是 ( )。 ( A) 30, 20, 10 ( B) 10 20, 30 ( C) 456, 567, 678 ( D) 678, 56
10、7, 456 24 以下叙述正确的是 ( )。 ( A)函数可以嵌套定义但不能嵌套调用 ( B)函数既可以嵌套调用也可以嵌套定义 ( C)函数既不可以嵌套定义也不可以嵌套调用 ( D)函数可以嵌套调用但不可以嵌套定义 25 下列程序的输出结果是 ( )。 #include iostream h int min(int a, int b) if(a b)return a; else return b; return0; void main() cout min(1, min(2, 3) endl; ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 下列程序的运行结果为 ( )。 #i
11、nclude iostream h void print(double a) cout +a: void print(int a, int b) cout b a: void main() print(1 2); cout “ “; print(3, 4); ( A) 1 2 34 ( B) 2 2 34 ( C) 1 2 43 ( D) 2 2 43 27 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是 ( )。 ( A)公有类型 ( B)私有类型 ( C)保护类型 ( D)友元类型 28 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并
12、执行其他内部管理操作的函数是 ( )。 ( A)友元函数 ( B)虚函数 ( C)构造函数 ( D)析构函数 29 类的析构函数的作用是 ( )。 ( A)一般成员函数的初始化 ( B)类的初始化 ( C)对象的初始化 ( D)删除类创建的对象 30 下列说法正确的是 ( )。 ( A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 ( B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 ( C)类的内联函数必须在类体内定义 ( D)类的内联函数必须在类体外通过加关键字 inline定义 31 下面对静态数据成员的描述中,正确的是 ( )。 ( A)静态数据成员可以
13、在类体内进行初始化 ( B)静态数据成员不可以被类的对象调用 ( C)静态数据成员不能受 private控制符的作用 ( D)静态数据成员可以直接用类名调用 32 下面对于友元函数描述正确的是 ( )。 ( A)友元函数的实现必须在类的内部定义 ( B)友元函数是类的成员函数 ( C)友元函数破坏了类的封装性和隐藏性 ( D)友元函数不能访问类的私有成员 33 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。 ( A)派生类的对象可以赋给基类的对象 ( B)派生类的对象可以初始化基类的引用 ( C)派生类的对象可以直接访问基类中的成员 ( D)派生类的对象的地址可以
14、赋给指向基类的指针 34 下面程序的运行结果为 ( )。 #include iostream h class A public: A()cout “1“; A()cout “2“; ; class B: public A public: B()cout “3“; B()cout “4“; ; void main() B b; ( A) 1234 ( B) 1324 ( C) 1342 ( D) 3142 35 下列关于虚基类的描述,错误的是 ( )。 ( A)设置虚基类的目的是为了消除二义性 ( B)虚基类的构造函数在非虚基类之后调用 ( C)若同一层中包含多个虚基类,这些虚基类的构造函数按它
15、们说 明的次序调用 ( D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 36 下列关于多态性的描述,错误的是 ( )。 ( A) C+语言中的多态性分为编译时的多态性和运行时的多态性 ( B)编译时的多态性可通过函数重载实现 ( C)运行时的多态性可通过模板和虚函数实现 ( D)实现运行时多态性的机制称为动态绑定 37 下列运算符中,在 C+语言中不能重载的是 ( )。 ( A) * ( B) = ( C): ( D) 38 当使用 fstream流类定义一个 流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( )。 ( A) ios: in ( B) io
16、s: out ( C) ios: in|ios: out ( D)以上都不对 39 下列程序的运行结果是 ( )。 #include iostream h class A int a; public: A()a=0; A(int aa) a=aa; cout a+: ; void main() A x, y(2), z(3); cout endl; ( A) 00 ( B) 23 ( C) 34 ( D) 25 40 下面程序的输出结果是 ( )。 #include iostream h class example int a; public: example(int b)a=b+; void
17、 print()a=a+1; cout a “ “; void print()constcout a “ “; ; void main() example x(3); const example y(2); x print(); y print(); ( A) 2 2 ( B) 4 3 ( C) 4 2 ( D) 3 2 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,其中有枚举 DOGCOLOR、狗类 Dog和主函数 main的定义。程序中位于每个 “ERROR*found*”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: T
18、here is a white dog named Hoho There is a black dog named Haha There is a motley dog named Hihi 注意:只修改每个 ERROR*found*下的那一行,不要改动程序中的其他内容。 #include iostream using namespace std; 狗的颜色:黑、白、黄、褐、花、其他 enum DOCCOLORBLACK, WHITE, YELLOW, BROWN, PIEBALD,OTHER; class Dog狗类 DOGCOLOR color; char name20; static i
19、nt count; puMic: Dog(char name, DOGCOLOR color) strcpy(this- name, name); ERROR*found* strcpy(this- color, color); DOGCOLOR getColor()constreturn color; ERROR*found* const char*getName()constlretulnlIInttnl; const char*getColorString()const switch(color) case BLACK: return“black“; case WHITE: return
20、“white“; case YELLOW: return“yellow“; case BROWN: return“brown“; case PIEBALD: return“piebald“; return“motley“; void show()const cout “There is a“ getColorString() “dog named“ name endl; ; int main() ERROR*found* Dog dog1(“Hoho“, WHITE), dos2(“Haha“, BLACK); dog3(“Hihi“, OTHER); dog1 show(); dos2 sh
21、ow(); dog3 show(); return0; 三、简单应用题 42 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,其中有矩阵基类 MatrixBase、矩阵类 Matrix和单 位阵 unitMatrix的定义,还有 main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在横线处填写适当的代码
22、,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 #include iostream using namespace std; 矩阵基础类,一个抽象类 class MatrixBase int rows, cols; public: MatrixBase(int rows, int cols): rows(rows), cols(cols) int getRows()const return rows; 矩阵行数 int getCols()constreturn cols; 矩阵列数 virtual double getElement(int r, int c)const=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 165 答案 解析 DOC
