面向对象程序设计(C++)自我测试练习参考答案 联系客服

发布时间 : 星期一 文章面向对象程序设计(C++)自我测试练习参考答案更新完毕开始阅读6d699ec07cd184254a353549

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 )。