[计算机类试卷]国家二级(C++)机试模拟试卷168及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷168及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷168及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 168及答案与解析 一、选择题 1 在关系代数运算中,有 5种基本运算,它们是 ( )。 ( A)并 ( )、差 (-)、交 ()、除 ()和笛卡儿积 () ( B)并 ( )、差 (-)、交 ()、投影 ()和选择 () ( C)并 ( )、交 ()、投影 ()、选择 ()和笛卡儿积 () ( D)并 ( )、差 (-)、投影 ()、选择 ()和笛卡儿积 () 2 在数据库系统的组织结构中,下列 ( )映射把用户数据库与概念数据库联系了起来。 ( A)外模式模式 ( B) 内模式外模式 ( C)模式内模式 ( D)内模式模式 3 下列关于线性链表的描述中,正确
2、的是 ( )。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点 (即前件或后件 ) 、结点由两部分组成:数据域和指针域。 ( A)仅 、 ( B)仅 、 ( C)仅 、 ( D)全部 4 下面关于数据库三级模式结构的叙述中,正确的是 ( )。 ( A)内模式可以有多个,外模式和模式只有一个 ( B)外模式可以有多个,内模式和 模式只有一个 ( C)内模式只有一个,模式和外模式可以有多个 ( D)模式只有一个,外模式和内模式可以有多个 5 设有关键码序列 (66, 13, 51, 76, 81, 26, 57, 69, 23),要按关键码值递增的次序排
3、序,若采用速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为 ( )。 ( A) 23, 13, 5l, 57, 66, 26, 81, 69, 76 ( B) 13, 23, 26, 51, 57, 66, 81, 76, 69 ( C) 23, 13, 51, 57, 26, 66, 81, 69, 76 ( D) 23, 13, 51, 57, 81, 26, 66, 69, 76 6 下列哪一条不属于数据库设计的任务 ?( ) ( A)设计数据库应用结构 ( B)设计数据库概论结构 ( C)设计数据库逻辑结构 ( D)设计数据库物理结构 7 数据库技术的根本目标是 ( )。
4、 ( A)数据存储 ( B)数据共享 ( C)数据查询 ( D)数据管理 8 需求分析阶段的任务是 ( )。 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 9 关系数据库管理系统能实现的专门关系运算包括 ( )。 ( A)排序、索引、统计 ( B)选择、投影、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 10 数据管理技术发展的三个阶段中, ( )没有专门的软件对数据进行管理。 人工管理阶段 文件系统阶段 数据库阶段 ( A)仅 ( B)仅 ( C) 和 ( D) 和 11 阅读以下程序: #include iostream h void
5、maim() static int a2=5,3, 1, 2; int i, j, s1=0; for(i=0; i 2; i +) fort(j=0; j 2 j+) if(i=j) s1=s1+aij; cout s1 endl; 则该程序的输出结果为 ( )。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 12 若有如下程序段: #include iostream using namespace std; int main() char*p=“abcdefgh“, *r; r=p; cout *r endl; return 0; 该程序的输出结果是 ( )。 ( A) a (
6、B) b ( C) c ( D) d 13 有如下程序: #include iostream using namespace std; void fun(int ( A) x=15 ( B) x=17 ( C) x=23 ( D) x=25 16 分析下 面程序,该程序的运行结果是 ( )。 #include iostream h class TestClass public: static int m; TestClass () m+; TestClass(int n) re=n; static void test() m+; ; int TestClass: m=0; void main(
7、) TestClass A; TestClass B(3); A test(); TestClass: test(); cout m= B.m endl; ( A) m=3 ( B) m=4 ( C) m=5 ( D) m=6 17 下列说法中错误的是 ( )。 ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍是 private的 ( C)私有继承时基类中的 public成员在派生类中是 private的 ( D)保护继承时基类中的 public成员在派生类中是 protected的 18 下面关于构造函数和
8、析构函数的描述,错误的是 ( )。 ( A)析构函数中调用虚函数采用静态联编 ( B)对虚析构函数的调用可以采用动态联编 ( C)当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数 ( D)构造函数可以声明为虚函数 19 有如下程序: #include iostream using namespace std; class TestClass public: TestClass ()cout BASE; ; class TestClass1: public TestClass public: TestClass1 ()cout DERIVED; ; int main()TestCla
9、ss1 x; return 0; 执行后的输出结果是 ( )。 ( A) BASE ( B) DERIVED ( C) BASEDERIVED ( D) DERIVEDBASE 20 设有以下定义和程序: #include iostream h class TestClass1 public: void show1() cost TestClass1 endl; ; class TestClass2: TestClass1 public: void show2() tout TestClass2 endl; ; class TestClass3: protected TestClass2 pu
10、blic: void show3() cout TestClass3 endl: ; void main() TestClassl obj1; TestClass2 obj2; TestClass3 obj3; 则以下不合语法的调用语句是 ( )。 ( A) obj1 show1(); ( B) obj2 show1(); ( C) obj3 show1(); ( D) obj2 show2(); 21 下面程序段的正确输出是 ( )。 int w=4, x=3, y=2, z=1; cout (w x?w: z y?z: x) endl; ( A) 0 ( B) 1 ( C) 2 ( D)
11、3 22 若变量都已正确说明,则以下程序段的输出结果是 ( ) a=2; b=3; printf(a b?*a= d: #b= da, b); ( A)没有正确的输出格式控制 ( B)输出为: *a=2 ( C)输出为: #=2 , ( D)输出为: *a=2#=2 23 若执行以下程序时从键盘上输入 9,则输出结果是 ( )。 main() int n; cin n; if(n+ 10)cout n endl; else cout n- endl; ( A) 11 ( B) 10 ( C) 9 ( D) 8 24 以下程序的输出结果是 ( )。 main() int a=4, b=5, c=
12、0, d; d=!a& !b !c; cout d endl; ( A) l ( B) 0 ( C)非 0的数 ( D) -1 25 给出下面程序输出结果 ( )。 #include iostmam h void main() int *p1; int*p2=&p1; int b=20; p1=&b; cout *p2 endl; ( A) 10 ( B) 20 ( C) 40 ( D) 30 26 在下面的 4个关键字中用来说明虚函数的是 ( )。 ( A) virtual ( B) public ( C) protected ( D) private 27 如果有以下定义及初始化: int
13、 a=3, *p=&a; 则由此可以推断, *p的值是 ( )。 ( A)变量 a的值,即 3 ( B)变量 a的地址值 ( C)变量 p的地址值 ( D)无意义 28 下列字符串 中,正确的 C+标识符是 ( )。 ( A) foo-1 ( B) 2b ( C) new ( D) -256 29 内部格式控制操作函数是在头文件 ( )中定义的。 ( A) iostream h ( B) iomanip h ( C) istream h ( D) ostream h 30 执行语句: cout setfill(*) setw(10) setfill(#) left 123OK endl; re
14、turn 0; 后将输出 ( )。 ( A) 123*OK ( B) 123#OK ( C) 123*OK* ( D) 123#OK# 31 下列对模板的声明中,正确的是 ( )。 ( A) template T ( B) template class T1 T2 ( C) template class T1, class T2 ( D) template class T1; class T2 32 有如下程序: #include iostrcam using namespace std; class AA int n; public: AA(int k): n(k) int get() re
15、turn n; int get()constreturn n+1; ; int main() AA a(5); const AA b(6); cout a get() b get() return 0: 执行后的输出结果是 ( )。 ( A) 55 ( B) 57 ( C) 75 ( D) 77 33 关于函数重载,下列叙述中错误的是 ( )。 ( A)重载函数的函数名必须相同 ( B)重载函数必须在参数个数或类型上有所不同 ( C)重载函数的返回值类型必须相同 ( D)重载函数的函数体可以有所不同 34 以下程序的执行结果为 ( )。 #include iostream h class Sa
16、mple int n: public: Sample(int i) n=i; operator+() n+; 前缀重载运算符 operator+(int)n+=2; 后缀重载运算符 void disp() cout n= n endl: ; void main() Sample A(2), B(2); A+; +B: a disp(); b disp(); ( A) n=4 n=3 ( B) n=1 n=2 ( C) n=3 n=4 ( D) n=5 n=6 35 重载输入流运算符 “ ”必须使用的原型为 ( )。 ( A) istream&operator (istream&,类名 &);
17、( B) istream&operator (istream,类名 ); ( C) istream operator (istream,类名 ); ( D)类名 operator (istream&,类名 &); 36 运算符函数调用格式的表达式 “y x+”与表达式 “y operator (operator+(x,0)”的含义相同,由此可看出 ( )。 ( A) “ ”和 “+”都是作为成员函数重载的 ( B) “ ”和 “+”都是作为非成员函数重载的 ( C) “ ”是作为成员函数重载的, “+”是作为非成员函数重载的 ( D) “ ”是作为非成员函数重载的, “+”都是作为成员函数重载
18、的 37 派生类的构造函数的成员初始化列表中,不能包含 ( )。 ( A)基类的构造函数 ( B)派生类中子对象的初始化 ( C)基类中子对象的初始化 ( D)派生类中一般数据成员的初始化 38 在下面的类定 义中,横线处应填入的内容是 ( )。 class Fred public: void print()cout data endl; ) void setData(double d) data=d; static int count; private: double data; ; count=0; 静态数据成员的定义 ( A) int ( B) static int ( C) int F
19、red: ( D) static int Fred: 39 下列关于 this指针的叙述中,正确的是 ( )。 ( A)任何与类相关的函数都有 this指针 ( B)类的成员函数都有 this指针 ( C)类的友元函数都有 this指针 ( D)类的非静态成员函数才有 this指针 40 下列情况中,不会调用拷贝构造函数的是 ( )。 ( A)用一个对象去初始化同一类的另一个新对象时 ( B)将类的一个对象赋值给该类的另一个对象时 ( C)函数的形参是类的对象,调用函数进行形参和实参结合时 ( D)函数的返回值是类的对 象,函数执行返回调用时 二、基本操作题 41 使用 VC6打开考生文件夹下
20、的源程序文件 modi1 clap,该程序运行时有错误,请改正错误,使得程序输出: Hello test 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include iostream *error* template T void fun(T t) std: cout test std: endl; *error* template bool void fun(bool t) std: cout (t?Hello: Hi) std: endl; int main() *error* bool flag=TRUE; fun(flag
21、); fun(int)flag); return 0; 三、简单应用题 42 使用 VC6打开考生文件夹下 的源程序文件 modi2 cpp。请完成函数 fun(int x),该函数功能是将 x的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到 modi2 txt文件中。 例如: x=13, 13的二进制数字为 1101,则输出到屏幕的为 1101。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #include iostream #include fstream #include cmath using namespace st
22、d; void WriteFile(char*str) orstream out1; out1 open(modi2 txt“,ios_base: binary ios _base: app); for(int i=0; stri!=0; i+) out1 put(stri); out1 close(); void ftm(int x) void ClearFile() ofstream out1; out1 open(modi2: txt); out1 close(); intmain() ClearFile(); fun(13); return 0; 四、综合应用题 43 使用 VC6打开
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 168 答案 解析 DOC
