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

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

1、国家二级( C+)笔试模拟试卷 2及答案与解析 1 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 ( )。 ( A) PAD图 ( B) N-S图 ( C)结构图 ( D)数据流图 2 数据的存储结构是指 ( )。 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 3 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C) 程序设计语言的先进性 ( D)程序易读性 4 数据结构中,与所使用的计算机无关的是数据的 ( )。 (

2、A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)物理和存储结构 5 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是 ( )。 ( A)黑箱测试法 ( B)白箱测试法 ( C)错误推测法 ( D)安装测试法 6 下列选项中,不属于模块间耦合的是 ( )。 ( A)数据耦合 ( B)特征耦合 ( C)异构耦合 ( D)公共环境耦合 7 下列 工具中,是需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 8 下列 4项中说法不正确的是 ( )。 ( A)数据库减少了数据冗余 ( B)数据库中的数据可以共享

3、( C)数据库避免了一切数据的重复 ( D)数据库具有较高的数据独立性 9 对建立良好的程序设计风格,下面描述正确的是 ( )。 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 10 结构化程序设计 的三种结构是 ( )。 ( A)顺序结构、选择结构、转移结构 ( B)分支结构、等价结构、循环结构 ( C)多分支结构、赋值结构、等价结构 ( D)顺序结构、选择结构、循环结构 11 下列关于对象的描述,不正确的是 ( )。 ( A)对象只能描述有形的东西 ( B)对象具有属性和服务两个主要因素 ( C)现实世界中的

4、一切事物都可以看作对象,但只有在具体的系统中加以论述才有意义 ( D)对象的属性是对象的静态特征,服务是动态特征。并且对象的属性只能由本对象的服务来操作 12 下面正确的是 ( )。 ( A) 4.1/2 ( B) 3.2%3 ( C) 3/2=1 结果为 2 ( D) 5.2/3 结果是 1 13 char c=41;printf(“%o“,c); 的结果为 ( )。 ( A) 0101 ( B) 101 ( C) 41 ( D) 65 14 对中断语句的说法,不正确的是 ( )。 ( A)用户可以指定中断的位置 ( B)用户可以指定转移的位置 ( C) break 语句可以跳出本循环 (

5、D) continue 语句可以结束本次循环 15 下面程序的输出结果是 ( )。 #include iostream using namespace std; void main() int a,b; for(a=1,b=l;a =100;a+) if(b =10) break; if(b%3= =1) b+=3;continue; cout a; ( A) 101 ( B) 6 ( C) 5 ( D) 4 16 下列函数的定义,正确的是 ( )。 ( A) float sum(x,y) float x,y; ( B) float sum(float x,float y); ( C) flo

6、at sum(float x,float y) ( D) float sum(floatx,floaty) 17 有如下程序: #include iostream using namespace std; long fib(int n) if(n 2) return(fib(n-1)+fib(n-2); else return(n); void main() int i; cout “请输入一个整数 :“; cin i;cout endl; cout fib(i) endl; 当输入 4、 2时,该程序的输出结果是 ( )。 ( A) 5 ( B) 4 ( C) 5 ( D) 6 1 2 2

7、2 18 对下面的程序,说法正确的是 ( )。 #include iostream using namespace std; void sum(float m, float n) float sum=m+n; main() coutsum(5.3,6.5) endl; ( A)该程序是错误的,错误之处在于没有对 sum()函数进行说明 ( B)程序书写规整,无语法错误, 是正确的 ( C)该程序语法无错误,但在调用函数 sum()时出错,因为 sum()函数被定义为viod类型,但却被主函数调用,因而是错误的 ( D)虽然 sun()函数被定义为 void类型,但调用时也不会出错,程序能够编译

8、通过 19 下列关于数组初始化的说法,正确的是 ( )。 ( A)对于 int a5;它的数组元素初值为 0 ( B) int a5=1,3,5,7,8,9;是可以的,这时数组长度自动变为 6 ( C) static int a5;的数组元素初值为 0 ( D) int a5=1.3,5;是不合法的,因为数组长度为 5,而仅有 3个数据,不知赋给哪个元素 20 下列字符数组的初始化,正确的是 ( )。 ( A) char ch5=“a“,“b“,“c“,“d“,“e“; ( B) char ch=a,b; ( C) char ch15=“welcome to china“; ( D) char

9、 ch14=“I am a student“; 21 下面程序输出的结果是 ( )。 #include iostream using namespace std; void main() char ch8=“good“,“better“,“best“; for(int i=1;i 3;+i) cout chi endl; ( A) good better ( B) better best ( C) good best ( D) good 22 关于类的继承的特性,不正确的是 ( )。 ( A)子类 对父类具有数据和程序代码的共性特征 ( B)子类与父类间有所差别 ( C)会增加代码的冗余 (

10、D)类间具有层次结构 23 下面程序的执行结果是 ( )。 #include iostream using namespace std; class building public: building() building(unsigned stories, float breadths, float lengths) story = stories; breadth = breadths; length = lengths; void getstory(void) cout “story is:“ story endl; void getarea(void) area = length*br

11、eadth*story;cout “area is:“ area endl; private: unsigned story; float length; float breadth; float area; ; void main(void) building b1,b2;building b3(10u,16.6,58.8); b1.getstory(); b1.getarea(); b2.getstory(); b2.getarea(); b3.getstory(); b3.getarea(); ( A) story is:0 area is:0 story is:0 area is:0

12、story is:10 area is:9760.8 ( B) story is:null area is:null story is:null area is:null story is:10 area is:9760.8 ( C)前两个对象输出的结果是不定的,后一个对象的结 果正确 ( D)前两个对象没有初值,因此程序编译时出错 24 关于析构函数的说法,正确的是 ( )。 ( A)析构函数用来释放构造函数为对象分配的内存空间。它可以被系统自动调用 ( B)析构函数没有数据类型,其返回值为 void型 ( C)析构函数可以没有参数,也可有多个参数 ( D)析构函数与构造函数不一样,它可以有

13、多个,以方便使用 25 关于派生类的说法,不正确的是 ( )。 ( A)派生类能够通过继承关键字改变对基类的函数成员的存取权限 ( B)派生类可以拥有自己的新成员 ( C)派生类 可重载已有的函数成员 ( D)派生类无法给基类的数据成员初始化 26 下列说法不正确的是 ( )。 ( A)基类指针可以指向它的公有派生类的对象 ( B)指向基类的对象的指针可以指向派生类的对象,因而可以访问派生类的对象的成员 ( C)基类指针不能指向其私有派生类的对象 ( D)指向派生类对象的指针不可以指向基类的对象 27 下面程序的运行结果是 ( )。 #include iostream using namesp

14、ace std; class A int a; public: A()a=0;1 A(int aa ) a=aa; virtual void show() cout a “; ; class B:public A int b: public: B()b=0: B(int bb) b=bb; void show() cout b “ “; ; class C:public B int c; public: C(int cc) c=cc; void show() cout c endl; ; void main() A a( 8 ),*p;B b( 9 );C c( 10 ); p= p- sho

15、w(); p= template class T T max(T x,T y) return(x = y ? x:y); template class T T max(T x,T y,T z) T t; t=(x =y ? x:y); return(t =z ? t:z); void main() int x = 10,y=18,maxi; float a = 1.2,b = 3.2, c = 2,max2; max1 = max(x,(int)c); max2 = max(a,b,(float)y); cout maxi endl; cout max2 endl; ( A) 18 3.2 (

16、 B) 10 18 ( C) 10 3.2 ( D)编译出错 29 关于输入流的提取符 “ ”、提取函数 get()的说法不正确的是 ( )。 ( A)提取符 “ ”能提取空白字符 ( B)提取函数 get()能够提取空白字符 ( C)提取函数 get()可以带参数,用以存储从流中得到的字符 ( D)提取函数 get()的返回值为所提取的字符 30 在 C+语言里,一条语句以 ( )字符作为结束符。 ( A), ( B); ( C) ( D)无符号 31 下列语句中正确的是 ( )。 ( A) int * p;i=8; p= ( B) int * p,i; p= ( C) float * p;

17、int i;p= ( D) float * p;cout * p; 32 有以下定义: “int t3)2”,能正确标识 t数组元素地址的表达式是 ( )。 ( A) ”语句时,调用该类构造函数 ( )次。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 34 当一个函数无返回值时,函数的类型应为 ( )。 ( A)任意 ( B) void ( C) int ( D) char 35 一个函数为 void f(int,char=a),另一个函数为 void f(int),则它们 ( )。 ( A)不能在同一程序中定义 ( B)可以在同一程序中定义并可重载 ( C)可以在同一程序中定义,

18、但不可以重载 ( D)以上说法均不正确 36 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为【 】。 37 在树中,度为零的结点称为【 】。 38 按 “先进先出 ”原则组织数据的数据结构是【 】。 39 数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【 】。 40 冒泡排序算法在最好的情况下的元素交换次数为【 】。 41 表达式 cout /n还可表示为【 】。 42 已知 f1(int)是类 A的公有成员函数,并将指针 p定义为可以指向函数 f1的指针类型,则可以实现让 p是指向成员函数 f1()的 指针的语句为【 】。 43 switch 后面括号中的表达式只能

19、是整型、【 】或枚举型表达式。 44 请按下面注释的提示,将类 B的构造函数定义补充完整。 class A int a; public: A(int aa=0) (a=aa; ; class B: public A int b; Ac; public: /用 aa 初始化基类 A,用 aa+1初始化类对象成员 c B(int aa): 【 】 b=aa+2 ; 45 以下程序的执行结果是【 】。 #include iostream.h class Sample int n; public: Sample() Sample(int m) n=m; int return n; void disp(

20、) cout “n=“ n end1; ; void main() Sample s(10); (s-)+; s. disp(); 46 在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私 有继承private。 已知有如下类定义: class Base protected: void fun() ; class Derived: Base ; 则 Base类中的成员函数 fun(),在 Derived 类中的访问权限是【 】 (注意:要求填写 private、 protected或 public中的一项 )。 47 以下程序运行后的输出结果是【 】。 #include iostr

21、eam.h main() int i=10,j=0; do j=j+ i; i-; while(i 2); cout j; 48 阅读下面程序: #include iostream.h template class T class TAdd private: T x, y; public: TAdd(T a, T b) x=a; y=b; T add() return x +y; ; void main( ) TAdd int a(5,6); TAdd double b(2.4,5.8); cout “s1 =“ A. add() “,“; cout “s2=“ B, add() end1;

22、写出该程序的运行结果:【 】。 49 下面是用来计算 n的阶乘的递归函数,请将该函数的定义补充完整 (注:阶乘的定义是 n!=n*(n-1)*.*2*1)。 unsigned fact(unsigned n) if (n = 1) return 1; return 【 】 ; 50 下面程序的执行结果是 【 】 #include iostream #include iomanip using namespace std; void main() cout setfill(x) setw(10); cout “Hello“ end1; 国家二级( C+)笔试模拟试卷 2答案与解析 1 【正确答案

23、】 B 【试题解析】 N-S图是用方框图来代替传统的程序流程图。 2 【正确答案】 D 【试题解析】 数据的存储结构是指数据的逻辑结构在计算机中的表示。 3 【正确答案】 D 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限 制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。因此,结构化程序设计主要强调的是程序的易读性。 4 【正确答案】 C 【试题解析】 数据结构概念一般包括 3个方面的内容:数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。 5 【正确答案】

24、A 【试题解析】 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试 也称为逻辑覆盖测试;错误推测法只是黑箱测试所使用的一种具体的方法;安装测试是测试层次中的一种,它属于高级测试。 6 【正确答案】 C 【试题解析】 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强分别是:数据耦合、控制耦合、特征耦合、公共环境耦合和内容耦合。 7 【正确答案】 D 【试题解析】 DFD即数据流图,为需求分析常用工具。 8 【正确答案】 C 【试题解析】 数据库没有避免一切数据的重复。

25、 9 【正确答案】 A 【试题 解析】 为了建立良好的程序设计风格,程序应简单、清晰、可读性好。 10 【正确答案】 D 【试题解析】 结构化程序设计的三种结构是顺序结构、选择结构、循环结构。 11 【正确答案】 A 【试题解析】 抽象是分析对象的基本方法。 12 【正确答案】 A 【试题解析】 选项 B的 %要求是整型;选项 C关系运算值为 1;选项 D结果为1.7333。 13 【正确答案】 C 【试题解析】 printf(“%o“,c);以八进制输出 c,而 41就是八进制表示的字符。 , 14 【 正确答案】 B 【试题解析】 不论 break 语句还是 continue 语句转移的位

26、置根据程序是默认的了,不用人为设置。 15 【正确答案】 D 【试题解析】 该题是对 for 循环语句、条件语句、中断语句的综合考察。循环 for 语句执行了 4次,当执行第 4次循环的时候 b=10退出循环,输出 a的值为 4。 16 【正确答案】 C 【试题解析】 选项 A函数形参需指定类型;选项 B函数头不能以分号结尾;选项 D函数形参需指定类型。 17 【正确答案】 C 【试题解析】 注意递归 调用的过程,当输入 2作为函数参数时,调用肋 ()函数直接返回参数值 2;当输入参数大于 2时有一个递归调用的过程。 18 【正确答案】 C 【试题解析】 void类型的函数的返回值类型是不确定

27、的,不能使用函数的返回值。 19 【正确答案】 C 【试题解析】 数组一旦定义,其长度就不可变了;初始化数组的数据个数不要大于数组长度,否则会出现逻辑错;初始化数组的数据个数若小于数组长度,则先赋给前边的元素,后边的元素值自动初始化为 0;静态数组如果没有初始化自动初始化为 0。 20 【正确答案】 B 【试题解析】 选项 A中一个数组元素存放一个字符,不能存放字符串;当把字符串整体赋给字符串时,字符数组的长度要比字符串长度大 1,用来存放终结符,所以选项 C和选项 D都不正确。 21 【正确答案】 B 【试题解析】 二维数组 ch共 3行 8列, for 循环语句输出第 2、 3行的数组元素

28、 22 【正确答案】 C 【试题解析】 不会增加代码的冗余,反而会减少冗余。 23 【正确答案】 C 【试题解析】 该题是关于构造函数重载的,由于前两个对象没有赋初值,值不定。 24 【正确答案】 A 【试题解析】 析构函数没有数据类型,也没有参数,没有返回值,一个类只能有一个析构函数。 25 【正确答案】 D 【试题解析】 派生类可以通过构造函数的初始化列表,给基类的数据成员和对象成员初始化。 26 【正确答案】 B 【试题解析】 其前半句是正确的,但后半句是错误的。它可以访问派生类的对象中由基类继承下来的成员,但不可访问派生类新增成员。 27 【正确答案】 B 【试题解析】 指向基类对象的

29、指针可以指向派生类的对象,但只引用继承下来的成员,不能引用自己新增函数; 虚函数可被继承,继承下来并重新定义后仍是虚函数,不管继承层次多深,不管是否再用关键字 viaual说明。故答案为 B。 28 【正确答案】 B 【试题解析】 本道题考查函数模板以及函数模板重载的使用, max1=max(x,(int)c)语句会实例化 T max(T x, T y)函数模板,返回两个 int数据中的最大值;max2=max(a,b,(float)y);语句会实例化 T max(T x, T y, T 2)函数模板,返回 3个float数据中的最大值。 29 【正确答案】 A 【试题解析 】 提取函数 ge

30、t()能够提取空白字符,可以带参数,用以存储从流中得到的字符,返回值为所提取的字符。 30 【正确答案】 B 【试题解析】 在 C+语言里,一条语句以 “; ”字符作为结束符。 31 【正确答案】 B 【试题解析】 选项 A中的变量 i没有定义就使用了;选项 C(float)i把 i中的数据取出后变为 float型,就是一个数值, “&(float)i”不能得到 i的地址;选项 D中的指针变量, p没有赋值就使用,它到底指向哪个存储单元没有指明,它可能指向不可读取的存储单元,这时的破坏性很大。 32 【正确答案】 A 【试题解析】 t1, t2不能表示某行的首地址, t3写法错误。 33 【正

31、确答案】 A 【试题解析】 *p不调用类的构造函数, *p并不定义类对象,而是定义了一个指针指向一个 MyClock的对象。 34 【正确答案】 B 【试题解析】 如果函数所体现的计算不需要返回结果,则数据类型可以指定为void类型。注意,这种情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。 35 【正确答案】 C 【试题解析】 只要满足参数不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现如下语句 x=f(5)时,就会产生二义性,不能确定调用函数 f(5)还是调用函数 f(5,a),此时这两个函数不能重载。 36 【正确答案】 45 37 【正确答案】 叶子结点 38 【正确答案】 队列 或 Queue 39 【正确答案】 线性结构 40 【正确答案】 0 41 【正确答案】 cout end1 42 【正确答案】 p=A:f1; 43 【正确答案】 字符型 44 【正确答案】 A(aa), c(aa+1) 或 c(aa+1), A(aa) 45 【正确答案】 n=10 46 【正确答案】 private 47 【正确答案】 52 48 【正确答案】 s1=11, s2=8.2 49 【正确答案】 n*fact (n-1) 50 【正确答案】 xxxxx Hello

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

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

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