收藏 分销(赏)

2024年电大面向对象程序设计编程题.doc

上传人:精**** 文档编号:8186289 上传时间:2025-02-07 格式:DOC 页数:21 大小:66.54KB 下载积分:10 金币
下载 相关 举报
2024年电大面向对象程序设计编程题.doc_第1页
第1页 / 共21页
2024年电大面向对象程序设计编程题.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
最最新面对对象程序设计试题 编程题 一、1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n); int f(int a[],int n) { if(n==0) return 0; else return a[n—1]*a[n—l]+f(a,n—1); } 2.依照下面类中拷贝结构函数的原型写出它的类外定义。 class Array { int*a; //指向动态分派的整型数组空间 int n; //统计数组长度 public: Array(int aa[],int nn) ; //结构函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array (const Array& aa) ; //拷贝结构函数 }; //在下面写出拷贝结构函数的类外定义 Array::Array(const Array& aa) { n=aa. n; a=new int[n] ; for(int i=0;i<n; i++)a[i]=aa.a[i]; } 3.计算l+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 #include<iostream. h〉 void main() { int i; int p=1; int s=l; for(i=l;i< =l0;i++) {p*=3;s+=p;} cout<<s<<endl; } 4.依照下面类中Min函数组员的原型和注释写出它的类外定义。 class AA { int * a; int n; int MS; public: void lnitAA(int aa[], int nn, int ms) { if(nn〉ms) {cout<<"Error!”<<endl; exit(l);} MS=ms; n~nn; a=new int[MS]; for(int i=0;i<n;i++) a[i]=aa[i]; } int Min(); //从数组a的前n个元素中求出最小值并返回 }; int AA::Min() { int x=a[0]; £or(int i=1; i〈n; i++ ) if(a[i]<x) x=a[i]; return x; } 5.求满足体现式22+42+...+n2的值,其中n取从键盘输人值的最大偶数。假定分别 采取i和s作为循环变量与求和变量,并限定使用for循环编程。 #include<iostream. h> void main() { int n,i=0,s=0; cin>>n; if(n%2==1) n=n—1; for(i=2;i<=n;i+=2) s+=i*i; cout<<"s="<<s<<endl; ‘ } 6.编写出下面Strings类的结构函数的类外定义。 class Strings{ char *s; //指向动态分派的字符串数组空间 int n; //统计字符串长度 public; Strings(char*str);//结构函数 }; Strings::Strings(char * str){ n=strlen(str); s=new char[n+l]; strcpy(s,str) ; } 7.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素之和。 int f(int a[],int n); int f(int a[],int n) { if(n==0) return 0; else return a[n—l]+f(a, n—1); } 注:if 语句可改写为 if(n==l) return a[0]; 8.依照下面类中Max函数组员的原型和注释写出它的类外定义。 class AA { int*a; int n; int MS; public: void InitAA(int aa[],int nn,int ms){ if (nn>ms) {cout<<"Error!"<<endl;exit(l);} MS=ms; n=nn; a=new int[MS]; for (int i=0;i<MS; i++)a[i]=aa[i]; } int Max(); //从数组a的前n个元素中求出最大值并返回 }; int AA∷ MaxO { int x=a[0]; for (int i=l;i<n; i++) if (a[i]>x) x=a[i] return x; } 9.编写一个函数,分别求出由指针a所指向的字符串中包括的每种十进制数字出现的次数,把统计成果保存在数组b的对应元素中,该函数的原型申明如下: void fun(char*a, int b[]); void fun(char * a, int b口) { int i; for(i=0;i<10 ;i++) b[i]=0; while(*a){ int j=*a—'O'; if(j>-0 && j< = 9) b[j]++; a++; } } 10.依照下面类中CompareBig函数组员的原型和注释写出它的类外定义。 class AA { int* a; int n; int MS; public: void InitAA(int aa[],int nn, int ms) { if(nn>ms){cout〈<"Error!"<<endl; exit(l);} MS=ms; N=nn; a=new int[MS]; for(int i=0;i<n;i++)a[i]=aa[i]; } int CornpareBigC AA &• h); //比较*this与b的大小,从前向后按两数组 //中的对应元素比较,若*this中元素值大则返回1,若b中 //元素值大则返回-1,若相等则继续比较下一个元素,直到 //一个数组中无元素比较,此时若二者的n值相同则返回0, //否则若*this中的n值大则返回1,若b中的n值大则返回-1。 }; int AA:: CompareBig (AA&b) { int k; if(n>b.n) k=b.n;else k=n; for(int i=0;i<k;i++) if(a[i]>b.a[i])return 1; else if(a[i]<b.a[i])return-1; if(k==n&&k==b.n)return 0; else if(k<n) return 1; else return —1 ; } 11.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n); int f(int a[],int n) { if(n==0) return 0; else return a[n—1]*a[n—l]+f(a,n—1); } 12.依照下面类中拷贝结构函数的原型写出它的类外定义。 class Array { int *a: //指向动态分派的整型数组空间 int n; //统计数组长度 public: Array(int aa[] ,int nn);//结构函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array(Array& aa) ; //拷贝结构函数 } Array:: Array(Array&aa){ n=aa.n; a=new int[n]; for(int i=0;i<n;i++)a[i]=aa. a[i]; } 13.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n); int f(int a[],int n) { if(n==0) return 0; //或者if(n==l)retun a[0]*a[0]; else return a[n—l]*a[n—l]+f(a,n— 1); } 14,依照下面类中Sum函数组员的原型和注释写出它的类外定义。 class AA{ int*a; int n; int MS; public: void InitAA(int aa[],int nn, int ms){ if(nn>ms){cout<< "Error! "<<endl;exit(l);} MS=ms; n=nn; a=new int[MS]; for(int i=0;i<n i++)a[i]=aa[i]; } int Sum(); //求出并返回数组a中前n个元素之和 }; int AA::Sum() { int s=0; for(int i=1;i<n; i++) s+=a[i]; return s; } 15.依照下面函数原型编写一个函数,求出并返回由字符指针a所指向的字符串中包括的字符’a’和'A'的总个数。• int void fun(char* a); int fun(char * a) { int i=0; while( *a){ if( *a==’a’||*a==’A’) i++; a++; } return i; } 16.依照下面类中拷贝结构函数的原型写出它的类外定义。 class Array{ int *a; //指向动态分派的整型数组空间 int n; //数组长度 public: Array(int aa[],int nn){ //结构函数 n=nn; a=new int[n]; £or(int i=0; i<n;i++)a[i]=aa[i]; } Array(Array& bb); //拷贝结构函数 Array& Give(Array&. cc); //实现cc賦值给*this 的功效并返回*this int Lenth(){return n;}   //返回数组长度 }; Array::Array (Array& bb){ n=bb. n; a=new int[n]; for(int i=0;i<n;i++)a[i]=bb. a[i]; } 17.编写一个函数,分别求出由指针a所指向的字符串中包括的每种十进制数字出现的次数,把统计成果保存在数组b的对应元素中,该函数的原型如下。 void fun(char *a,int b[]); void fun(char *a,int b[]) { int i; for(i=0;i<10;i++) b[i]=0; while( *a) { int j=*a—'0'; if(j>=0&& j<=9) b[j]++; a++; } } 18.依照下面类中CotnpareBig函数组员的原型和注释写出它的类外定义。 class AA { int * a; int n; int MS; public: void InitAACint aa[],int nn,int ms){ if(nn>ms){cout<<"Error! "<<endl;exit(l);} MS=ms; N=nn; a=new int[MS]; for(int i=0; i<n; i++) a[i]=aa[i]; } int CompareBig(AA& b);//比较* this与b的大小,从前向后按两数组 //中的对应元素比较,若* this中元素值大则返固1,若b中 //元素值大则返回一 1,若相等则继续比较下一个元素,直到 //一个数组中无元素比较,此时若二者的n值相同则返回0, //否则若*this中的n值大则返回1.若b中的n值大则返回-1. }; int AA::CompareBig(AA& b) { int k; if(n>b. n)k=b, n; else k=n; for(int i=0; i<k; i++) if(a[i]>b.a[i]) return 1; else if(a[i]<b. a[i])return —1 ; if(k==n &&k==b. n) return 0; else if(k<n)return 1; else return — 1; } 19.已知6≤a≤30,15≤b≤36,编写出一个主函数,求满足不定方程2a+5b=126的所有整数组解。如(13,20)就是一个整数组解,并以所给的样式输出每个解。 #include<iostream. h> void main() { int a,b; for(a=6;a< —30;a++) for(b=15;b<=36;b++) if(2*a+5*b==126) cout<<'(‘<<a<<’,’<<b<<’)’<<emll; } 20.依照下面类中Search函数组员的原型和注释写出它的类外定义。 class AA{ int *a; int n; int MS; public: void InitAA(int aa[],int nn, int ms){ if(nn>ms){cout<<”Error!”<<endl; exit(l);} MS=ms; n= nn; a=new int[MS]; for(int i=0;i<n;i++)a[i]=aa[i]; } int Search(int x) ; //从数组a的前n个元素中次序查找值为x的元素, //若查找成功则返回元素的下标,否则返回-1。 }; int AA: :Search(int x) { int i; for(i=0;i<n;i++) if(a[i]==x) return i; return — 1; } 二、1.依照下面函数原型编写一个函数,求出井返回由字符指针a所指向的字符串中包括的所有英文字母的总数。 int CT(char * a) ; 编程:int CT(char*a) { int c=0 while( *a) { if( (*a> = 'a' &.&.*a< ='z') ‖(*a > = ' A ' &. &.*a > = ' Z ' ) ) c++; a++; } return c; } 2. 依照下面类中Reverse1 函数组员的原型和注释写出它的类外定义。 class AA { tnt * a; tnt n; public: void InitAA(int aa[ ], int nn) { n=nn; a=new int[n]; for(int i=0; i<n; i++) a[i]=aa[i]; } AA *Reverse1( ) ; //通过动态存储分派得到一个AA 类对象并由x 所指向, //并动态分派x ->a [ x-> n] 数组空间,要求x - > n的值等于t hi s - > n //的值,x - > a [ x一> n ]中每个元素的值是按照t h i s一> a [ n ] 中数组元素的 //相反次序排列得到的, 要求该函数返回x 的值。 } 编程:AA *AA: : Reverse1( ) { AA *x=new AA; x一>n=n; x一>a=new int[x一>n] ; for(int i=0; i<n; i++) x一>a[n-1-i]=a[i] ; return x; } 三、1.编写一段Java程序代码,用一个对话在分开的两行中显示两条消息:“I Can Design”和“And I Can Program”。 import javax.swing.*; public class Test { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"I Can Design\nAnd I Can Program"); } } 2.编写一个Java程序,对于给定的年份,回答“Leap Year”(闰年)或者“Not a Leap Year”(平年)。假如一个年份能被4整除,不过不能被100整除,它是闰年;假如一个年份能被100整除,也能被400整除,它也是闰年。需要定义名为LeapYear的服务提供类 public class Test{ public static void main(String[] args){ LeapYear ly=new LeapYear(); System.out.println(puteLeapYear(1998)); System.out.println(puteLeapYear(1900)); System.out.println(puteLeapYear()); } } class LeapYear{ public boolean computeLeapYear(int year){ if (year % 4 == 0 && year % 100 != 0 ) return true; if (year % 100 == 0 && year % 400 == 0 ) return true; return false; } } 3.编写一个do-while循环以计算正整数中前30个奇数的累加和。 public class Test{ public static void main(String[] args){ int sum=0,i=0; do{ sum=(i*2 + 1); i++; }while(i<=30); System.out.println(sum); } } 4.编写能够依照用户年龄和身高给出推荐的体重的的Java程序,利用下面的公式计算出推荐的体重: recommendedWeight = (height – 100 + age/10) *0.9 需要定义名为Height(身高)的服务提供类,它应当会有能够依照身高得到推荐提供的措施。 public class Test{ public static void main(String[] args){ Weight w1 = new Weight(); System.out.println( w1.getRecommendedWeight(30,170)); } } class Weight{ public double getRecommendedWeight(int age,int height){ return (height - 100 + age/10) *0.9; } } 5.请按照如下要求写出完整的程序代码(要求能上机编译运行): 1)创建一个抽象类AAbstractBase,该类最少包括一个抽象措施; 2)创建一个类TestClass,该类继承AAbstractBase,并包括两个结构器措施; public class Test{ public static void main(String[] args){ TestClass t1,t2; t1=new TestClass(); t1.testFun(); t2=new TestClass(10); t2.testFun(); } } abstract class AAbstractBase{ abstract void testFun(); } class TestClass extends AAbstractBase{ int i; TestClass(){ this(0); } TestClass(int i){ this.i=i; } void testFun(){ System.out.println(i); } 6.定义一个Vehicle类,类中包括一个Person类型的数据组员owner、一个取得owner值的访问措施和一个设置owner值的访问措施。定义VehicleManage个类,该类包括主措施,并在主措施中创建Vehicle类的对象,并调用其设置owner和获取owner的措施。 public class VehicleManage{ public static void main(String[] args){ Vehicle v1=new Vehicle(); Person p1,p2; p1=new Person(); v1.setOwner(p1); p2=v1.getOwner(); } } class Vehicle{ Person owner; public void setOwner(Person p1){ owner=p1; } public Person getOwner(){ return owner; } } class Person{ String ownerName; } 7.编写一个字符界面的Java Application 程序,接收用户输入的10个整数,并输出这10个整数的最大值和最小值。 import java.io.*; public class maxandmin { public static void main(String args[]) { int max=0, min=0, value=0; for (int i=1; i<=10; i++) { try{ System.out.println("输入第" + i + "个整数:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); value = Integer.parseInt(s); if(i==1) { max=min=value; } else { max = value>max ? value : max; min = value<min ? value : min; } } catch(NumberFormatException enf) { System.out.println("整数格式输入错误,请重新输入。\n"); i--; } catch(IOException ioe) { System.out.println("一般输入输犯错误,程序终止。"); System.exit(0); } }// end of for System.out.println("最大数为:" + max); System.out.println("最小数为:" + min); }// end of method }// end of class 四、依照下面类中拷贝结构函数的原型写出它的类外定义。 class Array { int *a; //指向动态分派的整型数组空间 int n; //统计数组长度 public: Array(int aa[], int nn); //结构函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array(Array& aa); //拷贝结构函数 }; Array::Array(Array& aa) { n=aa.n; a=new int[n]; for(int i=0; i<n; i++) a[i]=aa.a[i]; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 远程教育/电大

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服