云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 高级语言C++程序设计--考试试卷- 答案

高级语言C++程序设计--考试试卷- 答案

  • 62 次阅读
  • 3 次下载
  • 2026/4/23 21:58:31

virtualdoublefib(intn); //派生类中说明同一个虚函数fib(简单变量\数据平移\法) };

classfib2Cla : publicbaseCla//派生类fib2Cla { doublea[1000]; public: virtualdoublefib(intn); //virtual double fib(int n); //派生类中说明同一个虚函数fib(使用数组的求解法) };

classfib3Cla :publicbaseCla {

public: virtualdoublefib(intn); //使用递归函数的实现法 };

doublefib1Cla::fib(intn) { if (n == 1 || n == 2) return 0; else { for (i = 3; i<= n; i++) { c = a + b; a = b; b = c; } returnc; } }

doublefib2Cla::fib(intn) { a[0] = a[1] = 1; inti; if (n == 1 || n == 2) return 1; else { for (i = 2; i<= n; i++) a[i] = a[i - 1] + a[i - 2]; } returna[n-1]; //此处的n-1即为逻辑意义上的n }

doublefib3Cla::fib(intn) { if (n == 1 || n == 2) return 1; else returnfib(n - 1) + fib(n - 2); }

voidfun(baseCla *p, intn)

//自定义函数fun,形参p为指向基类的指针,其对应实参 //可为不同派生类对象的地址;n指明要求出数列的第n项 { //自定义函数fun,形参p 为指向基类的指针,其对应实参 //可为不同派生类对象的地址;n 指明要求出数列的第n 项 doubled = p->fib(n); //根据p 指针值的不同,将调用不同派生类的虚函数fib cout.flags(ios::scientific); cout.precision(15); cout<<\<

voidmain() { fib1Claobj1; //fib1Cla 类对象obj1 fib2Claobj2; //fib2Cla 类对象obj2 fib3Claobj3; //fib3Cla 类对象obj3 cout<<\<

第四题:模板/指针编程(20分)

编写一个具有如下样式的类模板tmplt ,用于实现所谓的反序输出问题,其中使用了类型参数T(使所处理的元素类型可变化)和普通参数n(元素个数也可变化): template class tmplt {

T arr[n]; // n 个T 类型的数据存放于数组arr 之中 public:

void dataIn(); //从键盘输入n 个T 类型数据放入arr 数组中 void reverseOut(); //将arr 数组中的数据按输入的相反顺序输出 void reverseOutByList(); //用链表形式, 反序输出};

在reverseOutByList()中, 可定义如下的结构类型, 以形成链表项 struct item { T data; item * next; } *first , *temp; #include usingnamespacestd; template classtmplt { Tarr[n]; public: voiddateIn(); voidreverseOut(); voidreverseOutByList(); };

template voidtmplt::dateIn() { for (inti = 0; i

cin>>arr[i]; }

template

voidtmplt::reverseOut() { cout<<\该位数的反序数为:\; for (inti = n - 1; i>= 0; i--) cout<

template

voidtmplt::reverseOutByList() { //指针与链表的求解方法 structitem { //结构类型,用于形成链表项 Tdata; //存放数据 item * next; //指向本结构的指针,由它“串联”起后项 }; item *first = NULL, *temp; //由first 指向链表首 Tx; cout<<\<>x; temp = newitem; temp->data = x; temp->next = first; first = temp; } cout<<\<data<<\; temp = temp->next; } cout<

intmain() { tmpltt1; cout<<\请输入8个整型数:\<t2; cout<<\请输入8个浮点型数:\<t3; cout<<\请输入8个字符:\<

}

t3.reverseOut(); tmpltt4;

cout<<\请输入8个double数:\<

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

virtualdoublefib(intn); //派生类中说明同一个虚函数fib(简单变量\数据平移\法) }; classfib2Cla : publicbaseCla//派生类fib2Cla { doublea[1000]; public: virtualdoublefib(intn); //virtual double fib(int n); //派生类中说明同一个虚函数fib(使用数组的求解法) }; classfib3Cla :publicbaseCla { public: virtualdoublefib(intn); //使用递归函数的实现法 }; doublefib1Cla::fib(intn) { if (n == 1 || n == 2) return 0; else { for (

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com