C++面向对象程序设计上机考试题库
C 面向对象程序设计试题集
C++面向对象程序设计试题集一、填空题(每空2分,共20分)1.2.3. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_,b值为。
在派生类的成员中有公有成员、四类成员。
类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public: Sample(int data=0);Private: int data;};Sample::Sample(int data){4. 面向对象程序设计的5. 继承发生在利用现有类派生新类时,其中现有类称为,或父类;派生的新类称为,或。
6.7. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为。
已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i -1 的单元,其中1≤i<n。
例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。
请将语句补充完整:for(int i=0;i<n-1;i++) a[i]= 。
8. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的,共同行为被描述为类中的。
9. 类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public:Sample(int data=0);Private:int data; };Sample::Sample(int data){}10. 实现运行时多态,要使用函数。
11. 设A为test类的对象且赋有初值,则语句test B(A); 。
12. 在MyClass 类的定义中,对赋值运算符=进行重载。
请将画线处缺失的部分补充完整。
MyClass::operator=(const MyClass rhs){if(this=&rhs) return *this;value=rhs. value;return *this; }13. C++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。
中大实践考核面向对象(C)程序设计试题和答案 (上机考试)
面向对象(C++)程序设计 (上机考试)样题1.下列Shape类是一个表示形状的抽象类,Area()为求图形面积的函数,Total()则是一个通用的用以求不同形状的图形面积总和函数。
请从Shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数。
编写程序验证求面积函数的正确性。
Shape、total的定义如下所示。
Class shape{Pubilc:Virtual float area()=0};float total (shape *s[ ], int n){float sum=0.0;for(int i=0; i<n; i++)sum += s [ I ] ->area ();return sum;}解答: #include <iostream.h>class shape{public:virtual float area()=0;};float total(shape *s[], int n){float sum=0;for(int i=0; i<n; i++)sum += s[i] -> area();return sum;}class triangle : public shape{protected:float H, W;public:triangle(float h, float w) { H=h; W=w;}float area() { return H*W*0.5;}};class rectangle : public triangle{public:rectangle(float h, float w) : triangle(h, w) {}float area() { return H*W;}};void main(){shape *s[4];s[0] = new triangle( 3.0, 4.0 );s[1] = new rectangle( 2.0, 4.0 );s[2] = new triangle( 5.0, 8.0 );s[3] = new rectangle( 6.0, 8.0 );float sum = total(s,4);cout << "The total area is:" << sum << endl;}样题2. 以面向对象的概念设计一个类,此类包括3个私有数据,unlead(无铅汽油), lead有铅汽油, total (当天总收入)。
《面向对象程序设计c》综合复习题集及答案详解
《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。
A.cppB.e某eC.objD.lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。
A.cppB.e某eC.objD.lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。
A.cppB.e某eC.objD.lik4.编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接5.以下标识符中不全是保留字的是()。
A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件7.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符8.C++程序的基本模块为()。
A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。
A.0B.‘0’C.“0”D.0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车12.设”inta=12;”,则执行完语句”a+=a某a;”后,a的值是()。
A.12B.144C.156D.28813.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。
A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。
c面向对象程序设计试题和答案(经典题目)
3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share(B)public(C)private(D)protected
4、关于构造函数,以下说法不正确的选项是( )。
(A)构造函数名字和类名相同
(B)构造函数在创建对象时自动执行
(C)构造函数无任何函数返回类型
三、改错题(每错2分,共6分)
MyClass obj1(0);obj1.SetMember(5); obj2.SetMember(10);
四、写出以下程序的执行结果(每题5分,共20分)
(1)30 (5分)
(2)7 9 (每一个2.5分)
(3)20 20 (每一个2.5分)
(ቤተ መጻሕፍቲ ባይዱ)
3(2分)
3(2分)
(D)构造函数有且只有一个
五、派生类能够访问其基类的( )。
(A)公有成员
(B)保护成员
(C)私有派生
(D)公有和保护成员
六、以下关于运算符重载的描述中,错误的选项是( )。
(A)运算符重载不可以改变操作数的个数
(B)运算符重载不可以改变运算符的功能
(C)运算符重载不可以改变结合方向
(D)运算符重载不可以改变运算优先级
_______p.show()_______//通过指针p访问show函数
}
2、在C++类中能够包括___公共___、___爱惜_____和___私有__三种具有不同访问操纵权的成员。
3、概念类时,在类头中将利用关键字__class_____来表示类概念的开始。
4、若是一个类中至少有一个纯虚函数,那么该类称为_______抽象类_________。
C语言程序设计上机考试试题和参考答案
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
c++第一次上机考试试题
《面向对象程序设计》过程考核大纲第一单元类和对象一、考核目标主要考察类、对象、类的组合、友元等概念和使用方法,通过考试,使学生掌握类和对象的概念和语法;掌握面向对象的基本概念和对象的使用方法。
掌握构造函数和析构函数的作用和语法。
掌握类的组合,利用组合进行面向对象程序设计,掌握组合情况下的构造和析构函数,掌握友元函数的意义和用法。
二、考核内容1.类的编写和对象的创建。
2.通过对象调用成员函数。
3.构造函数和析构函数。
4.类的组合,组合时构造函数的调用。
5.友元函数。
6.类的静态成员。
三、考试要求1.不允许携带U盘和教材等进入考场。
2.考试过程中保持安静,独立按要求完成考试题目。
3.考试结束后,请坐在座位上,等待监考老师确认你的考题之后方可签字离开。
4.在桌面上新建一个文件夹,以“学号+姓名”形式命名,如:20130102张三。
该文件夹中应该包含两个子文件夹(文件夹名分别为:第一题第二题),分别存放两道题的相关工程文件以及测试结果等。
《面向对象程序设计》第一次过程考核A卷(学号尾号为单数的学生完成A卷)1.已知一个名为Complex的复数类,这个类包含:(1)私有成员:实部、虚部,且均为int 型(2)公有的带默认形参值的构造函数、复制构造函数(3)公有成员函数Display,其作用为显示复数要求:(1)实现满足上述属性和行为的Complex类定义;(2)设计函数AddComplex,函数AddComplex功能为实现两个复数相加,要求该函数的形参为复数类的常引用;(3)保证如下主函数能正确运行,int main(){Complex c0(2,-3);Complex c1(c0);cout<<"c1 is: ";c1.Display();Complex c2(3,4);cout<<"c2 is: ";c2.Display();Complex c3;c3 = AddComplex(c1,c2);cout<<"c3 is: ";c3.Display();return 0;}且输出结果如下:c1 is: 2-3ic2 is: 3+4ic3 is: 5+1i2.2.已知表示点的类CPoint和表示线段的CLine类,类CPoint包含:(1)表达点位置的私有数据成员x,y(2)构造函数及复制构造函数类CLine包含:(1)两个CPoint的点对象(该两点分别为线段的两个端点)(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)(3)公有成员函数GetLen,其功能为返回线段的长度(4)类属性成员count用于记录创建的CLine类对象的个数,及用于显示count 值的ShowCount函数;要求:(1)实现满足上述属性和行为的CPoint类及CLine类定义;(2)保证如下主函数能正确运行,#include <iostream>using namespace std;int main(){CPoint p1(1,1);CPoint p2(4,5);CLine line1(p1,p2);cout<<"the length of line1 is: "<<line1.GetLen()<<endl;CPoint p3(0,0);CLine line2(line1);cout<<"The count of line is: "<<CLine::ShowCount()<<endl;return 0;}且输出结果如下:The length of line1 is: 5The count of Line is: 2《面向对象程序设计》第一次过程考核B卷(学号尾号为双数的学生完成B卷)1. 已知一个名为Complex的复数类,这个类包含:(1)私有成员:实部、虚部,且均为int 型(2)公有的带默认形参值的构造函数、复制构造函数(3)公有成员函数Display,其作用为显示复数要求:(1)实现满足上述属性和行为的Complex类定义;(2)设计函数SubComplex,函数SubComplex功能为实现两个复数相减,要求该函数的形参为复数类的常引用;(3)保证如下主函数能正确运行,int main(){Complex c0(2,-3);Complex c1(c0);cout<<"c1 is: ";c1.Display();Complex c2(3,4);cout<<"c2 is: ";c2.Display();Complex c4;c4 = SubComplex(c1,c2);cout<<"c4 is: ";c4.Display();return 0;}且输出结果如下:c1 is: 2+3ic2 is: 3+4ic4 is: -1-1i2.已知表示点的类CPoint和矩形类CRectangle类,类CPoint包含:(1)表达点位置的私有数据成员x,y(2)构造函数及复制构造函数类CRectangle包含:(1)两个CPoint的点对象(该两点分别为矩形左上角点及右下角点)(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)(3)公有成员函数GetArea,其功能为返回矩形面积(4)类属性成员count用于记录创建的CRectangle类对象的个数,及用于显示count值的ShowCount函数;要求:(1)实现满足上述属性和行为的CPoint类及CRtangle类定义;(2)保证如下主函数能正确运行,#include <iostream>using namespace std;int main(){CPoint p1(1,1);CPoint p2(4,5);CRectangle rec1(p1,p2);cout<<"The area of rec1 is: "<<rec1.GetArea()<<endl;CPoint p3(2,2);CRectangle rec2(rec1);cout<<"The count of rectangle is: "<<CRectangle::ShowCount()<<endl;return 0;}且输出结果如下:The area of rec1 is: 12The count of rectangle is: 2。
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个学生的数据。
专升本 《面向对象程序设计》 机考 试题 答案
1.C++的类的私有成员答案:可以被类自己的函数成员访问,不能被其派生类的函数成员访问2.内联函数通常()。
答案:函数体较小,且不应有分支类型的语句3.对于定义/成员b->a的类型为()。
4. C++的数组元素不可以是()。
答案:void类型5.函数成员的静态绑定是由()完成的。
答案:编译程序6.关于运算符函数->重载,正确的叙述为()。
答案:重载不改变运算符的优先级,但改变运算符函数的参数个数7.枚举类型定义的元素类型应该是()。
答案:int类型8. C++的union类型()。
答案:不能定义为基类和派生类9.对于struct E{int a; }b; int E::**p; 如下操作合法的为()。
答案:b.**p=6;10. C++的析构函数()。
答案:不能重载,不能定义返回类型11.对于定义int x=4; int &f(int &y) {return --y; },语句f(x)=6会使x的值等于()。
答案:612. C++的前置--形成的表达式如表达式--x表示()。
答案:先进行x=x-1运算,然后将运算结果作为最终结果,且最终结果为左值13.对于类A定义的A (*p[10])[20],只能使用如下形式初始化()。
答案:p[5]=new A[20];14.一个左值必然不是()。
答案:一个常量15. C++的函数不能够返回一个()。
答案:数组类型16.对于定义struct X{X operator+(const X &)const;}m, n; 合法的访问有()。
答案:m.operator+(n)17. C++的类可以继承基类()。
答案:定义的类型定义的函数成员定义的数据成员18. C++的抽象类X不能用于定义()。
答案:X m; X p[4]19. C++的运算符“*”可以重载为如下哪些类型的函数()。
答案:单目函数双目函数20. C++类的纯虚函数(析构函数除外)可以具有下列哪些特征()。
C面向对象程序设计上机考试题库
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;a.init(2,3,4);a.volue();a.area();a.show();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);//带参数的构造函数int volume();private:int length;int width;int height;};Box::Box(int len,int h,int w){length=len;height=h;width=w;}//Box::Box(int len,int w,int,h):length(len),height(h),width(w){} int Box::volume(){return(length*width*height); }int main(){Box box1(30,20,10);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(12,10,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
c面向对象程序设计考试试题
c面向对象程序设计考试试题一、选择题(每题2分,共20分)1. 面向对象程序设计中,以下哪一个不是基本特征?A. 封装B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. structD. type3. 以下哪个是Java中不允许的类名?A. MyClassB. 1MyClassC. MyClass1D. MyClass$4. 在Java中,以下哪个是正确的构造方法声明?A. void MyClass() {}B. int MyClass() {}C. MyClass MyClass() {}D. MyClass() {}5. 以下哪个关键字用于实现类的继承?A. extendsB. implementsC. overrideD. abstract6. 以下哪个关键字用于声明接口?A. classB. interfaceC. abstractD. enum7. 在Java中,以下哪个关键字用于实现多态?A. newB. superC. overrideD. implements8. 在Java中,以下哪个关键字用于定义包?A. packageB. importC. classD. interface9. 以下哪个是Java中的访问控制修饰符?A. publicB. staticC. finalD. void10. 在Java中,以下哪个是正确的方法重载声明?A. void display(int a, int b)B. int display(int a, int b)C. void display(int a, int b) {}D. void display(int a, int b) { return a + b; }二、简答题(每题10分,共30分)1. 简述面向对象程序设计中的封装、继承和多态三个基本特征。
2. 解释Java中的接口和抽象类的区别。
c#面向对象程序设计试题(附带答案)
c#试题1.在对SQL Server数据库操作时应选用(a)。
a)SQL Framework数据提供程序;b)OLE Framework数据提供程序;c) Framework数据提供程序;d) Framework数据提供程序;2.下列选项中,(c)是引用类型。
a)enum类型b)struct类型c)string类型d)int类型3.关于中的代码隐藏文件的描述正确的是(a)a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
4.以下描述错误的是(a)a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用new修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(b)a)值类型和调用类型;b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;6.下列描述错误的是(d)a)类不可以多重继承而接口可以;b)抽象类自身可以定义成员而接口不可以;c)抽象类和接口都不能被实例化;d)一个类可以有多个基类和多个基接口;7.在DOM中,装载一个XML文档的方法(b)a)save方法b)load方法c)loadXML方法d)send方法8.下列关于构造函数的描述正确的是(c)a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰c)构造函数必须与类名相同d)构造函数不能带参数9.以下是一些C#中的枚举型的定义,其中错误的用法有(a)a)public enum var1{Mike=100,Nike=102,Jike}b)public enum var1{Mike=100,Nike,Jike}c)public enum var1{Mike=-1,Nike,Jike}d)public enum var1{Mike,Nike,Jike}10.int[][]myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}};myArray3[2][2]的值是(d)a)9b)2c)6d)越界11.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量a)方法、属性、索引器和事件;b)方法、属性信息、属性;c)索引器和字段;d)事件和字段;框架中,服务器控件是为配合Web表单工作而专门设计的。
c_上机面试题目(3篇)
第1篇一、题目背景C语言作为一种经典的编程语言,广泛应用于系统软件、嵌入式系统、游戏开发等领域。
为了考察应聘者对C语言的掌握程度,以下列出了一份C上机面试题目,涵盖了C语言的基本语法、数据结构、算法和编程实践等方面。
二、题目内容1. 编写一个C程序,实现以下功能:(1)定义一个结构体`Person`,包含以下成员变量:- 姓名(字符数组,长度不超过50)- 年龄(整数)- 性别(字符,'M'代表男性,'F'代表女性)(2)编写一个函数`printPerson`,用于打印`Person`结构体变量的信息。
(3)在主函数中,创建一个`Person`数组,包含3个元素,并使用`printPerson`函数打印每个元素的信息。
2. 编写一个C程序,实现以下功能:(1)定义一个函数`reverseString`,用于将字符串反转。
(2)在主函数中,定义一个字符串`str`,调用`reverseString`函数,并打印反转后的字符串。
3. 编写一个C程序,实现以下功能:(1)定义一个函数`isPalindrome`,用于判断一个字符串是否为回文。
(2)在主函数中,定义一个字符串`str`,调用`isPalindrome`函数,并打印结果。
4. 编写一个C程序,实现以下功能:(1)定义一个函数`findMax`,用于在整数数组中查找最大值。
(2)在主函数中,定义一个整数数组`arr`,调用`findMax`函数,并打印最大值。
5. 编写一个C程序,实现以下功能:(1)定义一个函数`sum`,用于计算两个整数之间的所有整数之和。
(2)在主函数中,定义两个整数`a`和`b`,调用`sum`函数,并打印结果。
6. 编写一个C程序,实现以下功能:(1)定义一个函数`isPrime`,用于判断一个整数是否为素数。
(2)在主函数中,定义一个整数数组`arr`,调用`isPrime`函数,并打印每个元素是否为素数。
面向对象程序设计题库(C )
一、单项选择题1. 在C++语言中,对函数参数默认值描述正确的是:( D )A) 函数参数的默认值只能设定一个B) 一个函数的参数若有多个,则参数默认值的设定可以不连续C) 函数参数必须设定默认值D) 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值2. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( B )。
A) 有参构造函数B) 无参构造函数C) 拷贝构造函数D) 赋值构造函数3. 下述关于开关语句的描述中,()是正确的。
A) 开关语句中default子句可以没有,也可以有一个;B) 开关语句中每个语句序列中必须有break语句;C) 开关语句中default子句只能放在最后;D) 开关语句中case子句后面的表达式可以是整形表达式。
4. 关于对象概念的描述中,()是错误的。
A) 对象就是C语言中的结构变量;B) 对象代表着正在创建的系统中的一个实体;C) 对象是一个状态和操作(或方法)的封装体;D) 对象之间的信息传递是通过消息进行的;5. 下列给字符数组进行初始化中,()是正确的。
A) char s1[ ]="12345abcd"; B) char s2[3]="xyz";C) char s3[][3]={ 'a', 'x', 'y'}; D) char s4[2[3]={"xyz","mnp"};6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是()。
A) 3 B) 2 C) 6 D) 47. 声明类test的拷贝构造函数的正确形式是( D )。
A) int test B) void test C) test(void) D) test(test&)8. 关于new运算符的下列描述中,()是错的。
c面向对象程序的设计试题和答案经典题目
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;______p1.show()_________//通过对象p1访问show函数_______p.show()_______//通过指针p访问show函数}2、在C++类中可以包含___公共___、___保护_____和___私有__三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字__class _____来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为_______抽象类_________。
5、C++类的组成包括数据成员和______成员函数________,友元__是___(是、不是)该类的成员函数。
6、友员函数是用关键字_____friend_______修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=____11_____,j=___11______。
8、new的功能是_______分配内存空间______,delete的功能是______释放内存空间______________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是(D)。
(A)数据封装(B)继承(C)多态性(D)模板2、( B )是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构造函数有且只有一个5、派生类可以访问其基类的()。
c面向对象程序设计考试试题
c面向对象程序设计考试试题一、单项选择题(每题2分,共20分)1. 在面向对象编程中,封装的主要目的是:A. 提高代码的可读性B. 隐藏对象的内部状态和实现细节C. 增加对象的可访问性D. 减少对象的内存占用2. 下列关于继承的描述,错误的是:A. 继承可以提高代码的复用性B. 继承可以实现多态性C. 继承是一种“强耦合”关系D. 继承可以实现代码的扩展和修改3. 在Java中,一个类可以继承几个其他类:A. 只能继承一个类B. 可以继承多个类C. 可以继承任意数量的类D. 不能继承任何类4. 下列哪个关键字在C++中用于定义抽象类:A. classB. abstractC. virtualD. interface5. 在面向对象编程中,多态性的主要优点是:A. 减少程序的复杂性B. 提高程序的运行效率C. 增加程序的内存消耗D. 减少程序的可读性6. 在Java中,下列哪个修饰符可以将一个方法的访问级别限制为仅在定义它的包内可见:A. privateB. default(即无修饰符)C. protectedD. public7. 下列关于接口的描述,正确的是:A. 接口可以包含具体实现的方法B. 接口中的方法默认都是public的C. 一个类可以实现多个接口D. 一个接口可以继承另一个接口8. 在C++中,下列哪个特性可以用来实现运行时多态:A. 函数重载B. 虚函数C. 模板D. 宏定义9. 下列哪个不是面向对象编程的基本特征:A. 封装B. 继承C. 多态D. 过程化10. 在设计类的时候,下列哪个原则提倡应该追求尽可能高的内聚和尽可能低的耦合:A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 高内聚低耦合原则二、简答题(每题10分,共30分)1. 请简述面向对象编程中的“组合”和“聚合”的区别,并给出各自的应用场景。
2. 解释什么是设计模式,并至少列举三种常见的设计模式及其主要特点。
C++面向对象程序设计考试试卷(详细讲解)(1)
C++面向对象程序设计考试试卷(详细讲解)- 1 -一、单项选择题(共20题,每题1分,共20分)二、1、下列关于C++标识符的命名不合法的是 C 与C#一样三、A. Pad B. name_1 C. A#bc D. _a12四、2、若有以下类型标识符定义:()D五、int x=2; char w='a'; float y=23.45f; double z=45.6712;六、则表达式w*x+y-z的结果类型是七、A. float B. char C. int D. double八、6、对重载函数形参的描述中,错误的是 D 重载是重点九、A. 参数的个数可能不同十、B. 参数的类型可能不同十一、 C. 参数的顺序可能不同十二、 D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同十三、7、以下能正确定义数组并正确赋初值的语句是 D十四、 A. 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、下列给字符数组进行的初始化中,不正确的是 D十九、 A. char s1[]="abcd";二十、 B. char s2[3]={'x','y','\0'};二十一、 C. char s3[]={'a','x','y','\0'};二十二、 D. char s4[6]={"xyz","mnp"};二十三、9、通常的拷贝构造函数的参数是 C二十四、A.某个对象名 B.某个对象成员名二十五、C.某个对象的引用 D.某个对象的指针名二十六、10、关于构造函数特点的描述中,错误的是 A二十七、 A. 定义构造函数必须指出类型(构造函数特点是无返回类型)二十八、 B. 构造函数的名字与该类的类名相同二十九、 C. 一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)三十、 D. 构造函数是一种成员函数三十一、11、下面程序的运行结果为 C三十二、#include <iostream.h>三十三、int add(int a,int b);三十四、void main()三十五、{三十六、extern int x,y;三十七、cout<<add(x,y)<<endl;三十八、}三十九、int x=20,y=5;四十、int add(int a,int b)四十一、{四十二、int s=a+b;四十三、return s;四十四、}四十五、A.20 B.5 C.25 D.编译会提示出错信息四十六、12、关于常成员的描述中,错误的是 B四十七、 A. 常成员包含常数据成员和常成员函数两种四十八、 B. 常数据成员必须是公有的- 2 -四十九、 C. 常数据成员要使用构造函数成员初始化列表进行初始化五十、 D. 常对象只能调用它的常成员函数,不能调用其它的成员函数五十一、13、关于友元函数的描述中,错误的是 B#include <iostream.h>class Date{private:int year,month,day;public:Date(int y, int m, int d){year=y;month=m;day=d;}void nextday();void display(){cout<<year<<"/"<<month<<"/"<<day<<endl;}};void Date::nextday(){int totaldays[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; day++;int leap=(year%400==0||year%4==0&&year%100!=0);if(day>totaldays[leap][month-1]){day=1; month++;if(month>12){month=1;year++;}}}void main(){int d,m,y;cout<<"请输入年、月、日:\n";cin>>y>>m>>d;Date d1(y,m,d);cout<<"今天是:";d1.display();d1.nextday();cout<<"明天是:";d1.display();}- 3 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;a.init(2,3,4);a.volue();a.area();a.show();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);//带参数的构造函数int volume();private:int length;int width;int height;};Box::Box(int len,int h,int w){length=len;height=h;width=w;}//Box::Box(int len,int w,int,h):length(len),height(h),width(w){}int Box::volume(){return(length*width*height); }int main(){Box box1(30,20,10);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(12,10,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
分别求他们的体积。
编一个基于对象的程序,且定义两个构造函数,其中一个有参数,一个无参数。
#include <iostream>using namespace std;class Box{public:Box();Box(int len,int w ,int h):length(len),width(w),height(h){}int volume();private:int length;int width;int height;};int Box::volume(){return(length*width*height);}int main(){Box box1(10,20,25);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(10,30,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}4.声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
#include <iostream>using namespace std;template<class numtype>//声明一个类模板class Compare{public:Compare(numtype a,numtype b){x=a;y=b;}numtype max(){return (x>y)?x:y;}numtype min(){return (x<y)?x:y;}private:numtype x,y;};int main(){Compare<int> cmp1(3,7);cout<<cmp1.max()<<" is the Maximum of two inteder numbers."<<endl;cout<<cmp1.min()<<" is the Minimum of two intedernumbers."<<endl<<endl;Compare<float> cmp2(45.78,93.6);cout<<cmp2.max()<<" is the Maximum of two float numbers."<<endl;cout<<cmp2.min()<<" is the Minimum of two float numbers."<<endl<<endl;Compare<char> cmp3('a','A');cout<<cmp3.max()<<" is the Maximum of two characters."<<endl;cout<<cmp3.min()<<" is the Minimum of two characters."<<endl;return 0;}5.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
初值自拟。
#include <iostream>using namespace std;class Student{public:Student(int n,double s):num(n),score(s){}void display();private:int num;double score;};void Student::display(){cout<<num<<" "<<score<<endl;}int main(){Student stud[5]={Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5)};Student *p=stud;for(int i=0;i<=2;p=p+2,i++)p->display();return 0;}6.建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
初值自拟。
#include <iostream>using namespace std;class Student{public:Student(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 max(Student* );Student *p=&stud[0];max(p);}void max(Student *arr){float max_score=arr[0].score;int k=0;for(int i=1;i<5;i++)if(arr[i].score>max_score) {max_score=arr[i].score;k=i;}cout<<arr[k].num<<" "<<max_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];for(int i=1;i<=10;i++){*(p+i-1)=i;cout<<*(p+i-1)<<" ";}cout<<endl;delete []p;return;}8.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
将运算符函数重载为非成员、非友元的普通函数。
编写程序,求两个复数之和。
初值自拟。
#include <iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}double get_real();double get_imag();void display();private:double real;double imag;};double Complex::get_real(){return real;}double Complex::get_imag(){return imag;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}Complex operator + (Complex &c1,Complex &c2){returnComplex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c3=";c3.display();return 0;}9.定义一个复数类Complex,重载运算符“+”,“—”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。