




已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì) 實(shí)驗(yàn)報(bào)告專(zhuān)業(yè) 計(jì)算機(jī) 班級(jí) 計(jì)算機(jī)卓工 日期 2012年12月31日 成績(jī) 實(shí)驗(yàn)組別 第 8次實(shí)驗(yàn); 指導(dǎo)教師 李開(kāi)學(xué)生姓名 徐欽振 學(xué)號(hào) U201215120 實(shí)驗(yàn)名稱(chēng) 指針實(shí)驗(yàn)1、 實(shí)驗(yàn)?zāi)康?1) 熟練掌握指針的使用,賦值與使用。(2) 掌握用指針引用數(shù)組的元素,熟練指向數(shù)組的指針的使用。(3) 熟練掌握字符數(shù)組與字符串的使用。(4) 掌握指針函數(shù)與函數(shù)指針的使用。(5) 掌握帶有參數(shù)的main函數(shù)的使用。2、 實(shí)驗(yàn)內(nèi)容及要求。1. 源程序改錯(cuò) 下面的源程序中是否存在問(wèn)題?如果存在,原因是什么?如果存在錯(cuò)誤,請(qǐng)改正并輸出正確的結(jié)果。源程序:#includeint main(void) float *p; scanf(%d,p); printf(%fn,*p); return 0;2. 源程序修改,完善與替換。(1) 下面的源程序的功能是,通過(guò)函數(shù)指針和菜單選擇來(lái)調(diào)節(jié)用字符串拷貝函數(shù)或字符串連接函數(shù)。請(qǐng)?jiān)谠闯绦蛑械南聞澗€處填寫(xiě)正確的表達(dá)式,完善程序。源程序:#include#includeint main(void) _ char a80,b80,c160,*result=c; int choice,i; do printf(tt1 copy string.n); printf(tt2 connect string.n); printf(tt3 exit.n); printf(tt2 input a number(1-3)please!n); scanf(%d,&choice); while(choice5); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; getchar(); printf(input the first string please!n); i=0; _ printf(input the second string please!n); i=0; _ result=_(a,b); printf(The result is %sn,result); down: ; return 0;3. 跟蹤調(diào)試源程序請(qǐng)按下面的要求對(duì)所給的源程序進(jìn)行操作,并回答問(wèn)題和排除錯(cuò)誤。(1) 按照單步執(zhí)行源程序,進(jìn)入strcpy時(shí),watches窗口中的s為何值?返回main函數(shù)時(shí),s為何值?(2) 排除源程序的錯(cuò)誤,并輸出正確的答案。源程序:#includechar *strcpy(char *,char *);int main() char a20,b60=There is a boat in the lake.; printf(%sn,strcpy(a,b); return 0;char *strcpy(char *s,char *t) while(*s+=*t+); return(s);4. 程序設(shè)計(jì)編寫(xiě)并上機(jī)調(diào)試運(yùn)行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1) 已知一個(gè)長(zhǎng)整型變量占4個(gè)字節(jié),其中每個(gè)字節(jié)又分為高四位和低四位。是編寫(xiě)一個(gè)程序,從該整型的高字節(jié)開(kāi)始,一次取出每個(gè)字節(jié)的高四位為低四位,并以數(shù)字字符的形式進(jìn)行顯示。(2) 利用大小為n的指針數(shù)組指向用gets函數(shù)輸入的n行,每行不超過(guò)80個(gè)字符。是編寫(xiě)一個(gè)函數(shù),他的每一行中連續(xù)的多個(gè)空格字符壓縮為一個(gè)空格字符。在調(diào)用函數(shù)時(shí)輸入壓縮后的各行,空行不予輸出。(3) 編寫(xiě)一個(gè)程序,輸入n個(gè)數(shù),排列后輸出。5. 選做題編寫(xiě)并上機(jī)調(diào)試運(yùn)行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1)設(shè)有N位整數(shù)和M位小數(shù)的兩個(gè)數(shù)據(jù)a,b。編寫(xiě)計(jì)算a+b并輸出結(jié)果。(2) 編寫(xiě)一個(gè)使用復(fù)雜申明的程序。(3) 指向main函數(shù)的參數(shù)選擇“project/set programsarguments.”菜單命令,即可打開(kāi)圖2.12所示的對(duì)話框,在文本框中輸入main函數(shù)的參數(shù)。注意只輸入命令行中文件名后的參數(shù),文件名不輸入。 (圖2.12 輸入main函數(shù)的參數(shù))(3) 實(shí)驗(yàn)步驟以及結(jié)果1. 源程序改錯(cuò):存在錯(cuò)誤,造成了空指針,并且scanf函數(shù)的格式不對(duì)應(yīng)。正確的源程序應(yīng)為:#includeint main(void) float a,*p; p=&a; scanf(%f,p); printf(%fn,*p); return 0;2. 源程序修改,完善與替換。正確的源程序?yàn)椋?include#includeint main(void) char * (*p)(char *,char *); char a80,b80,c160,*pa=a,*pb=b,*result=c; int choice,i; do printf(tt1 copy string.n); printf(tt2 connect string.n); printf(tt3 exit.n); printf(ttinput a number(1-3)please!n); scanf(%d,&choice); while(choice=4); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; getchar(); printf(input the first string please!n); i=0; gets(pa); printf(input the second string please!n); i=0; gets(pb); result=(*p)(a,b); printf(The result is: %sn,result); down: ; return 0;運(yùn)行的結(jié)果為:3. 跟蹤調(diào)試源程序進(jìn)入strcpy時(shí),s的值為:0x28fefc返回main函數(shù)時(shí),s的值為:0x28fedd修改之后的正確的源程序?yàn)椋?includechar *strcpy(char *,char *);int main() char a20,b60=There is a boat in the lake.; printf(%sn,strcpy(a,b); return 0;char *strcpy(char *s,char *t) char *p=s; while(*s+=*t+); return(p);4. 程序設(shè)計(jì)(1) 源代碼為:#includeint main(void) long x=0x1234ABCD,k; char *p=(char *)&x; char uphalf,lowhalf; for(k=0;k4;k+) lowhalf=(*(p+3)&0x0f; if(lowhalf4)&0x0f; if(uphalf10) uphalf|=0; else uphalf=(uphalf-10)+A; p-; printf(%ct%cn,uphalf,lowhalf); return 0;運(yùn)行結(jié)果為:(2) 源程序?yàn)椋?include#define N 3void getid(char *);int main() char aN80,*pN; int i; printf(請(qǐng)輸入n行字符n); for(i=0;iN;i+) gets(ai); pi=ai; printf(輸出的結(jié)果是:n); for(i=0;iN;i+) getid(pi); printf(n); return 0;void getid(char *ps) int b=0; putchar(*ps); while(*ps+) if(*ps= ) if(b=0) b=1; putchar(*ps); if(*ps)!= ) b=0; putchar(*ps); 運(yùn)行的結(jié)果為:程序(3):源代碼為:#include#include#includevoid sort1(int *,int );void sort2(int *,int );int main(int argc,char *argv) void (*p1)(int *,int n); void (*p2)(int *,int n); int aargc-2,bargc-1,i; p1=sort1; p2=sort2; if(argc1&strcmp(argv1,-d)=0) for(i=0;iargc-2;i+) ai=atoi(argvi+2); p1(a,argc); for(i=0;iargc-2;i+) printf(%dn,ai); else for(i=0;iargc-1;i+) bi=atoi(argvi+1); p2(b,argc); for(i=0;iargc-1;i+) printf(%dn,bi); return 0;void sort1(int a,int argc) int j,k; for(j=0;jargc-2-1;j+) for(k=0;kargc-2-j-1;k+) int t; if(akak+1) t=ak,ak=ak+1,ak+1=t; void sort2(int a,int argc) int j,k; for(j=0;jargc-1-1;j+) for(k=0;kak+1) t=ak,ak=ak+1,ak+1=t; 運(yùn)行的結(jié)果為:#include#define M 2#define N 5void averageput(float *);/*計(jì)算每個(gè)學(xué)生各門(mén)課程的平均成績(jī)*/float *averageall(float *);/*計(jì)算全班每門(mén)課程的平均成績(jī)*/void below(float *,float *);int main() char aM10,(*pa)10=a; int i,j; printf(請(qǐng)輸入各個(gè)課程的名字:n); for(j=0;jM;j+) scanf(%s,*pa+j); float bNM; float *pb1=&b00; float *pd; printf(請(qǐng)輸入各個(gè)學(xué)生的各門(mén)課程的成績(jī):n); for(i=0;iN;i+) for(j=0;jM;j+) scanf(%f,pb1+M*i+j); averageput(pb1); printf(nn); pd=averageall(pb1); below(pb1,pd); return 0;void averageput(float *p) float cN,*pc=c,t=0,*pp=p; int i,j; for(i=0;iN;i+) for(j=0;jM;j+) t+=*(pp+M*i+j); *(pc+i)=t/M; printf(該同學(xué)的平均成績(jī)?yōu)?%.1fn,*(pc+i); t=0; float *averageall(float *p) float cM,*pc=c,*pc2=c,t=0,*pp=p; int i,j; for(i=0;iM;i+) for(j=0;jN;j+) t+=*(pp+N*i+j); *(pc+i)=t/N; printf(該課程的平均成績(jī)?yōu)?%.1fn,*(pc+i); t=0; return pc2;void below(float *p,float *pd) int i,j,sM,mM,nM,*ps=s,*pm=m,*pn=n; float *pp=p; for(i=0;iM;i+) *(ps
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年鞋靴行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年青梅酒行業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資研究報(bào)告
- 2025年鹽液過(guò)濾裝置行業(yè)深度研究報(bào)告
- 2025至2030年中國(guó)雞胸行業(yè)投資前景及策略咨詢報(bào)告
- 環(huán)保設(shè)備供應(yīng)及安裝調(diào)試服務(wù)合同
- 海關(guān)事務(wù)擔(dān)保合同
- 軟件質(zhì)量評(píng)估與認(rèn)證服務(wù)合同
- 2025年兒科主任的述職報(bào)告
- 2025年中國(guó)竹簡(jiǎn)行業(yè)分析及投資決策研究報(bào)告
- 2025年全棉縐繡花項(xiàng)目投資可行性研究分析報(bào)告
- GB/T 39862-2021高熱導(dǎo)率陶瓷導(dǎo)熱系數(shù)的檢測(cè)
- GB/T 33289-2016館藏磚石文物保護(hù)修復(fù)記錄規(guī)范
- GB/T 2506-2005船用搭焊鋼法蘭
- GB/T 15256-2014硫化橡膠或熱塑性橡膠低溫脆性的測(cè)定(多試樣法)
- 小學(xué)三年級(jí)下冊(cè)道德與法治課件-10.愛(ài)心的傳遞者-部編版(25張)課件
- GB/T 1095-2003平鍵鍵槽的剖面尺寸
- 嬰幼兒食品領(lǐng)域:貝因美企業(yè)組織結(jié)構(gòu)及部門(mén)職責(zé)
- 《光的直線傳播》教學(xué)設(shè)計(jì) 省賽一等獎(jiǎng)
- 人工智能的誕生簡(jiǎn)述課件
- 子宮破裂的護(hù)理查房
- 出貨檢驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論