1、二级 C+笔试 355 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.已知类 A 中有公用数据成员 B *b;其中 B 为类名。则下列语句错误的是(分数:2.00)A.A():d(new A(const A int f2(int x, int y) return xy? y:x;main() int a=4,b=3,c=5,d,e,f; d=f1(a,B) ;d=f1(d,C) ; e=f2(a,B) ;e=f2(e,C) ; f=a+b+c-d-e; coutd“, “f“, “eend1;执行后输出结果是(分数:2.00)A.3
2、,4,5B.5,3,4C.5,4,3D.3,5,47.算法的时间复杂度是指(分数:2.00)A.算法程序运行的具体时间B.算法程序的长度C.算法程序执行过程中基本运算的次数D.运行时算法程序所占的内存容量8.在 C+语言程序中(分数:2.00)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套9.以下叙述中不正确的是(分数:2.00)A.一个类的所有对象都有各自的数据成员,它们共享函数成员B.一个类中可以有多个同名的成员函数C.一个类中可以有多个构造函数、多个析构函数D.在一个娄中可以声明另
3、一个类的对象作为它的数据成员10.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是(分数:2.00)A.ofstream myfile:myfile, open(“d:ofiltxt“);B.ofstream *myfile=new ofstream;myfile-open(“d;ofiltxt“);C.ofstream myfile(“d:ofiltxt“);D.ofstream *myfilenew (“d:ofiltxt“);11.若已定义 int a256,执行语句 couthexa;的结果是(分数:2.00)A.100B.256C.ffeD.ff12.有以下程序 void
4、f(int x,int y) int t, if(xy)t=x;x=y;t;main() int a=4,b=3,c5; f(a,B) ;f(a,C) ;f(b,C) ; couta“,“b“,“cend1;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,513.下列运算符中,不能重载的是(分数:2.00)A.?:B.+C.-D.14.执行下列程序的结果是 main()float x1,y;y+x *+x;coutyend1;(分数:2.00)A.9.000000B.6.000000C.1.000000D.程序有错误15.友元函数的作用是(分数:2.00
5、)A.提高程序的效率B.加强类的封装性C.实现数据的隐蔽性D.增加成员函数的种类16.与数学式子 (分数:2.00)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,*(1/(2*x-1)D.3*pow(n,/(2*x-1)17.下列数据结构中能使用对分查找的是(分数:2.00)A.二叉链表B.带链的栈C.有序线性链表D.有序顺序表18.在关系数据库中,用来表示实体之间联系的是(分数:2.00)A.树结构B.网结构C.线性表D.二维表19.以下有关析构函数的叙述中错误的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参C.析构函数
6、不允许有显式的返回值D.析构函数名前必须冠有符号“”20.通常初始化拷贝构造函数的参数是(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名21.实现运行时的多态性用(分数:2.00)A.重载函数B.构造函数C.析构函数D.虚函数22.磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的(分数:2.00)A.inB.outC.appD.ate23.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据24.在模
7、块化程序设计中,按功能划分模块的原则是(分数:2.00)A.各模块的功能尽量单一,且各模块之间的联系尽量的少B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作25.设 char 型变量 x 中的值为 10100111,则表达式(2+x)(3)的值是(分数:2.00)A.10101001B.10101000C.11111101D.0101010126.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(分数:2.00)A.调用语句B.命令C.口令D.消息27.按“先进先出”原则组织数据的结构是(分数:2.00)A.有序
8、表B.栈C.队列D.二叉树28.以下关于私有和保护成员的叙述中,不正确的是(分数:2.00)A.私有成员不能被外界引用,保护成员可以B.私有成员不能被派生类引用,保护成员在公有继承下可以C.私有成员不能被派生类引用,保护成员在保护继承下可以D.私有成员不能被派生类引用,保护成员在私有继承下可以29.使用静态数据成员的好处不包括(分数:2.00)A.可以节省内存空间B.是为了解决数据共享问题C.可以直接用类名来引用D.可以提高运算速度30.以下叙述中不正确的是(分数:2.00)A.在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为B.类的一个成员只能具有一种访问控制属性C.构造
9、函数和析构函数是特殊的成员函数,因此不允许重载D.通过对象只能访问类的公有成员31.设有定义:Class person int num; char name10; public: void init(int n,char*m);person std30则以下叙述不正确的是(分数:2.00)A.std 是一个含有 30 个元素的对象数组B.std 数组中的每个元素都是 person 类的对象C.std 数组中的每个元素都有自己的私有变量 num 和 nameD.std 数组中的每个元素都有各自的成员函数 init32.下面程序的输出结果是 main()int a=15, b=21,m=0;swi
10、tch(a%3) case 0, m+; break;case 1 :m+; switch(b%2) default: m+; case 0:m+ ;break; coutmend1(分数:2.00)A.1B.2C.3D.433.若有以下程序:main() int k=2,i2,m;m=(k+i*=k);coutm“,“iend1;执行后的输出结果是(分数:2.00)A.8,6B.8,3C.6,4D.7,434.对下列二叉树进行前序遍历的结果是 (分数:2.00)A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY35.下列叙述中正确的是(分数:2.00)A.软件就
11、是程序清单B.软件就是存放在计算机中的文件C.软件应包括程序清单以及运行结果D.软件包括程序和文档二、B填空题/B(总题数:15,分数:30.00)36.在深度为 4 的满二叉树中,叶子结点的个数为U 【1】 /U。(分数:2.00)填空项 1:_37.在一个容量为 25 的循环队列中,若头指针 front9,尾指针 rear16,则该循环队列中共有U 【2】 /U个元素。(分数:2.00)填空项 1:_38.在面向对象方法中,允许作用于某个对象上的操作称为U 【3】 /U。(分数:2.00)填空项 1:_39.软件生命周期包括八个阶段。为使各时期的任务更明确,又可以分为以下三个时期:软件定义
12、期,软件开发期,软件维护期。编码和测试属于U 【4】 /U期。(分数:2.00)填空项 1:_40.在数据库系统中,数据具有独立性。由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。这种独立性称为U 【5】 /U。(分数:2.00)填空项 1:_41.在任何类中都有三种访问权限的数据成员,这三种权限是 public、private 和U 【6】 /U。(分数:2.00)填空项 1:_42.下列程序的输出结果是U 【7】 /U。 # includeiostream. h void main() char a= “
13、abcdabcabfgacd“ int i1=0,i2=0,i=0; while (ai) if (ai=“a“) i1+; if (ai=“b“) i2+; i+; cout i1“ “i2end1; (分数:2.00)填空项 1:_43.如下程序编译时发生错误,错误的原因是 show 函数实现语句错误,则正确的语句应该为U 【8】 /U。 # includeiostream.h class test private: int num; public: test(int) void show(); test: :test(int n) num=n; test: show() coutnume
14、nd1; void main() test T(10); T. show ( ); (分数:2.00)填空项 1:_44.下列程序的运行结果是U 【9】 /U。 #includeiomanip. h int Func(int * a, int n) int s=1; for(int i=0;in; i+) s*= * a+; return s; void main( ) int a=1,2,3,4,5,6,7,8); int b=Func(a,6)+Fnnc( cout“b= “bend1; (分数:2.00)填空项 1:_45.下列程序的输出结果为U 【10】 /U。 #ineludeios
15、tream. h int void main() int n=3, m=12; max(m, n)+ cout“m=“m“, n= “nend1; (分数:2.00)填空项 1:_46.下面程序编译时发现 ma39 错误,其原因是U 【11】 /U。 # includeiostream. h class FunArray int *pa; /指向一个数组空间 int size; /数组元素个数 public: FunArray(int a , int thesize): pa(A) , size(thesize) int Size( )return size; ; void main( ) i
16、nt s =3,7,2,1,5,4; FunArray ma (s, sizeof (s)/sizeof(int) ); ma3 = 9 coutma3end1; (分数:2.00)填空项 1:_47.下列程序的执行结果是U 【12】 /U。 #includeiostream. h class Student public: Student(int xx)x=xx; virtual float calcFuition( ); protected: int x; float Student: calcTuition() return float(x* x) class GraduateStude
17、nt:public Student public: GraduateStudent(int xx) :Student(xx) float calcTuition( ) ; float GraduateStudent: calcTuition( ) return float(x * 2); void main( ) Student s(20); GraduateStudent gs(30); couts.calcTuition()“ “gs. calcTuition()end1; /计算学生 s 和研究生 gs 的学费 (分数:2.00)填空项 1:_48.下列程序中需要清理动态分配的数组,划线
18、处应有的语句是U 【13】 /U。 #includeiostream, h class person int age, tall; public: person() age= 0; tall= 40; cout“A baby is born. “end1; person(int i) age=i, tall=40, cout“A old person. “end1; person(int i, int i) age = i; tall = j; cout “ a old person with tall. “ end1; person( ) cout“ person dead. “end 1;
19、 void show() cout“age= “age“ ,tall= “tallend1; ; void main() person * ptr; ptr = new person3; ptr0=person ( ) ptr1=person(18); ptr2=person(20,120); for(int i=0;i3; i+) ptri. show( ); _ (分数:2.00)填空项 1:_49.下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应该出现的语句是U【14】 /U。 #includeiostream, h #includefstream, h void
20、 main() fstream filel, file2; char fnl 10, fn210, ch; cout“输入源文件名“; cinfn1; cout“输入目标文件名“; cinfn2; file1. open(fn1, ios : in); _ while(ch=file1. get() ! =EOF) coutch; file2. put(ch) file1, close() file2, close(); (分数:2.00)填空项 1:_50.下列程序的输出结果是非曲直U 【15】 /U。 #includeiostream, h class base int x, y; pub
21、lic: base(int i, int j)x=i; y=j; virtual int add()return x+ y; ; class three: public base int z; public: three(int i, int j, int k) :base(i, j)z=k; int add() return (base: add()+z); ; void main() three * q=new three(lO,20,30); coutq-add()end1; (分数:2.00)填空项 1:_二级 C+笔试 355 答案解析(总分:100.00,做题时间:90 分钟)一、
22、B选择题/B(总题数:35,分数:70.00)1.已知类 A 中有公用数据成员 B *b;其中 B 为类名。则下列语句错误的是(分数:2.00)A.A():d(new A(const A int f2(int x, int y) return xy? y:x;main() int a=4,b=3,c=5,d,e,f; d=f1(a,B) ;d=f1(d,C) ; e=f2(a,B) ;e=f2(e,C) ; f=a+b+c-d-e; coutd“, “f“, “eend1;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3 D.3,5,4解析:解析 本题只需要考生按照
23、执行顺序分析即可得出正确答案为 C。7.算法的时间复杂度是指(分数:2.00)A.算法程序运行的具体时间B.算法程序的长度C.算法程序执行过程中基本运算的次数 D.运行时算法程序所占的内存容量解析:解析 算法的时间复杂度是用算法程序执行过程中所需要的基本运算次数来衡量的。8.在 C+语言程序中(分数:2.00)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套 解析:解析 本题考查函数的定义,调用及其嵌套之间的关系。9.以下叙述中不正确的是(分数:2.00)A.一个类的所有对象都有各自的数据
24、成员,它们共享函数成员B.一个类中可以有多个同名的成员函数C.一个类中可以有多个构造函数、多个析构函数 D.在一个娄中可以声明另一个类的对象作为它的数据成员解析:解析 本题考查类的基本概念。构造函数和析构函数比较特殊,析构函数只有一个。10.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是(分数:2.00)A.ofstream myfile:myfile, open(“d:ofiltxt“);B.ofstream *myfile=new ofstream;myfile-open(“d;ofiltxt“);C.ofstream myfile(“d:ofiltxt“);D.ofstrea
25、m *myfilenew (“d:ofiltxt“); 解析:解析 本题考查文件对象的创建方法。可以直接定义文件对象,也可以用 new 来动态生成。很明显,选项 D 中使用 new 的方式是错误的。11.若已定义 int a256,执行语句 couthexa;的结果是(分数:2.00)A.100 B.256C.ffeD.ff解析:解析 本题考查流操作中格式的控制,hex 的作用是将随后的输出数按照十六进制形式输出。12.有以下程序 void f(int x,int y) int t, if(xy)t=x;x=y;t;main() int a=4,b=3,c5; f(a,B) ;f(a,C) ;
26、f(b,C) ; couta“,“b“,“cend1;执行后输出结果是(分数:2.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,5 解析:解析 考生根据分析可以得知 f 函数的功能是交换两个变量的值。表明看起来,在 main 函数中,使用三次 f 函数完成三个变量的交换。真的如此么?只要考生注意到 f 函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。13.下列运算符中,不能重载的是(分数:2.00)A.?: B.+C.-D.解析:解析 在 C+中,?:是唯一一个三目运算符,不能被重载。14.执行下列程序的
27、结果是 main()float x1,y;y+x *+x;coutyend1;(分数:2.00)A.9.000000 B.6.000000C.1.000000D.程序有错误解析:解析 本题比较简单,考查自增运算符的运算规则以及运算符优先级的知识点。自增运算符的优先级高于乘法运算符的优先级。15.友元函数的作用是(分数:2.00)A.提高程序的效率 B.加强类的封装性C.实现数据的隐蔽性D.增加成员函数的种类解析:解析 友元函数的引入是为了提高程序的效率,减少通过接口访问的限制,但却破坏了类的封装性。16.与数学式子 (分数:2.00)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C
28、.3*pow(x,*(1/(2*x-1) D.3*pow(n,/(2*x-1)解析:解析 本题考查考生将数学表达式翻译成 C+语句的能力。17.下列数据结构中能使用对分查找的是(分数:2.00)A.二叉链表B.带链的栈C.有序线性链表D.有序顺序表 解析:解析 对分查找只能适用于顺序存储的有序线性表。18.在关系数据库中,用来表示实体之间联系的是(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:解析 在关系数据库中,用来表示实体之间联系的是二维表。19.以下有关析构函数的叙述中错误的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参 C.析构
29、函数不允许有显式的返回值D.析构函数名前必须冠有符号“”解析:解析 析构函数不能有形参。20.通常初始化拷贝构造函数的参数是(分数:2.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:解析 拷贝构造函数顾名思义,就是对两个对象进行拷贝生成。因此,其参数是指向某个对象的指针。21.实现运行时的多态性用(分数:2.00)A.重载函数B.构造函数C.析构函数D.虚函数 解析:解析 多态性是通过虚函数来完成的,不同类层次上的类通过虚函数,可以做到运行时根据指针的指向确定调用哪个对象的成员函数。22.磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的(分
30、数:2.00)A.inB.outC.app D.ate解析:解析 根据选项的含义,可知 app 表示追加的含义。可以选定正确答案为 C。23.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据解析:解析 数据库系统只是减少了数据冗余,但避免一切冗余;数据库系统中数据的一致性并不是指数据类型一致,而是指采用了统一的数据结构方式,数据库系统与文件系统比较,数据库系统解决了数据共享问题。24.在模块化程序设计中,按功能划分模块的原则是(分数:2.00)A.各
31、模块的功能尽量单一,且各模块之间的联系尽量的少 B.各模块的功能尽量单一,且各模块之间的联系尽量紧密C.各模块应包括尽量多的功能D.各模块应包括尽量多的输入输出操作解析:解析 在模块化程序设计中,按功能划分模块的原则是:要求各模块的功能尽量单一,且各模块之间的联系尽量的少。25.设 char 型变量 x 中的值为 10100111,则表达式(2+x)(3)的值是(分数:2.00)A.10101001B.10101000C.11111101D.01010101 解析:解析 本题考查二进制操作的几种形式,需要考生熟练掌握整数向二进制的转换和求反、异或等操作。26.在面向对象方法中,一个对象请求另一
32、对象为其服务的方式是通过发送(分数:2.00)A.调用语句B.命令C.口令D.消息 解析:解析 在面向对象方法中,一个对象请求另一对象为其服务是通过发送消息来实现的。27.按“先进先出”原则组织数据的结构是(分数:2.00)A.有序表B.栈C.队列 D.二叉树解析:解析 栈是按“先进后出”原则组织数据的结构;队列是按“先进先出”原则组织数据的结构;而有序表与二叉树均不是。因此,本题的正确答案为 C。28.以下关于私有和保护成员的叙述中,不正确的是(分数:2.00)A.私有成员不能被外界引用,保护成员可以 B.私有成员不能被派生类引用,保护成员在公有继承下可以C.私有成员不能被派生类引用,保护成
33、员在保护继承下可以D.私有成员不能被派生类引用,保护成员在私有继承下可以解析:解析 私有成员和保护成员都不能被外界引用,这与继承方式无关。29.使用静态数据成员的好处不包括(分数:2.00)A.可以节省内存空间B.是为了解决数据共享问题C.可以直接用类名来引用D.可以提高运算速度 解析:解析 静态成员在一个类中只保存一份,供类的不同对象共享,因此它可以节省内存空间。由于静态成员不属于某个对象,因此引用时必须用类名来标识。30.以下叙述中不正确的是(分数:2.00)A.在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为B.类的一个成员只能具有一种访问控制属性C.构造函数和析构函
34、数是特殊的成员函数,因此不允许重载 D.通过对象只能访问类的公有成员解析:解析 构造函数是可以重载的,从而保证了类的多态性。31.设有定义:Class person int num; char name10; public: void init(int n,char*m);person std30则以下叙述不正确的是(分数:2.00)A.std 是一个含有 30 个元素的对象数组B.std 数组中的每个元素都是 person 类的对象C.std 数组中的每个元素都有自己的私有变量 num 和 nameD.std 数组中的每个元素都有各自的成员函数 init 解析:解析 首先,std 是对象数蛆
35、,里面有 30 个对象,每个对象都有自己的私有数据成员,由于成员函数是公有的,在内存中存在一份即可,各个对象都可以使用。32.下面程序的输出结果是 main()int a=15, b=21,m=0;switch(a%3) case 0, m+; break;case 1 :m+; switch(b%2) default: m+; case 0:m+ ;break; coutmend1(分数:2.00)A.1 B.2C.3D.4解析:解析 本题考查 switch 语句的嵌套。实际上,只要考生按照顺序进行分析可以发现里层嵌套的switch 语句根本不用分析,因为执行流程根本不能到达那里。33.若有
36、以下程序:main() int k=2,i2,m;m=(k+i*=k);coutm“,“iend1;执行后的输出结果是(分数:2.00)A.8,6B.8,3C.6,4 D.7,4解析:解析 首先进行括号内的运算,注意赋值表达式是从右向左进行的。因此,只要考生细心运算就可以得到正确答案为 C。34.对下列二叉树进行前序遍历的结果是 (分数:2.00)A.ZBTYCPXAB.ATBZXCYP C.ZBTACYXPD.ATBZXCPY解析:解析 按照二叉树前序遍历的方法:在访问根结点、遍历左子树与遍历右于树这三者中,首先访问根结点,然后遍历左子树,最后遍历右于树;并且在遍历左、右子树时,仍然先访问根
37、结点,然后遍历左子树,最后遍历右子树。对本题中的二叉树进行前序遍历的结果应是 ATBZXCYP。35.下列叙述中正确的是(分数:2.00)A.软件就是程序清单B.软件就是存放在计算机中的文件C.软件应包括程序清单以及运行结果D.软件包括程序和文档 解析:解析 软件应包括程序和文档。二、B填空题/B(总题数:15,分数:30.00)36.在深度为 4 的满二叉树中,叶子结点的个数为U 【1】 /U。(分数:2.00)填空项 1:_ (正确答案:8)解析:解析 二叉树有一个性质,即在二叉树的第 k 层上,最多有 2k-1(k1)个结点。而对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树
38、的第 k 层上有 2k-1个结点。因此,在深度为 4 的满二叉树中,所有叶子结点在第 4 层上,即其结点数为2k-12 k-1837.在一个容量为 25 的循环队列中,若头指针 front9,尾指针 rear16,则该循环队列中共有U 【2】 /U个元素。(分数:2.00)填空项 1:_ (正确答案:7)解析:解析 设循环队列的容量为 m。 如果 rearfront,则循环队列中的元素个数为 rearfront; 如果 rearfront,则循环队列中的元素个数为 m+(rearfront)。 在本题中,front9,rear16,即rearfront,因此,循环队列中的元素个数为 rearf
39、ont16-97。38.在面向对象方法中,允许作用于某个对象上的操作称为U 【3】 /U。(分数:2.00)填空项 1:_ (正确答案:方法)解析:解析 在面向对象方法中,所谓方法是指允许作用于某个对象上的各种操作。因此,允许作用于某个对象上的操作称为方法。39.软件生命周期包括八个阶段。为使各时期的任务更明确,又可以分为以下三个时期:软件定义期,软件开发期,软件维护期。编码和测试属于U 【4】 /U期。(分数:2.00)填空项 1:_ (正确答案:软件开发)解析:解析 通常,软件生命周期包括八个阶段,问题定义、可行性研究,需求分析、系统设计、详细设计、编码、测试、运行维护。为使各时期的任务更
40、明确,又可以分为以下三个时期: 软件定义期:包括问题定义、可行性研究和需求分析三个阶段; 软件开发期:包括系统设计、详细设计,编码和测试四个阶段; 软件维护期;即运行维护阶段。40.在数据库系统中,数据具有独立性。由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。这种独立性称为U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:解析 通过系统提供的映象功能,在数据库系统中,使数据具有两方面的独立性;一是物理独立性二是逻辑独立性。其中,物理独立性是指:由于数据的存储结构与逻辑结构之间
41、由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。41.在任何类中都有三种访问权限的数据成员,这三种权限是 public、private 和U 【6】 /U。(分数:2.00)填空项 1:_ (正确答案:protected)解析:解析 本题考察类的访问权限,属于基本知识,考生应熟练掌握。42.下列程序的输出结果是U 【7】 /U。 # includeiostream. h void main() char a= “abcdabcabfgacd“ int i1=0,i2=0,i=0; while (ai) if (ai=“a“) i1+; if
42、 (ai=“b“) i2+; i+; cout i1“ “i2end1; (分数:2.00)填空项 1:_ (正确答案:4 3)解析:解析 分析 while 循环体可以判断出:i1 用于统计字符串中字符 a 的数量,i2 用于统计字符 b 的数量。因此,考察数组 a 的内容可得其数量分别为 4 和 3。43.如下程序编译时发生错误,错误的原因是 show 函数实现语句错误,则正确的语句应该为U 【8】 /U。 # includeiostream.h class test private: int num; public: test(int) void show(); test: :test(i
43、nt n) num=n; test: show() coutnumend1; void main() test T(10); T. show ( ); (分数:2.00)填空项 1:_ (正确答案:void test: show()coutnumend1;)解析:解析 show 成员函数的声明和实现不一致,即实现部分应有 void 修饰符,这样才能编译通过。44.下列程序的运行结果是U 【9】 /U。 #includeiomanip. h int Func(int * a, int n) int s=1; for(int i=0;in; i+) s*= * a+; return s; void
44、 main( ) int a=1,2,3,4,5,6,7,8); int b=Func(a,6)+Fnnc( cout“b= “bend1; (分数:2.00)填空项 1:_ (正确答案:b762)解析:解析 考生要注意*和+运算的优先级问题,此外要注意的是 a 作为整个数组的首地址传递给func 函数。45.下列程序的输出结果为U 【10】 /U。 #ineludeiostream. h int void main() int n=3, m=12; max(m, n)+ cout“m=“m“, n= “nend1; (分数:2.00)填空项 1:_ (正确答案:m13,n3)解析:解析 本题
45、考察引用作为形参进行参数传递的知识。max 函数的功能是返回较大的那个数,而max(m,n)+的作用是将较大值再进行增一运算。46.下面程序编译时发现 ma39 错误,其原因是U 【11】 /U。 # includeiostream. h class FunArray int *pa; /指向一个数组空间 int size; /数组元素个数 public: FunArray(int a , int thesize): pa(A) , size(thesize) int Size( )return size; ; void main( ) int s =3,7,2,1,5,4; FunArray ma (s, sizeof (s)/sizeof(int) ); ma3 = 9 coutma3end1; (分数:2.00)填空项 1:_
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1