1、A.成员函数的代码段不占用对象的存储空间B.在类内定义的成员函数的代码段占用对象的存储空间C.对象所占用的存储空间包括该对象的数据成员空间和成员函数空间D.同一类的多个不同对象的成员函数对应不同的函数代码段10. 下面对于友元函数描述正确的是( )。A.友元函数的实现必须在类的内部定义B.友元函数是类的成员C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员11. 关于new运算符的下列描述中,( )是错的。A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值12
2、. 运算符重载函数不能是( )。A.成员函数 B.友元函数 C.内联函数 D.带默认值参数的函数二、简答题1. 面向对象程序设计语言有哪些特征?答:面向对象程序设计有三个基本特性:封装、继承和多态。所谓封装,就是通过定义 类并且给类的属性和方法加上访问控制权限来抽象事物的本质特性。所谓继承,就是在定 义一个新的类时,可以先把一个或多个已有类的功能全部包含进来,然后再给出新功能的定 义或对已有类的功能重新定义,它是代码重用的一种机制。所谓多态性,就是不同对象收到 相同的消息时,产生不同的动作,它是实现“一个接口,多种方法”的一种机制。2. 试比较面向过程程序设计方法和面向对象程序设计方法的区别。
3、面向过程程序设计是一种以功能为中心、基于功能分解的程序设计方法。一个过程 式程序由一些子过程(函数)构成,每个子程序对应一个子功能,它实现了功能抽象。子程序 描述了一系列的操作,它是操作的封装体。过程式程序的执行过程体现为一系列的子程序 (函数)调用。在过程式程序中,数据处于附属地位,它独立于子程序,在子程序调用时作为 参数传给子程序使用。面向过程程序设计的特征可以描述为:程序=算法+数据结构面向对象程序设计是一种以数据为中心、基于数据抽象的程序设计方法。一个面向对 象程序由一些对象构成,对象是由一组数据及可以作用于其上的一组操作所构成的封装体。 对象的特征由相应的类来描述,一个类可以从其他类
4、继承。面向对象程序的执行过程体现 为各个对象之间相互发送和处理消息。面向对象程序设计的特征可以描述为:程序=对象/类+对象/类+对象/类 对象/类=数据+操作三、程序填充题请将下列程序横线处缺少的部分补上,使其能正确运行。1、每个考生的考号及10道试题得分依次在一行内输入。约定未选做的试题得分用负数 (一 1)标识。选答试题多于5道题,按前5道题得分评定成绩。如有不合理的得分或输入错 误,程序要求重新输入。程序以输入的考生考号为负数表示输入结束。 程序输出各考生的考号、总分和成绩等级。其中成绩等级按如下所示规则评定:总分等级90 100A80 89B70 79C60 69D059E程序还对实考
5、人数、各等级得分人数及各试题解答人数与平均得分(保留小数两位)进 行统计和输出。8. include 9. include using namespace std; int main()const int MAXSCORE = 20; const int QUESTION = 10; const int ORDERS = 5;int pQUESTION = 0,0, 0, 0, 0,0, 0, 0,0, 0; / p数组用于存放考生 10 道题的得分 int nQUESTION=0,0, 0,0,0,0, 0,0,0,0;/ ni数组元素表示第i题的解答人数 int sQUESTION = 0
6、, 0, 0, 0, 0, 0, 0, 0, 0, 0; / s i数组元素表示第 i 题的总得分int f0RDERS = 0,0,0,0,0; / f数组用于存放各成绩等级的人数int i,score, c, number, pn = 0; /pn 表示实考人数char flag, ch 120 ;char * title= 90 - 100 A”,” 80 89”,” 70- 79 C ”,”60 - - 69 D”,”0- 59E” ;while(l)cout nEnter number & scorel scorelO nn; cin number; if (number = 0)g
7、ets(ch);Number = 0 . Error! Input again! n endl; continue; ; for (c= 0,i= 0;i QUESTION & c= i; i+ ) p i;if (pi 20. Error! , endl;continue;f or (c = 0, score = 0, i = 0; i QUESTION; if ( ) / (4) C+ ; score + = p i; n i+ ; s i + = p i; flag = (score = 100)?A1 : (score 60)? ; / (5) f + ; / (6) pn+ ; co
8、ut M Number = M number Score = M score Mark = n f lag STUDENTS = npnendl; for ( i = 0; ORDERS; i + ) title i f in Question Students Average、n”;for (i = 0; i+ ) if (ni) cout setw(6) i + 1 setw( 10) n i; setprecision(4) / (7)else setw(10) n i” - ” endl;return 0;2.下列程序是一个简单的计算器模拟程序。对任意给定的正确四则运算表达式,程序 计
9、算结果值并输出。程序无查错功能,假定所输入的都是正确的四则运算表达式,并且表达 式中运算分量为无正负号整数,运算符为“ +、一、*、/”,圆括号按常规配对,表达式以字符 “二”结束。程序中,函数指针数组func是为了统一加减乘除计算而设置的。函数getach()的功能是获取表达式的一个合法字符,并将字符存入变量curch,函数getid()的功能是判断刚才 输人的字符是操作数还是运算符。若读入的字符不是数字,要判断一下是哪个运算符,不同 的运算符返回不同的值。函数calO使用了递归算法。它的功能是:首先判断已经输入的字符,若是则根据 括号优先的原则,先递归调用自己,求出括号里的表达式的值,否则
10、肯定是操作数(假定所输 入的都是正确的四则运算表达式,这样一个表达式的开头不是括号就肯定是操作数),将其 值从全局变量mim赋给xl。接着读入一个运算符,若运算符是“)”或“ = ”,则完成一级运 算,返回结果xl。读入第2个操作数,词上,若读人的字符是“(”,则根据括号优先的原则, 先递归调用自己,求出括号里的表达式的值,否则将其值赋给操作数x2。然后读入第2个 运算符。下一步的操作应当是先读人第3个操作数,再根据opl和op2的优先级决定进行 运算opl还是叩2,并将计算结果作为操作数xl或x2,继续后续计算。循环的结束条件是 遇到“)”或“ = ”,说明一对括号内的计算完成或整个计算结束
11、。# include using namespace std;int myadd( int x, int y) return x + y;int my sub ( int x, int y) return x - y;int mymul( int x, int y) return x * y;int mydiv( int x, int y) return x/y;int ( * func ) ( int x, int y) = myadd, mysub, mymul, mydiv; int num, curch;char chtbl = n + - * / () = n ;char corch = + - */() = 0123456789;int getach() int i; while(l) curch = getchar(); if (curch = EOF) return -1; for (i = 0;corch i & curch ! = corchi;i+ ); if (i = 0* & curch 01 &91; getach() num = ; / (1) return - 1; else for( i = 0; chtbl i; i+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1