《计算机语言(VC)考试题和答案》由会员分享,可在线阅读,更多相关《计算机语言(VC)考试题和答案(156页珍藏版)》请在金锄头文库上搜索。
1、一.单选题(共13题,35.1分)1编写C+程序一般需经过的几个步骤依次是 。 A编辑、调试、编译、连接 B编辑、编译、连接、运行 C编译、调试、编辑、连接 D编译、编辑、连接、运行正确答案: B2决定C+语言中函数的返回值类型的是 。 Areturn语句中的表达式类型 B调用该函数时系统随机产生的类型 C调用该函数时的主调用函数类型 D在定义该函数时所指定的数据类型正确答案: D3下
2、面叙述不正确的是 。 A派生类一般都用公有派生 B对基类成员的访问必须是无二义性的 C赋值兼容规则也适用于多重继承的组合 D基类的公有成员在派生类中仍然是公有的正确答案: D4所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是 。 A类 B对象 C函数体 D数据块正确答案: A5对基类和派生类的关系描述中,错误的是 。 &nbs
3、p;A派生类是基类的具体化 B基类继承了派生类的属性 C派生类是基类定义的延续 D派生类是基类的特殊化正确答案: B6假定一个类的构造函数为A(int aa,int bb) a=aa-;b=a*bb;,则执行A x(4,5);语句后 ,x.a和x.b的值分别为 。 A3和15 B5和4 C4和20 D20和5正确答案: C7在类中说明的成员可以使用关键字的是 。 Apublic &nb
4、sp; Bextern Ccpu DRegister正确答案: A8下列字符串中可以用作C+标识符的是 。 A_123 Bfoobar Ccase D3var正确答案: A9字符串”student”占用 个字节的空间。 A7 B6 C5 D8正确答案: D10在类中说明的成员可以使用关键字 进行修饰。 &n
5、bsp;Aprivate Bextern Cauto Dregister正确答案: A11在C+语言中,对函数参数默认值描述正确的是: A函数参数的默认值只能设定一个 B一个函数的参数若有多个,则参数默认值的设定可以不连续 C函数参数必须设定默认值 D在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值正确答案: D12假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的 。 &nb
6、sp;A有参构造函数 B无参构造函数 C拷贝构造函数 D赋值构造函数正确答案: B13下列给字符数组进行初始化中, 是正确的。 Achar s1 ="12345abcd" Bchar s23="xyz" Cchar s33= a, x, y; Dchar s423="xyz","mnp"正确答案: A二.填空题(共7题,18.9分)1C+语
7、言中如果调用函数时,需要改变实参或者返回多个值,应该采取_或者_方式。切换到文本模式切换到文本模式正确答案:第一空: 传地址第二空: 引用2若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_语句。切换到文本模式正确答案:第一空: 声明3若要使用string类,需要引入的头文件是_。在函数前面用_保留字修饰时,则表示该函数表为内联函数。切换到文本模式切换到文本模式正确答案:第一空: string.h第二空: inline4编译时的多态性通过_函数实现。切换到文本模式正确答案:第一空: 重载5C+程序中,一个基本语句的最后一
8、个字符是_ 。切换到文本模式正确答案:第一空: 分号(; )6假定用户没有给一个名为MyClass的类定义构造函数和析构函数,则系统为其定义的默认构造函数形式为_,默认析构函数形式为_。切换到文本模式切换到文本模式正确答案:第一空: MyClass()第二空: MyClass() 7在类中定义和实现的函数称为_。切换到文本模式正确答案:第一空: 内联函数三.判断题(共11题,29.7分)1函数体内声明的静态变量,至多只会被初始化一次。正确答案:2对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同
9、。正确答案:3将类A所有构造函数的可访问性都限制为私有的,那么在main函数中不可能得到类A的实例对象。正确答案:4虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体。正确答案:5构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。正确答案:6C+的继承性允许派生类继承基类的部分特性,并允许增加新的特性或重定义基类的特性。正确答案:7C+中允许对数组进行动态定义。正确答案:8返回值类型、参数个数和参数类型都相同的函数也可以重载。正确答案:9友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。正确答案:10析构函数是函数体为
10、空的函数。正确答案:11就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。正确答案:四.程序阅读题(共2题,5.4分)1【程序阅读题】写出下列程序的运行结果。#include#include#includebool fun(long n);void main()long a=10,b=30,l=0;if(a%2=0) a+;for(long m=a;m<=b;m+=2) if(fun(m)if(l+%10=0)cout <<endl;cout <<setw(5) <<m;bool fun(long n)int sqrtm=(i
11、nt)sqrt(n); for(int i=2;i<=sqrtm;i+)if(n%i=0)return false;return true; 填写答案正确答案:11 13 17 19 23 292【程序阅读题】写出下列程序的运行结果。#includevoid main() int x=3,y=3;switch(x%2)case 1: switch (y) case 0:cout<<"Firstt"
12、 case 1:cout<<"Secondt"break; default: cout<<"Hellowt" case 2:cout<<"Thirdn" 填写答案正确答案:Hellow Third五.程序设计题(共4题,10.9分)1程序设计题 : 已定义一个Shape抽象类,在
13、此基础上派生出矩形Rectangle和圆形Circle类,二者都有 GetPerim()函数计算对象的周长,并编写测试main()函数。 class Shapepublic:Shape()Shape()virtual float GetPerim()=0; 填写答案正确答案:class Rectangle:public Shapepublic:Rectangle(float i,float j):L(i),W(j) Rectangle()float GetPerim()return 2*(L+W);private:float L,W;class Circle:public Shape
14、public:Circle(float r):R(r)float GetPerim()return 3.14*2*R; private:float R;void main()Shape * sp;sp=new Circle(10);cout<GetPerim ()<<endl;sp=new Rectangle(6,4);cout<GetPerim()<<endl;2程序设计题 : 求n(n=3)个学生的最高分和最低分及姓名,下面已经给出student类声明和main函数,请写出下面的student类的实现部分的三个函
15、数: student(char na,int d),* getname(),compare(student &s1,student &s2)。#include#includeclass studentchar name,10,;int deg;public:student(char na,="",int d=0);char * getname();friend int compare(student &s1,student &s2);int getdeg();void main()student st,=student("
16、王强",74),student("李刚",68),student("张雪",84);int i=0,min=0,max=0;for(i=1;i<3;i+)if(compare(st,max,st,i,)=-1)max=i;if(compare(st,min,st,i,)=1)min=i;cout<<"最高分:"<<st,max,.getdeg()<<"姓名:"<<st,max,.getname()<<endl;cout<<"最低分:"<<(*(st+min).getdeg()<<"姓名:"<st,max,.getname()s2.deg)return 1;else!-最低分:(*(st+min).getdeg()姓名:st,max,.getname()/st,max,.getname()!-!-