1、国家二级( C+)笔试模拟试卷 39及答案与解析 1 在单项链表中删除一个指定结点的后继的时间复杂度为 _。 ( A) O(n) ( B) O(nlog2n) ( C) O(1) ( D) 2 一个栈的输入序列为 1, 2, 3, 4,下面 _ 序列不可能是这个栈的输出序列 ( A) 1, 3, 2, 4 ( B) 2, 3, 4, 1 ( C) 4, 3, 1, 2 ( D) 3, 4, 2, 1 3 下列排序方法中,属于不稳定的排序方法是 _。 ( A)直接插入排序法 ( B)冒泡排序法 ( C) 基数排序法 ( D)堆序法 4 对象实现了数据和操作的结合,使数据和操作 _ 于对象的统一体
2、中 ( A)结合 ( B)隐藏 ( C)封装 ( D)抽象 5 对线性表采用折半查找法,该线性表必须 _。 ( A)采用顺序存储结构 ( B)采用链式存储结构 ( C)采用顺序存储结构,且元素按值有序 ( D)采用链式存储结构,且元素按值有序 6 对于存在多个条件复杂组合的判断问题,其加工逻辑使用 _ 描述较好。 ( A)数据字典 ( B)数据流图 ( C)结构化语言 ( D)判定表和判定树 7 结构化分析方法 SA、结构化设计方法 SD,和 JACKSON方法,是在软件开发过程中常用的方法,人们使用 SD方法时可以得到 _。 ( A)程序流程图 ( B)具体的语言程序 ( C)模块结构图及模
3、块的功能说明书 ( D)分层数据流图 8 对全局数据逻辑结构和特征的描述称为 _。 ( A)外模式 ( B)内模式 ( C)概念模式 ( D)存储模式 9 如果关系模式 R为 1NF,且每个非主属性都完全函数依赖于 R的候选码,则称R属于 _。 ( A) 2NF ( B) 3NF ( C) BCNF ( D) 4NF 10 数据字典表达的是 _。 ( A)系统中各类逻辑定义的集合 ( B)系统中各类逻辑描述的集合 ( C)系统中各类数据结构的集合 ( D)系统中各类数据描述的集合 11 下列 C+语言符号中表示行注释开始的是 _。 ( A) # ( B); ( C) / ( D) 12 关于对
4、象概念的描述中, _ 是错误的 ( A)对象就是 C语言中的变量 ( B)对象是状态和操作的封装体 ( C)对象之间的信息传递是通过消息进行的 ( D)对象是某个类的一个实例 13 下列说法不正确的是 _。 ( A)转义字符序列 b 的功能是退格 ( B)转义字符序列 n 的功能是退格 ( C)转义字符序列 r 的功能是回车 ( D) :转义字符序列 f的功能是换页 14 下列关于圆括号运算符的功能说法不正确的是 _。 ( A)可用于强制类型转换 ( B)可用于类型构造 ( C)可用于类型声明 ( D)可用于函数调用 15 设 int a=4, b=8;则 +a*b的结果是 _。 ( A) 3
5、3 ( B) 40 ( C) 32 ( D) 41 16 若 d为 double型变量,则表达式 d=1, d+5, d+的值是 _。 ( A) 1 ( B) 6 ( C) 2 ( D) 1 17 阅读程序段,当输入数据形式为 25, 13, 10时,正确的输出结果为 _。 int x, y, z; cin x y z; cout “x+y+z=%dn“ x+y+z; ( A) x+y+z=48 ( B) x+y+z=35 ( C) x+z=35 ( D)不确定值 18 以下非法的赋值语句是 ( A) n=(i=2, i+) ( B) i+ ( C) x=j 0 ( D) +(i+1) 19
6、下列 for循环语句执行的次数是 _。 for (int i=0, x=0; !xi+) ( A) 5 ( B) 6 ( C) 1 ( D)无限 20 下述关于 break语句的描述中, _是不正确的。 ( A) break语句可用于循环体内,它将退出该循环 ( B) break语句可用于 switch语句中,它将退出 switch语句 ( C) break语句可用于 if体内,它将退出 if语句 ( D) break语句在一个循环内可以出现多次 21 下面各语句中,能正确进行赋字符串操作的语句是 ( A) char s5= “ABCDE“ ; ( B) char s5= A , B , C
7、, D , E ; ( C) char *s; s = “ABCBE“; ( D) char *s; scanf(“%s“, s); 22 以下数组定义中不正确的是 _。 ( A) int a23 ( B) int b3=0; ( C) int c11=0; ( D) int d3=1,2,(1,2,31,2,3,4; 23 以下程序的输出结果是 _。 #include iostream.h void main() char w10= “ABC“, “DEFGH“, “IJKL“ , “MNOP“ ; int k; for (k=1 ;k 3 ;k+) cout wk “ “ ( A) ABC
8、 FGH KL ( B) ABC EFG IJ M ( C) EFG JK 0 ( D) DEFGH IJKL 24 以下说法中正确的是 _。 ( A) C+程序总是从第一个定义的函数开始执行的 ( B)在 C+程序中,要调用的函数必须在 main()函数中定义的 ( C) C+程序总是从 main()函数开始执行的 ( D) C+程序中的 main()函数必须放在程序的开始部分 25 若有函数 func(par1, par2+par3, (par4, par5):在调用该函数时,实参的个数是 _。 ( A) 3 ( B) 4 ( C) 5 ( D)有语法错误 26 执行下列程序 int fu
9、n(int x1, int x2) int x; x1 x2 ?(x=3): (x=4); return x+x1; void main() cout fun(7, 8); 后输出结果是 _。 ( A) 9 ( B) 10 ( C) 11 ( D) 12 27 下列程序 的功能是输出数组中的最大值,其中用指针 q指向该元素,在 if语句中判断表达式应该是 _。 #include iostream.h void main() int a10=6, 7, 2, 9, 1, 10, 5, 8, 4, 3); int *p=a, *q=a; while(p-a10) if(_)q=p; p+; cou
10、t ”max=” *q; ( A) ap Aq ( B) *p *q ( C) p q ( D) p-a p-q 28 若有 int(*p)3:则以下表述中正确的是 _。 ( A) p是一个指向具有 3个元素的整型数组的指针 ( B) p是一个指向 int型变量的指针 ( C) p是一个有 3个元素的指针数组,每个元素是一个 int型指针 ( D) p是一个具有 3个 int型元素的一维数组 29 下面程序的输出结果是 _。 #include iostream.h void main() int x=20; int Myclass(int val); Myclass(); ( A) int a
11、=111; ( B) Myclass(Int x, int y); ( C) Myclass(int val); ( D) Myclass(); 31 关千成员函数特征的下述中, _ 是错误的。 ( A)成员函数一定是内联函数 ( B)成员函数可以重载 ( C)成员函数可以设置参数的默认值 ( D)成员函数可以是静态的 32 静态成员函数没有 _。 ( A)返回值 ( B) this指针 ( C)指针参数 ( D)返回类型 33 继承具有 _,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员 ( A)规律性 ( B)传递性 ( C)重复性 ( D)多样性 34 下面叙
12、述错误的是 _。 ( A)基类的 protected成员在派生类中仍然是 protected ( B)基类的 protected成员在 private派生类中仍然是 protected的 ( C)基类的 protected成员在 private派生类中是 private的 ( D)基类的 protected成员不能被派生类的对象访问 35 对于类定义 class A public: virtual void funcl() void func2() ; class D:public A public: void funcl()cout “class B rune 1“ end1; virtua
13、l void func2()cout “class B func 2“ end1; ; 下面正确的叙述是 _。 ( A) A:func2()和 B:funcl()都是虚函数 ( B) A:func2()和 B:funcl()都不是虚函数 ( C) B:func1()是虚函数,而 A:func2()不是虚函数 ( D) B:func1()不是虚函数,而 A:func2()是虚函数 36 若源程 序文件 abc. cpp 中只有一个函数,该函数的名称为【 】。 37 要获得一数据或数据类型所占空间的字节数,应使用的操作符是【 】。 38 条件表达式 (x!=9)& (x=9)的结果是【 】。 39
14、 函数调用参数的传递方式有三种,值传递、【 】和引用传递。 40 若函数模板在调用时有【 】,则调用它时必须强制实例化。 41 假定 p所指对象的值为 25, p+1所指对象的值为 46,则执行 “*p+; ”语句后,p所指的对象的值为【 】。 42 假定 a是一个一维数组,则 ai对应的存储地址 (以字节为单位 )为【 】。 43 假定动态分配一个类型为 Worker的具有 n个元素的数组,并由 P指向这个动态数组,如果要释放这个数组,则使用的语句为【 】。 44 假定用户没有给一个名为 AB的类定义构造函数,则系统为其隐含定义的构造函数为【 】。 45 在 C+流类库中,根基类为【 】。
15、46 执行 “cout char(A+2) end1; ”语句后,得到的输出结果为【 】。 47 有如下程序段: int n=0, sum=0; while(n+, n 50) if(n%2= =0)continue; sum+=n; cout sum; 此程序段执行的输出结果为【 】, while语句共执行了【 】次。 国家二级( C+)笔试模拟试卷 39答案与解析 1 【正确答案】 A 2 【正确答案】 C 3 【正确答案】 D 4 【正确答案】 C 5 【正确答案】 C 6 【正确答案】 D 7 【正确答案】 C 8 【正确答案】 C 9 【正确答案】 A 10 【正确答案】 D 11
16、【正确答案】 C 12 【正确答案】 A 13 【正确答案】 B 14 【正确答案】 C 15 【正确答案】 B 16 【正确答案】 D 17 【正确答案】 D 18 【正确答案】 D 19 【正确答案】 B 20 【正确答案】 C 21 【正确答案】 C 22 【正确答案】 D 23 【正确答案】 D 24 【正确答案】 C 25 【正确答案】 A 26 【正确答案】 C 27 【正确答案】 B 28 【正确答 案】 A 29 【正确答案】 C 30 【正确答案】 A 31 【正确答案】 A 32 【正确答案】 B 33 【正确答案】 B 34 【正确答案】 A 35 【正确答案】 C 36
17、 【正确答案】 main 函数 【试题解析】 main 函数为源程序文件中必须有的函数。 37 【正确答案】 sizeof () 【试题解析】 要获得字节数,必须用 sizeof ()操作符。 38 【正确答案】 0 【试题解析】 两个条件必然有一个不满足,由于两者是与的关 系,所以为 0。 39 【正确答案】 指针传递 40 【正确答案】 常规参数 41 【正确答案】 46 【试题解析】 *P+ 的结合顺序为先执行 p+,然后取值。答案为 46。 42 【正确答案】 a+i*sizeof (a0) 【试题解析】 a+i*sizeof (a0)为 ai对应的存储地址。 43 【正确答案】 deletep; 【试题解析】 语句为 deletep;。 44 【正确答案】 AB () 【试题解析】 默认的构造函数。 45 【正确答案】 ios 【试题解析】 ios 为根基类。 46 【正确答案】 C 【试题解析】 输出结果为 C。 47 【正确答案】 625 49