版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程题复习方法:做编程题时,先别着急动手,一定认真把题意理解清楚,在纸上写出解题方法和关键语句(用到什么算法),最后按照输入数据-〉处理数据-〉输出数据的流程实现主程序和相关函数。(按步骤给分,人工阅卷)编写程序时一定要注意格式,要有缩进或退格。定义类的框架成员函数的实现在主函数中测试类具体实现的公式:class类名{private:私有数据成员;public:数据成员;成员函数;(构造函数和析构函数)};类名::类名(){//构造函数}成员函数的个数与类中的个数相同,函数名前加类名::voidmain(){类名对象名(参数);//是否带参数取决于构造函数}构造函数的定义方法=1\*GB3①数据成员是内置类型变量,直接用该类型的形参变量初始化数据成员。classA{inti;public:A(intx){i=x;}};=2\*GB3②数据成员是一维数组,通过一个for循环将形参数组元素初始化一维数组成员。classA{intt[5];public:A(intb[],intn){for(inti=0;i<n;i++)t[i]=b[i];}};=3\*GB3③数据成员是二维数组,通过双重循环将形参数组元素初始化二维数组成员。classA{intt[3][4];public:A(intb[][4],intn){for(inti=0;i<n;i++)for(intj=0;j<4;j++)t[i][j]=b[i][j];}};=4\*GB3④数据成员是一维字符数组,可以用字符串拷贝函数strcpy,将形参字符数组中的字符串,初始化字符数组成员。#include<iostream.h>#include<string.h>classA{chart[100];public:A(charb[]){strcpy(t,b);}};=5\*GB3⑤数据成员是字符类型指针变量,先用new动态申请长度为[形参指针指向的字符串长度+1]的内存空间,把返回的首地址赋给指针成员,再把形参指向字符串拷贝到动态数组中。#include<iostream.h>#include<string.h>classA{char*s;public:A(char*b){if(b){s=newchar[strlen(b)+1];strcpy(s,b);}}};⑥数据成员是数值类型指针变量,先用new动态申请长度为[形参数组长度]的内存空间,把返回的首地址初始化指针成员,再把形参数组元素循环赋给动态数组元素。#include<iostream.h>classA{int*s;public:A(intb[10]){s=newint[10];inti;for(i=0;i<10;i++)s[i]=b[i];}};编程的基本类型题分析:一、学生成绩2016春VC01(1)排序算法(2)四舍五入算法int(x+0.5)保留整数int((x*10+0.5)/10.0保留小数点后一位int((x*100+0.5)*100)/100.0保留小数点后两位(3)友元函数的定义和调用(4)字符串拷贝函数【题目】试定义一个实现计算学生课程成绩的类STU,对学生学期总评成绩进行计算并排序。具体要求如下:(1)私有数据成员intnorm,ex,final,overall:分别表示平时成绩、实验成绩、期末考试和总评成绩。charname[15]:学生姓名。(2)公有成员函数voidinit(char*name1,intnor1,intex1,intfin1):用参数name1,nor1,exp1,fin1分别初始化成员name,norm,ex,final。voidfun():计算学生的总评成绩。计算方法为:总评成绩=平时成绩占*20%+实验成绩占*25%+期末成绩占*55%。总评成绩计算时要求四舍五入,并且期末考试成绩不足50分时,则期末考试成绩即为总评成绩。friendvoidsort(STUst[],intn):友元函数,对st按总评成绩进行从大到小排序。voidprint():输出该学生信息。(3)在主函数中先定义一个有5个元素的对象数组,用循环语句输入学生信息,并根据这些信息利用成员函数init()更新学生信息,然后使用函数sort()对数组排序,最后输出排序后的学生信息。输入/输出示例(下划线部分为键盘输入):请输入姓名、平时成绩、实验成绩、期末成绩:AAA827558请输入姓名、平时成绩、实验成绩、期末成绩:BBB936084请输入姓名、平时成绩、实验成绩、期末成绩:CCC678281请输入姓名、平时成绩、实验成绩、期末成绩:DDD547851请输入姓名、平时成绩、实验成绩、期末成绩:EEE915241按总评成绩排序后:姓名平时成绩实验成绩期末成绩总评成绩BBB93608480CCC67828178AAA82755867DDD54785158EEE915241412016秋VC02编程题四舍五入算法int(x+0.5)保留整数int((x*10+0.5)/10.0保留小数点后一位int((x*100+0.5)*100)/100.0保留小数点后两位【题目】假设二维数组的一行代表一名学生课程情况记录,前5列为考勤记录(出勤值为1,缺勤值0),第6~10列为作业得分记录(5分制),第11列为实验考核成绩,第12列为期末考试成绩。学生课程总评成绩的计算式为(四舍五入保留整数):平时成绩*20%+实验成绩*30%+期末考试成绩*50%,其中,平时成绩计算方法为:出勤一次记10分,作业每得1分,平时成绩记2分。例如,设有如下学生课程情况记录:考勤1考勤2考勤3考勤4考勤5作业1作业2作业3作业4作业5实验期末总评111104452490891011143434857511011345249580表中第一行学生的平时成绩计算为:(1+1+1+1+0)*10+(4+4+5+2+4)*2=78,则其总评成绩计算为78*0.2+90*0.3+89*0.5=87.1,总评成绩四舍五入计为87分。试定义一个类Array,根据上述要求计算学生的总评成绩。具体要求如下:(1)私有成员:inta[3][13]:学生课程情况记录数组。(2)公有成员:Array(floatt[][13],intn):构造函数,用参数t初始化成员数组a,参数n为t的行数。intsum(intk):辅助函数,计算并返回成员数组a的第k行学生的平时成绩。voidfun():根据题意计算每个学生的总评成绩。voidprint():按示例格式输出每个学生的信息。注意总评成绩结果要四舍五入。(3)在主函数中给定原始数组(可利用题目中的样例数据,总评成绩暂定为0),并用该数组对类Array进行测试。输出示例:考勤:1,1,1,1,0,作业:4,4,5,2,4,平时成绩:78实验:90期末:89总评:87考勤:1,0,1,1,1,作业:4,3,4,3,4,平时成绩:76实验:85期末:75总评:78考勤:1,1,0,1,1,作业:3,4,5,2,4,平时成绩:76实验:95期末:80总评:84【要求】打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。1.答案#include<iostream.h>#include<string.h>classSTU{private: intnorm,ex,final,overall; charname[15];public:voidinit(char*name1,intnorm1,intex1,intfin1); voidfun(); friendvoidsort(STUst[],intn); voidprint();};voidSTU::init(char*name1,intnorm1,intex1,intfin1){ strcpy(name,name1); norm=norm1;ex=ex1;final=fin1; overall=0;}voidSTU::fun(){if(final>=50) overall=int(norm*0.2+ex*0.25+final*0.55+0.5);else overall=int(final+0.5);}voidsort(STUst[],intn){ for(inti=0;i<n-1;i++) for(intj=i+1;j<n;j++) if(st[i].overall<st[j].overall) { STUt; t=st[i];st[i]=st[j];st[j]=t; }}voidSTU::print(){ cout<<name<<'\t'<<norm<<'\t'<<ex<<'\t'<<final<<'\t'<<overall<<endl;}voidmain(){ STUs[3]; charname[100]; intnorm,ex,fin; for(inti=0;i<3;i++) { cout<<"请输入姓名、平时成绩、实验成绩、期末成绩:"<<endl; cin>>name>>norm>>ex>>fin; s[i].init(name,norm,ex,fin); s[i].fun(); }cout<<"按总评成绩排序后:\n姓名平时成绩实验成绩期末成绩总评成绩"<<endl; sort(s,3);for(i=0;i<3;i++) { s[i].print(); }}2.答案#include<iostream>usingnamespacestd;classArray{private: inta[3][13];public: Array(floatt[][13],intn); intsum(intk); voidfun(); voidprint();};Array::Array(floatt[][13],intn){for(inti=0;i<n;i++) for(intj=0;j<13;j++) a[i][j]=t[i][j];}intArray::sum(intk){ ints1=0,s2=0,s=0;for(inti=0;i<5;i++) s1+=a[k][i]; for(i=5;i<10;i++)s2+=a[k][i]; s=s1*10+s2*2;returns;}voidArray::fun(){for(inti=0;i<3;i++) a[i][12]=int(sum(i)*0.2+a[i][10]*0.3+a[i][11]*0.5+0.5); }voidArray::print(){ for(inti=0;i<3;i++){ cout<<"考勤:"; for(intj=0;j<5;j++) cout<<a[i][j]<<','; cout<<endl; cout<<"作业:"; for(j=5;j<10;j++) cout<<a[i][j]<<','; cout<<endl; cout<<"平时成绩:"<<sum(i)<<'\t'; cout<<"实验成绩:"<<a[i][10]<<'\t'; cout<<"期末成绩:"<<a[i][11]<<'\t'; cout<<"总评成绩:"<<a[i][12]<<'\t'; cout<<endl; }}voidmain(){ floatb[3][13]={{1,1,1,1,0,4,4,5,2,4,90,89},{1,0,1,1,1,4,3,4,3,4,85,75},{1,1,0,1,1,3,4,5,2,4,95,80}};Arrayarr(b,3); arr.fun(); arr.print();}二、二维数组问题2016春VC021.素数算法,2.从大到小排序算法3.数据交换【题目】试定义一个类Array,首先求各列元素中的合数(非素数)之和,再将数组各列以其合数之和的大小从大到小排序,具体要求如下:(1)私有数据成员inta[4][5]:需要排序的二维数组。(2)公有成员函数Array(intt[][5],intn):构造函数,用参数t初始化成员数组a,n表示数组t的行数。intp(intn):判断整数n是否为合数,如果是合数,返回值为1,否则返回值为0。intsum_p(intj):求数组a第j列元素中所有合数之和。voidexch(intj1,intj2):交换数组a的第j1,j2列元素。voidfun():根据题意对二维数组进行列排序。voidprint():以矩阵的形式输出成员数组。(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。输出示例:原数组:1012541516178191011121314151670181920排序后的数组:12151054171016819121511131470201618192015秋VC031.素数算法,2.从大到小排序算法3.数据交换【题目】试定义一个类Array,将二维数组各行按其各行元素中所有素数之和从大到小排序,具体要求如下:(1)私有数据成员inta[5][4]:待处理的数组。(2)公有成员函数Array(intt[][4],intn):构造函数,用参数t初始化成员数组a,n为数组t的行数。intprime(intn):判断整数n是否为素数,如果是素数,返回值为1,否则返回值为0。intsum_prime(inti):求数组a中第i行元素中所有素数之和。voidexch(inti1,inti2):交换数组a的第i1,i2行元素。voidfun():根据题意对二维数组进行行排序。要求排序过程中交换数据时使用成员函数exch()。voidprint():以矩阵的形式输出成员数组。(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。输出示例:原数组:1012541516178191011121314151670181920排序后的数组:1910111270181920151617813141516101254【要求】打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。2016秋VC041.从大到小排序算法2.数据交换【题目】试定义一个类Array,将二维数组各行按其各行元素中最大值的大小排序,具体要求如下:(1)私有数据成员inta[5][4]:需要排序的数组。(2)公有成员函数Array(intt[][4],intn):构造函数,用参数t初始化成员数组a,n为数组t的行数。intmax(int*p,intn):求指针p所指向的一维数组中n个元素的最大值。voidexch(inti1,inti2):交换数组a的第i1,i2行。voidfun():根据题意对二维数组进行行排序。提示:利用成员函数max()计算每行的最大元素。voidprint():以矩阵的形式输出成员数组a。(3)在主函数中定义一个二维数组,并使用该数组对类Array进行测试。输出示例:原数组:1012541516178191011121314151670181920排序后的数组:70181920191011121516178131415161012542016秋VC05编程题1.奇数与偶数2.选择排序【题目】试定义一个类Array,实现对二维数组进行按行排序的功能。要求奇数行中的元素按升序排列,偶数行中的元素按降序排列(下标从0开始计数)。具体要求如下:(1)私有成员:inta[4][5]:需要排序的数组。(2)公有成员:Array(intt[][5],intn):构造函数,用参数t初始化成员数组a,参数n为t的行数。voidsort(int*p,intn,intf):辅助函数,对指针p所指向的数组排序。其中,n为数组p中元素的个数;当参数f的值为奇数时按升序排序,否则按降序排序。voidfun():根据题意多次调用sort()函数实现成员数组a的排序。voidprint():按矩阵形式输出成员数组。(3)在主函数中给定原始数组,并用该数组对类Array进行测试。要求输出处理前和处理后的数组。输出示例:原数组:13956767572545671545处理后数组:96531567776554214557【要求】打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。1.答案#include<iostream.h>classArray{private: inta[4][5];public: Array(intt[][5],intn); intp(intn); intsum_p(intj); voidexch(intj1,intj2); voidfun(); voidprint();};Array::Array(intt[][5],intn){for(inti=0;i<n;i++) for(intj=0;j<5;j++) a[i][j]=t[i][j];}intArray::p(intn){ for(inti=2;i<n;i++) if(n%i==0)break; if(i==n)return0; return1;}intArray::sum_p(intj){ ints=0; for(inti=0;i<4;i++)if(p(a[i][j])==1) s+=a[i][j]; returns;}voidArray::exch(intj1,intj2){ for(inti=0;i<4;i++){ intd; d=a[i][j1]; a[i][j1]=a[i][j2]; a[i][j2]=d; }}voidArray::fun(){ for(inti=0;i<4;i++){ for(intj=i+1;j<5;j++) if(sum_p(i)<sum_p(j)) exch(i,j); }}voidArray::print(){for(inti=0;i<4;i++){ for(intj=0;j<5;j++) cout<<a[i][j]<<'\t'; cout<<endl;}}voidmain(){ inta[4][5]={10,12,5,4,15,6,17,8,19,10,11,12,13,14,15,16,70,18,19,20}; Arrayarr(a,4); cout<<"原数组:"<<endl; arr.print(); arr.fun(); cout<<"排序后的数组:"<<endl; arr.print();}2.答案#include<iostream.h>classArray{private: inta[5][4];public: Array(intt[][4],intn); intprime(intn); intsum_prime(inti); voidexch(inti1,inti2); voidfun(); voidprint();};Array::Array(intt[][4],intn){for(inti=0;i<n;i++) for(intj=0;j<4;j++) a[i][j]=t[i][j];}intArray::prime(intn){for(inti=2;i<n;i++) if(n%i==0)return0; return1;}intArray::sum_prime(inti){ ints=0;for(intj=0;j<4;j++) if(prime(a[i][j]))s+=a[i][j]; returns;}voidArray::exch(inti1,inti2){for(intj=0;j<4;j++) { intd=a[i1][j]; a[i1][j]=a[i2][j]; a[i2][j]=d; }}voidArray::fun(){ for(inti=0;i<4;i++) for(intj=i+1;j<5;j++) if(sum_prime(i)<sum_prime(j))exch(i,j);}voidArray::print(){for(inti=0;i<5;i++) { for(intj=0;j<4;j++) cout<<a[i][j]<<'\t'; cout<<endl; }}voidmain(){intb[5][4]={10,12,5,4,15,16,17,8,19,10,11,12,13,14,15,16,70,18,19,20};Arrayarr(b,5); cout<<"原数组:"; cout<<endl; arr.print(); arr.fun(); cout<<"排序后的数组:"; cout<<endl; arr.print();}3.答案#include<iostream.h>classArray{private: inta[5][4];public: Array(intt[][4],intn); intmax(int*p,intn); voidexch(inti1,inti2); voidfun(); voidprint();};Array::Array(intt[][4],intn){for(inti=0;i<n;i++) for(intj=0;j<4;j++) a[i][j]=t[i][j];}intArray::max(int*p,intn){ ints=0;for(inti=0;i<n;i++)s+=p[i]; returns;}voidArray::exch(inti1,inti2){for(intj=0;j<4;j++) { intd=a[i1][j]; a[i1][j]=a[i2][j]; a[i2][j]=d; }}voidArray::fun(){for(inti=0;i<4;i++) for(intj=i+1;j<5;j++) if(max(a[i],5)<max(a[j],5)) exch(i,j);}voidArray::print(){for(inti=0;i<5;i++){ for(intj=0;j<4;j++) cout<<a[i][j]<<'\t'; cout<<endl; }}voidmain(){ intb[5][4]={10,12,5,4,15,16,17,8,19,10,11,12,13,14,15,16,70,18,19,20};Arrayarr(b,5); cout<<"原数组:"<<endl; arr.print(); arr.fun(); cout<<"排序后数组:"<<endl; arr.print();}4.答案#include<iostream.h>classArray{private: inta[4][5];public:Array(intt[][5],intn); voidsort(int*p,intn,intf); voidfun(); voidprint();};Array::Array(intt[][5],intn){ for(inti=0;i<n;i++) for(intj=0;j<5;j++) a[i][j]=t[i][j];}voidArray::sort(int*p,intn,intf){ if(f%2==1){for(inti=0;i<n-1;i++) for(intj=i+1;j<n;j++) if(p[i]<p[j]){ intt=p[i];p[i]=p[j];p[j]=t; } } elsefor(inti=0;i<n-1;i++) for(intj=i+1;j<n;j++) if(p[i]>p[j]){ intt=p[i];p[i]=p[j];p[j]=t; }}voidArray::fun(){for(inti=0;i<4;i++) sort(a[i],5,i+1);}voidArray::print(){ for(inti=0;i<4;i++){ for(intj=0;j<5;j++) cout<<a[i][j]<<'\t'; cout<<endl; }}voidmain(){ intb[4][5]={1,3,9,5,6,7,6,7,5,7,2,5,4,5,6,7,1,5,4,5}; Arrayarr(b,4); cout<<"原数组:"<<endl; arr.print(); arr.fun(); cout<<"处理后的数组:"<<endl; arr.print();}三、数学问题2016春VC03二分法求方程的解【题目】用二分法求方程f(x)=ax2+bx+c=0在区间[x1,x2]内的一个解的迭代算法如下(假设f(x)在区间[x1,x2]内单调):(1)如果f(x1)*f(x2)>0,则方程在区间[x1,x2]上无解;(2)令x=(x1+x2)/2;(3)如果f(x)*f(x1)>0,方程的解在区间[x,x2]上,则令x1=x;否则,解在区间[x1,x],令x2=x;(4)重复步聚(2)、(3)直到f(x)满足精度要求。试定义一个类EQU,实现利用二分法求方程ax2+bx+c=0在区间[x1,x2]内的一个解。具体要求如下:(1)私有数据成员floata,b,c:存储方程的系数a,b和c。doublex1,x2,x:x为方程在区间[x1,x2]上的解。intk:如果在区间[x1,x2]内方程有解,则k值为1,否则k值为0;(2)公有成员函数EQU(floata1,floatb1,floatc1):用参数a1,b1,c1分别初始化成员a,b,c。voidfun(doublexx1,doublexx2,doublee):求方程ax2+bx+c=0在区间[xx1,xx2]内的一个解x,要求最终误差|f(x)|<e。voidprint():若方程有解,则输出所求得的解;若无解,则输出“方程在给定区间内无解”。(3)在主函数中首先输入方程的系数、区间和误差要求,建立EQU对象并初始化,然后调用fun()函数求出方程的解,最后调用print()函数输出所求得的解。正确程序的输入/输出结果如下(下划线部分为键盘输入):请输入方程的系数(a,b,c):15-4请输入区间([x1,x2])边界:010请输入误差要求(e):0.00001该方程在区间[0,10]中的解是:0.7015611.答案#include<iostream.h>#include<math.h>classEQU{private: floata,b,c; doublex1,x2,x; intk;public: EQU(floata1,floatb1,floatc1); voidfun(doublexx1,doublexx2,doublee); voidprint();};EQU::EQU(floata1,floatb1,floatc1){a=a1,b=b1;c=c1;}voidEQU::fun(doublexx1,doublexx2,doublee){ x1=xx1;x2=xx2;doublef; doublef1=a*x1*x1+b*x1+c; doublef2=a*x2*x2+b*x2+c; if(f1*f2>0)k=0; elsedo{ x=(x1+x2)/2; f=a*x*x+b*x+c; if(f*f1>0)x1=x; elsex2=x; }while(fabs(f)>e); k=1;}voidEQU::print(){ if(k==1){cout<<x<<endl; } elsecout<<"方程在给定区间内无解"<<endl;}voidmain(){floata,b,c;floatx1,x2; doublee;cout<<"请输入方程的系数(a,b,c):";cin>>a>>b>>c;cout<<"请输入区间([x1,x2])边界:";cin>>x1>>x2;cout<<"请输入误差要求(e):";cin>>e;EQUt(a,b,c);t.fun(x1,x2,e); cout<<"该方程在区间["<<x1<<","<<x2<<"]中的解是";t.print();}2015秋VC04切线法求方程的解【题目】已知切线法求方程f(x)=ax2+bx+c=0在x附近的一个解的迭代公式为:x=x-f(x)/f’(x),其中f’(x)=2ax+b为函数f(x)的导数。试定义一个类EQU,用切线法求方程f(x)=ax2+bx+c=0在x附近的一个解。具体要求如下:(1)私有数据成员floata,b,c:保存方程的系数a,b和c。doublex:x为所求得的解。(2)公有成员函数EQU(floata1,floatb1,floatc1):构造函数,用参数a1,b1,c1分别初始化成员a,b,c。voidfun(doublex0,doublee):求方程在x0附近的一个解,所采用的算法是:依次计算x1=x0-f(x0)/f’(x0),x2=x1-f(x1)/f’(x1),…,xn=xn-1-f(xn-1)/f’(xn-1),直到|f(xn)|<e为止。voidprint():输出所求得的解。(3)在主函数中建立EQU对象,并求出方程f(x)=2x2+6x-7=0在x=5.0附近的一个解,要求最终误差|f(x)|<10-5,最后调用print()函数输出所求得的解。正确程序的输入/输出结果如下(下划线部分为键盘输入):请输入方程的系数(a,b,c):26-7请输入预估的初始解x0:5请输入误差要求(e):0.00001该方程的解是:0.897916【要求】打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。2.答案#include<iostream.h>classEQU{private: floata,b,c; doublex;public: EQU(floata1,floatb1,floatc1); voidfun(doublex0,doublee); voidprint();};EQU::EQU(floata1,floatb1,floatc1){a=a1;b=b1;c=c1;x=0.0;}voidEQU::fun(doublex0,doublee){doublef; do{ doublef0=a*x0*x0+b*x0+c;doubleff=2*a*x0+b; x=x0-f0/ff;f=a*x*x+b*x+c; doublef1=2*a*x+b; x0=x-f/f1; }while(f>e);}voidEQU::print(){cout<<x<<endl;}voidmain(){floata,b,c;doublex0,e;cout<<"请输入方程的系数(a,b,c):";cin>>a>>b>>c;cout<<"请输入预估的初始解x0:";cin>>x0;cout<<"请输入误差要求(e):";cin>>e;cout<<"该方程的解是:";EQUt(a,b,c);t.fun(x0,e);t.print();}四、最大公约数和最小公倍数问题2016秋VC01编程题1.最大公约数2.最小公倍数【题目】试定义一个类NUM,求成员数组所有元素的最大公约数和最小公倍数。具体要求如下:(1)私有成员:inta[5],m,n:m为数组a的最大公约数,n为数组a的最小公倍数。(2)公有成员:NUM(intt[],intn):构造函数,用参数t初始化成员数组a,参数n为参数t中元素的个数。intfm(intk):辅助函数,判断整数k是否为成员数组a的所有元素的公约数,如果是,则返回值1,否则返回值0。intfn(intk):辅助函数,判断整数k是否为成员数组a的所有元素的公倍数,如果是,则返回值1,否则返回值0。voidfun():用穷举法分别求数组a的最大公约数和最小公倍数。voidprint():按示例格式输出成员数据a,m和n。(3)在主函数中用一个数组对类进行测试。输出示例:数组:121518399最大公约数:3最小公倍数:2340【要求】打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。答案:#include<iostream>usingnamespacestd;classNUM{private: inta[5],m,n;public: NUM(intt[],intn); intfm(intk); intfn(intk);voidfun(); voidprint();};NUM::NUM(intt[],intn){for(inti=0;i<n;i++) a[i]=t[i]; m=1;}intNUM::fm(intk){for(inti=0;i<5;i++) if(a[i]%k!=0) return0; return1;}intNUM::fn(intk){for(inti=0;i<5;i++) if(k%a[i]!=0) return0; return1;}voidNUM::fun(){ intmax=a[0]; intmin=a[0]; for(inti=0;i<5;i++){ if(max<a[i])max=a[i]; if(min>a[i])min=a[i]; } for(intk=max;k>0;k--) if(fm(k)==1){ m=k; break; } for(k=min;;k++) if(fn(k)==1){ n=k;break; }}voidNUM::print(){cout<<"数组:"; for(inti=0;i<5;i++) cout<<a[i]<<'\t'; cout<<endl; cout<<"最大公约数:"<<m<<'\t'; cout<<"最小公倍数:"<<n<<endl;}voidmain(){intb[5]={12,15,18,39,9}; NUMnn(b,5); nn.fun(); nn.print();}五、字符串问题2016秋VC06编程题1.大小写字母转换2.动态申请空间new和释放空间delete【题目】试定义一个类STR,去除英文字符串中的空格,并将各单词首字母改为大写。已知各单词之间以空格字符分隔。具体要求如下:(1)私有成员:char*s:需要处理的字符串。(2)公有成员:STR(char*p):构造函数,用参数p初始化数据成员s。注意为数据成员s分配相应的存储空间。voidfun():根据题意对数据成员s进行处理。voidprint():输出数据成员s。~STR():析构函数。(3)在主函数中输入一个英文字符串,并用该字符串对类STR进行测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高校教师职业道德全真模拟考试试卷A卷含答案
- 2024年xx村年度脱贫户、监测户增收工作总结
- 牛津译林版英语高三上学期期末试题及答案指导
- 机电工程师招聘面试题与参考回答(某大型国企)
- 新修订《疫苗流通和预防接种管理条例》培训试题及答案
- 2024年简化货品采购协议格式
- 2024年限定区域分销商协议条款
- 2024年度工程领域劳务协议范本
- 2024年新汽车租赁经营协议样本
- 2024全新保健品商业合作协议样本
- 山东省济南市历下区2023-2024学年八年级上学期期中语文试题
- 图神经网络在生物医学影像分析中的应用
- 浅谈管理者的自我管理
- 第一章 结构及其设计 课件-2023-2024学年高中通用技术苏教版(2019)必修《技术与设计2》
- 语文教学常规检查表
- “思政”课社会实践
- 临时用电漏电保护器运行检测记录表
- 复杂性尿路感染
- 重度残疾儿童送教上门
- 膀胱癌综合治疗新进展
- 音乐ppt课件《小小的船》
评论
0/150
提交评论