四川大学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);
C 面向对象程序设计习题解答(全)
4答案 n=2,sum=2 n=3,sum=5 n=5,sum=10
5答案 x=3 6答案 x=1,y=2 x=30,y=40 7答案 1 2 3 4 exit main 3 2 1 8答案 n=100 9答案 the student is:Li Hu the teacher is:Wang Ping 10答案 2 11答案 1035,789.504 12答案 13答案
一、选择题 1 2 3 4 D B B C
类和对象的进一步解析
5 D 6 D 7 D B 8 C B 9 10 11 12 13 14 15 16 B D B A A C B A
17 18 19 20 21 22 23 24 C C D B A D 二、填空题 1 this 2所有成员 3友元类、友元函数 4 friend 5 程序编译、程序结束 三、程序阅读题
第六章 派生与继承
一、选择题 1(1) 1(2) 2 A B 3 4 5 6 7 8 9 10 11 D C C C D D B C A D
二、填空题 1 继承 2 具体化、抽象 3 公有继承、保护继承、私有继承 4 子对象 5 public(共有的)、protected(保护的)、不可访问 6 protected(保护的)、protected(保护的)、不可访问的 7 private(私有的)、private(私有的)、不可访问的 8 二义性 三、判断下列描述的正确性 1 2 3 4 5 6 7 8 9 10 11 12 13 √ × × × × × √ √ × × √ √ ×
1、 选择题 1 2 3 4 5 6 7 C 8 9 10 D D D C A D C 2、 程序阅读题 1答案 a=639,b=78,c=12 2答案 a=5,b=8 a=8,b=5 3答案 10 4答案 x=20.6 y=5 z=A x=216.34 y=5 z=A x=216.34 y=2 z=A x=216.34 y=2 z=E 5答案 ic=11 fc=7.82 ic=5 fc=2.15 3、 判断下列描述的正确性 1 2 √ × D A
川大《面向对象程序设计》第一次作业
我的作业列表-《面向对象程序设计》第一次作业答案一、单项选择题。
本大题共 30个小题,每小题 2.0分,共60.0分。
在每小题给出的选项中,只有一项是符合题目要求的。
1. C + +函数的声明和定义可以分开,函数声明不需要()。
(D )A. 返回类型B. 函数名C. 参数表D. 函数体2.函数的形参是()。
(B )A. 全局变量B. 局部变量C. 静态变量D. 部变量3.数组名表示的是数组的()。
(C )A.类型B.用途C.地址D.长度4.如果短整型的长度是 2字节,有一个短整型指针 p的值是0XFFED1200 ,那么p+1 的值为()。
(B )A.0XFFED1201B.0XFFED1202C.0XFFED1203D.0XFFED12045.private 访问属性限制对象的成员可以在()中访问。
(A )A.本类的成员函数B.main函数C.父类的成员函数D.子类的成员函数6.如果定义了一个类 myclass ,则为 myclass 类对象以成员函数形式重载后 ++ 运算符的声明应该为()。
( C )A. myclass operator++();B. myclass& operator++();C. myclass operator++( int );D. myclass& operator++( int);7.如果有如下定义: const char* str = "OK"; 那么, sizeof ( str )的值应该是()( D )A. 1B. 2C. 3D. 48.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么()。
( D )A.在子类中这两个函数构成重载关系B.子类不会继承父类的这个函数C.子类中的函数会覆盖父类中的函数D.编译时会发生错误9.如果 myclass 类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句 myclass obj = 100 ;会()。
四川大学C++面向对象程序设计模拟试地的题目7
C++面向对象程序设计模拟试题七一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列语句中,错误的是( )。
A)const int buffer = 168; B)const int num;C)const double *p; D)double * const p = new double;2.C++中的模板包括( )。
A)对象模板和函数模板B)对象模板和类模板C)函数模板和类模板D)变量模板和对象模板3.对于常对象,C++遵循( )。
A)通过常对象可以调用常成员函数B)通过常对象可以所有成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数4.以下关键字不能用来声明类的访问权限的是( )。
A)public B)static C)protected D)private5.下列关于this指针的叙述中,正确的是( )。
A)与类相关的所有函数都含有this指针B)所有类的成员函数都有this指针C)所有函数都有this指针D)只有类的非静态成员函数才有this指针6.派生类的成员函数不能直接访问基类的( )。
A)保护成员B)公有成员C)私有成员D)前面各选项都正确7.在下列函数原型中,可以作为类Test构造函数的是( )。
A)void Test (int); B)int Test ();C)~Test (int); D)Test (int);8.在下面4个关键字中,用于说明虚基类的是( )。
A)virtual B)publicC)protected D)private9.在C++中,用于实现编译时多态性的是( )。
A)友元函数B)重载函数C)静态成员函数D)虚函数10.下列关于C++函数的说明中,正确的是( )。
A)内置函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)C++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
四川大学C++面向对象程序设计模拟试题3
class A { public:
A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; } };
int main() {
A a, *p = new A; delete p; cout << "end" << endl; return 0; } 上面程序的输出结果为:
return 0; }
2.请完成下面的程序 #include <iostream> using namespace std;
class Integer { private:
int a;
public:
Integer(int x = 0){ a = x; }
operator int() { return a; }
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小 题的空格内。错填或不填均无分。
1.定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是
(
)。
2.定义静态成员函数应使用关键字(
)。
3.在C++中,如果类的名称是CTest,则此类的构造函数名称为(
)。
class B: public A { public:
void Show() const { cout << "B" << endl; } };
int main() {
A *p = new B; p->Show(); delete p; return 0; }
四川大学《面向对象程序设计2261》17春在线作业1
四川⼤学《⾯向对象程序设计2261》17春在线作业1⼀、单选题(共 30 道试题,共 60 分。
) V 1. 执⾏语句 char ch[] = "Hello"; char * p = &ch[0]; cout<<*p 结果是输出()。
A. ⼀个地址B. HC. HelloD. 乱码2. 有如下类和对象的定义: class Constants{ public: static double getPI(){return3.1416;} }; Constants constants; 下列各组语句中,能输出 3.1416 的是()A. cout<getPI();和cout<B. cout<C. cout<getPI();和cout<getPI();D. cout<3. 在每个C++程序中都必须包含有这样⼀个函数,该函数的名称为()A. mainB. MAINC. nameD. function4. 假定AB为⼀个类,则执⾏“ABa(4),b[4],*p[5]”语句时,⾃动调⽤该类构造函数的次数为()A. 4B. 5C. 8D. 135. private访问属性限制对象的成员可以在()中访问A. 本类的成员函数B. main函数C. ⽗类的成员函数D. ⼦类的成员函数6. 如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是()A. 1B. 2C. 3D. 47. 程序运⾏中需要从键盘上输⼊多于⼀个数据时,各数据之间应该使⽤()符号作为分隔符A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车8. ⼗进制数127转换成⼆进制数是()A. 11111111B. 01111111C. 10000000D. 111111109. 下⾯是⼀个模板声明的开始部分: templute double __ 由此可知()A. 这可能是⼀个函数模板的声明B. 这可能是⼀个类模板的声明C. 这既可能是⼀个函数模板的声明,也可能是⼀个类模板的声明D. 这肯定是⼀个错误的模板声明10. 执⾏下列语句段后,输出字符“*”的个数是()for(inti=50;i>1;I-=2)cout<<~*~;A. 24B. 25C. 26D. 5011. 数组名作为实参传递给形参时,数组名被处理为该数组的()A. 长度B. 元素个数C. ⾸地址D. 各元素的值12. 下列排序算法中,平均效率最低的排序算法是()A. 插⼊法B. 冒泡法C. 选择法D. 快速排序法13. ⼆进制数00001001跟01000011异或的结果为()A. 01001011B. 00000001C. 01001010D. 0100110014. 两个指针变量不可以()A. 相加B. ⽐较C. 相减D. 指向同⼀地址15. 多态性是通过()实现的A. 构造函数B. 析构函数C. 虚函数D. 函数重载16. C++异常处理机制中没有()A. tryB. throwC. catchD. finally17. 设有定义intx;floatv;,则10+x+v值的数据类型是()A. intB. doubleC. floatD. 不确定18. 下⾯的选项中正确的赋值语句是(chara[5],*p=a;)()A. p=“abcd”;B. a=“abcd”;C. *p=“abcd”;D*a=“abcd”;19. 若有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的是()A. p1=&m,p2=&p1B. p1=&mp2=&n*p1=*p2C. p1=&mp1=p2D. p1=&m*p2=*p120. ⼆叉查找树按()遍历时访问到节点的数据是排好序的A. 前序B. 中序C. 后序D. 层次21. 队列的最⼤特征是()A. 先进先出B. 后进先出C. ⾃动排序D. ⼤数优先22. 下列语句分别是不同程序中的第⼀个输⼊输出语句,若去掉其中的“<A. cout<B. cout<C. cout<D. cout<23. 有如下定义: int a[5]={1,3,5,7,9},*p=a; 下列表达式中不能得到数值 5 的是()A. a[2]B. a[3]C. *(p+2)D. *p+424. 有如下 4 个语句:① cout<<~A~<A. ①和③B. ①和④C. ②和③D. ②和④25. 要打开⼀个⽂件并从中读取数据,应该使⽤()类的对象A. istreamB. ostreamC. ifstreamD. ofstream26. 如果myclass类定义了拷贝构造函数和⼀个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会()A. 调⽤拷贝构造函数B. 调⽤整型参数的构造函数C. 调⽤赋值运算符D. 引起编译错误27. 以下对⼆维数组a的正确说明是:()A. inta[3][];B. floata(3,4);C. doublea[1][4];D. floata(3)(4);28. 下列有关抽象类和纯虚函数的叙述中,错误的是()A. 拥有纯虚函数的类是抽象类,不能⽤来定义对象B. 抽象类的派⽣类若不实现纯虚函数,它也是抽象类C. 纯虚函数的声明以“=0;”结束D. 纯虚函数都不能有函数体29. 当需要使⽤istrstream流类定义⼀个流类对象并联系⼀个字符串时,应在⽂件开始使⽤#include命令,使之包含()⽂件A. iostream、hB. iomanip、hC. fstream、hD. ststreh30. 假定a为⼀个短整型(shortint)数组名,则元素a[8]的地址为()A. a+4B. a+8C. a+16D. a+32⼆、多选题(共 5 道试题,共 20 分。
《C面向对象程序设计》期末考试试题
《C面向对象程序设计》期末考试试题---《 C++ 面向对象程序设计》考试一试题本试卷满分100 分;请将答案写在答题纸上,写明题号,不用抄题,笔迹工整、清楚;请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和厕纸一并交上来。
一、单项选择题(共10 分,每题1分)1.C++ 中解决命名矛盾的体制是:D(A)虚基类(B)虚函数(C) 函数重载(D)名字空间2.若类 A 的一个对象所占的内存空间中包括虚函数表的进口地址,则: C(A)类 A 不可以有静态数据成员(B)类 A 中公有的成员函数必定是虚的(C)类 A 中起码有一个成员函数是虚(D)类 A 的析构函数必定是虚的的3.随意一个类,析构函数的个数最多是:B(A)不限个数(B) 1(C) 2(D)34.以下对于 this指针的说法 , 哪个是正确的:D(A)this 指针必定指向常量型数据(B) this指向的数据不行改正(C) 静态成员函数中也能够接见this 指针(D) this指针自己可直接作为成员函数的返回值5.在类定义中 , 为说明成员的接见权限, private, protected,public能够出现次数为: A(A) 次数没有详细限制(B)每种至多一次(C) public起码一次(D)每种起码一次p 能够作为函void f( A* const pp);的实参:6.下边哪一种定义方式是正确的,而且使得数A(A) A * p =new A;(B)A a;A* p = a;(C) const A* p = new A;(D)A a;const A* p = a;7 . obj是类 A 的一个对象,履行语const A& aA= obj;,则以下说法正确的句类 A 的拷贝结构函数会被调是:C(A)(B)类 A 的赋值函数会被调用用(C)(D)语句 obj.f( );等价于语&aA 的值就是 &obj句aA.f( ) ;8 .下边对于接见类A 的私有数据成员的说法,错误的C是:(A)类 A 的友元函数能够接见类 A 的私有成员。
川大c++期末复习题
川大c++期末复习题C++面向对象程序设计模拟试题六一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。
请将其代码填写在题后的括号内。
错选,多选或未选均无分。
1.类的析构函数( )。
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)公有继承时基类中的public成员在派生类中仍是public的B)公有继承时基类中的private成员在派生类中仍是private的C)公有继承时基类中的protected成员在派生类中仍是protected的D)私有继承时基类中的public成员在派生类中仍是private的7.下列虚基类的声明中正确的是( )。
A)class virtual B: public A B)virtual class B: public AC)class B: public A virtual D)class B: virtual public A8.若类A和类B的定义如下:class A{int i, j;public:A(int m, int n): i(m), j(n) {}int Geti() { return i;}};class B: public A{int k;public:B(int m, int n, int u): A(m, n), k(u) {}void Make() { k = i * j; }};int main(){B b(1, 2, 3);return 0;}则上述定义中,( ) 是非法的表达式.A)k=i*j; B)int k; C)return i; D)void Make( ) 9.若有以下程序:#includeusing namespace std;class A{public:int a;A() { a =10; }};class A1: public A{public:A1() { a = a + 1; } \};class A2: public A{public:A2() { a = a + 2; }};class B: public A1, public A2{public:B() {}void Print() { cout << a << endl; }};int main(){B obj;obj.Print();return 0;}则程序编译或运行后的输出结果为:A)提示语法错误B)13 C)12 D)1010.在下面的4个关键字中,( ) 是用来说明虚函数的。
c面向对象程序设计考试试题
c面向对象程序设计考试试题C++面向对象程序设计考试试题C++是一种广泛应用于软件开发的编程语言,而面向对象程序设计是C++的核心概念之一。
在C++面向对象程序设计的考试中,学生需要掌握C++的基本语法和面向对象的思想,并能够灵活运用这些知识解决实际问题。
本文将介绍一些可能出现在C++面向对象程序设计考试中的试题,并给出相应的解答。
1. 什么是面向对象程序设计?面向对象程序设计是一种编程范式,它将程序中的数据和操作数据的方法封装在一起,形成对象。
对象可以通过定义类来创建,类是对象的抽象描述。
面向对象程序设计的核心概念包括封装、继承和多态。
2. 什么是类和对象?类是对一类具有相同属性和行为的对象的抽象描述。
它定义了对象的属性和方法。
对象是类的实例化,通过类可以创建多个对象。
对象具有类定义的属性和方法,并且可以通过调用方法来操作对象的属性。
3. 什么是封装?封装是面向对象程序设计的一种重要特性,它将数据和操作数据的方法封装在一起,对外部隐藏具体实现细节。
通过封装,可以保证数据的安全性和完整性,并提供接口供外部访问和操作数据。
4. 什么是继承?继承是面向对象程序设计的一种重要机制,它允许一个类继承另一个类的属性和方法。
被继承的类称为父类或基类,继承的类称为子类或派生类。
通过继承,子类可以重用父类的代码,并且可以添加自己的属性和方法。
5. 什么是多态?多态是面向对象程序设计的一种重要特性,它允许同一类型的对象调用不同类的方法。
多态通过虚函数和函数重写实现。
通过多态,可以提高代码的灵活性和可扩展性。
6. 请写一个简单的C++类和对象的例子。
```cpp#include <iostream>using namespace std;class Circle {private:double radius;public:Circle(double r) {radius = r;}double getArea() {return 3.14 * radius * radius;}};int main() {Circle c(5.0);cout << "Area: " << c.getArea() << endl;return 0;}```上述代码定义了一个Circle类,它具有一个私有的radius属性和一个公有的getArea方法。
- 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