四川大学C面向对象程序设计模拟试题7
面向对象程序设计模拟题(C)

面向对象程序设计模拟题一、简答题:1. 什么是对象?什么是对象的事件和方法?试列举几个常用的事件和方法?答:对象是代码和数据的组合,可以作为一个单位来处理。
对象可以使应用程序的一部分,也可以是整个应用程序。
对象事件是对象可以识别的动作,即窗体、控件和其他对象可以识别的动作。
常用的事件有Click事件、Paint事件、Load事件等。
方法是对象要执行的动作,常见的有Clear、AddIRem、RemoveITem等。
2.VB有几种类型的表达式?请举例说明。
答:VB有5中类型的表达式,它们是算术表达式(例2*Pi*r*r)、字符串表达式(例“欢迎您”)、日期型表达式(例#11/22/98)、关系表达式(”abc”>”abcd”)和布尔表达式(2<=4AND6>3)。
二、填空题:1.单选按钮用于建立一组多选一的选项供用户选择,即在这些选项中,用户一次只能选择其中的一个选项选项,并且必须选择其中一个选项。
同时,当一个单选钮被选中时,其他选项自动关闭。
2.列表框是以列表形式显示一系列项目和信息,用户可通过单击其中某一项来选择的自己所需项目或信息。
在Windows中,使用列表框输出数据是保证数据标准化的重要手段,它是一个重要的输出控件。
在工具栏中它是一个标着带有滚动条的列表图案的按钮。
3.MsgBox 函数用来在对话框中显示消息,等待用户单击按钮,并返回一个整数,告诉程序用户单击了哪一个按钮。
4.在VB中有三种形式的数组,静态数组、动态的数组和控件数组。
静态数组就是指数组元素的个数在程序运行时保持不变,动态数组是指数组中的元素个数在程序运行时可以变化的数组,控件数组是使用VB中某些常用控件创建的数组。
使用静态数组、动态数组前必须要先声明,才能在程序中使用。
5.VB提供了图形控件,如Shape控件和Line控件。
它们提供一定的绘图样式,虽比较简单,但是使用非常方便,不需要编写代码,只要设置相应的属性即可。
c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
c 面向对象程序设计上机考试题库

.
z
-
int Bo*::volume() {return(length*width*height); }
int main() { Bo* bo*1(30,20,10); cout<<"The volume of bo*1 is "<<bo*1.volume()<<endl; Bo* bo*2(12,10,20); cout<<"The volume of bo*2 is "<<bo*2.volume()<<endl; returudent(int n,float s):num(n),score(s){} int num; float score;
}; void main() {Student stud[5]={
Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5)}; void ma*(Student* ); Student *p=&stud[0]; ma*(p); } void ma*(Student *arr) {float ma*_score=arr[0].score; int k=0; for(int i=1;i<5;i++) if(arr[i].score>ma*_score) {ma*_score=arr[i].score;k=i;} cout<<arr[k].num<<" "<<ma*_score<<endl; } 7.用 new 建立一个动态一维数组,并初始化 int[10]={1,2,3,4,5,6,7,8,9,10},用指针 输出,最后销毁数组所占空间。 *include<iostream> *include<string> using namespace std; void main(){ int *p; p=new int[10];
四川大学C面向对象程序设计模拟试题2

四川大学C面向对象程序设计模拟试题2一、单项选择题1.说明内联函数的关键字是(A)。
A)inlineB)virtualC)defineD)tatic2.假定CAb为一个类,则执行CAbo某;语句时将自动调用该类的(B)A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数3.cin是某个类的标准对象的引用,该类是(B)。
A)otreamB)itreamC)tdoutD)tdin4.下面的哪个保留字不能作为函数的返回类型?(C)A)voidB)intC)templateD)long5.派生类的成员函数不能访问基类的(C)。
A)保护成员B)公有成员C)私有成员D)前面各选项都正确6.在语句“cout<<data;”中,cout是(C)。
A)C++的关键字B)类名C)对象名D)函数名7.编译时多态性使用什么获得?(A)A)重载函数B)继承C)虚函数D)B和C8.拷贝构造函数的参数通常是(C)。
A)无特殊要求B.指向对象的指针C)本类对象的常引用D)对象9.C++有几种联编?(B)A)1种B)2种C)3种D)4种10.基类和派生类可以分别称为(B)。
A)“大类”和“小类”B)“父类”和“子类”C)“小类”和“大类”D)“子类”和“父类”二、填空题1.设函数ma某是由函数模板实现的,并且ma某(3.5,5)和ma某(3,5)都是正确的函数调用,则此函数模板具有(2)个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。
3.由tatic修饰的数据成员为该类的所有对象(共享)。
4.重载函数一般在参数类型或参数个数上不同,但(函数名)相同。
5.使用new建立的动态对象在不用时应该用(delete)释放所占用的空间。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#includeuingnamepacetd;claPoint{public:Point(inta=0,intb=0):某(a),y(b){}intGet某()cont{return某;}intGetY()cont{returny;}voidSet某(inta){某=a;}voidSetY(inta){y=a;}private:int某;inty;};intmain(){Pointu;contPointv(6,8);cout<<u.Get某()<<endl;u.Set某(16);cout<<u.Get某()<<endl;u.SetY(18);cout<<u.GetY()<<endl;cout<<v.Get某()<<endl;cout<<v.GetY()<<endl;return0;}上面程序的输出结果为:01618682.阅读下面程序,写出输出结果。
c面向对象程序设计考试试卷(详细讲解).doc

c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。
C面向对象程序设计上机考试题库

C面向对象程序设计上机考试题库Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#C++面向对象程序设计上机考试题库一、第一类题目(20道,每题7分,在word中保留代码并将输出结果窗口保留)1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
#include<iostream>class Box{ private:int x,y,z; int v,s;public:void int(int x1=0,int y1=0,int z1=0) {x=x1;y=y1;z=z1;}void volue() {v=x*y*z;}void area() {s=2*(x*y+x*z+y*z);}void show(){cout<<"x= "<<x<<" y= "<<y<<" z="<<z<<endl;cout<<"s= "<<s<<" v= "<<v<<endl;}};void main(){ Box a;(2,3,4);();();();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);<<endl;cout<<()<<" is the Minimum of two inteder numbers."<<endl<<endl;Compare<float> cmp2,;cout<<()<<" is the Maximum of two float numbers."<<endl;cout<<()<<" is the Minimum of two float numbers."<<endl<<endl;Compare<char> cmp3('a','A');cout<<()<<" is the Maximum of two characters."<<endl;cout<<()<<" is the Minimum of two characters."<<endl;return 0;}3.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
四川大学网络教育《C 语言程序设计》复习资料期末考试复习题及参考答案

《C语言程序设计》复习资料一.单项选择题1.下面哪一个是合法的用户自定义标示符( D )(A) b-b (B) float (C) <fr> (D) _isw2.a、b为两个bool型变量,如下哪一个表达式能够表达“a、b同时为真或同时为假”的含义?(C )(A)a&&b||a (B)(a&&b)||!b (C)(a&&b)||(!a&&!b) (D)(a||b)&&(!a||!b)3.对于表达式(x>0)?x=x-1:x=x+1,若当前x取值为-2,该表达式的运算结果为( A )(A) -1 (B) 0 (C) 1 (D) 24.不是C语言基本数据类型的是( D )(A) 指针类型 (B) 整型 (C) 字符型 (D) 实型5.以下for循环控制中,循环次数为10次的是( C )(A)for(int i=1;i<10;i++) (B)for(int i=0;i<=10;i++)(C)for(int i=0;i<20;i+2) (D)for(int i=0;i<=20;i+2)6.设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( B )(A) 1 (B) 0 (C) 3 (D) 47.设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( C )(A) 18 (B) -3 (C) 9 (D) 128.对于变量定义char* p_name[]={“Kate”,“John”,“Mike”},如下哪一种表达式能表示“Mike”中的‘k’字符?( B )(A)p_name[0][2] (B)p_name[2][2](C)*(p_name[2]+3) (D)*(p_name[1]+2)9.表达式(int)7.5/(float)2的取值为( A )(A)3.75 (B)3.5 (C)3 (D)410.有定义语句:float a[4];则分配给数组a的内存空间为( C )字节(A) 20 (B) 12 (C) 16 (D) 1011.表达式6>8 | | 3>=9的取值为( A )(A)0 (B)1 (C)2 (D)312. 表达式18/4*sqrt(4.0)/8值的数据类型为(C )(A) int(B)float(C)double(D)不确定13.表达式18/4*sqrt(4.0)/8值的数据类型为( D )(A)int B float C.double D.不确定14.在以下定义中对标识符ptr描述正确的是( C )int(*ptr)[3];(A)定义不合法 (B)是一个指针数组名,每个元索是一个指向整型变量的指针(C)是一个指针,它指向一个具有3个元素的一维数组(D)是一个指向整型变量的指针15.已知有语句 scanf (“%d%d”,&a,&b);要使整型变量 a = 6, b = 8,运行时,屏幕上应输入( D )(A)a=6,b=8 (B)a=6 b=8 (C)6 8 (D)6 , 816.若char a=3,b=6,c; c=a^(b>>2);则c的二进制形式为(A )(A) 00000010 (b)00000100 (C)00000001 (D)0000001117.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( D )(A)p=q (B)*p=*q (C)n=*q (D)p=n18.已知int a[3][4];则对数组元素引用正确的是( C )(A) a[2][4] (B) a[1,3] (C) a[2][0] (D) a(2)(1)19.已知定义int a[]={10, 60, 30};写出语句a[0]+ = a[1] - = a[2];运行后数组各元素的值为( B )(A)a[0] =70 , a[1] = 30,a[2] = 30。
c面向对象程序设计期末考试题及完整参考答案

2.在类中未说明访问权限的情况下,所有成员都是()的
A)共有的B)私有的C)内部的D)保护的
3.关于数组型参数下面那个说法是错误的()
A)方法中只允许定义一个数组型参数;
B)数组型参数所定义的数组必须是一维数组;
C)数组型参数可以作为引用参数或者输出型参数使用;
}
}
}
7、编程题(共20分)
定义一个教师类Teacher,具体要求如下:
1)私有字段姓名name(string)、性别sex(SexFlag)、年龄age(int,>=0)和工号no(string)等信息,其中SexFlag为枚举类型,包括Male(表示男性)、Female(表示女性),并且sex字段缺省为男性。
01223,王五,男,35岁
7)要求必须按照一个完整的C#程序结构来写,保证程序正确运行。
洛阳理工学院2011/2012学年 第一学期 期末考试试题卷(A)
参考答案及评分标准
课程:面向对象程序设计适用班级:B090501/2/3/4
8、填空题(每空1分,共20分)
1.属性操作
2.泛化依赖泛化
3.命名空间 主程序方法 程序集
}
public Truck(int weight, int load)
: base(50)
{
this.weight = weight;
this.load = load;
}
publicnewfloat Run(float distance) //重载
{
return (1 + load / Weight / 2) * base.Run(distance);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
class A
{
public:
A() { cout << "A" << endl; }
~A() { cout << "~A" << endl; }
};
class B: A
{
public:
B() { cout << "B" << endl; }
~B() { cout << "~B" << endl; }
};
int main()
{
B obj;
return 0;
}
上面程序的输出结果为:
3.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
int f(int a) { return a * a + 8; }
template <class T>
T f(const T &a) { return a * a; }
5.下列关于this指针的叙述中,正确的是( )。
A)与类相关的所有函数都含有this指针
B)所有类的成员函数都有this指针
C)所有函数都有this指针
D)只有类的非静态成员函数才有this指针
6.派生类的成员函数不能直接访问基类的( )。
A)保护成员B)公有成员
C)私有成员D)前面各选项都正确
7.在下列函数原型中,可以作为类Test构造函数的是( )。
class A
{
protected:
int a;
public:
A(int x): a(x) {}
void Show() const { cout << a << endl; }
};
class B: public A
{
protected:
int b;
public:
B(int x, int y): A(x), b(y) {}
class A
{
public:
virtual void Show() const { cout << "A::Show()" << endl; }
};
class B: public A
{
public:
void Show() const { cout << "B::Show()" << endl; }
int x = 5;
int main()
{
int x = 10;
cout << x << " " << ::x << " " << ns::x << endl;
return 0;
}
上面程序的输出结果为:
5.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
C)静态成员函数D)虚函数
10.下列关于C++函数的说明中,正确的是( )。
A)内置函数就是定义在另一个函数体内部的函数
B)函数体的最后一条语句必须是return语句
C)C++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型
D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
C++
一、单项选择题(本大题共
1.下列语句中,错误的是( )。
A)const int buffer =168;B)const intnum;
C)const double *p;D)double * const p = new double;
2.C++中的模板包括( )。
A)对象模板和函数模板B)对象模板和类模板
5.模板类型形参表使用的关键字为( )。
三、程序分析题(本大题共
1.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
class Test
{
private:
int n;
public:
Test(int i = 16) { n = i; }
int Get() { return n; }
int main()
{
cout << f(1) << "," << f(1.0) << endl;
return 0;
}
上面程序的输出结果为:
4.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
namespace ns
{
int x = 18;
}
};
void Refers(const A &obj)
{
obj.Show(bj1;
B obj2;
Refers(obj1);
Refers(obj2);
return 0;
}
上面程序的输出结果为:
6.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
void Show() const{ cout << b << endl; }
};
int main()
{
B obj(18, 5);
obj.Show();
A)void Test (int);B)int Test ();
C)~Test(int);D)Test(int);
8.在下面4个关键字中,用于说明虚基类的是( )。
A)virtualB)public
C)protectedD)private
9.在C++中,用于实现编译时多态性的是( )。
A)友元函数B)重载函数
int Get() const { return n - 2; }
};
int main()
{
Test a;
const Test b(18);
cout << a.Get() << "," << b.Get() << endl;
return 0;
}
上面程序的输出结果为:
2.阅读下面程序,写出输出结果。
#include <iostream>
二、填空题(本大题共
1.一个函数名为Show,返回值类型为void,没有参数的纯虚常成员函数可以声明为()。
2.若将一个二元运算符重载为类的友员函数,其形参个数应该是()个。
3.采用struct定义的类中数据成员和成员函数的默认访问权限是()。
4.在面向对象方法中,()描述的是具有相同属性与操作的一组对象。
C)函数模板和类模板D)变量模板和对象模板
3.对于常对象,C++遵循( )。
A)通过常对象可以调用常成员函数
B)通过常对象可以所有成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
4.以下关键字不能用来声明类的访问权限的是( )。
A)publicB)staticC)protectedD)private