版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、桂林電子科技大學(xué)試卷2010-2011 學(xué)年第 2 學(xué)期 A卷課號 課程名稱 程序設(shè)計與問題求解2 適用班級(專業(yè)) 考試時間 120 分鐘 座位號 學(xué)號 姓名 題號一二三四五六七八成績滿分502030得分評卷人一、閱讀程序,寫出程序運行結(jié)果(每題10分,5題共50分)1結(jié)構(gòu)體# 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;輸出結(jié)果是:liouting 38 493liouting 38 4932構(gòu)造函數(shù)與析構(gòu)函數(shù)#include <iostream>using namespace std;class TAddprivate:int x, y;public:TAdd(int a, int b): x(a), y(b)cout << "調(diào)用構(gòu)造函數(shù)1." << endl;TAdd(
4、TAdd &p)x=p.x;y=p.y;cout << "調(diào)用構(gòu)造函數(shù)2." << endl;TAdd( )cout << "調(diào)用析構(gòu)函數(shù)." << endl;int add( ) return x+y; ;void main( )TAdd p1(2, 3);TAdd p2=p1;cout << p2.add( ) << endl;輸出結(jié)果是:調(diào)用構(gòu)造函數(shù)1.調(diào)用構(gòu)造函數(shù)2.5調(diào)用析構(gòu)函數(shù).調(diào)用析構(gòu)函數(shù).3虛函數(shù)#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();輸出結(jié)果是: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();輸出結(jié)果是: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);輸出結(jié)果是:A:3 4B con!A with B con!A with B des!B des!A des!二、程序填空(每題10分,2題共20分)1. 詞頻統(tǒng)計:輸入一系列英文單詞,單詞之間用空格隔開,用“xyz”表示結(jié)束輸入,統(tǒng)計輸入過哪些單詞以及各單詞出現(xiàn)的次數(shù),統(tǒng)計時區(qū)分大小寫字母,最后按單詞的字典順序輸出單詞和出現(xiàn)次數(shù)的對照表。#include <iostream>#include <cstring>using namespace std;/
10、 詞條類型struct WordListchar word50;int freq;/ 詞典排序函數(shù)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;/ 主函數(shù):進(jìn)行詞頻統(tǒng)計int main()WordList list5000;int i, num=0;char temp5
11、0;cout<<"請輸入一系列英語單詞,以xyz表示輸入結(jié)束"<<endl;cin>>temp;while( (1) ) for(i=0; i<num; i+)/ 掃描當(dāng)前詞典if(strcmp(listi.word, temp)=0)/ 若詞典中存在該詞條,詞頻加1 (2) break;if(i>=num) / 若詞典中無該詞條,添加該詞strcpy(listi.word, temp); (3) (4) (5) / 繼續(xù)輸入單詞Sort(list, num);/ 對詞典進(jìn)行排序/ 輸出詞典cout<<"
12、詞頻統(tǒng)計結(jié)果如下:"<<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帶頭結(jié)點鏈表類的定義如下:#include<iostream>#include<cstdio>using nam
13、espace std; template<class datatype> /模板聲明class NODE /結(jié)點類定義public: datatype data; /數(shù)據(jù)域 NODE<datatype> *next; /指針域;template<class datatype>class List /單鏈表類定義private:NODE<datatype> *head; /鏈表頭指針 public:List(); /構(gòu)造函數(shù)創(chuàng)建頭結(jié)點 int length(); /求表長函數(shù)bool isempty() return head->next=N
14、ULL?true:false; /判空鏈表函數(shù) bool insert_data(datatype data,int i); /插入元素函數(shù) List(); /析構(gòu)函數(shù);template<class datatype>bool List<datatype>:insert_data(datatype data,int i) /定義插入函數(shù) NODE<datatype> *current,*previous,*newnode;int j=1;if(i>length()+1)|(i<0) /判插入位置的合法性cout<<"插入位置
15、不正確,不能插入!n"return false;newnode=new NODE<datatype> /申請新結(jié)點空間if(newnode=NULL) /判表滿否cout<<"內(nèi)存無空閑空間,不能插入!n"return false;newnode->data=data;newnode->next=NULL;previous=head; (6) while( (7) ) /尋找第i個元素previous=current; (8) /指向下一個結(jié)點j+; /鏈入新結(jié)點 (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;三、程序設(shè)計(每題15分,2題共30分)1設(shè)計一個時間(Time)類,設(shè)計多個重載的構(gòu)造函數(shù),可以設(shè)置時間,時間加運算(時間加多少秒),要求重載+來實現(xiàn)時間加運算,按24小時制格式:時:分:秒輸出時間。并在主程序中測試所有的操作。(15分)#pragma once/*時間類*/class Timeint second ,
17、minute ,hour;int GetSecond(); /計算總秒數(shù)void SetTime(int ss); /根據(jù)秒數(shù)算出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);/計算總秒數(shù)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;評分說明:數(shù)據(jù)成員定義2分,函數(shù)定義5分,函數(shù)實現(xiàn)5分,主程序測試3分2編寫一個雇員和雇主數(shù)據(jù)輸入和顯示的程序。雇員數(shù)
22、據(jù)有編號(no)、姓名(name)和工資(salary),雇主數(shù)據(jù)有編號(no)、姓名(name)和職位(post)。要求將編號、姓名輸入和顯示設(shè)計成一個類person,并作為雇員數(shù)據(jù)類employee和雇主數(shù)據(jù)類employer的基類,并編寫主程序進(jìn)行執(zhí)行,輸出信息時體現(xiàn)運行多態(tài)性,并給出執(zhí)行結(jié)果。(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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩老師心得體會15篇
- 國土分局業(yè)務(wù)知識
- 醫(yī)務(wù)人員洗手相關(guān)知識
- 正頜手術(shù)加速康復(fù)外科臨床路徑指標(biāo)體系構(gòu)建及對術(shù)后康復(fù)效果影響
- 基于深度學(xué)習(xí)的PMU異常數(shù)據(jù)檢測方法研究
- 二零二五年度綠色環(huán)保消防設(shè)施安裝與維護(hù)合同協(xié)議書3篇
- 2025版水果種植基地與冷鏈物流企業(yè)合作協(xié)議范本3篇
- 臭氧水療聯(lián)合皮膚科特色護(hù)理治療濕疹患兒的價值
- 快遞行業(yè)培訓(xùn)計劃
- xx市科創(chuàng)孵化器項目可行性研究報告
- 出差報銷單-中英對照版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護(hù)理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 2023-2024學(xué)年重慶市兩江新區(qū)四上數(shù)學(xué)期末質(zhì)量檢測試題含答案
- 腕管綜合征課件
- 事業(yè)單位工作人員年度考核登記表(通用模板)
- 人教版七年級數(shù)學(xué)下冊《垂線》
- 公開選拔村級后備干部報名登記表
- 酒店協(xié)議價格合同范文(8篇)
- 帕金森病(英文版)課件
- 大學(xué)普通化學(xué)(第七版)課后答案
評論
0/150
提交評論