1、国家二级 C+机试(选择题)模拟试卷 7及答案与解析 一、选择题 1 有如下类定义: class MyClass int value; public: MyClass(int n): value(n) int getValue()onstreturn value; ; 则类 MyClass的构造函数的个数是 ( )。 ( A) 1个 ( B) 2个 ( C) 3个 ( D) 4个 2 有如下类和对象的定义: class Constants public: static double getPI()return 3 1416; ; Constants constants; 下列各组语句中,能输出
2、 3 1416的是 ( )。 ( A) coutgetPI();和 coutgetPI();和 coutgetPI(); ( D) cout using namespace std; class VAC public: int f()constreturn 3; int f()retum 5; ; int main() VAC vl; const VAC v2; cout using namespaee std; class NyClass public: lyClass(int i=0)eout using namespace std; class AA int k; protected:
3、int n; void setK(int k)this-k=k; public: void setN(int n)this-n=n; ; class BB: public从 *类体略 * ; int main() BB x; x n=1: 1 x setN(2); 2 x k=3; 3 x setK(4); 4 return 0; 在标注号码的四条语句中正确的是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 7 有如下程序: #include using namespaee std; class Base int x; public: Base(int n=0): x(n)
4、eout using narnespaee std; class GA public: virtual int f()retunl 1; ; class GB: public GA public: virtual int f()return 2; ; void show(GA g)eoutdouble 由此可知 ( )。 ( A)这可能是一个函数模板的声明 ( B)这可能是一个类模板的声明 ( C)这既可能是一个函数模板的声明,也可能是一个类模板的声明 ( D)这肯定是一个错误的模板声明 11 C+系统预定义了 4个用于标准数据流的对象,下列选项中不属于此类对象的是 ( )。 ( A) cou
5、t ( B) cin ( C) CelT ( D) cset 12 下列语句都是程序运行时的第 1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是 ( )。 ( A) cout using namespace std; int main() int sum; for(int i = 0; i void main() int a=3 b=0; int*p=&a; b=+a+; cout void main() for(int a: 0, x=0; !x&a void main() int*p, *q, a, b; P=&a; coutp; ( A) *p表示的是指针变量 p的地址
6、( B) p表示的是变量 a的地址,而不是变量 a的值 ( C) *p表示的是指针变量 P的值 ( D) *p只能用来说明 p是一个指针变量 33 假定 int类型变量占用两个字节,其有定义 int x10=0, 2, 4;,则数组 x在内存中所占字节数是 ( )。 ( A) 3 ( B) 6 ( C) 10 ( D) 20 34 下列选项,不正确的是 ( )。 ( A) for(int a=1; a void main() char*a=“hello“, “the“, “wodd“; char * * pa=a: pa+; cout void fun(int a, int b, int C)
7、 a=456, b=567, C=678; void main() int x=10, y=20, z=30; fun(x, t, z); eout int min(int a, int b) if(adouble这里就可以看出这是一个函数模板的声明。 11 【正确答案】 D 【试题解析】 C+标准数据流的对象分别是 cout、 cin、 celt、 clog,所以本题答案为 D。 。 12 【正确答案】 D 【试题解析】 本题考查控制输出格式, A、 B、 c选项都会输出 “12345”,只有 D选项输出 “12345”,所以本题答案为 D。 13 【正确答案】 D 【试题解析】 考查 fo
8、r循环语句,本题中两层 for循环,每次 i循环, sum都被重新赋值,所以当 i=2时,执行完 for循环后 sum为 37。所以答案为 D。 14 【正确答案】 B 【试题解析】 本题考查字符串的定义, A选项中,定义了一个字符,而用字符串赋值,所以错误, C选项定义了字符数组,但是 赋值的字符串实际上有 6个字符,所以赋值错误, D选项定义了一个字符串指针数组,赋值错误。 15 【正确答案】 C 【试题解析】 全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明,本题中定义了两个全局
9、变量 i, j,所以主函数中对全局变量重新赋值输出后为 88,所以答案为 C。 16 【正确答案】 A 【试题解析】 栈是先进后出的数据结构,所以栈顶元素最后人栈却最先被删除。栈底元素最先入栈却 最后被删除。所以选择 A。 17 【正确答案】 C 【试题解析】 栈是先进后出的数据结构,在整个过程中,栈底指针不变,人栈与出栈操作均由栈顶指针的变化来操作,所以选择 C。 18 【正确答案】 D 【试题解析】 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0的叶子结点总比度为 2的结点多一个,所以本题中度为 2的结点为 1一 1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以
10、共 7个结点共 7层,即度为 7。 19 【正确答案】 A 【试题解析】 软件按功能可以分为:应用软 件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、 C、 D都是系统软件,只有 A是应用软件。 20 【正确答案】 B 【试题解析】 1966年 Boehm和 Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。 21 【正确答案】 A 【试题解析】 详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细
11、节, 所以 A错误。 22 【正确答案】 C 【试题解析】 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 23 【正确答案】 D 【试题解析】 因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授,所以他们之间是多对多的关系,可以表示为 m: n。 24 【正确答案】 D 【试题解析】 关系 T中的元组是关系 R中有而关系 S中没有的元组的集合,即从关系 R中除去与关系 S中相同元组后得到的关系 T。所以做的是差的运算。 25 【正确答案】 B
12、【试题解析】 只有 B选项中 369可以用无符号整数来表示和存储。 A选项中一369有负号,选项 c中 0 369是小数都不能用无符号整数类存储。选项 D是一个整数集合得用数组来存储。 26 【正确答案】 D 【试题解析】 C+语言最重要的特点是其为一种面向对象的程序设计语言,但是C+语言也包含了 C语言的全部特征。 27 【正确答案】 A 【试题解析】 标识符是一个以字母或下画线开始的,由字母 、下画线和数字组成的字符串,标识符不能与任意关键字同名。 28 【正确答案】 C 【试题解析】 由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为
13、intfloatdouble 。 29 【正确答案】 B 【试题解析】 *p为所指对象 a的值,语句 “b=+a+; ”等价于 “b=b+a;a=a+1; ”。 30 【正确答案】 C 【试题解析】 在进入最后一次循环时 a=10,在循环体内执行 “a+; ”后 a=11,执行完该次循环体计算 for循环的增量部分后 a=12小于 10,循环结束。 31 【正确答案】 D 【试题解析】 选项 A中 for循环可以用干循环次数不确定的情况;选项 B中 for循环是先判断表达式,后执行循环体语句;选项 c中 for循环可以用 break语句跳出循环体,从而接着执行循环体后面的语句。 32 【正确答
14、案】 B 【试题解析】 p表示的是变量 a的地址,定义后 *p表示的是变量 a的值。 33 【正确答案】 D 【试题解析】 x数组共有 10个元素,在花括号内只提供 3个初值,这表示只给前面的 3个成员赋值,后 7个元素的值为 0,所以,一共有 20个字节。 34 【正确答案】 B 【试题解析】 本题考查的是基本循环语句的使用,选项 A,选项 C和选项 D都为正确的形式,在选项 B中的 while(a=10)后缺少结束符分号 “; ”。 35 【正确答案】 A 【试题解析】 本题考查的是字符数组的初始化。选项 B中用 3个元素初始化大小为 2的数组,越界了;选项 C中应该是 2行 3列的数组,
15、题中使用 3行 2列初始化;选项 D中数组合后应用方括号。 36 【正确答案】 B 【试题解析】 本题主要考查的是指针数组和指向 指针的指针之间的关系,其中 a是指针数组, pa是指向指针数组行的指针,所以 pa自加 1相当于指向下一行。 37 【正确答案】 D 【试题解析】 C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。 38 【正确答案】 B 【试题解析】 本题考查函数中变量的作用范围,在主函数中给变量 x、 y、 z赋值,然后将其作为实参传递给了函数 fun(),虽然在函数 fun()中改变了这 3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数 fun()结束后,主函数 3个变量的值未改变 。 39 【正确答案】 D 【试题解析】 在 C+语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用。但是不能调用 main()函数。 40 【正确答案】 B 【试题解析】 本题考查的是函数的调用,第一次调用 min(2, 3),因为 23,所以返回值为 2,第二次调用 min(1, 2),因为 12,所以返回 l。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1