[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc

上传人:wealthynice100 文档编号:502745 上传时间:2018-11-29 格式:DOC 页数:21 大小:57KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc_第1页
第1页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc_第2页
第2页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc_第3页
第3页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc_第4页
第4页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷3及答案与解析.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 3及答案与解析 1 对于长度为 n的线性表,在最坏情况下,下列各排序法的比较次数中正确的是( )。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 2 设二叉树中有 3个叶子结点,有 8个度为 1的结点,则该二叉树中总的结点数为( )。 ( A) 12 ( B) 13 ( C) 14 ( D) 15 3 下列不属于 3种基本控制结构是 ( )。 ( A)顺序 ( B)选择 ( C)循环 ( D)调用 4 数 据处理的最小单位是 ( )。 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据

2、结构 5 线性表的顺序存储结构和线性表的链式存储结构分别是 ( )。 ( A)顺序存取的存储结构、顺序存取的存储结构 ( B)随机存取的存储结构、顺序存取的存储结构 ( C)随机存取的存储结构、随机存取的存储结构 ( D)任意存取的存储结构、任意存取的存储结构 6 软件开发的结构化生命周期方法将软件生命周期划分成 ( )。 ( A)定义、开发、运行维护 ( B)设计阶段、编程阶段、测试阶段 ( C) 总体设计、详细设计、编程调试 ( D)需求分析、功能定义、系统设计 7 下列不属于结构化分析常用工具的是 ( )。 ( A)用例图 ( B)数据字典 ( C)判定树 ( D) PAD图 8 软件设

3、计中,有利于提高模块独立性的一个准则是 ( )。 ( A)低内聚低耦合 ( B)低内聚高耦合 ( C)高内聚低耦合 ( D)高内聚高耦合 9 n个顶点的连通图中边的条数至少为 ( )。 ( A) 0 ( B) 1 ( C) n-1 ( D) n 10 软件开发离不开系统环境资源的支持,其中必要的测 试数据属于 ( )。 ( A)硬件资源 ( B)通信资源 ( C)支持软件 ( D)辅助资源 11 关于类和对象的说法,不正确的是 ( )。 ( A)类是对象的类,对象是类的对象 ( B)系统不为类分配内存空间,而为对象分配内存空间 ( C)类和对象一样 ( D)类可以看作数据类型,对象也可以叫做类

4、的实体、实例等 12 下列正确的是 ( )。 ( A)静态局部变量和静态外部变量的生存期相同,它们的作用域也相同 ( B) #include iostream using namespace std; void main() int i,s; s=0; for(i=1;i 10;i+) s=s+i; if(s 8) break; ( C) register 存储类型一般为使用频繁的变量所说明,这样可以 提高程序的执行效率 ( D)静态变量生存期长,作用大,可以多用 13 unsigned char c=“41;printf(“%d“,c); 输出结果为 ( )。 ( A) A ( B) 41

5、( C)语法错 ( D) 65 14 关于 for循环,不正确的是 ( )。 ( A)在循环体中,不能改变循环控制变量值 ( B)在执行中循环控制变量初值、终值可变 ( C)循环控制变量可增可减 ( D)循环控制变量可以不必在说明部分说明 15 下列函数的功能是 ( )。 #include iostream using namespace std; void main() char a;int i; cin a; for(i=1;i =10;i+) if(a = a) cout a; ( A)把 a中的小写字母变成大写字母 ( B)把 a中的大写字母 变成小写字母 ( C)把 a中的所有字母变

6、成小写字母 ( D)把 a中的字符变成它前面 i个的字符 16 关于函数的返回值,正确的是 ( )。 ( A)由 return语句返回时,只带回一值,其类型在函数定义时确定 ( B)其类型由调用表达式决定 ( C)函数可以没有返回值,这时在函数定义中,函数的类型说明就没必要了 ( D)函数调用就要有返回值,否则调用就没有意义了 17 下面程序执行后的结果是 ( )。 #include iostream using namespace std; void func1(int i); void func2(int i); char st=“hello, friend!“; void func1(i

7、nt i) cout sti; if(i 3)i+=2;func2(i); void func2(int i) coutsti; if(i 3)i+=2;func1(i); void main() int i=0;func1(i);coutendl; ( A) ello ( B) hel ( C) hlo ( D) him 18 下列关于形参的说法,正确的是 ( )。 ( A)函数的形参是必须的 ( B)函数的形参可以是表达式 ( C)函数在定义时,形参是不占用存储空间的,只是在被调用时才会占,调用完毕也就被释放了 ( D)形参的名称、类型、数量、顺序必须与实参都相同,否则实参不会把信息正确地

8、传递给形参 19 下列说法正确的是 ( )。 ( A)定义 int a4=1,3;,则 a0=1,a1=3,a3的值不确定 ( B)定义 static int a4;,则元素值不确定 ( C) const int x;x=5;表示给常量 x赋初值 ( D)定义 int a4;,则其元素的值是不确定的 20 对于 char ch120,ch220;strcmp(ch1,ch2);,说法正确的是 ( )。 ( A)若 ch1=ch2,则 strcmp(ch1,ch2)返回 1 ( B)若 ch1=ch2,则 strcmp(ch1,ch2)返回 0 ( C)若 ch1 ch2,则 strcmp(ch

9、1,ch2)返回 1 ( D)若 chi ch2,则 strcmp(ch1,ch2)返回 1 21 下面程序段的功能是 ( )。 int a=4,0,2,3,1,i,j,t; for(i=0; 5;i+) t=ai;j=i;j-; while(j =0j-; aj+1 =t; ( A)对数组 a进行插入排序 (升序 ) ( B)对数组 a进行插入排序 (降序 ) ( C)对数组 a进行选择排序 (升序 ) ( D)对数组 a进行选择排序 (降序 ) 22 关于内联函数的说法,不正确的是 ( )。 ( A)在说明类的同时定义成员函数,则函数隐含为内联函数 ( B)也可在类外用 inline关键字

10、对成员函数进行说明,则该函数也为内联函数 ( C)当内联函数被调用时,内联函数的代码在调用处被展开 ( D)当内联函数被调用时,内联函数将返回结果 23 拷贝构造函数是用一个已知的对象为新创建的同类的对象赋初值,下列 ( )情况下它没有 起作用。 ( A)声明语句中,用一个对象初始化另一个对象。如 point p2(p1);,其中: point为一个类, p2、 p1为该类的两个对象, p1是一个已知的对象 ( B)将对象作为函数实参传递给形参,用来初始化形参时 ( C)当函数返回一个对象值,并用这个对象初始化一个匿名对象时 ( D)调用对象的一个成员函数时 24 下面关于继承的说法,正确的是

11、 ( )。 class math ; class math1:math ; ( A) math 类、 math1 类没有继承关系 ( B) math1 类是 math 类的父亲 ( C) math1 类对 math 类继承是公有继承 ( D) math1 类对 math 类的继承是私有继承 25 下面程序运行的结果是 ( )。 #include iostream using namespace std; class A protected: int a; public: void input(int i) a=i; ; class B protected: int a; public: voi

12、d input(int j) a=j; ; class C: public A, public B int x; public: void input() x=A:a * B:a;cout x endl; ; void main() C c; c.A:input(5); c.B:input(8); c.input(); ( A) 5 ( B) 8 ( C) 40 ( D)编译出错 26 关于抽象类的说法,不正确的是 ( )。 ( A)如果一个类至少有一个纯虚函数,则此类即为抽向类 ( B)抽象类中的纯虚函数没有定义,不能建立它的对象,只能派生其 子类 ( C)抽象类对象不能用作参数类型、函数返

13、回类型及显式转换类型 ( D)不可声明指向抽象类的指针和引用 27 下面程序的运算结果是 ( )。 #include iostream using namespace std; class A public: virtual void fun()=0; ; class B:public A public: void fun() cout “new file“ “ “; ; class C:public A public: void fun() cout “open file“ “ “; ; void main() A a, * p; B b;C c; p= p- fun(); p= ( A)

14、new file open file ( B) new file new file ( C)编译出错 ( D) open file new file 28 下面不属于同一函数模板的是 ( )。 ( A) template class t1 t1 max(t1 using namespace std; void main() void main() char c; char c; cinc;cout c; cin.get(c);cout.put(c); ( A)与 d ( B)与 u ( C) d与 ( D) d与 d 30 下面程序的输出结果是 ( )。 #include iostream u

15、sing namespace std; void main() char cl=a,c2=c; cout.put(a).put(c).put(n); cout.put(c1).put(c2); ( A) ac a c ( B) ac ac ( C) a c ac c ( D) a c 31 为避免指针使用上的错误,可以在定义指针时就给指针一个值,这叫指针的初始化。不能初始化指针的值是 ( )。 ( A) 8 ( B) 0 ( C) NULL ( D)地址 32 若有以下调用语句,则不正确的 fun 函数的首部是 ( )。 void main() int a50,n; fun(n, ( A) v

16、oid fun(int m,int x) ( B) void fun(int s,int h) ( C) void fun(intp,int * s) ( D) void fun(int n,int a) 33 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 ( )。 ( A) public ( B) protected ( C) private ( D) static 34 下列叙述中错误的是 ( )。 ( A)一个函数中可以有多条 return 语句 ( B)调用函数必须在一条独立的语句中完成 ( C)函数中可通过 return语句传递函数值 ( D)

17、主函数名 main也可以带有形 参 35 在函数定义前加上关键字 “inline”,表示该函数被定义为 ( )。 ( A)重载函数 ( B)内联函数 ( C)成员函数 ( D)普通函数 36 在计算机软件系统的体系结构中,数据库管理系统位于用户和【 】之间。 37 数据的组织和存储会直接影响算法的实现方式和【 】。 38 计算机技术中,为解决一个特定问题而采取的特定的有限的步骤称为【 】。 39 按数据流的类型,结构化设计方法有两种设计策略,它们是【 】和事务分析设计。 40 算法运行过程中所耗费的时间称 为算法的【 】。 41 若有整型变量 x=2,则表达式 x 2的结果是【 】。 42 重

18、载的运算符仍然保持其原来的操作数个数、优先级和【 】不变。 43 C+在重载运算中,如用成员函数重载一元运算符参数表中需要【 】个参数,如用友元函数重载一元运算符参数表中需要 1个参数。 44 若有以下程序: #include iostream using namespace std; class Base public: void who() cout “Base“ end1; ; class Derivedl: public Base public: void who() cout “Derived“ end1; ; int main() Base *p; Derived1 obj1; p

19、= p- who(); return 0; 则该程序运行后的输出结果是【 】。 45 如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的【 】函数。 46 类是一个支持集成的抽象数据类型,而对象是类的【 】。 47 下列程序的输出结果是【 】。 #include iostream using namespace std; int main() int i=5; int r=7; cout i end1; return 0; 48 写出下列程序的运行结果【 】。 #include iostream.h . #include fstream.h #include stdlib.h

20、 void main() fstream outfile, infile; outfile.open(“data.clat“, ios: out); if(!outfile) cout “Cant open the file.“ end1; abort(); outfile “ 1234567890“ end1; outfile “aaaaaaaaa“ end1; outfile “*“ end1; outfile.close(); infile.open(“data. dat “, ios: in); if(!infile) cout “Cant open the file.“ end1;

21、abort(); char line80; int I=0; while(!infile. eof() I+; infile.getline(line, sizeof(line); cout I “:“ line end1; infile.close(); 49 在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #include iostream using namespace std; class A public: A() cout A; ; class B: 【 】 public: B()cout B; class C: virtual public A publi

22、c: C()cout C; class D:public B, public C public: D() coutD; ; void main() D obj; 50 下列程序的输出结果是【 】。 #include iostream using namespace std; class A int a; public: A():a(9) virtual void print() const cout a; ; ; class B: public A char b; public: B()b=S; void print() const cout b; ; void show(A int main

23、() A d1,*p; B d2; p= dl1.print(); d2.print(); p- print(); show(d1); show(d2); return 0; 国家二级( C+)笔试模拟试卷 3答案与解析 1 【正确答案】 D 【试题解析】 对于长度为 n的线性表,在最坏情况下,冒泡排序和快速排序需进行 n(n-1)/2次关键字比较。 2 【正确答案】 B 【试题解析】 一棵二叉树中有 3个叶子结点,则度为 2的结点有 3-1=2,总结点数为叶子结点数、度为 1的结点数和度为 2的结点数之和。即 3+8+2=13。 3 【正确答案】 D 【试题解析】 顺序、选择和循环是程序的三

24、种基本控制结构。 4 【正确答案】 C 【试题解析】 数据处理的最小单位是数据项。 5 【正确答案】 B 【试题解析】 顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC(ai)=LOC(a1)+(i-1)L 计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。 6 【正确答案】 A 【试题解析】 软件开发的结构化生命周期方法将软件生命周期划分成定义、开发和运行维护。 7 【正确答案】 A 【试题解析】 用例图不属于结构化分析的常用工具,是面向对象分析的工具。 8 【正确答案】

25、C 【试题解析】 软件设计中,有利于提高模块独立性的一个准则是高内聚低耦合。 9 【正确答案】 C 【试题解析】 n 个顶点的连通图中边的条数至少为 n-1。 10 【正确答案】 D 【试题解析】 软件开发离不开系统环境资源的支持,其中必要的测试数据属于辅助资源。 11 【正确答案】 C 【试题解析】 对象是类的实例化,类和对象不一样。 12 【正确答案】 C 【试题解析】 选项 A它们的作用域不同;选项 B 输出结果相同;选项 D静态变量长期占用内存不释放,降低程序可读性,不要过多使用。 13 【正确答案】 C 【试题解析】 c是 char类型,而赋值给它的是字符串 “41“。 14 【正确

26、答案】 A 【试题解析】 这是对 for循环语句的考查,循环控制变量可增可减。 15 【正确答案】 D 【试题解析】 该题考查程序的功能,用举例法可显见其功能,不妨设 a=d,结果为 ca,该程序仅对在小写字母 a 2之间的字母起作用。 16 【正确答案】 A 【试题解析】 选项 B函数返回值类型在函数定义时就确定了;选项 C没有返回值用 void标示;函数是完成特定功能的程序段,可以没有返回值。 17 【正确答案】 C 【试题解析】 主函数中调用 func1() 函数,实参赋值为 0,在该函数中先输出st0,即 “h,;然后 func1() 函数又调用 func2() 函数,实参赋值为 2,

27、 func2() 函数运行时先输出 st2,即 “1”; 然后又调用 func1() 函数,实参赋值为 4, func1() 函数运行时先输出 st4,即 “o”。 18 【正确答案】 C 【试题解析】 函数可以没有形参。表达式是一个值,不是变量,不能接受信息。 19 【正确答案】 D 【试题解析】 当定义一个 static数组时,虽未初始化,但元素值默认为 0;对非static的数组,没有赋初值,则其元素中的值为不确定的;若赋初值但数据不够用,则其他元素值初始化为 0。 20 【正确答案】 B 【试题解析】 对于 strcmp(str1, str2),当 str1和 str2的所有字符相同时

28、,返回0;若发现 str1与 str2的字符不同,则返回 str1的这个字符和 str2的相同位置的字符的差值,即 str1(i)-str2(i)的值,这个值可能为一个正数,也可能为一个负数。 21 【正确答案】 B 【试题解析】 本题考查数组的使用,注意插入排序方法。 22 【正确答案】 D 【试题解析】 内联函数被调用时,只是把代码在被调用处展开,不是把函数的运算结果返回。 23 【正确答案】 D 【试题解析】 调用对象的一个成员函数时不会调 用拷贝构造函数。 24 【正确答案】 D 【试题解析】 注意继承的格式,关键字默认的继承是私有继承。 25 【正确答案】 C 【试题解析】 用成员名

29、限定法来消除二义性,故答案为 C。 26 【正确答案】 D 【试题解析】 只有能够声明指向抽象指针和引用,才能使该指针指向派生类,进而实现多态性。 27 【正确答案】 C 【试题解析】 语句 A a,*p;用抽象类说明了一个对象,这是不允许的。若把其改为 A*p ;则程序运行结果为 D。 28 【正确答案】 D 【试题 解析】 函数模板的重载是靠模板参数的数量不同来区分的,因为函数模板是抽象的,有待于进一步实例化,所以靠参数类型无法区别调用哪个函数模板。 29 【正确答案】 C 【试题解析】 提取符 “ ”忽略空白字符, get()函数能够提取空白字符。 30 【正确答案】 B 【试题解析】

30、分析该题,输出字符 “a”,“c”和换行,然后再输出 “a”,“c”。 31 【正确答案】 A 【试题解析】 只有 0、 NULL、地址可以初始化指针,其他的都不能。 32 【正确答案】 D 【试题解析】 &a9表示对变量 a9的引用,与它对应的形参必须是表示地址的变量,而 D的第 2个形参是一个普通变量。 33 【正确答案】 A 【试题解析】 因为 public类型的权限控制属性允许类对象对类属性和方法进行访问。 34 【正确答案】 B 【试题解析】 当函数有返回值时,调用函数可以作为一个表达式的子表达式而不作为一条独立的语句存在。 35 【正确答案】 B 【试题解析】 内联函数主要解决的是

31、程序的运行效率问题,但是内联函数在时间上的节省是以最终目标代码规模的增加为代价的。 36 【正确答案】 操作系统 或 OS 37 【正确答案】 效率 38 【正确答案】 算法 39 【正确答案】 变换分析设计 40 【正确答案】 时间代价 41 【正确答案】 8 42 【正确答案】 结合性 43 【正确答案】 0 44 【正确答案】 Derived 45 【正确答案】 内联 46 【正确答案】 实例 47 【正确答案】 7 48 【正确答案】 1: 1234567890 2:aaaaaaaaa 3:* 4: 49 【 正确答案】 virtual public A 50 【正确答案】 9SS9S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1