[计算机类试卷]国家二级(C++)笔试模拟试卷241及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷241及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷241及答案与解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 241及答案与解析 1 下列叙述中正确的是 ( A)数据的逻辑结构与存储结构必定是一一对应的 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 2 在设计程序时,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 3 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他
2、元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 4 下列选项中不属于软件生命周期开发阶段任务的是 ( )。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 5 对如下二叉树 进行后序遍历的结果为 ( )。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 6 在长度为 n的顺序表的第 i(1in+1)个位置上插入一个元素,元素的移动次数为 _。 ( A) n-i+1 ( B)
3、n-i ( C) i ( D) i-1 7 数据处理的最小单位是 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 8 用链表表示线性表的优点是 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序与逻辑顺 序相同 9 数据字典 (DD) 是定义以下哪种系统描述工具中的数据的工具 ( )。 ( A)数据流程图 ( B)系统流程图 ( C)程序流程图 ( D)软件结构图 10 在单链表中,增加头结点的目的是 ( A)方便运算的实现 ( B)使单链表至少有一个结点 ( C)标识表结点中首结点的位置 ( D)说明单链表是线性
4、表的链式存储实现 11 有以下程序: #include iostream #include math using namespace std;class pointprivate: double x; double y;public: point(double a, double b x=a; y=b; friend double distance (point a, point b ; ;double distance(point a, point b return sqrt(a. x-b. x )*(a. x -b. x )+ (a. x -b. x)*(a. x-b. x);int ma
5、in () point p1 (1,2); point p2(5,2); cout distance (p1, p2) end1; return 0; 程序运行后的输出结果是 ( A) 1 ( B) 5 ( C) 4 ( D) 6 12 关于 const修饰符的说法中,错误的是 ( A) const既可以修饰成员函数,也可以修饰数据成员,还可以修饰对象 ( B)若 const修饰了一个对象,则该对象中的所有数据成员都无法被更新 ( C)常对象无法调用一般成员函数 ( D)常成员函数只能 被常对象调用,不能被一般对象调用 13 以下选项中合法的实型常数是 ( A) 5 E 2.0 ( B) E-
6、3 ( C) .2 E0 ( D) 1.3 E 14 为了避免嵌套的 ifelse 语句的二义性, C+规定与 else配对的是 ( A)缩排位置相同的 if ( B)在其之前未配对的 if ( C)在其之前未配对的最近的 if ( D)同一行上的 if 15 类的析构函数的作用是 ( )。 ( A)一般成员函数 ( B)类的初始化 ( C)对象的初始化 ( D)删除对象 16 类的析构函数的作用是 _。 ( A)一般成员函数 ( B)类的初始化 ( C)对象的初始化 ( D)删除对象创建的所有对象 17 执行下列程序 int fun(int x1, int x2) int x; x1 x2
7、?(x=3): (x=4); return x+x1; void main() cout fun(7, 8); 后输出结果是 _。 ( A) 9 ( B) 10 ( C) 11 ( D) 12 18 下列关于运 算符重载不正确的是 ( A)运算符重载不能改变运算符的操作数个数 ( B)运算符重载不能改变运算符的优先级 ( C)运算符重载不能改变运算符的结合性 ( D)运算符重载能改变对预定义类型数据的操作方式 19 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 ( A)派生类的对象可以赋给基类的对象 ( B)派生类的对象可以初始化基类的引用 ( C)派生类的对象可以直接
8、访问基类中的成员 ( D)派生类的对象的地址可以赋给指向基类的指针 20 若已定义: int a =0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中0i9,则对 a数组元素不正确的引用是 ( A) ap a ( B) *( int s=O; class sample static int n; public: sample(int i) n=i; static void add() s+=n; ; int sample:s=O; int main() sample a(2),b(5); sample: :add(); cout s end1; return 0
9、; 程序运行后的输出结果是 ( A) 2 ( B) 5 ( C) 7 ( D) 3 26 若有以下程序: #include iostream using namespace std; int main() int a4 4 = 1,2,3,-4,0,-12,-13,14, -21,23,0,-24,-31,32,-33,0; int i,j,s = 0; for(i=0;i 4;i+) for(j=O;j 4;j+) if(ai j =0) continue; s+=a i j; cout s end1; return 0; 执行后的输出结果是 ( )。 ( A) -138 ( B) 141
10、( C) 75 ( D) -1 27 下列叙述中,正确的是 ( )。 ( A) while语句构成的循环不能用其他语句构成的循环来代替 ( B) do-while语句构成的循环只能用 break语句退出 ( C)用 while语句构成的循环,只有在 while后的表达式为非 0时才执行循环 ( D) do-while语句构成的循环,只有在 while后的表达式为 0时才结束循环 28 一个类的友元函数或友元类可以通过成员操作符访问该类的 ( )。 ( A)私有成员 ( B)保护成员 ( C) 公有成员 ( D)所有成员 29 在 int a=10, * p= cout val; return
11、0; void function(double val) val 3; 编译运行这个程序将出现的情况是 ( A)编译出错,无法运行 ( B)输出: 3 ( C)输出: 3.0 ( D)输出一个不确定的数 35 在类声明中,紧跟在 “public:”后声明的成员的访问权限是 ( )。 ( A)私有 ( B)公有 ( C)保护 ( D)默认 36 问题处理方案的正确而完整的描述 称为 _。 37 诊断和改正程序中错误的工作通常称为 _。 38 有如下程序 : #include iostream using namespace std; class A public: A()cout “A“; ;
12、class B:private A public: B()cout B; ; int main() Aa; B b; return 0; 这个程序的输出结果是 _。 39 下面是一个递归函数,其功能是使数组中的元素反序排列,请将函数补充完整。 void reverse(int * a, int size) if(size 2)return; int k=a0; a0=asize-1; asize-1=k; reverse(a+l, _); 40 C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是 _性; _性和 _性。 41 已知递归函数 f的定义如下: int f(i
13、nt n) if(n 1)return 1; /递归结束情况 else return n*f(n-2);/递归 ) 则函数调用语句 f(5)的返回值是 _。 42 在下列的程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream.h using namespace std; class Base public: int a, b; Base(int i)a i; ; class Derived: public Base int a; public: Derived(int x): Base(x), b(x+1); void show() 43 下面是一个栈类的模
14、板,其中 push函数将元素 i压入栈顶, pop函数弹出栈顶元素。栈初始为空, top值为 0,栈顶元素在 stacktop-1中,在下面横线处填上适当 语句,完成栈类模板的定义。 template class Tstack enumsize=1000; T stacksize; int top; public: Tstack(): top(0) void push(const T void main() extern int x, y; cout add(x, y) end1; int x(20),y(5); int add(int a, int b) int s=a+ b; return
15、 s; 48 下列程序段的输出结果是【 】。 cout fixed 509 123456789 end1; 49 下面程序输出的结果是【 】。 #include iostream using namespace std; class A public: virtual void show() cout “A!“; ; class B: public A public: void show() cout “B!“; ; class C: public B public: void show()cout “C!“; ; void show_info(A void main() A ia; B ib
16、; C ic; show_info(ia);show_info(ib); show_info(ic); 50 已知数组 a中有 n个元素,下列语句将数组 a中从下标 x1开始的 k个元素移动到从下标 x2开始的 k个元素中,其中 O =xl x2 n, x2+k n,请将下列语句补充完整。 For(int i=x1+k-1; i =x1; i-) a_=ai; 国家二级( C+)笔试模拟试卷 241答案与解析 1 【正确答案】 D 【试题解析】 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一 定是一一对应的。选项 A中的说法是错误的。虽然计算机的
17、存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项 B 中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满 二叉树与完全二叉树是非线性结构,实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项 C中的说法也是错误的。 2 【
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 241 答案 解析 DOC
