《面向对象程序设计》上机编程题 附答案(修)
【精品】C++面向对象程序设计题库(含答案)

【精品】C++面向对象程序设计题库(含答案)C++面向对象程序设计试题集一、填空题(每空2分,共20分)1. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_ _,b值为。
2. 在派生类的成员中有公有成员、、、四类成员。
3. 类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public: Sample(int data=0);Private: int data;};Sample::Sample(int data){4. 面向对象程序设计的机制提供了重复利用程序资源的一种途径。
5. 继承发生在利用现有类派生新类时,其中现有类称为,或父类;派生的新类称为,或。
6. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为。
7. 已知数组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++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。
面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)第二章2-4#includeusing namespace std;Add(int a,int b);int main(){int x,y,sum;cout>x>>y;sum = add(x,y);cout >*p;p++;}p = p-20;for( i=0;i0) countp++;if(*p>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"< }return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。
age 是类的私有成员(2)构造函数应当给常数据成员和引用成员初始化,将构造函数改为:A(int a1,int b1):a(a1),b(b1){}或A(int a1 ):a(a1),b(a){}再将main中的A a(1,2); 改为A a(1);(3)(1)在Test 类中添加语句:void print();void Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}改为void Test::Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}main函数中Init(38,15);改为:A.Init(38,15);Print();改为:A.Print();3-8(1)Constructing AConstructing BDestructing BDestructing A(2)double a,double bpoint & pp.x3-9class box{int len1,len2,len3;public:box(int l1,int l2,int l3){len1 = l1;len2 = l2; len3 = l3;} long volumn(){return len1*len2*len3;}};3-10class Test{int m1,m2;public:void Init(int a,int b){m1 = a;m2 = b;}void Pring(){cout<<m1<<" "<<m2<<endl;}};3-11略3-12}第四章4-6(1)D (2)D (3)D (4)D (5)B(6)D4-7(1)static int count = 0;这样初始化静态成员值是不对的将其改为static int count;在类外,main函数前加int Sample::count = 0;(2)#include//#includeusing namespace std;class Ctest{private:int x; const int y1;public:const int y2;Ctest(int i1,int i2):y1(i1),y2(i2) {y1 =10;//y1 为常量不能赋值x = y1;}int readme() const;};int Ctest::readme ()const{int i;i = x;x++; //常函数内不能改变成员值return x;}int main(){Ctest c(2,8);int i = c.y2;c.y2 = i;//y2为常量,不能改值i = c.y1;//y1私有,类外不能访问return 0;}将出错语句全部注释4-8(1)题中印刷错误,将class C构造函数改为: C(){cout<<"constructor C:";}运行结果为:constructor Aconstructor Bconstructor C(2)40(3)3434-9#include#includeclass Date{int year;int month;int day;public:Date(int y,int m,int d){year=y;month=m;day=d;}void disp(){cout<<year<<" "<<month<<" "<<day<<endl;}friend int count_day(Date &d,int k);friend int l(int year);friend int h(Date &d1,Date &d2);};int count_day(Date &d,int k){static int day_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,3 1},{31,29,31,30,31,30,31,31,30,31,30,31}};// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年int j,i,s;if(l(d.year))j=1;//闰年,取1else j=0;//非闰年,取0if(k)//K非0时{s=d.day;for(i=1;i<d.month;i++)//d.month为输入的月份s+=day_tab[j][i-1];}else//K为0时{s=day_tab[j][d.month]-d.day;for(i=d.month+1; i<=12; i++)s+=day_tab[j][i-1];}return s;//S为相差的天数}int l(int year){if(year%4==0&&year%100!=0||year%400==0) // 是闰年return 1;else // 不是闰年return 0;}int h(Date &d1,Date &d2){int days,day1,day2,y;if(d1.year<d2.year)//第一个日期年份小于第二个日期年份{days=count_day(d1,0);for(y=d1.year+1;y<d2.year;y++)if(l(y))//闰年。
《面向对象程序设计(Java)》机试题库(含答案)

《面向对象程序设计(Java)》机试题库(含答案)1.编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
2.编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
3.编写一个完整的Java Applet 程序使用复数类Complex验证两个复数1+2i 和3+4i 相加产生一个新的复数4+6i 。
复数类Complex必须满足如下要求:(1)复数类Complex 的属性有:RealPart : int型,代表复数的实数部分ImaginPart : int型,代表复数的虚数部分(2)复数类Complex 的方法有:Complex( ) : 构造函数,将复数的实部和虚部都置0Complex( int r , int i ) : 构造函数,形参r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成a+bi 的字符串形式,其中a 和b 分别为实部和虚部的数据。
4.编写一个学生类Student ,要求:(1) 学生类Student 属性有:id : long型,代表学号name : String类对象,代表姓名age : int型,代表年龄sex : boolen型,代表性别(其中:true表示男,false表示女)phone : String类对象,代表联系电话(2) 学生类Student的方法有:Student(long i , String n , int a , boolean s , long p): 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。
《面向对象程序设计》上机编程题 附答案(修)

2013-2014学年《面向对象程序设计》上机编程题安徽财经大学管理科学与工程学院1、编写程序实现对输入的3个整数,按照从大到小的顺序输出。
程序如下:import java.util.Scanner;public class cxddsc {public static void main(String args[]){Scanner input=new Scanner(System.in);int a,b,c,t;System.out.print("输入第一个数:");a=input.nextInt();System.out.print("输入第二个数:");b=input.nextInt();System.out.print("输入第三个数:");c=input.nextInt();if(b>a){t=a;a=b;b=t;}if(c>a){t=a;a=c;c=t;}if(c>b){t=b;b=c;c=t;}System.out.printf("从大到小输出为:%3d%3d%3d",a,b,c);}}2、编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大写字母,否则,不转换。
import java.util.Scanner;public class bdxx {public static void main(String args[]){Scanner input=new Scanner(System.in);System.out.print("输入一个字符:");char c=input.next().charAt(0);if(c>='a'&&c<='z'){c=(char)(c-32);System.out.printf("%c",c);}else if(c>='A'&&c<='Z'){System.out.println("这是一个大写字母!不转换!");}}}3、编写程序,对输入的3个正数,判断能否构成一个三角形。
《面向对象程序设计(java)》编程题库(含答案)

《面向对象程序设计(java)》编程题库(含答案)《面向对象程序设计(Java)》资源文档——深圳职业技术学院《面向对象程序设计(Java)》编程题库(含答案) 1、已知数组a={4,67,32,78,56,13,90,48,22},编程实现求该数组最大值并输出的方法。
2、编写程序实现求0~150之间的奇数的乘积;3、已知类People里含有属性money初值是20,方法void work(int m)实现增加m到money里,定义它的子类ChinaPeople,重写方法void work(int m)实现把增加m到money里(体现汇率变化)。
4、定义接口Worker,有一个方法login()实现打卡功能。
定义该接口实现类ChinaWorker,给出login()的具体实现,只需输出“我来了~~”即可。
5、使用Scanner类实现从键盘输入一句英文,主程序实现把这句英文的单词按照字典顺序排序输出。
6、使用Scanner类实现从键盘输入若干个双精度数,主程序实现把这些数求和输出。
7、定义窗体,窗体上含有两个文本区,一个按钮,实现一个文本区内输入若干个整数,单击按钮后在另一个文本区内显示这些整数中奇数的个数,并输出所有奇数。
8、编写类比如Circle实现模拟圆形,类中封装与圆有关的数据和方法(比如半径和获取面《面向对象程序设计(Java)》资源文档——深圳职业技术学院积),在主方法中定义一个对象,让这个对象操作自己的数据和方法输出相应结果。
9、编写一个类People,含有两个属性String 类型的name和int类型的age,定义一个方法speak()输出这两个属性。
如“我是zhanghua,我今年12了”。
编写People的子类Boy,重写方法speak(),输出“我是男孩,我今年***”。
编写People的子类Girl,重写方法speak(),输出“我是女孩,我叫****“。
编写主类,声明一个People的对象p。
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面向对象程序设计上机考试题库

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个学生的数据。
《Java面向对象程序设计》考试卷及答案带注释

一、单选题(每小题1分,共30分)1.在MyEclipse中,()视图可以将项目中包含的文件及层次结构展示出来。
CA) Package B)Declaration C)Navigator D) Console2.下列标识符中,正确的是()。
CA)class B) 123_rr C) _lei D) test&123.下列的()选项可以正确用以表示八进制值8。
0x代表16进制,0代表8进制 D A)0x8 B)0x10 C)08 D)0104.以下哪个不是Java的原始数据类型()DA) int B) boolean C) float D) Char引用数据类型5.下列有关Java布尔类型的描述中,正确的是()AA)一种基本的数据类型,它的类型名称为booleanB)用int表示类型C)其值可以赋给int类型的变量D)有两个值,1代表真,0代表假6.在Java中,不属于整数类型变量的是( ) AA) double 浮点型B) long C) int D) byte7.以下do-while语句构成的循环执行次数是()。
Bint k=0;do { ++k ;}while(k<1);A) 一次也不执行B) 执行1次C) 无限次D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为()。
逻辑运算结果只有true和false两种 BA) true B) false C) 0 D) 运行时抛出异常9.以下()表达式不可以作为循环条件 AA) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是() DA) 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数组元素错误的引用是() CA) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-2014学年《面向对象程序设计》上机编程题安徽财经大学管理科学与工程学院1、编写程序实现对输入的3个整数,按照从大到小的顺序输出。
程序如下:import java.util.Scanner;public class cxddsc {public static void main(String args[]){Scanner input=new Scanner(System.in);int a,b,c,t;System.out.print("输入第一个数:");a=input.nextInt();System.out.print("输入第二个数:");b=input.nextInt();System.out.print("输入第三个数:");c=input.nextInt();if(b>a){t=a;a=b;b=t;}if(c>a){t=a;a=c;c=t;}if(c>b){t=b;b=c;c=t;}System.out.printf("从大到小输出为:%3d%3d%3d",a,b,c);}}2、编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大写字母,否则,不转换。
import java.util.Scanner;public class bdxx {public static void main(String args[]){Scanner input=new Scanner(System.in);System.out.print("输入一个字符:");char c=input.next().charAt(0);if(c>='a'&&c<='z'){c=(char)(c-32);System.out.printf("%c",c);}else if(c>='A'&&c<='Z'){System.out.println("这是一个大写字母!不转换!");}}}3、编写程序,对输入的3个正数,判断能否构成一个三角形。
import java.util.Scanner;public class sjx {public static void main(String args[]){Scanner input=new Scanner(System.in);int a,b,c;System.out.print("输入第一个数:");a=input.nextInt();System.out.print("输入第二个数:");b=input.nextInt();System.out.print("输入第三个数:");c=input.nextInt();if((a+b)>c&&(a-b)<c&&a>0&&c>0&&b>0)System.out.println("这三个数能构成三角形!");elseSystem.out.println("这三个数不能构成三角形!");}}4、编写程序,输入一个0~999之间的数,判断输入的数是几位数?import java.util.Scanner;public class jws {public static void main(String args[]){Scanner input=new Scanner(System.in);int a;System.out.print("请输入一个0~999之间的数:");a=input.nextInt();if(a<0||a>999)System.out.print("输入错误,请重新输入0~999之间的数:");elseif(a/100!=0)System.out.print("这是个三位数!");else if(a/10!=0)System.out.print("这是一个两位数!");else System.out.print("这是一个一位数!");}}5、编写程序,对输入的一个整数,按每个数字的相反顺序输出该数。
import java.util.Scanner;public class fz {public static void main(String args[]){int a,b;Scanner input=new Scanner(System.in);System.out.print("请输入一个整数:");a=input.nextInt();while(a!=0){b=a%10;System.out.printf("%d",b);a=a/10;}}}6、用while 循环,计算1~100 之间所有5 的倍数的数之和。
public class bs {public static void main(String args[]){int i=1,sum=0;while(i<=100){if(i%5==0)sum=sum+i;i++;}System.out.printf("1~100之间所有5的倍数的数之和为sum=%d",sum);}}7、编写程序,给定一个学生成绩,给出相应等级:90~100 优秀80~89 良好70~79 中等60~69 及格0~59 不及格import java.util.Scanner;public class cj {public static void main(String args[]){int a;String b;Scanner input=new Scanner(System.in);System.out.print("请输入一个学生的成绩:");a=input.nextInt();switch(a/10){case 10:case 9:b="优秀";break;case 8:b="良好";break;case 7:b="中等";break;case 6:b="及格";break;default:b="不及格";}System.out.printf("这位同学的成绩等级为%s",b); }}8、编写程序,输出0~100之间的所有素数。
public class sushu {public static void main(String args[]){for (int n=1;n<=100;n++){boolean b = true;if (n != 1 ){for (int i = 2; i < n; i++){if (n % i == 0){b = false;break;}}}if (b){System.out.println(n + "是素数");}}}}9、使用循环语句,输出如下的图形:## # ## # # # ## # # # # # ## # # # # # # # #public class huaxin {public static void main(String args[]){int i,j;for(i=1;i<=5;i++){for(j=1;j<=2*i-1;j++)System.out.print("#");System.out.println();}}}10、编写程序求一元二次方程的根。
import java.util.Scanner;import ng.Math;public class gen {public static void main(String args[]){double a,b,c,disc,x1,x2;Scanner input=new Scanner(System.in);System.out.print("请输入a的值:");a=input.nextDouble();System.out.print("请输入b的值:");b=input.nextDouble();System.out.print("请输入c的值:");c=input.nextDouble();disc=b*b-4*a*c;if(disc<0)System.out.print("该一元二次方程无实数解!");else if(disc==0){x1=(-b)/(2*a);System.out.printf("该一元二次方程的解为%f\n",x1);}else{x1=(-b+ Math.sqrt(disc))/(2*a);x2=(-b- Math.sqrt(disc))/(2*a);System.out.printf("该一元二次方程的解为x1=%f\nx2=%f",x1,x2);}}11、输入一个以#结束的字符串,统计并输出字符串的长度。
import java.util.Scanner;public class longjs {public static void main(String args[]){Scanner input=new Scanner(System.in);System.out.print("请输入一串字符,并以“#”结束:");String a=input.next();int i,len=0;char ch;for(i=0;i<a.length();i++){ch=a.charAt(i);if(ch=='#'){System.out.println(len);}else len++;}}}12、从键盘依次输入一个整数数组的数组元素,然后将数组元素逆序输出。
import java.util.Scanner;public class shuzu {public static void main(String args[]){int a[]=new int[5];int i;for(i=0;i<5;i++){Scanner input=new Scanner(System.in);System.out.printf("请输入整数数组的第%d值:",i+1);a[i]=input.nextInt();}for(i=i-1;i>=0;i--){System.out.print(a[i]+" ");}}}13、建立一个employee类,有String name, int id, double salary.运用get和set方法,实现显示“张三”这个对象的个人信息。