標準C語言程序設(shè)計函數(shù)上機報告201505學(xué)習資料_第1頁
標準C語言程序設(shè)計函數(shù)上機報告201505學(xué)習資料_第2頁
標準C語言程序設(shè)計函數(shù)上機報告201505學(xué)習資料_第3頁
標準C語言程序設(shè)計函數(shù)上機報告201505學(xué)習資料_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

《標準C語言程序設(shè)計》上機報告實驗八函數(shù)、指針和結(jié)構(gòu)體程序設(shè)計專業(yè):通信工程班級:通信1401學(xué)號:姓名:完成日期:1實驗?zāi)康睦斫夂瘮?shù)的定義、函數(shù)原型、函數(shù)調(diào)用;深入理解函數(shù)設(shè)計,掌握函數(shù)參數(shù)的傳遞(傳值、傳指針和傳引用),掌握對主調(diào)函數(shù)中的一維數(shù)組和二維數(shù)組元素取值進行修改的函數(shù)設(shè)計方法,掌握返回多個邏輯值的函數(shù)設(shè)計方法(學(xué)會傳值和傳引用的函數(shù)設(shè)計);理解指針函數(shù)和函數(shù)指針;掌握帶參數(shù)的main函數(shù)設(shè)計;掌握對主調(diào)函數(shù)中結(jié)構(gòu)體數(shù)組修改的函數(shù)設(shè)計;實驗內(nèi)容及要求(鼓勵一題多解)Main函數(shù)輸入2整數(shù)a和b,設(shè)計一個函數(shù)voidcalculate2(intx,inty,int*psum,int*psub)計算a和b的平方和與平方差,main函數(shù)調(diào)用calculate函數(shù)并輸出2個計算結(jié)果。(【拓展】:通過傳引用方式設(shè)計函數(shù)voidcalculate2(int&refsum,int&refsub)計算a和b的平方和與平方差)設(shè)計帶參數(shù)的main函數(shù)(原型:intmain(intargc,char*argv[]);)對訓(xùn)練1進行修改,編譯后生成帶參數(shù)的命令行程序myconsole.exe。在cmd.exe界面中運行myconsole63回車,運行中無需再輸入a、b值,直接顯示結(jié)果:6*6+3*3=456*6-3*3=27在訓(xùn)練1的基礎(chǔ)上,新增函數(shù)voidcalculate3(intx,inty,int*psum,int*psub)計算a和b的立方和與立方差,在main函數(shù)中通過人機交互詢問用戶需要執(zhí)行的種類,并顯示結(jié)果。intmain(intargc,char*argv[]){ intadd2,add3,sub2,sub3;//平方和、立方和、平方差、立方差。。。。。。。。。 printf(“輸入Y/N執(zhí)行平方運算/立方運算”); //用戶輸入YorN給字符變量type if(type==’Y’) {mycalculate(6,3,&add2,&sub2,calculate2);//輸出結(jié)果 } else { mycalculate(6,3,&add3,&sub3,calculate3); //輸出結(jié)果 } 。。。。。。。。。} 針對上面的main函數(shù)框架,設(shè)計帶函數(shù)指針參數(shù)的mycalculate函數(shù)。輸入每個學(xué)生的姓名和線性代數(shù)、通信原理和C語言課程成績,統(tǒng)計每人的平均值,并按平均值降序排列,輸出排列后的名次、姓名、課程名(成績)和平均值。(注:平均值相同者按姓名的字母表順序排列)(要求用結(jié)構(gòu)體數(shù)據(jù)類型Student實現(xiàn),該類型包含姓名charname[20]、3門課成績doublescore[3]和平均分doubleave構(gòu)成,結(jié)構(gòu)體數(shù)組stu在main中定義)(統(tǒng)計平均值A(chǔ)verage、排序BubbleSort用子函數(shù)實現(xiàn))編寫函數(shù)voidcount_substr(char*str,char*sub_str,。。。。。。),統(tǒng)計字符串str中子串sub_str的出現(xiàn)次數(shù),如在字符串“10101000101”中出現(xiàn)子串“101”的個數(shù)為2;主函數(shù)完成字符串和子串的輸入,調(diào)用count_substr函數(shù)得到子串出現(xiàn)的次數(shù),在主函數(shù)中輸出次數(shù)值。要求:count_substr函數(shù)輸出接口類型void不得修改為其他數(shù)據(jù)類型,請在省略號處填寫其他需要的參數(shù)。(選做)編程完成m×n矩陣的轉(zhuǎn)置,主函數(shù)設(shè)計如下:voidmain(void){ intm,n,*pMatrix; puts(“請指定矩陣行列數(shù):”); printf(“行數(shù)m=”); scanf(“%d”,&m); printf(“列數(shù)n=”); scanf(“%d”,&n); puts(“創(chuàng)建矩陣空間”); MatrixAllocate(______); puts(“給矩陣錄入數(shù)據(jù)”); MatrixInput(_______); puts(“開始矩陣轉(zhuǎn)置操作”); MatrixTranspose(_______); puts(“輸出轉(zhuǎn)置后的矩陣:”); MatrixPrint(________); puts(“釋放矩陣空間,并結(jié)束應(yīng)用程序!”); ReleaseMatrix(_____________);}請(1)設(shè)計void類型的函數(shù)MatrixAllocate和ReleaseMatrix分別實現(xiàn)用new和delete[]來分配和釋放用來保存矩陣數(shù)據(jù)的堆區(qū)內(nèi)存。要求:分配成功的堆內(nèi)存首地址必須保存在主函數(shù)的pMatrix指針變量中。(2)設(shè)計void類型的MatrixTranspose函數(shù)完成pMatrix指針所指的矩陣轉(zhuǎn)置操作。(3)設(shè)計void類型的MatrixInput和MatrixPrint函數(shù)分別完成對pMatrix指針所指堆區(qū)的矩陣數(shù)據(jù)錄入和輸出操作。注:new和delete運算符的使用方法如下:在堆中創(chuàng)建一個單一數(shù)據(jù)對象(如整型對象),并賦值9。int*pInt;pInt=newint;*pInt=9;在堆中創(chuàng)建一個單一數(shù)據(jù)對象(如整型對象)并初始化9。int*pInt;pInt=newint(9);在堆中創(chuàng)建一個有n個元素的數(shù)組(如整型數(shù)組)int*pInt;pInt=newint[n];//注:創(chuàng)建堆數(shù)組時不能初始化,即newint[n](0)是錯誤的。訪問時可以使用pInt[i]或*(pInt+i)釋放堆中創(chuàng)建的單一數(shù)據(jù)對象內(nèi)存deletepInt;釋放堆中創(chuàng)建的數(shù)組內(nèi)存delete[]pInt;其中:d)e)中的pInt取值必須與a)b)new運算結(jié)果相同,換句話說,c)中不能使用*pInt++方式來訪問目標數(shù)組元素,如果要用*pInt++方法,必須對pInt進行備份,備份值用于delete語句,以便保證正確回收目標堆區(qū)的內(nèi)存。同free一樣,釋放了堆內(nèi)存后,指針變量pInt自己的空間沒有釋放,只是其指向的堆區(qū)內(nèi)存被釋放,pInt等指針變量的值不會因為其所指的堆

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論