




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計 實驗報告專業(yè) 計算機(jī) 班級 計算機(jī)卓工 日期 2012年12月31日 成績 實驗組別 第 8次實驗; 指導(dǎo)教師 李開學(xué)生姓名 徐欽振 學(xué)號 U201215120 實驗名稱 指針實驗1、 實驗?zāi)康?1) 熟練掌握指針的使用,賦值與使用。(2) 掌握用指針引用數(shù)組的元素,熟練指向數(shù)組的指針的使用。(3) 熟練掌握字符數(shù)組與字符串的使用。(4) 掌握指針函數(shù)與函數(shù)指針的使用。(5) 掌握帶有參數(shù)的main函數(shù)的使用。2、 實驗內(nèi)容及要求。1. 源程序改錯 下面的源程序中是否存在問題?如果存在,原因是什么?如果存在錯誤,請改正并輸出正確的結(jié)果。源程序:#includeint main(void) float *p; scanf(%d,p); printf(%fn,*p); return 0;2. 源程序修改,完善與替換。(1) 下面的源程序的功能是,通過函數(shù)指針和菜單選擇來調(diào)節(jié)用字符串拷貝函數(shù)或字符串連接函數(shù)。請在源程序中的下劃線處填寫正確的表達(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)試源程序請按下面的要求對所給的源程序進(jìn)行操作,并回答問題和排除錯誤。(1) 按照單步執(zhí)行源程序,進(jìn)入strcpy時,watches窗口中的s為何值?返回main函數(shù)時,s為何值?(2) 排除源程序的錯誤,并輸出正確的答案。源程序:#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ī)調(diào)試運(yùn)行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1) 已知一個長整型變量占4個字節(jié),其中每個字節(jié)又分為高四位和低四位。是編寫一個程序,從該整型的高字節(jié)開始,一次取出每個字節(jié)的高四位為低四位,并以數(shù)字字符的形式進(jìn)行顯示。(2) 利用大小為n的指針數(shù)組指向用gets函數(shù)輸入的n行,每行不超過80個字符。是編寫一個函數(shù),他的每一行中連續(xù)的多個空格字符壓縮為一個空格字符。在調(diào)用函數(shù)時輸入壓縮后的各行,空行不予輸出。(3) 編寫一個程序,輸入n個數(shù),排列后輸出。5. 選做題編寫并上機(jī)調(diào)試運(yùn)行能夠?qū)崿F(xiàn)以下功能的程序或者函數(shù)。(1)設(shè)有N位整數(shù)和M位小數(shù)的兩個數(shù)據(jù)a,b。編寫計算a+b并輸出結(jié)果。(2) 編寫一個使用復(fù)雜申明的程序。(3) 指向main函數(shù)的參數(shù)選擇“project/set programsarguments.”菜單命令,即可打開圖2.12所示的對話框,在文本框中輸入main函數(shù)的參數(shù)。注意只輸入命令行中文件名后的參數(shù),文件名不輸入。 (圖2.12 輸入main函數(shù)的參數(shù))(3) 實驗步驟以及結(jié)果1. 源程序改錯:存在錯誤,造成了空指針,并且scanf函數(shù)的格式不對應(yīng)。正確的源程序應(yīng)為:#includeint main(void) float a,*p; p=&a; scanf(%f,p); printf(%fn,*p); return 0;2. 源程序修改,完善與替換。正確的源程序為:#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時,s的值為:0x28fefc返回main函數(shù)時,s的值為:0x28fedd修改之后的正確的源程序為:#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è)計(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) 源程序為:#include#define N 3void getid(char *);int main() char aN80,*pN; int i; printf(請輸入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 *);/*計算每個學(xué)生各門課程的平均成績*/float *averageall(float *);/*計算全班每門課程的平均成績*/void below(float *,float *);int main() char aM10,(*pa)10=a; int i,j; printf(請輸入各個課程的名字:n); for(j=0;jM;j+) scanf(%s,*pa+j); float bNM; float *pb1=&b00; float *pd; printf(請輸入各個學(xué)生的各門課程的成績: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é)的平均成績?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(該課程的平均成績?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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電工(初級)職業(yè)技能鑒定試卷(電工電路分析題)
- 小升初復(fù)習(xí)精講精練十三《圖形與位置》北師大版(復(fù)習(xí)課件)
- 2025年房地產(chǎn)估價師考試估價房地產(chǎn)評估報告估價房地產(chǎn)評估報告審核試卷
- 2025年征信考試題庫:征信數(shù)據(jù)分析挖掘數(shù)據(jù)分析工具操作指南
- 2025年一建《機(jī)電工程管理與實務(wù)》考試機(jī)電工程技術(shù)經(jīng)濟(jì)分析題庫全攻略解析
- 2025年美容師(高級)職業(yè)技能鑒定試卷:美容行業(yè)競爭格局分析
- 2025年安徽省公務(wù)員錄用考試面試真題試卷(結(jié)構(gòu)化小組)深度解析
- 跨境直播帶貨合作協(xié)議
- 2025年會計職稱考試《初級會計實務(wù)》易錯難題專項突破復(fù)習(xí)試題
- 2025年成都市事業(yè)單位招聘考試教師招聘考試生物學(xué)科專業(yè)知識試題
- 個體工商戶登記(備案)申請書(個體設(shè)立表格)
- 2024-2030年中國蔬果保鮮劑行業(yè)市場深度分析及發(fā)展趨勢與投資研究報告
- 部編人教版七年級下學(xué)期道德與法治培優(yōu)輔差工作總結(jié)
- 廣安市2023-2024學(xué)年高一下學(xué)期期末考試生物試題
- 課題研究學(xué)術(shù)報告職稱答辯
- PEP小學(xué)英語五年級下冊《Unit5-Read-and-write-Robin-at-the-zoo》教學(xué)設(shè)計
- 俞軍產(chǎn)品方法論全概述
- 個體工商戶轉(zhuǎn)讓協(xié)議(2篇)
- 牧原人才測評試題及答案
- 胸痛中心胸痛隨訪數(shù)據(jù)采集表
- 體檢機(jī)構(gòu)服務(wù)流程
評論
0/150
提交評論