![c語言程序設計習題答案_第1頁](http://file4.renrendoc.com/view/8e9941d2c51f344f3a62fd806f3516e9/8e9941d2c51f344f3a62fd806f3516e91.gif)
![c語言程序設計習題答案_第2頁](http://file4.renrendoc.com/view/8e9941d2c51f344f3a62fd806f3516e9/8e9941d2c51f344f3a62fd806f3516e92.gif)
![c語言程序設計習題答案_第3頁](http://file4.renrendoc.com/view/8e9941d2c51f344f3a62fd806f3516e9/8e9941d2c51f344f3a62fd806f3516e93.gif)
![c語言程序設計習題答案_第4頁](http://file4.renrendoc.com/view/8e9941d2c51f344f3a62fd806f3516e9/8e9941d2c51f344f3a62fd806f3516e94.gif)
![c語言程序設計習題答案_第5頁](http://file4.renrendoc.com/view/8e9941d2c51f344f3a62fd806f3516e9/8e9941d2c51f344f3a62fd806f3516e95.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
50866710088060508077080705noscore1score296score4score3P157_10假設有3個學生的全局信息,存放在二維數(shù)組s中,形成學生成績表。S的每一行存儲一位學生的有關信息,其中每行的第一列存放學生的學號。#defineN3ints[N][5]={{5,70,80,96,70},{7,80,50,60,80},{8,100,67,86,50}};從指定的成績單中找指定學號的成績表。函數(shù)返回找到的那位學生的成績表(可以不包括學號)的指針。在主調(diào)函數(shù)中輸出相關的數(shù)據(jù).分析:程序的功能及操作如下:根據(jù)題意,可以設計函數(shù)int*score(int(*p)[5],intm,intno)用于尋找指定學號的學生,函數(shù)score比較每一行中的第一個元素(學號),如果與輸入的學號匹配,返回該學生成績表的指針,否則返回空指針。函數(shù)score參數(shù)介紹:形參p是指向數(shù)組的指針,它所指數(shù)組有5個int型元素,形參m是學生數(shù);no是待找學生的學號。主函數(shù)按以下格式調(diào)用:p=score(s,N,num);其中,實參s為成績單首行數(shù)組的指針,N為成績單行數(shù),即學生人數(shù),num為某學生的學號,p為int型的指針,接收函數(shù)的返回值。int*score(int(*p)[5],intm,intno){int(*ap)[5];//ap與p同類型指針
for(ap=p;ap<p+m;ap++)if(**ap==no)return*ap+1;//返回找到的那位學生的成績表的指針。
returnNULL;//找不到,返回空地址}voidmain(){int*p,i,num;
while(1){ printf("請輸入要查找成績的學生的學號:\n"); scanf("%d",&num);//輸入學號
p=score(s,N,num); if(p==NULL){printf("學號%d不存在\n",num);return;} for(i=0;i<5;i++)
printf("%d\t",p[i]);//找到,輸出該同學的信息
printf("\n");} }2.已知某個學生表,輸出學生學號和成績。根據(jù)題意,可以設計函數(shù)search(int(*p)[5],intm,intno)
用于尋找指定學號的學生,并輸出該學生的各門課成績,其中,形參p是指向數(shù)組的指針,它所指數(shù)組有5個int型元素,形參m是學生數(shù);no是待找學生的學號。主函數(shù)按以下格式調(diào)用:search(s,N,n);
其中s為成績單首行數(shù)組的指針,N為成績單行數(shù),即學生人數(shù),n為某學生的學號。調(diào)用函數(shù)search,比較每一行中的第一個元素(學號),如果與輸入的學號匹配,則輸出其成績,否則打印出錯信息。2a.方案A:采用數(shù)組指針設計函數(shù)search(習題要求)voidsearch(int(*p)[5],intm,intno)/*數(shù)組指針的長度5不能省略*/{int(*ap)[5],/*ap與p為同類型指針*/*pp;//pp用于指向一位學生的信息數(shù)組中成分
for(ap=p;ap<p+m;ap++)//ap為行地址
if(**ap==no)//**ap為行中第0個元素的值(學號){printf("學號:%d\t成績:",no);for(pp=*ap+1;pp<*ap+5;pp++)//*ap+1等價于&ap[i][1]printf("%4d\t",*pp);/*用pp遍歷行中元素ap[i][j]*/printf("\n");return;}printf("學號%d不存在\n",no);}voidmain(){ int*p,i; search(s,N,7); search(s,N,5); search(s,N,2); search(s,N,8);}2b.方案B:采用二維可調(diào)數(shù)組設計函數(shù)searchvoidsearch(intp[][5],intm,intno){inti,j;for(i=0;i<m;i++)if(p[i][0]==no){printf("學號:%d\t成績:",no); for(j=1;j<5;j++) printf("%4d\t",p[i][j]); printf("\n");return; }printf("學號%d不存在\n",no);}
/*p157_13函數(shù)指針.cpp函數(shù)指針變量應用示例 */#include<stdio.h>intadd(intx,inty)/*定義實現(xiàn)加法的函數(shù)add*/{returnx+y;}intsub(intx,inty)/*定義實現(xiàn)減法的函數(shù)sub*/{returnx-y;}intmul(intx,inty)/*定義實現(xiàn)乘法的函數(shù)mul*/{returnx*y;}intdiv(intx,inty)/*定義實現(xiàn)整除的函數(shù)div*/{returnx/y;}intexecute(intx,inty,int(*p)(int,int)){ /*函數(shù)指針p作為execute函數(shù)的參數(shù)*/ intn; n=(*p)(x,y);/*通過函數(shù)指針變量p調(diào)用函數(shù)*/returnn; }intmenu(void)/*顯示菜單*/{intc;while(1){printf("1:計算兩個整數(shù)的和.\n"); printf("2:計算兩個整數(shù)的差.\n"); printf("3:計算兩個整數(shù)的積.\n"); printf("4:計算兩個整數(shù)的商.\n"); printf("0:或任意字符:quit!\n"); printf("Enteryourselect.\n"); if(scanf("%d",&c)!=1)break;/*輸入非法字符,退出*/ if(c>=0&&c<5)returnc; printf("Error!tryagain.\n");}}voidmain(){ inta,b,c,result;int(*fpt[])(int,int)={add,sub,mul,div};//函數(shù)指針數(shù)組
charop[4]={'+','-','*','/'};printf("歡迎進入小學生數(shù)學運算系統(tǒng),版本號v0.01\n");while(1){c=menu();if(c==0)break;/*結(jié)束程序執(zhí)行*/ printf("pleaseinputaandb\n"); scanf("%d%d",&a,&b); /*switch(c) {case1:result=execute(a,b,add);break; case2:result=execute(a,b,sub);break; case3:result=execute(a,b,mul);break; case4:result=execute(a,b,div);break; }*/ result=execute(a,b,fpt[c-1]);//用函數(shù)的指針數(shù)組
printf("計算的結(jié)果為:%d%c%d=%d\n",a,op[c-1],b,result);}}//p157_16#include<stdio.h>#include<time.h>#include<stdlib.h>#defineN10intx[N];voidinput(int*p[],intn){inti; longnow; srand(time(&now)); for(i=0;i<n;i++) { x[i]=rand()/100;//輸入<100的隨機數(shù)
p[i]=&x[i];//賦數(shù)組x的地址到指針數(shù)組p }}voidoutput(int*p[],intn){inti;printf("輸出輸入序列\(zhòng)n");for(i=0;i<n;i++)printf("%d\t",*p[i]);printf("\n\n");}voidsort(int*p[],intn){inti,j,t;for(i=0;i<N-1;i++)for(j=N-1;j>i;j--) if(*p[j]<*p[j-1]){t=*p[j];*p[j]=*p[j-1];*p[j-1]=t;}//交換}voidmain(){int*p[N],i;input(p,N);output(p,N);sort(p,N);printf("輸出排好的序列\(zhòng)n");for(i=0;i<N;i++) printf("%d\t",*p[i]);pri
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國速溶非乳制泡沫奶精行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 高效增白洗衣粉行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 小手鋸項目可行性研究報告
- 年產(chǎn)50臺(套)專用機床可行性研究報告建議書
- 20萬噸飲料生產(chǎn)項目可行性研究報告申請建議書
- 廢舊鋰電池可行性研究報告
- 2025年高壓電器鑼絲項目可行性研究報告
- 耐久保溫料項目可行性研究報告
- 2025年度國際船舶租賃合同規(guī)范模板
- 2025年度國際集裝箱貨物運輸合同范本更新版
- 長江委水文局2025年校園招聘17人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學院公開招聘15人歷年高頻重點提升(共500題)附帶答案詳解
- 廣東省廣州市番禺區(qū)2023-2024學年七年級上學期期末數(shù)學試題
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機械行業(yè)市場全景調(diào)查及投資前景預測報告
- IF鋼物理冶金原理與關鍵工藝技術1
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時用電安全技術標準
- 煙花爆竹重大危險源辨識AQ 4131-2023知識培訓
- 銷售提成對賭協(xié)議書范本 3篇
- EPC項目階段劃分及工作結(jié)構(gòu)分解方案
- 《跨學科實踐活動4 基于特定需求設計和制作簡易供氧器》教學設計
- 2024-2030年汽車啟停電池市場運行態(tài)勢分析及競爭格局展望報告
評論
0/150
提交評論