欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    程序设计及算法语言A卷.doc

    • 资源ID:78785726       资源大小:50.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    程序设计及算法语言A卷.doc

    东 南 大 学 考 试 卷(A卷)学号 姓名 密封线课程名称程序设计及算法语言1考试学期07-08-2得分适用专业吴健雄学院考试形式闭卷考试时间长度120分钟卷面总分67,另有上机编程33分,总成绩100分一、简答题(每问2分,共6分)自 觉 遵 守 考 场 纪 律 如 考 试 作 弊 此 答 卷 无 效下列各段程序都存在错误,请说明错误所在及理由(1)类说明(2分)class Squareprivate: int upper_left_x=0, upper_left_y=0;int side_length=2;public:Square();Square();int draw();答: (2)类说明(2分)class ComplexdoubleReal,Image ;public : Complex(double r=0.0, double i=0.0) Real=r;Image=i; friend Complex operator+(const Complex &,const Complex &);Complex Complex:operator+(const Complex & c1,const Complex & c2)return Complex(c1.Real+c2.Real,c1.Image+c2.Image); 答: (3)求1到100倒数和的程序段(1分)double sum=0;int i;for(i=1;i<=100;i+) sum+=1/i;cout<<sum<<endl;答: 1二、程序阅读与修改题(共22分)1设输入大写字母D,画出输出图形。(5分)int main()char in;int i,j;docout<<"输入一个字母:"cin>>in;if(in>=65)&&(in<=90) in+=32;while(in<97)|(in>122); (5分)int line=in-'a'for (i=0;i<=line;i+) for(j=line-i;j>0;j-) cout<<" " for(j=1;j<=2*i+1;j+) cout<<' '<<char(i+'a');cout<<endl;for (i=line;i>0;i-)for(j=0;j<=line-i;j+) cout<<" "for(j=1;j<=2*i-1;j+) cout<<' '<<char(i-1+'a');cout<<endl;2return 0;2调用递归函数ch(D),可得输出为?(6分)void ch(char w)char i;if(w>=A)for(i=A;i<=w;i+) cout<<t<<w;cout<<endl;ch(w-1);for(i=A;i<=w;i+) cout<<t<<w;cout<<endl;3写出下例的运行结果。希望实现动态的多态性,如未实现请指出错误,并给出更正后的运行结果。(6分)class base3运行结果:指出错误并更正:更正后的运行结果:public:virtual void fn(int x)cout<<"In base class, x="<<x<<endl;class sub:public basepublic:virtual void fn(float x)cout<<"In sub class, x="<<x<<endl;int main()base b,*p;sub s;p=&b;p->fn(2);p=&s;p->fn(3.5);return 0;4下例求给定数的平方根,第一次输入2,第二次输入-2。给出屏幕上显示的内容。(5分)double dsqrt(double d)if(d<0) throw 2;4return sqrt(d);int main()int x;while(1)cout<<”请输入一个正整数:”<<endl;cin>>x;trycout<<dsqrt(x)<<endl;catch(int)cout<<”这是一个负整数!”<<endl;if(d<0) break;return 0;三、程序填空完善题(除特别标出者,每空1.5分,共39分)1下例是由数组类模板派生栈类模板,注意格式。(共10.5分)#include<iostream>using namespace std;template<class T,int size> class arrayT asize;int last;int maxSize;public:array()last=-1;maxSize=size;bool isfull()if(last=maxSize-1) return true; else return false; bool isempty()if(last=-1) return true; else return false;void insertRear(T data) /将data插在数组最后一个元素位置,可用于创建数组if(1) ) (2) ;else cout<<"array is full,can not insert!"<<endl;T deleteRear() /将数组最后一个元素从数组中删除,值返回if(3) ) (4) ;else cout<<"array is empty,can not delete!"<<endl;void print() /输出数组int i;for(i=0;(5) ;i+) cout<<ai<<'t'cout<<endl;/其他无关接口函数略;template<class T,int size> class stack:private array<T,size>/私有派生屏蔽原有的接口函数public:void push(T data)(6) ;/调用基类合适的公有函数T pop()(7) ; /调用基类合适的公有函数,并返回void stackprint()print();2下面采用冒泡排序的成员函数模板实现线性表降序排序。冒泡排序采用从线性表尾部往头部进行,比较运算符采用小于运算符。(其中810三空各2分,共9分)template <typename T,int size>class Orderedlistint maxsize;int last;T slistsize;public:Orderedlist()last=-1;maxsize=size;void BubbleSort();bool Insert(T & elem,int i);void print();/ 无关成员函数省略,缺省的=等不必定义;/Insert(T & elem ,int i)和print()不再重复定义template <typename T,int size> void Orderedlist<T,size>:BubbleSort()/降序bool noswap; /交换标志int i,j;T temp;for (8) )/从线性表尾部往头部逐个元素完成排序noswap=true;for(9) )/注意一趟排序的方向if(10) )/关键字比较采用小于号,实现降序排序temp=slistj;slistj=slistj+1;slistj+1=temp;(11) ;/标识本趟有交换(12) ;/本趟无交换,则终止算法。3下例线性表的析构函数将线性表存入文本文件,而构造函数由该文件恢复线性表。(共13.5分)template <typename T,int size>class Orderedlistint maxsize;int last;T slistsize;public:Orderedlist();Orderedlist();int getlast()return last;void putlast(int n)last=n;T getslist(int k)return slistk;void putslist(T t,int k)slistk=t;void print()for(int i=0;i<=last;i+) cout<<slisti;/ 无关成员函数省略;template <typename T,int size> Orderedlist<T,size>:Orderedlist()last=-1;maxsize=size;T t;(13) ;/定义流文件infile.open(14) ); /进入时由文件mylist.txt建立对象if(!infile)cout<<"没有数据文件"<<endl; /只给提示不退出else/有数据文件while(!infile.eof()infile>>t;(15) ;(16) ;last-;/对应文本文件结束处是回车换行后加文件结束符infile.close();print();cout<<endl;template <typename T,int size> Orderedlist<T,size>:Orderedlist()int i;(17) ;outfile.open(18) ); /退出时由文本文件保存对象if(!outfile)cout<<"不能打开文件"<<endl;elsefor(19) )(20) ;outfile.close();/这时生成的文本文件结束处是回车换行后加文件结束符问:作为线性表的模板类型参数T的实参类型中需对那些运算符进行重载:(21) 4完善链表类模板的复制构造函数。(共6分)template<typename T>class List;template<typename T>class NodeT info; /数据域Node<T> *link; /指针域public:Node(); /生成头结点的构造函数Node(const T & data); /生成一般结点的构造函数friend class List<T>/省略其他成员函数定义; template<typename T>class ListNode<T> *head,*tail; /链表头指针和尾指针public:List(); /构造函数,生成头结点(空链表)List(List<T> &); /拷贝构造函数List(); /析构函数/其它成员函数略;template<typename T>List<T>:List(List<T> & ls) /拷贝构造函数Node<T>* TempP=ls.head->link,*P1;head=tail=(22) ;/动态建立链表的头结点while(TempP!=NULL)P1=new Node<T>(23) );/复制一个链表结点P1->link=tail->link;/向后生成链表(24) ;tail=P1;(25) ;/准备复制ls的下一个结点

    注意事项

    本文(程序设计及算法语言A卷.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开