当前位置:首页 > 面向对象程序设计(C++)自我测试练习参考答案
cout< 三、编程题 1.编写一函数 , 求 x2 + 1 (x > 1)) f (x ) = x2 (-1 <= x <= 1) x2 – 1 (x < -1 ) 的值 , 要求函数原型为 double fun(double x ); double fun(double x ) { double y; if(x>1.0)y = x*x+1.0; else if(x>= -1.0 && x<=1.0) y= x*x; else y =x*x-1; return y; } 2.编写一函数求 1~n 之和 , 要求函数原型为 long sum(int n ); long sum(int n ) { long s=0L; int i; for(i=1;i<=n;i++) s += i; return s; } 3.用函数调用的方法,求f(k,n)=1k+2k+…+nk,其中k, n由键盘输入。 #include \long fnPower(int n,int k) { int i=1; long nk=1L; for(i=1;i<=k;i++) nk *= n; return nk; } long fn(int k,int n) { long f=0L; for(int i=1;i<=n;i++) f += fnPower(i,k); return f; } void main() { int n,k; cout<<\请输入n,k:\ cin>>n>>k; cout< 4.用递归算法求下列函数的值. 1 n = 0 p(n,x)= x n = 1 ((2x-1)*p(n-1,x)*x – (n-1 )*p(n-2,x))/n n>1 注意选择好合适的参数类型和返回值类型。在main函数中,输入下列三组数据: (a) n = 0,x = 7; (b) n = 1,x = 2; (c) n = 3, x = 4,求出相应的函数值。 #include \long fnP(int n,int x) { long s; if(n==0)s=1; else if(n==1)s=x; else s =((2*x-1)*fnP(n-1,x)*x - (n-1 )*fnP(n-2,x))/n ; return s; } void main() { int n,x; cout<<\输入n,x:\ cin>>n>>x; cout< 5. 设计一个重载函数,求n个数的最大值(n=2,3)。并编程调用验证。 #include \int fnMax(int x,int y) { int max; max = x>y?x:y; return max; } int fnMax(int x,int y,int z) { int max; max = x>y?x:y; max = z>max?z:max; return max; } void main() { cout< 6. 通过函数重载,利用冒泡排序算法编写函数fnSort(),完成任务int型数组、float型数组和字符数组的排序。 #include \void fnSort(int a[]); void fnSort(float a[]); void fnPrint(int a[]); void fnPrint(float a[]); #define N 6 void main() { int a[N]={1,22,7,45,90,3}; float b[N]={1.6F,22.5F,7.2F,45.9F,90.0F,3.0F}; fnSort(a); fnPrint(a); fnSort(b); fnPrint(b); } void fnSort(int a[]) { int k,i,t; for(k=1;k<=N-1;k++) //对数组进行冒泡排序 { for(i=N-1;i>=k;i--) if(a[i] { t=a[i]; a[i]=a[i-1]; a[i-1]=t; } //反序则交换 } } void fnSort(float a[]) { int k,i; float t; for(k=1;k<=N-1;k++) //对数组进行冒泡排序 { for(i=N-1;i>=k;i--) if(a[i] { t=a[i]; a[i]=a[i-1]; a[i-1]=t; } //反序则交换 } } void fnPrint(int a[]) { cout<<\排序后的成绩是:\ for(int i=0;i void fnPrint(float a[]) { cout<<\排序后的成绩是:\ for(int i=0;i 7. 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡” 问题:鸡公一,值钱五,鸡母一,值钱三,小鸡,三只值钱一,百钱买百鸡,问公、母、小鸡各几只? #include \void main() { int a,b,c; for(a=1;a<100/5;a++) for(b=1;b<100/3;b++) for(c=3;c<99;c+=3) { if(a+b+c == 100 && a*5+b*3+c/3 == 100) cout<<\鸡公=\鸡母=\小鸡=\ } } 第6章 类与对象 一、单选题 1. 假设AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。 A. x(a) B. x[a] C. x->a D. x.a 2. 假设AA为一个类,a()为该类公有的成员函数,x为该类的一个对象,则访问x对象中成员函数a的格式为( A )。 A. x.a() B. x.a C. x->a D. a.x() 3. 假设AA为一个类,a为该类私有的数据成员,GetValue()为该类的一个公有成员函数,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。 A. x.a B. x.a() C. x->GetValue() D. x.GetValue() 4. 类中定义的成员默认为( B )访问属性。 A.public B. private C. protected D. friend 5. 下列各类函数中,( C )不是类的成员函数。 A.构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 6.不是构造函数的特征的是( D )。
共分享92篇相关文档