面向对象与程序设计A河南科技大学考试试卷格式(四页式)B卷1
- 格式:doc
- 大小:44.50 KB
- 文档页数:1
《面向对象程序设计》试卷A答案及评分标准本试卷共10个题,分别按以下标准评分,最后根据整个答题的情况,从程序设计风格的角度给予0-5分的附加分。
1、编写程序,将从键盘读入的所有大小写字母写入名为a.txt的文件中(遇EOF结束)。
(本题总分10分,fopen函数使用妥当4分,读入过程正确4分,关闭文件2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>main ( ){FILE *fptr;fptr = fopen("a.txt","w");if (fptr==NULL)return 0;char a;a=getchar( );while(a!=EOF ){if(a>=’a’ && a<=’z’|| a>=’A’ && a<=’Z’) fputc(a,fptr);a = getchar();}fclose(fptr);return 0;}2、定义一个矩形类Rectangle,并在main函数中用它声明一个矩形对象,然后利用接口设置该矩形对象的长和宽、计算面积并输出。
(本题总分10分,类结构2分,设置矩阵对象的长与高各1分,计算面积函数2分,输出函数2分,主函数2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>#include <iostream.h>class Rectangle{public:int getArea();void setWidth(int w);void setLength(int l);private:int Length;int Width;};int Rectangle::getArea(){return Length*Width;}void Rectangle::setLength(int l){Length=l;}void Rectangle::setWidth(int w){Width=w;}main(){int len,wid;Rectangle r1;cout<<"Input the Rectangle's Information"<<endl;cout<<"Lentgh:"<<endl;cin>>len;cout<<"Width:"<<endl;cin>>wid;r1.setLength(len);r1.setWidth(wid);cout<<"Rectangle's Area:"<<r1.getArea()<<endl;return 0;}3、定义一个整数栈类IStack,并用该类声明一个整数栈对象istack,往该对象压入整数6、7、8,然后逐一弹栈输出。
******************************************班级:******************************学号:************************************姓名:************************************共3页第1页得分 阅卷人************ ****** ****** ****** ****** ****** ****** 班级: ****** ****** ****** ****** ****** 学号: ****** ****** ****** ****** ****** ****** 姓名: ****** ****** ****** ****** ****** ******共3页 第21. (9分)class Point { private: int x, y; public:Point(){x=y=0;} Point(int x0,int y0) {x=x0;y=y0;} int GetX() { return x; } int GetY() { return y; }void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;} ___(1)___; //友元函数声明 ___(2)___; //友元函数声明};Point operator+(Point& pt,int dd) //加号操作符重载函数,实现Point 类对象与整数加法 { Point temp=pt; temp.x+=dd; temp.y+=dd; return temp;}Point operator+(Point& pt1,Point& pt2) //加号操作符重载函数,实现两个Point 类对象的加法 { Point temp=pt1; temp.x+=pt2.x; ___(3)___; return temp;}答案:(1) friend Point operator+(Point& pt,int dd) ----3分(2) friend Point operator+(Point& pt1,Point& pt2) ----3分 (3) temp.y+=pt2.y ----3分 2.(12分) 已知一个类的定义如下: #include<iostream.h> class AA { private:int a[10]; int n;public:void SetA(int aa[], int nn); //用数组aa 初始化数据成员a ,用nn 初始化数据成员n int MaxA(); //从数组a 中前n 个元素中查找最大值void SortA(); //采用选择排序的方法对数组a 中前n 个元素进行从小到大排序void InsertA();//采用插入排序的方法对数组a 中前n 个元素进行从小到大排序 void PrintA(); //依次输出数组a 中的前n 个元素};该类中InsertA()函数的实现如下,请在标号位置补充适当的内容。
《C++面向对象程序设计》试题(A卷) (满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa; B. 该语句会创建A类的5个对象,且它们的地址是连续的; C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:A.类A 中类型为A的静态数据成员 B. f中用语句A a = one; 定义的量a C. oneD. *this3.在一个类中,下列哪些成员可以是多个?A. 无参构造函数 B. 析构函数C. 原型相同的非静态成员函数 D. 静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A. 缺省的无参构造函数 B. 缺省的拷贝构造函数 C. T f( ) { T t; return t; }D. 不能判定A、B、C哪个最慢5.对函数原型为int& min(int& a, int& b);的全局函数,下列语句块哪个是错误的:A. int x=10,y=5; min(x,y)=100; B. int x=10,y=5, z; z=min(x,y+=x); C. int x=10,y=5;min(x,10)=y; D. int x=10,y=5; x=min(x,y);6.关于拷贝构造函数错误的说法有:A. 拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。
B. 若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。
C. 拷贝构造函数只能有一个参数,且为常量引用或非常量引用。
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,( A )是正确的。
A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。
A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(A )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( D )次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是(B )。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是( C )。
面向对象程序设计试卷及答案.)答案考试试卷A(面向对象程序设计注意事项:请考生按要求在试卷装订线内填写姓名、学号1.和年级专业。
请仔细阅读各种题目的回答要求,在规定的位2.置填写答案。
不要在试卷上乱写乱画,不要在装订线内填写3.无关的内容。
分钟。
100分,考试时间为1204. 满统分得单项选择一.分分,共小题,每小题3(本大题共10 评分) 30分人) B 中每个int类型的变量占用(1. C# 个字节的内存。
)C (( B)4 8 (A)1 )(D 2) A 2. 面向对象的特点是(态装封、继承、多(A)(B)抽象、封装、多态封继承、(C )抽装象、)抽象、多态、重载(D 3. C#控制台程序的主入口点是() C)C Run Page_Load(A)函数(B)函数( Main函数函数)(DForm_Load引用类型存储在()中。
B 4.))(堆内存B 堆栈)(A () C队列D (列表表示一个字符串的变量应使用以下哪在5. C#中,)B 条语句定义(.(A)CString str (B)string str(C)Dim str as string (D)char*str6.在中,用来与数据源建立连接的对象是( A )。
(A)Connection对象(B)Command 对象(C)DataAdapter对象(D)DataSet 对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征。
(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。
(A)1 (B)0 (C)23)(D)类型类型的值可以隐式转换成(9. float C的值而保持值不被改变。
double )C( long )B( char )A(int )D(是IExample而,是一个类Class1假设,中在C#10.A 下面的(,一个接口)类声明是正确的。
class Employee: Class1, IExample )A(.class Employee: IExample, Class1 B)(class Employee- Class1, IExample )(Cclass Employee: Class1/IExample )(D得.判断题二分15共每小题小题,3分,(本大题共5 评)分分中子类可以继承多个基类,也可以1. C人)×继承一个接口。
面向对象程序设计考试(答案见尾页)一、选择题1. 面向对象程序设计(OOP)的基本概念是什么?A. 类和实例B. 过程和函数C. 数据结构和算法D. 对象和封装2. 在面向对象程序设计中,什么是封装?A. 将数据隐藏在对象内部B. 提供统一的接口C. 包含数据和处理数据的函数D. 以上所有3. 在面向对象编程中,什么是继承?A. 重用已有的代码B. 创建新的类C. 在现有类的基础上添加新特性D. 以上所有4. 面向对象编程中的“继承”与“多态”有什么不同?A. 继承允许我们定义新的类,多态允许我们使用父类的接口处理不同的对象B. 继承是创建新类的过程,多态是使用父类接口处理不同对象的行为C. 继承是基于已有的类创建新类,多态是同一接口处理不同对象D. 继承是代码重用,多态是接口一致但实现不同5. 在面向对象编程中,什么是多态?A. 不同的对象对同一消息作出响应B. 同一个接口可以被不同的对象以不同的方式实现C. 对象的属性都是相同的类型D. 对象的状态可以改变6. 面向对象编程中,什么是抽象类?A. 包含抽象方法的类B. 包含常量的类C. 包含事件的类D. 以上所有7. 在面向对象编程中,什么是局部变量?A. 在方法内部定义的变量B. 在类内部定义的变量C. 在对象内部定义的变量D. 在包内部定义的变量8. 面向对象编程中,什么是静态方法?A. 使用静态修饰符定义的方法B. 不依赖于任何对象的方法C. 通过类名调用的方法D. 以上所有9. 在面向对象编程中,什么是构造函数?A. 初始化对象的函数B. 定义对象状态的方法C. 没有参数的方法D. 以上所有10. 面向对象编程中,什么是析构函数?A. 销毁对象并释放资源的方法B. 定义对象行为的方法C. 没有返回值的方法D. 以上所有11. 在面向对象程序设计中,什么是类和对象?它们的关系是什么?A. 类是一种抽象的数据类型,而对象是类的实例。
B. 类是用来描述具有相同属性和行为的对象的集合,对象是类的实例。
《面向对象程序设计C++ 》期末考试一试卷( A )班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。
(答题纸在本套试卷的第10 页上)一、选择题(每题 2 分,共 40 分)1、C++是()。
A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混淆型语言D.非结构化的程序设计语言2、面向对象程序设计思想的主要特点中不包含()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐渐求精3、若定义: string str;当语句cin>>str;履行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
B. MicrosoftA. Microsoft Visual Studio 6.0!C. Microsoft Visual4、考虑下边的函数原型申明:void testDefaulParam(int a,int b=7,char z='*');下边函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、以下语句中,将函数 int sum(int x, int y) 正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、以下表示引用的方法中,()是正确的。
已知: int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求经过函数来实现一种不太复杂的功能,而且要求加速履行速度,采纳()。
安徽财贸职业学院2011—2012学年第二学期 《Java 面向对象程序设计》期末试卷(B 卷)适用班级:软件1101一、单选题(每小题1分,共30分)1.在MyEclipse 中,( )视图可以将项目中包含的文件及层次结构展示出来。
A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是( )。
A)class B) 123_rr C) _lei D) test&12 3.下列的( )选项可以正确用以表示八进制值8。
A )0x8 B )0x10 C )08 D )010 4.以下哪个不是Java 的原始数据类型( ) A) int B) boolean C) float D) Char 5.下列有关Java 布尔类型的描述中,正确的是( ) A)一种基本的数据类型,它的类型名称为boolean B)用int 表示类型C)其值可以赋给int 类型的变量 D)有两个值,1代表真,0代表假6.在Java 中,不属于整数类型变量的是( ) A) double B) long C) int D) byte 7.以下do-while 语句构成的循环执行次数是( )。
int k=0;do { ++k ;}while(k<1);A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为( )。
A) true B) false C) 0 D) 运行时抛出异常 9.以下( )表达式不可以作为循环条件 A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是( ) A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[];C) int[] score = new int[5]{90,12,34,77,56}; D) int score[] = new int[]{90,12,34,77,56};班级_______ 考号________ 姓名_________________________________装______订______线_______________________________________________________________________________11.若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()A) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
大学期末考试试卷( A 卷)学年第学期考试科目:面向对象的程序设计考试类型:(闭卷)考试时间:120分钟学号姓名年级专业注意:答案请全部写在答题纸上,写在试卷上的无效!一、单项选择题(每小题2分,共30分)1、运行下列选项( )时,产生的错误是运行时错误A、希望做加法时做了乘法B、除以0C、语句结束时忘记加分号D、得到不正确的结果2、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A、.class .B、 .javaC、.exeD、 .html3、下列说法错误的是:( )A、在java中,变量名代表一个基本型值或一个对象。
B、一个对象变量不能保存对象本身,而是保存该对象的地址。
C、多个引用变量不能引用同一个对象。
D、当一个对象所有的引用都丢失时候,该对象不能为程序所用。
4、确定下列计算完成之后个变量的值。
假设每条语句开始执行时,所有变量都是int型并且值都为5. ( )a) product *=x++; b) quotient /= ++x;A、a)product = 36,x=6 b) quotient = 0, x=6B、a)product = 25,x=5 b) quotient = 0, x=5C、a)product = 36,x=6 b) quotient = 1, x=6D、a)product = 25,x=6 b) quotient = 0, x=65、下列选项中( ) 选项中的语句用语打印输出String对象introduction的第6个字符。
A、S ystem.println(“introduction.chartAt(6)”);B、S ystem.println(“String.introduction.hartAt(6)”);C、S ystem.println(“introduction.chartAt(5)”);D、S ystem.println(“introduction.chartat(6)”);6、下列关于构造方法的说法正确的是( )A、必须为每一个类都编写构造方法B、构造方法名可以不与类名相同C、构造方法有void类型的返回值D、构造方法与类名相同,且不能返回值7、创建一个Random对象generter,generter.nextInt(100 )-50产生的随机数的范围是:( )A、[0 50]B、[-50 49]C、[0 50)D、(-50 49)8 、执行下列代码将会产生的结果是( )System.out.println(“50 Plus 52 is :” + (50 +52))A、50 Plus 52 is:100B、50 Plus 52 is:50+52C、50 Plus 52 is:5052D、50 Plus 52 is:(5052)9设int x = 10 , int y =9 , int z = 36,则表达式x *= math.sqrt(9)+z%5的值是( )A、26B、40C、45D、2210、下列说法不正确的是( )A、在java语言中,大小写是敏感的B、在java语言中,方法中声明的变量必须经过初始化才能使用C、java应用程序从main方法开始执行D、在java语言中,整数相除可以产生小数结果11、下列关于类的说法不正确的是( )A、类是对象的蓝图B、类对象的状态由对象的属性值确定C、一个java文件中只能保存一个类D、类对象的行为由对象可执行的操作确定12、下面关于继承的说法不正确的是( )A、继承是从现有类派生出新类的过程。
2012─2013学年第一学期《面向对象程序设计》课程考试试卷(A卷)考试方式:上机学分:4 考试时间:150分钟班级:序号:姓名:1.定义类【15分,完善题,已有项目UseOOP】:定义一个计算类MyClass,包括一个整数Num,完善MyClass类计算从1到Num的累加和与累乘积,以整数10为例,测试应用程序,输出结果参照下图。
注意:本题有4个待完善点。
结果贴图:2.显示素数【15分,编程题,建议项目Timer】:使用一个定时器,按下“开始”按钮后开始输出从2开始的10个素数,结果显示在多行文本框中。
输出结果参照下图。
结果贴图:3.字符图形【15分,编程题,建议项目CharGraph】:编写一个程序输出九九乘法表(使用Label控件输出,要示输出样式与参考结果完全相同),参考结果图如下。
结果贴图:4.读文件【15分,编程题,建议项目ReadFile】:从测井数据文件DataIn.txt(该文件在提供的解决方案中)中读入数据,计算电阻率与声波的均值显示在列表框(ListBox)中,均值保留二位小数,参考结果图如下。
结果贴图:5.GDI绘图【15分,完善题,已有项目GdiGraph】:参照参考结果图和程序中的提示完成程序,电阻率曲线的数据使用程序中深度数据_depth和电阻率数据_rt,声波曲线的数据使用程序中深度数据_depth和声波数据_ac。
参照结果图如下。
注意:本题有4个待完善点,图中的曲线为折线,先水平绘线,再垂直绘线。
结果贴图:6.创建TreeView视图【15分,编程题,建议项目UseControl】:完全使用C#代码创建有三个节点的TreeView树,并展开所有树形节点,参考结果如下图。
注意:使用可视化方法添加节点无效。
结果贴图:。
《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的。错选、多选或未选均无分。 1.决定C++语言中函数的返回值类型的是 ( ) A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数时所指定的数据类型 2. 对基类和派生类的关系描述中,错误的是 ( ) A. 派生类是基类的具体化 B. 基类继承了派生类的属性 C. 派生类是基类定义的延续 D. 派生类是基类的特殊化 3. 关于this指针使用说法正确的是 ( ) A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B. 保证基类私有成员在子类中可以被访问。 C. 保证基类保护成员在子类中可以被访问。 D. 保证基类公有成员在子类中可以被访问。 4. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ( ) A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 5. 适宜采用inline定义函数情况是 ( ) A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 6. 假定一个类的构造函数为A(int aa,int bb){a=aa- -;b =a*bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为( ) A. 3和15 B. 5和4 C. 4和20 D. 20和5 7. 在类中说明的成员可以使用关键字的是 ( ) A. public B. extern C. cpu D. register 8. 使用地址作为实参传给形参,下列说法正确的是 ( ) A. 实参是形参的备份 B. 实参与形参无联系 C. 形参是实参的备份 D. 实参与形参是同一对象 9. 关于对象概念的描述中,说法错误的是 ( ) A. 对象就是C语言中的结构变量 B. 对象代表着正在创建的系统中的一个实体 C. 对象是类的一个变量 D. 对象之间的信息传递是通过消息进行的 10. 使用string类建立对象的不正确方式是 ( ) A. string s(‚C++‛); B. string s=‚C++‛; C. string str; D. string s=‘C++’; 二、填空题(本大题共14空,每空1分,共14分)。错填、不填均无分。 1. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是 。 2. 下列程序段的输出结果是 。 for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j); cout<
题12分,共36分)
1. 编写类String的构造函数、析构
函数和赋值函数和测试程序。
已知类String的原型为:
#include
#include
class String
{public:
String(const char *str=NULL); //
普通构造函数
String(const String &other); // 拷
贝构造函数
~String(); // 析构函数
String & operator=(const String
&other); // 赋值函数
void show()
{cout<
private:
char *m_data; // 用于保存字符串
};
2.使用动态内存分配生成动态数组来
设计一个4X4矩阵转置函数,使用指针
实现函数的功能。
3.定义一个哺乳动物类Mammal,再由
此派生出狗类Dog,定义一个Dog类的
对象,通过主函数测试基类与派生类的
构造函数和析构函数的调用顺序。