最新C++上機題目及答案1匯總_第1頁
最新C++上機題目及答案1匯總_第2頁
最新C++上機題目及答案1匯總_第3頁
最新C++上機題目及答案1匯總_第4頁
最新C++上機題目及答案1匯總_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精品資料C + +上機題目及答案1第一周上機題1. 以下語句描述了包含數(shù)學成績的學生信息結(jié)構(gòu)體及其數(shù)組a:struct student) char name20; float math; ;student a10 = ”張三”,90,“李四”,85,”王五”,73;int count=3;數(shù)組中包含的學生數(shù)編寫兩個函數(shù)分別實現(xiàn)在a數(shù)組中添加和刪除學生信息。要求:1) 原數(shù)組已按數(shù)學成績排序(降序),添加和刪除學生信息后數(shù)組應仍為 降序;2) 以下數(shù)據(jù)用于添加:“趙二”,96, ”錢六”,65, “孫七”,803) 注意:添加,刪除后count數(shù)據(jù)要相應變化。#include#includest

2、ruct student char name20;float math;int count=3;void add(student a10);void dele(student a 10);void print(student a);void main()student a10 = ”張三”,90,“李四”,85,”王五”,73;int n=0;doCOUt(學生信息處理系統(tǒng)nHn1 刪除”n2-増加”n3-結(jié)束 n”“n請選擇:”;cinn;if(n=l) dele(a);else if(n=2) add(a);else coutvv”謝謝使用本系統(tǒng)!n”;while(n!=3);void a

3、dd(student a10)student stu;int i=0,n=count;cout-請輸入需増加的學生信息(姓名,成績):”;cinstu.naniestu.math;while(stu.mathai.math & ii;n-) an=an-l; 騰位置ai=stu;插入count+;print(a);void dele(student a10)char name20;int i=0,n=count;print(a);COUt請輸入需刪除學生的姓名:”;cinname;while(strcmp(name,)!=0 & i=n) cout查無此人!n;else for(

4、;in-l;i+) ai=ai+l; 刪除count;print(a);void print(student a)coutn最新學生信息:n;for(int i=0:icount:i+)coutai.nanie*t,ai.mathn,;2. 定義描述三維坐標點(x,y,z)的結(jié)構(gòu)體類型變量,完成坐標點的輸入和輸出,并求兩坐標點之間的距離。要求:編寫函數(shù)求兩坐標點之間的距離。#include#includestruct pointdouble x,y,z;double distance(point appoint b);void main()point a5b;cout請分別輸入兩個點的坐標(x

5、,y,z) : n”;cina.xa.ya.z;cinb.xb.yb.z;coutHa 點的坐標:Ha.x,a.y,a.zn,;coutHb 點的坐標:Hb.x,b.y,b.z,n,;coutHa,b 兩點的距離是:Hdistance(a,b)endl;)double distance(point appoint b)double d;d=sqrt(a.x-b.x)*(a.x-b.x)+(a. y-b. y) *(a. y-b. y)+(a.z-b.z)*(a.z-b.z);return d;3. 某市青年歌手大賽聘請7名評委打分,下列程序協(xié)肋進行評分統(tǒng)計。函數(shù) delmaxmin的功能是對一

6、個選手的得分做以下計算:去掉一個最高分,去掉 個最低分,然后對剩余得分求平均分并保存。函數(shù)sort完成對n名選手 的得分按平均分從高到低排序。【測試數(shù)據(jù)與運行結(jié)果】測試數(shù)據(jù):程序中給泄的初始化測試數(shù)據(jù)運行結(jié)果:li: 94 97 98 96 100 99 97 97.40zhang: 96 97 98 98 100 97 96 97.20zhou: 95 100 99 96 97 96 97 97.00以下語句描述了包含數(shù)學成績的學生信息結(jié)構(gòu)體及其數(shù)組a :struct char player_name20;double score7,aver;PERSON ;# includestmct P

7、char nanic(20;double score7,aver;PERSON ;double dclmaxmin(double a7)double aver=0,sum=0.max.mi n:max=min=a0;for(int i=0;imax) max=ai;if(aimin) min=ai;aver+=aij;aver-=max+min;return aver/5;void sort(Pp(3)int i j;Pa;for(i=0;i3;i+) for(j=i+l ;jv3;j+) /原程序:for(j=0;j3;j+) if(pi.averpjj.aver)/原程序:if(pi.av

8、erpi+l J.aver) a=pi,pi=pjl,pj=a;void main()int i j;cout請輸入比賽選手的比賽數(shù)據(jù):cndl:for(i=0:iv3;i+)cinPERSON;for(j=0;j7;j+)cinPERSONi.scorej;for(i=0;i3;i+)PERSONi.aver=delmaxmin(PERSONi.score);sort(PERSON);coutM比賽成績?nèi)缦翸endl;for(i=0;i3;i+)coutPERSON,t,;for(j=0;j7;j+)coutPERSONi.score|jM,; coutPERSON

9、i . averend I;25個人圍成一個圈,從第1個人開始順序報號(123),凡報號為3和3的 倍數(shù)者退出圈子,找岀最后留在圈子中的人原來的序號。要求:函數(shù)void seek( int *a , int n, int *pn)按上述要求在a數(shù)組,找出最后留在圈 子中的人原來的序號并返回。僅供學習與交潦.如冇侵權請聯(lián)系網(wǎng)站刪除謝謝5精品資料主函數(shù)是:void niain()int n=3;int num;int a25,*p=a;for(int i=0; i25; i+) pi=i+l;seek( a,n,&num);cout最后留在圈子中的人原來的序號是:,num endl;*/#incl

10、ude#define NUM 10#includevoid seek( int*aant mint *pn);void main()int n=3;int num;int aNUM,*p二a;for(int i=0; iNUM; i+) pi二i+1; fdr(i=0;il) for(i=0;iNUM;i+)if(ai=0) continue; if(k+%3=0)ai=0;num;else *pn=i;)for(i=0;iNUM;i+)if(ai !=0)coutsetw(3)ai; coutendl;)11. 編程要求1) 編寫函數(shù)int find (char *a , char *b),

11、函數(shù)被調(diào)用時,a指向的數(shù)組中 已存儲一個字符串,該字符串是一個包含了多個單詞的英語句子。函數(shù) 的功能找出字符數(shù)組a中字符串中最長的單詞并存入b所指向的數(shù)組 中,函數(shù)返回最長單詞在字符串的起迭位置下標。2) 編寫main函數(shù),接受鍵盤輸入的一個英文句子。調(diào)用find函數(shù)找到該 句子中最長的單詞,將最長單詞及其在字符串中的起始位置下標輸出到 屏幕。# include#includeint find(char *a , char *b);void main()char a80,b80;int n;COUt請輸入的一個英文句子:;cin.getline(a,80);coutbnn 起始下標是:Hfin

12、d(a,b)endl;int find(char *a , char *b)char *pl,*p2,*p3;pl=p2=p3=a;int max=0;while(*pl !=0)while(*pl= *) pl+,p2+;while(*pl!= 1 & *pl!=O) pl+;if(pl-p2max)max=pl-p2;p3=p2;p2=pl;)strncpy(b,p3,max);*(b+max)=rO,;return (p3-a);附加題2. 重新排列一維數(shù)組元素的順序,使得左邊的所有元素均為偶數(shù)并按由大到小 的次序存放,右邊的所有元素均為奇數(shù)并按由小到大的次序存放?!緶y試數(shù)據(jù)與運行結(jié)果】

13、數(shù)組原始數(shù)據(jù)為:17 15 10 14 16 17 19 18 13 12輸出結(jié)果:18 16 14 12 10 13 15 17 17 19要求:1) 編寫函數(shù)void resoil(int *x, int n),使得左邊的所有元素均為偶數(shù)并按由 大到小的次序存放,右邊的所有元素均為奇數(shù)并按由小到大的次序存 放。(可根據(jù)編程需要増加函數(shù))2) 編寫main函數(shù),接受鍵盤輸入數(shù)據(jù),調(diào)用resort函數(shù)完成上述功能, 并輸出結(jié)果。# include#includevoid resort(int 水x, int n);void sort(int *ajnt n);void main()int a1

14、0=0;cout請輸入十個數(shù)據(jù):”;for(int i=0;i 10;i+)cinai;COUt數(shù)組原始數(shù)據(jù)為:”;for(i=0;i10;i+) coutsetw(4)ai;resort(aJO);coutHn輸出結(jié)果:n;for(i=0;i 10;i+)coutsetw(4)ai; coutendl;)void resort(int *x, int n)int a10,*i,*j,*pj=a,*px二x;while(pxx+10) *pa+=*px+;sort(aJO);i=xj=x+9;for(pa=a;paa+10;)if(*pa%2=0) *i+=*pa+; else *j=*pa+

15、;void sort(int *ajnt n)int *i,*j,temp;for(i=a;ia+n-l ;i+)for(j=i+1 ;j va+n;j+)if(*i*j)temp=*i,*i=*j,*j=temp; 1 -編寫一個求積分的函數(shù),該函數(shù)的原型如下:float Integral(int a,int b, float (*fun)(float);該函數(shù)返回值為積分結(jié)果,形參a,b分別為積分上下限,fun是被積函數(shù), 要求:1)積分算法:將積分區(qū)域劃分為若干個小區(qū)間,求出所有小區(qū)間中被積函數(shù)下的面積之和即為函數(shù)在積分區(qū)域內(nèi)的積分值;小區(qū)間面積可用梯形近似;2)用積分函數(shù)分別求解y=x

16、2和y=2x+l兩個函數(shù)在0, 1區(qū)域內(nèi)的積分值。僅供學習與交潦.如冇侵權請聯(lián)系網(wǎng)站刪除謝謝11精品資料*/#includefloat fl (float x)return x*x;float f2(float x)return (2*x+l );float Integral(int a, int b, float (*fun)(float);void main()coutn第一個積分值:HIntegral(O,l ,fl)endl;coutH第二個積分值:HIntegraI(OJ,f2)endl;float Integral(int a, int b, float (*fun)(float)

17、float h,y;int i;y=(fun(a)+fun(b)/2;h=(b-a)/l 000.0;for(i= 1 ;i 1000;i+)y+=fun(h*i);return (y*h);2 .編程題(20分)【編程要求】1)編寫函數(shù)int fun(long *x),找出所有滿足以下特性的六位整數(shù):它是一 個完全平方數(shù)(完全平方數(shù)是指該數(shù)是某個整數(shù)的平方);該數(shù)同時也 是回文數(shù)(回文數(shù)是指該數(shù)等于它的反序數(shù))。例如,698896是836 的平方并且698896是回文數(shù),因此698896是滿足所給條件的六位整 數(shù)。將所有滿足上述條件的六位整數(shù)存入X指向的數(shù)組中,函數(shù)返回X 指向的數(shù)組中整數(shù)的

18、個數(shù)。2)編寫main函數(shù),聲明resi山數(shù)組,調(diào)用fun函數(shù)將所有滿足條件的六位 整數(shù)存入result數(shù)組中,將result數(shù)組中的數(shù)據(jù)輸出到屏幕?!緶y試數(shù)據(jù)與運行結(jié)果】運行結(jié)果:698896#include#includeint fun(long *x);void main()long resort10;int n=fun(resort);cout六位整數(shù)中完全平方數(shù)有:endl;for(int i=0;in;i+)coutresortiendl;int fun(long *x)long n,nl,n2,n3=0;long *px二x;for(n2=n=100000;n0)n3=n3*10

19、+n2%10;n2/=10;)if(n3=n) *px+=n;)return px-x;)3 -改錯題【程序功能】對于S數(shù)組中保存的五個字符串,刪除其中不符合下列組成規(guī)則的字符串, 輸出S數(shù)組中剩余的字符串。字符串組成規(guī)則:由字母、數(shù)字、下劃線組成, 首字符非數(shù)字。【測試數(shù)據(jù)與運行結(jié)果】s數(shù)組中五個字符串:a%l, _al2, aaa, $ss, lsss 輸出:_al2, aaa【含有錯誤的源程序】#include #include #define M 20#define N 10 int isident(char sNJnt n)int i,j,k,flag;for(j=0;jn;j+)f

20、lag=0;if(sU0!=*J II -(sU0)=0)flag=l;elsefor(i=l;sji!二、O; i+)if(s|ji!=,_,& !isalpha(sji) & !isdigit(sji) flag=l;if(flag=l)(for(k=0;kn-l ;k+)strcpy(sk,sk+l);n-;j“;return n;void main()char sM=a% 1 ”,“_a 12”,aaa”,”$ss”,” 1 sss”;int i.n=5;僅供學習與交渡.如有侵權請聯(lián)系網(wǎng)站制除謝謝15精品資料n=isident(s,n);coutHThe correct C ident

21、ifiers is :nM;for(i=0; in; i+)coutsiendl;1) 根據(jù)題目要求及程序中語句之間的邏輯關系對程序中的錯誤進行修改。2) 改錯時,可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加少量的變量說明或編譯預處理命令,但不能增加其它語句,也不能刪去整條語句。#include#include#include#define M 20#define N 10int isident(char sN,int n)int ij,k.flag;for(j=0;jn;j+)flag=0;if(sjO!=二 & !isalpha(sj0) )/if(sjO!-_TI -(sjO)=O )

22、 flag=l;elsefor(i=l;sji!-0; i+)if(sji!=,_,& !isalpha(sji)& !isdigit(sji)/#includeflag=l;if(flag=l)for(k=j ;kn-1 ;k+)/for(k=0;kn-1 ;k+)strcpy(sk,sk+l);n-;j-;)return n;void niain()charsMN=a%l,”12”,”aaa”,“$ss,”lsss”; /sMNint i,n=5;n=isident(s,n);coutHThe correct C identifiers is An11;for(i=0; in; i+)co

23、utsiendl;第六周上機題目一、編程題1.編寫函數(shù)int prime_m( int n,int x, long y),在2n范圍內(nèi)查找同時符 合以下條件的整數(shù)m : 2m-l是素數(shù)、2m-l的反序數(shù)是奇數(shù)、2m-l的 十進制表示中包含數(shù)字1。將2n范圍內(nèi)符合上述條件的所有整數(shù)m 依次保存到x指向的數(shù)組中,將與m對應的整數(shù)2ni-l依次保存到y(tǒng) 指向的數(shù)組中。函數(shù)返回x數(shù)組中保存的整數(shù)個數(shù)。2編寫main函數(shù) 接收鍵盤輸入的n值,調(diào)用prime_m函數(shù)找到2n范 圍內(nèi)所有符合給定條件的整數(shù)m及整數(shù)2m-l并將它們分別保存在兩 個一維數(shù)組中.3. 【測試數(shù)據(jù)與運行結(jié)果】測試數(shù)據(jù):n=20輸出結(jié)

24、果-531712717131071#include#includeint prime_m( int njnt x, long y);void main()int nl,n,x10,*px=x;long y10,*py=y;cout測試數(shù)據(jù):n=;cinn;n 1 =prime_m(n,x,y);cout輸出結(jié)果:n;while(n 1 0) cout*px+,t*py+,n,;)int prime_m(int n,int xJong y)int m.p=0,nl,*px=x;long k=2,*py=y;for(m=2 ;m vn ;m+) k*=2;for(int i=2;i=sqrt(k-

25、l);i +)判斷 k 是不是素數(shù)if(k-l)%i=O) break;if(i10) nl/=I0;if(nl%2=0) continue;nl=k-l;/判斷k中有無數(shù)字1while(nl%10)!=l & nl10) nl/=10; if(nl%10!=l) continue;*px+=m,*py+=k-1 ;return px-x;)二、編程題僅供學習與交潦,如冇侵權請聯(lián)系網(wǎng)站刊除啪謝15精品資料接收從鍵盤輸入的若干個字符串,為每一個字符串動態(tài)申請一塊存儲區(qū), 將字符串復制到該存儲區(qū)并將存儲區(qū)的首地址依次保存到指針數(shù)組Hneptr 中,再以字典序輸出所有的字符串(輸入時以回車CR作為字

26、符串之間的分隔 符,以空串作為輸入結(jié)束標記,輸入的字符串總數(shù)不超過10個)。函數(shù)void sort (char *vp , int n)的功能是根據(jù)指針數(shù)組vp前n個元素指向的字符 串,按字典序?qū)χ羔様?shù)組排序。函數(shù)void outline (char *vp , int n)的 功能是輸出指針數(shù)組vp前n個元素指向的字符串。【測試數(shù)據(jù)與運行結(jié)果】輸入:輸出(排序后)NoNoWellPracticeYou WellPracticeYou (空串)ncludeCostream hncludestring hvoid sort (char *vp,int n);void outline(char *

27、vp,int n);void main() char *lineptr10, siL100;int i=0;do cin. getline(si, 100);lineptrLi.=new charstrlen(sl)+l; strcpy(1ineptri+,si);while(strcmp(si, 0);sort (1 ineptr, iT);outline(1 ineptr, iT);void sort (char *vp , int n)int i, j;char *temp;for (i=0;inl;i+) for(j=i+l;j0) temp=vpi, vpi=vpj, vpj二tem

28、p;void outline(char *vp , int n) cout輸出:n;for(int i二0;in;i+)coutvpiendl;附加題:一、 編程題建立一條無序鏈表,并輸出這條鏈表上個節(jié)點的值。設計一個函數(shù),將這 條鏈表構(gòu)成一條新的逆序鏈表,即將鏈表頭當尾,鏈表尾當頭。輸出這條新鏈 表上節(jié)點的值。用以下一組數(shù)據(jù)測試程序的正確性:學號C+成績英語成績389890459080497563508649二、改錯題【程序功能】為了測試學生對英文單詞的掌握程度,以下程序在給出的五個單詞中隨機 抽取一個單詞,用“療替換該單詞中的兩個隨機位置上的字母并顯示替換后的單 詞,再將被測學生輸入的單詞

29、與正確單詞比較,顯示對錯信息。提示:庫函數(shù)srand()初始化隨機數(shù)生成器,庫函數(shù)wnd(卅n隨機產(chǎn)生 0- (n-1)之間的一個整數(shù)并返回,這兩個函數(shù)的原型包含在stdlib.h中。【測試數(shù)據(jù)與運行結(jié)果】程序運行結(jié)果是隨機的,即每次運行結(jié)果可能不同。一次運行結(jié)果如下:顯示:The word is: beaPlease input correct word:輸入:beautiful顯示:Right另一次運行結(jié)果如下:顯示:The word is: s*ude*t , Please input correct word:輸入:studemt顯示:Wrong! The word is : stud

30、ent【含有錯誤的源程序】include include include int funtest(char *cp, int i) int ix=0, iy二0, ik=0;char ca20=0, cb20 = 0;strcpy (ca, cp);ik=strlen(ca);ix=rand( )%ik;iy=rand( )%ik;while (iy=ix) iy=rand( )%ik;caix二*,; caLiyl=,;coutz/The word is:coutM Please input correct word:;gets(cb);if(cb=cpil)return 1;else re

31、turn 0;void mainO僅供學習與交渡如冇侵權請聯(lián)系網(wǎng)站制除謝謝21精品資料 char cs5 20 =/,beautifulz,, student, China: function, include; int i,ik=0;unsigned n;cout”請輸入一個隨機數(shù)的種子”cinn;srand()i=rand( )%5;ik=funtest (cs, i);if(ik)cout/zRight! n;elsecout/zWrong! The word is:%sncs;實驗七、編程題N個人圍成一圈,他們的序號依次為ln,從第一個人開始順序報數(shù)1、2、3 m,報到m者退出圈子,并

32、輸出退出圈子的人的序號。用一個結(jié)點的環(huán)形鏈表模擬圍成一圈的人。假定有10個人圍城一圈,凡報到5者退出圈 子,則退出圈子的人的序號依次為5、10、6、2、9、8、1、4、7,最后留在圈 中的人是3號。是單向環(huán)形鏈表的結(jié)構(gòu),其中head指向第一個人。struct Nodeint x;Node *next;要求:1. 函數(shù)Node * creat (int n)用來創(chuàng)建一個有n個節(jié)點的環(huán)形鏈表,他們的序號依次為ln,函數(shù)返回頭結(jié)點;2. 函數(shù)void del(Node *h , int m)實現(xiàn)從第一個人開始順序報數(shù)1、2、3 m,報到m者退出圈子,并輸出退出圈子的人的序號。接著再順序報數(shù),直到圈子

33、中留下一個人為止。3. 主函數(shù)要求從鍵盤輸入m,n的值,并調(diào)用函數(shù)creat函數(shù)完成建立環(huán)形鏈表,和del函數(shù)依次輸出退出圈子的人的序號,找出圈子中留 下的最后一個人。#includestruct nodeint x;node *next;node *creat(int n)node *pl,*p2,*head=0; cout建立環(huán)形鏈表:An for(int i=l;ix=i;if(head=O)head=pl;p2=pl;jelsep2-next=p 1:p2=p 1;)if(head) p2-next=head:return(head);)void print(const node 水h

34、ead)const node *p;p=head;COUt輸出鏈表上的各結(jié)點:” vvr;for(int i=l;ixt*;p=p-next;)coutrn,;)void del(node *headjnt ni)node *h,*p;int i=l,q=05a=10;p=head;while(a!=l)h 二 p;p=p-next;i+;if(i%5=0)q+;coutvv”第”vvqvv”個退出圈子的是序號為:”vvpoxvv”的人” VVW;h-next=p-next;delete p;p=h-next;i+;a-;)if(a=l)COUtH最后留在圈中的是序號為:”vvpoxvv”的人

35、” VVW;delete p;11void main()int mji;node *head;COUt請輸入游戲的人數(shù):,;cinn;head=creat(n);print(head);coutB序報數(shù)退出隊列的m數(shù)為: cinm;del(headjn);二、編程題用函數(shù)函數(shù)Node * creat (int n)建立兩個有序的同結(jié)構(gòu)的單向鏈表(結(jié)點包 含一個整型數(shù)和一個指向本結(jié)點的類型的指針);用函數(shù)merge(Nodc * hl , Node * h2 )合并這兩個鏈表;用函數(shù)void prin(Node * h)輸出結(jié)果 主函數(shù)如 下。用下列數(shù)據(jù)測試程序的正確性。鏈表1 :5, 9, 2

36、1, 36, 5& 79, 81鏈表2 :3, 4, & 16, 34, 7& 90, 100, 101void niain()list *hl, *h2, *h3;hl=creat();h2= creat();print(hl);print(h2);h3二merge (hl,h2);print(h3);del(hl);del(h2);del(h3);)僅供學習與交渡如冇侵權請聯(lián)系網(wǎng)站制除謝謝25精品資料# includestruct Node)int date;Node *next;Node * creat (int n);Node *merge(Node * hl , Node * h2

37、);Node* insert(Node * h.Node *p); void print(Node *);void deI(Node *h);void niain()Node *hl, *h2, *h3;int n;COUt請輸入第一條鏈表的結(jié)點數(shù):”;cinn;hl=creat(n);COUt請輸入第二條鏈表的結(jié)點數(shù):”;cinn;h2= creat(n);print(hl);print(h2);h3=merge (hl,h2);print(h3);del(hl);del(h2);del(h3);Node * creat (int n)Node *h=0,*pl,*p2;cout請輸入:n”

38、;while(n0)pl=new Node:/建cinp 1 date;/錄if(h=O) h=p2=p 1;elsep2-next=p I;鏈p2=pl; 移p2-next=0;return h;Node *merge(Node * hl , Node * h2 )Node *h3=0,*p 1 ,*p2,*p3; pl=hl,p2=h2;while(pl !=0 & p2!=0) if(p 1 -datedate) h3=insert(h3,pl); pl=pl-next; p3二p2;)else h3=insert(h3,p2); p2=p2-next; p3=pl;1while(p3!

39、=0 ) h3=insert(h3,p3); p3=p3-next;return h3;Node* insert(Node *h,Node *p)Node *pl=h;if(h=O)h=new Node ;h-date=p-date; h-next=0;else while(p 1 -next!=0) pl=pl-next; pl-next=new Node;pl=pl-next;p l-date=p-date; pl-next=0;)return h;)void print(Node *h)Node *p=h;while(p!=0)coutp-datep=p-next;)coutendl;v

40、oid del(Node *h)Node *p=h;while(h!=0)p=h;h=h-next; delete p;第八周上機題目1.編寫一個類CNums,實現(xiàn)如下功能:某數(shù)列的第一項是0,第二項是1,從第三項起,凡奇數(shù)項是其前兩項 之和,偶數(shù)項是其前兩項之差(前項減后項),生成數(shù)列的100項存入數(shù) 組,統(tǒng)計共有多少個-1,0,1;1) 類定義的要求如下:私有數(shù)據(jù)成員 float num100公有函數(shù)成員 generate()函數(shù)生成的100項數(shù)列值存入數(shù)組(類的數(shù)據(jù)成 員); Show()函數(shù)顯示出所有項數(shù)據(jù),以及-1,0,1三個數(shù)值在數(shù)列中 的個數(shù);2) 用以下主函數(shù)進行測試:void

41、 main()CNums num;num.generate(); num.show();構(gòu)成完整程序,即完成該類成員函數(shù)的定義和測試程序的設訃。#includeclass CNumsprivate:float num100;public:void generate();void show();void CNums:generate() num0=0,num 1 =1; for(int i=2;i100;i+)if(i%2=0) numi=numi-2+numi-1 ;else numi=numi-2-numi-l;void CNums:show()int n l=0,n2=0,ri3=0;fo

42、r(int i=0;i100;i+)coiitvvniimivT;if(numi=-l ) nl+;else if(numi=0) n2+;else n3+;coutn-1,0,1三個數(shù)值在數(shù)列中的個數(shù)分別為:”n 1 ,n2,n3endl;void niain()CNums d;d.generate();d.show();)2.建立一個student類來實現(xiàn)如下功能:僅供學習與交渡.如有侵權請聯(lián)系網(wǎng)站制除謝謝27精品資料查找考試成績在80分以上的學生及其編號,并統(tǒng)計這些學生的總?cè)?數(shù)。考試成績在調(diào)用input函數(shù)時輸入,調(diào)試程序可用以下10個成績數(shù)據(jù) 輸入:79 85 92 64 73 91

43、 88 81 66 831) 類定義的要求如下:私有數(shù)據(jù)成員intn存儲學生的編號,學生編號最小為1float *stu儲存考試成績,數(shù)組要求動態(tài)生成int count統(tǒng)計符合條件的總?cè)藬?shù)2) 公有函數(shù)成員input(int n)函數(shù)輸入學生成績,并統(tǒng)計滿足條件的人數(shù) 存入count變量;void stat()查找符合條件的編號、成績,并調(diào)用成員函數(shù) Show輸出對應的編號、成績void Show()輸出符合條件的編號、成績void print()輸出符合條件的總?cè)藬?shù)構(gòu)成完整程序,即完成該類成員函數(shù)的定義和測試程序的設計。# includeclass student)int n;float *

44、stu;int count;public:void input(int m=10);void stat(void);void Show(void) coutn+1 tstunendl;void print(void)cout滿足條件的總?cè)藬?shù)為:,ffcount,n;;void student:input(int m)count=0;n=m;COUt請輸入學生的成績:”;stu=new floatn;for(int i=0;i=80) count+;void student:stat()int i=n;coutH超過80分的人有:nn;for(n=0;n=80) Show();void main

45、(void)int n;student student 1;COUt請輸入班級的學生數(shù):;cinn;student l.input(n);student l.stat();student l.print();附加題:3N個人圍成一圈,他們的序號依次為ln,從第一個人開始順序報數(shù)1、2、3 m,報到m者退出圈子,并輸出退出圈子的人的序號。接著再順序報數(shù),直到圈子中留下一個人為止。用一個結(jié)點的環(huán)形鏈 表模擬圍成一圈的人。假定有10個人圍城一圈,凡報到5者退出圈 子,則退出圈子的人的序號依次為5、10、6、2、9、8、1、4、7,最 后留在圈中的人是3號。是單向環(huán)形鏈表的結(jié)構(gòu),其中head指向第一

46、個人。struct Nodeint x;Node *next;class line)int m;Node *head;publick:void creat( int n ); 創(chuàng)建環(huán)行鏈void DelNode(); 刪除結(jié)點 del();構(gòu)成完整程序,即完成該類成員函數(shù)的定義和測試程序的設計。#includestruct Node)int x;Node *next;1;class line)private:int m;Node *head;public:void creat(int njnt m);void DelNode();void line:creat(int njnt k)head=

47、O;m=k;Node *pl,*p2;int i=l;while(ix=i+;if(head=O) head=p2=p 1;elsep2-next=p 1;p2=p2-next;)p2-next=head;)void Iine:DelNode()Node *pl,*p2;int n=2;for(p 1 =head,p2=head-next; pl !=p2; p 1 =p2,p2=p2-next,n+) if(n%m=O)p l-next=p2-next; coutp2-x,; delete p2;p2=pl;1)coutHn圈子中留下的最后一個人是:Hp2-x,n,; delete p2;void main()line LI;int n,m;僅供學習與交渡如冇侵權請

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論