C模拟题答案.docx

上传人:h**** 文档编号:1195880 上传时间:2018-12-19 格式:DOCX 页数:17 大小:39.11KB
下载 相关 举报
C模拟题答案.docx_第1页
第1页 / 共17页
C模拟题答案.docx_第2页
第2页 / 共17页
C模拟题答案.docx_第3页
第3页 / 共17页
C模拟题答案.docx_第4页
第4页 / 共17页
C模拟题答案.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、C+程序设计模拟试卷(五)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1. 静态成员函数没有()A. 返回值B. this指针C. 指针参数D. 返回类型答案:B解析:(P107)静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、形参,所以使用(P107)静态成员函数,指针可以作为形参,也具有返回值。静态成员是类具有的属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针。静态成员函数当在类外定义时,要注意不能使

2、用static关键字作为前缀。由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问。2. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()A. 友元函数B. 虚函数C. 构造函数D. 析构函数答案:C解析:(P75)定义构造函数作用就是初始化对象,而析构函数释放对象空间。虚函数用于完成多态性,友元增加访问方便性。3. 所有在函数中定义的变量,都是()A. 全局变量

3、B. 局部变量C. 静态变量D. 寄存器变量答案:B解析:(P136)变量存储类可分为两类:全局变量和局部变量。(1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变量的位置开始到源程序结束。全局变量增加了函数之间数据联系的渠道,全局变量作用域内的函数,均可使用、修改该全局变量的值,但是使用全局变量降低了程序的可理解性,软件工程学提倡尽量避免使用全局变量。(2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变量的位置开始到函数结束。局部变量包含自动变量(auto)静态变量(static)以及函数参数。auto变量意味着变量的存储空间的分配与释放是自动进行的。说明

4、符auto可以省略。函数中的局部变量存放在栈空间。在函数开始运行时,局部变量被分配内存单元,函数结束时,局部变量释放内存单元。因此,任两个函数中的局部变量可以同名,因其占有不同的内存单元而不影响使用。这有利于实现软件开发的模块化。static变量是定义在函数体内的变量,存放在静态存储区,不用栈空间存储,其值并不随存储空间的释放而消失。4. 假定AB为一个类,则执行 “AB a(2), b3 ,*p4;”语句时调用该类构造函数的次数为()A. 3B. 4C. 5D. 9答案:B解析:(P79)a(2)调用1次带参数的构造函数,b3调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数。

5、所以共调用构造函数的次数为4。5. 如果表达式+a中的“+” 是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()A. a.operator+(1)B. operator+(a)C. operator+(a,1)D. a.operator+()答案:D解析:(P186)运算符的重载,前缀先让变量变化。调用a,等价为a.operator+(),注意无参的形式。后缀的话a+,等价于a.operator(0),带形参,形参名可省。6. 已知f1和f2是同一类的两个成员函数,但 f1不能直接调用 f2,这说明()A. f1和f2都是静态函数B. f1不是静态函数, f2是静态函数C.

6、f1是静态函数, f2不是静态函数D. f1和f2都不是静态函数答案:C解析:(P107)普通成员函数可以调用静态函数,相反静态函数不能调用普通成员函数,这与普通函数与常成员函数相同。因此选择C项。7. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ()A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数答案:A解析:(P59)内联函数特征代码少,频繁调用,执行效率高。重载函数解决统一接口的问题;递归是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁。嵌套函数即反复调用,速度较慢。所以选择A项。8. 解决定义二义性问题的方法有

7、()A. 只能使用作用域分辨运算符B. 使用作用域分辨运算符或成员名限定C. 使用作用域分辨运算符或虚基类D. 使用成员名限定或赋值兼容规则答案:B解析:(P139)解决二义性问题主要要两种方法:(1)赋值兼容规则;(2)虚基类。9. 在main函数中可以用 p.a的形式访问派生类对象 p的基类成员a,其中a是()A. 私有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员答案:D解析:(P132)公有成员可以在类外访问,保护类型成员可以在派生类中访问,但不能在类外访问,在main函数中访问,说明a是公有成员。只有公有继承时a才能是公有的,所以D项正确。10

8、. 在C+中不返回任何类型的函数应该说明为()A. intB. charC. voidD. double答案:C解析:无形参或无返回值都可以用void来声明,int char double分别是整型、字符型和实型。11. 若Sample 类中的一个成员函数说明如下:void set(SampleB. A1-p=5;C. A1.*p=5;D. *A1.p=5;答案:C解析:(P118)A中p是指针即地址,错误;B选项中A1不是指针不能使用指向运算符-,错误;“*”比“.”级别要高,所以D选项*A1.p=5相当于(*A1).p=5;错误。另外涉及到指向成员函数时注意以下几点:指向成员函数的指针必须

9、于其赋值的函数类型匹配的三个方面:(1)参数类型和个数;(2)返回类型;(3)它所属的类类型。成员函数指针的声明:指向short型的Screen类的成员的指针定义如下:short Screen:* ps_Screen;ps_Screen可以用_height的地址初始化如下:short Screen:*ps_Screen=类成员的指针必须总是通过特定的对象或指向改类型的对象的指针来访问。是通过使用两个指向成员操作符的指针(针对类对象和引用的.*,以及针对指向类对象的指针的-*)。18. 如果采用动态多态性,要调用虚函数的是()A. 基类对象指针B. 对象名C. 基类对象D. 派生类名答案:A解析

10、:(P171)基类指针或者基类的引用调用虚函数都会产生动态多态性19. 若有以下定义,则说法错误的是()int a=100,*p=A. 声明变量p,其中*表示 p是一个指针变量B. 变量p经初始化,获得变量 a的地址C. 变量p只可以指向一个整型变量D. 变量p的值为100答案:D解析:指针变量如同其他变量一样,在使用之前必须先声明。声明指针变量的格式为:*;其中,是指针变量所指向对象的类型,它可以是C+语言预定义的类型,也可以是用户自定义类型。是用户自定义的标识符。符号*表示是指针变量。而不是普通变量。 *表示指针,p是变量,p指向一个整型的变量,值为a的地址值,*p=100。20. C+语

11、言建立类族是通过()A. 类的嵌套B. 类的继承C. 虚函数D. 抽象类答案:B解析:(P174)类族即同一个类派生出来的类,各个类是兄弟或父子关系。二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。1. 假设int a=1,b=2;则表达式 (+a/b)*b-的值为 _。答案:2解析前缀或表示先使变量值变化,再使用,这和后缀恰恰相反。但是编译coutV2(V1);解析采用向量初始化另一个向量的形式:vector name1(name);三、改错题(本大题共5小题,每小题4分,共20分)1. #include class A private:

12、int x;public:A(int i)x=i;A()x=0;friend int min(A;int min(A void main() A a(3),b(5);coutclass shapepublic:virtual int area()return 0;class rectangle:public shapepublic:int a, b;void setLength (int x, int y) a=x;b=y;int area() return a*b;void main()rectangle r;r.setLength(3,5);shape s1,*s2=cout template class Aprivate:T x,y,s;public:A(T a,T b)x=a,y=b;s=x+y;void show()coutadd(10,100);add.show();答案: 修改A add(10,100);解析A add(10,100);类模板的使用,参数实例化后生成模板类。用类模板定义对象时要指定参数类型。4. 生成具有n个元素的动态数组。#include void main()int n;cinn;int an;a0=2;coutclass Aint i;public:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。