




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、桂林电子科技大学试卷2010-2011 学年第 2 学期 A卷课号 课程名称 程序设计与问题求解2 适用班级(专业) 考试时间 120 分钟 座位号 学号 姓名 题号一二三四五六七八成绩满分502030得分评卷人一、阅读程序,写出程序运行结果(每题10分,5题共50分)1结构体# include <iostream># include <string.h>using namespace std;struct Worker char name15; / 姓名 int age; / 年龄 float pay; / 工资;void main() Worker Worker1,
2、Worker2; char *t="liouting" int d=38;float f=493; strcpy(W,t); Worker1.age=d; Worker1.pay=f; cout <<W<<" "<<Worker1.age<<" "<<Worker1.pay<<endl;Worker2=Worker1; cout <<W<<" "<&
3、lt;Worker2.age<<" "<<Worker2.pay<<endl;输出结果是:liouting 38 493liouting 38 4932构造函数与析构函数#include <iostream>using namespace std;class TAddprivate:int x, y;public:TAdd(int a, int b): x(a), y(b)cout << "调用构造函数1." << endl;TAdd(
4、TAdd &p)x=p.x;y=p.y;cout << "调用构造函数2." << endl;TAdd( )cout << "调用析构函数." << endl;int add( ) return x+y; ;void main( )TAdd p1(2, 3);TAdd p2=p1;cout << p2.add( ) << endl;输出结果是:调用构造函数1.调用构造函数2.5调用析构函数.调用析构函数.3虚函数#include <iostream>using n
5、amespace std;class Apublic:virtual void f()cout<<"A:f() executingn"class B:public Apublic:void f()cout<<"B:f() executingn"void main()A a;B b;b.f();A* p = &a;p->f();p = &b;p->f(); a=b;a.f();输出结果是:B:f() executingA:f() executingB:f() executingA:f() executin
6、g4模板#include <iostream>using namespace std;template <class Type1,class Type2>class myclassprivate:Type1 i;Type2 j;public:myclass(Type1 a, Type2 b)i=a; j=b; void show() cout<<i<<" "<<j<<endl; ;void main()myclass<int, int> ob1(1,3); myclass<int, d
7、ouble> ob2(10,0.23);myclass<char, char*> ob3('A',"This is a test");ob1.show();ob2.show();ob3.show();输出结果是:1 310 0.23A This is a test5继承#include<iostream>using namespace std;class A int x,y;public:A(int x1=0, int y1=0):x(x1),y(y1)cout<<"A:"<<x<
8、;<' '<<y<<'n'A() cout<<"A des!n"class B int i;public:B(int ii) i = ii; cout<<"B con!n"B()cout<<"B des!n"class C:public A,public Bpublic:C (int cx,int cy, int bi):A(cx,cy),B(bi) cout<<"A with B con!n"C () c
9、out<<"A with B des!n"int main()C cm(3,4,5);输出结果是:A:3 4B con!A with B con!A with B des!B des!A des!二、程序填空(每题10分,2题共20分)1. 词频统计:输入一系列英文单词,单词之间用空格隔开,用“xyz”表示结束输入,统计输入过哪些单词以及各单词出现的次数,统计时区分大小写字母,最后按单词的字典顺序输出单词和出现次数的对照表。#include <iostream>#include <cstring>using namespace std;/
10、 词条类型struct WordListchar word50;int freq;/ 词典排序函数void Sort(WordList list, int count)for(int i=0; i<count; i=i+1)for(int j=count-1; j>i; j=j-1)if(strcmp(listj-1.word,listj.word)>0)WordList tmp;tmp=listj-1;listj-1=listj;listj=tmp;/ 主函数:进行词频统计int main()WordList list5000;int i, num=0;char temp5
11、0;cout<<"请输入一系列英语单词,以xyz表示输入结束"<<endl;cin>>temp;while( (1) ) for(i=0; i<num; i+)/ 扫描当前词典if(strcmp(listi.word, temp)=0)/ 若词典中存在该词条,词频加1 (2) break;if(i>=num) / 若词典中无该词条,添加该词strcpy(listi.word, temp); (3) (4) (5) / 继续输入单词Sort(list, num);/ 对词典进行排序/ 输出词典cout<<"
12、词频统计结果如下:"<<endl;for(i=0; i<num; i+)cout<<listi.word<<"t"<<listi.freq<<endl;return 0;答案:(1)strcmp(temp, "xyz")!=0(2)listi.freq +;(3)listi.freq =1;(4)num+;(5)cin>>temp;2带头结点链表类的定义如下:#include<iostream>#include<cstdio>using nam
13、espace std; template<class datatype> /模板声明class NODE /结点类定义public: datatype data; /数据域 NODE<datatype> *next; /指针域;template<class datatype>class List /单链表类定义private:NODE<datatype> *head; /链表头指针 public:List(); /构造函数创建头结点 int length(); /求表长函数bool isempty() return head->next=N
14、ULL?true:false; /判空链表函数 bool insert_data(datatype data,int i); /插入元素函数 List(); /析构函数;template<class datatype>bool List<datatype>:insert_data(datatype data,int i) /定义插入函数 NODE<datatype> *current,*previous,*newnode;int j=1;if(i>length()+1)|(i<0) /判插入位置的合法性cout<<"插入位置
15、不正确,不能插入!n"return false;newnode=new NODE<datatype> /申请新结点空间if(newnode=NULL) /判表满否cout<<"内存无空闲空间,不能插入!n"return false;newnode->data=data;newnode->next=NULL;previous=head; (6) while( (7) ) /寻找第i个元素previous=current; (8) /指向下一个结点j+; /链入新结点 (9) (10) return true;答案:(6)curre
16、nt=head->next;(7) current!=NULL&&j<i(8) current=current->next;(9) newnode->next=current;(10) previous->next=newnode;三、程序设计(每题15分,2题共30分)1设计一个时间(Time)类,设计多个重载的构造函数,可以设置时间,时间加运算(时间加多少秒),要求重载+来实现时间加运算,按24小时制格式:时:分:秒输出时间。并在主程序中测试所有的操作。(15分)#pragma once/*时间类*/class Timeint second ,
17、minute ,hour;int GetSecond(); /计算总秒数void SetTime(int ss); /根据秒数算出second ,minute ,hour public:Time();Time(int hh,int mm,int ss);void SetTime(int hh,int mm,int ss); const Time &operator+(int ss);bool operator<(Time &);void Print_hms(); /HH:mm:ss ;#include "Time.h"#include <iost
18、ream>using namespace std;Time:Time() second=0; minute=0; hour=0;Time:Time(int hh,int mm,int ss) SetTime(hh,mm,ss);/计算总秒数int Time:GetSecond() return second+60*minute+3600*hour;void Time:SetTime(int ss) second=ss%60; ss=ss/60; minute=ss%60; ss=ss/60; hour=ss%24;void Time:SetTime(int hh,int mm,int s
19、s) second=(ss>=0&&ss<60)?ss:0; minute=(mm>=0&&mm<60)?mm:0; hour=(hh>=0&&hh<24)?hh:0;const Time & Time:operator+(int ss) SetTime(GetSecond()+ss); return *this;bool Time:operator <(Time &time)if(GetSecond()-time.GetSecond()<0)return true;else ret
20、urn false;void Time:Print_hms()cout<<hour<<":"<<minute<<":"<<second<<endl;#include "Time.h"#include <iostream>using namespace std;int main()Time t1,t2;int hour,minute,second;cout<<"请输入时间(时分秒):"<<endl;cin>
21、;>hour>>minute>>second;t1.SetTime(hour,minute,second);t1.Print_hms(); t2.SetTime(12,0,0);if(t1<t2)cout<<endl<<"是上午的时间"<<endl;else cout<<endl<<"是下午的时间"<<endl; return 0;评分说明:数据成员定义2分,函数定义5分,函数实现5分,主程序测试3分2编写一个雇员和雇主数据输入和显示的程序。雇员数
22、据有编号(no)、姓名(name)和工资(salary),雇主数据有编号(no)、姓名(name)和职位(post)。要求将编号、姓名输入和显示设计成一个类person,并作为雇员数据类employee和雇主数据类employer的基类,并编写主程序进行执行,输出信息时体现运行多态性,并给出执行结果。(15分)答案:#include<iostream>using namespace std;class person int no; char name10; public: virtual void input() cout<<"the no is "
23、 cin>>no; cout<<"the name is " cin>>name; virtual void output() cout<<"the no is "<<no<<endl; cout<<"the name is "<<name<<endl; ;class employee: public person int salary;public: void input() person:input(); cout<<"the employee salary is " cin>>salary; void output() person:output(); cout<<"the employee sa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海纽约大学《语言学与语文教学》2023-2024学年第二学期期末试卷
- 海南卫生健康职业学院《中学思想政治学科课程标准与教材分析》2023-2024学年第二学期期末试卷
- 北京工业大学耿丹学院《童装设计》2023-2024学年第二学期期末试卷
- 青岛大学《分析型大数据系统》2023-2024学年第二学期期末试卷
- 北京信息职业技术学院《机器人学》2023-2024学年第二学期期末试卷
- 山东华宇工学院《供应商质量管理》2023-2024学年第二学期期末试卷
- 2025年高中信息技术学业水平考试模拟试卷四套(含答案详解)
- 安徽电气工程职业技术学院《系统设计与分析》2023-2024学年第二学期期末试卷
- 江西医学高等专科学校《公共事业管理案例分析》2023-2024学年第二学期期末试卷
- 2024年坤泰胶囊投资申请报告代可行性研究报告
- 《车载充电器》课件
- 区块链赋能金融提升交易透明度
- 2024年沈阳市三支一扶考试真题
- wps表格考试试题及答案
- 《绝经后出血》课件
- 食品合作商合同协议
- 2025年吉林省四平市梨树县中考二模历史试题(含答案)
- 生物柴油项目申报材料范文模板 (一)
- 私人店铺用工合同协议
- 猪保价合同协议
- 玉石代理销售合同协议
评论
0/150
提交评论