中南大學(xué)C語言實(shí)驗(yàn)(指針結(jié)構(gòu)體)_第1頁
中南大學(xué)C語言實(shí)驗(yàn)(指針結(jié)構(gòu)體)_第2頁
中南大學(xué)C語言實(shí)驗(yàn)(指針結(jié)構(gòu)體)_第3頁
中南大學(xué)C語言實(shí)驗(yàn)(指針結(jié)構(gòu)體)_第4頁
中南大學(xué)C語言實(shí)驗(yàn)(指針結(jié)構(gòu)體)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)七 指針一、 目的要求1. 掌握指針的定義和使用指針變量;2. 學(xué)會(huì)使用字符串的指針和指向數(shù)組的指針變量;3. 學(xué)會(huì)使用指向函數(shù)的指針變量;4. 按實(shí)驗(yàn)內(nèi)容要求完成全程程序設(shè)計(jì)后才允許上機(jī)。二、 實(shí)驗(yàn)內(nèi)容與步驟設(shè)計(jì)一個(gè)函數(shù),它有三個(gè)形參(1) 被查找的字符串str;(2) 待查找的字符xCh;(3) 在字符串str中xCh出現(xiàn)的位置i0,1,它的返回值是在str中xCh 出現(xiàn)的次數(shù)(若str中無xCh,則返回值0)三、 上機(jī)要求1、 鍵入待查的字符xCh;2、 鍵入被查的字符串str;3、 調(diào)用該函數(shù);4、 打印它的返回值和出現(xiàn)的位置;5、 允許重復(fù)執(zhí)行,每次以清屏開始(用循環(huán)語句控制重復(fù)

2、執(zhí)行)。四、 提示xCh在str出現(xiàn)位置應(yīng)設(shè)計(jì)為一整型指針,以便記下0N個(gè)位置(整數(shù))。#includevoid main()char temp;int run(),j;int (*prun)();temp=Y;while(temp!=N|temp!=n)if(temp=Y|temp=y)prun=run;j=(*prun)();if (j=0)printf(Can Not Find The xCh! j=%d,j);elseprintf(nj=%d,j);printf(nPardenY/N:);fflush(stdin);temp=getch();if(temp=N|temp=n)break

3、;if(temp!=Y&temp!=y)printf(Wrong!You can only put Y(N) or y(n)nPlease put again(Y/N):);fflush(stdin);temp=getch();int run (char xCh,char str100,int i)int j;char *p;clrscr();printf(xCh=);xCh=getch();printf(%cnstr=,xCh);gets(str);p=&str0;i=0;j=0;while(*p)if (*p=xCh)j+;printf(xCh :%dt,i);p=p+1;i+;retur

4、n j;Mian()版:#includevoid main()int i,j;char xCh,str100,*p,temp;temp=Y;/*給temp賦初值Y,防止第一個(gè)while循環(huán)無法運(yùn)行*/while(temp!=N|temp!=n)/*如果temp不等于n或N時(shí),進(jìn)行循環(huán)*/if(temp=Y|temp=y)/*當(dāng)temp為y或Y時(shí),進(jìn)行下列循環(huán),用于進(jìn)行題目要求的操作*/clrscr();/*清屏*/printf(xCh=);/*在屏幕輸出提示xCh=*/xCh=getch();/*從屏幕讀取一個(gè)字符賦給xCh(getch()和getchar()的區(qū)別:前者只要輸入一個(gè)字符就結(jié)束

5、輸入過程,后者需要按回車或空格后才結(jié)束輸入過程)*/printf(%cnstr=,xCh);/*在屏幕xCh=后面輸出剛才輸入的xCh的值,并提示用戶輸入str(因?yàn)槲覀冇胓etch(),輸入完字符后會(huì)自動(dòng)結(jié)束xCh的輸入進(jìn)入下一指令的執(zhí)行(在本題中,下一指令是:printf(%cnstr=,xCh);),而不在屏幕輸出剛才輸入的字符)【不理解的話把該句改成printf(nstr=);看看輸出結(jié)果就知道了】*/gets(str);/*輸入str*/p=&str0;/*將指針地址指向str這個(gè)字符串的首字符位置*/i=0;j=0;while(*p)/*當(dāng)p所指向的字符不為空字符時(shí),進(jìn)行判斷循環(huán)*

6、/if (*p=xCh)/*當(dāng)p所指向的字符為所需尋找的xCh時(shí),進(jìn)行以下操作*/i+;/*i自加1,用于累計(jì)str中xCh的數(shù)目*/printf(xCh :%dt,j);/*輸出xCh在str中出現(xiàn)的位置*/p=p+1;/*指針地址移向str的下個(gè)字符*/j+;/*j用于記錄此時(shí)p的位置,在str中第一個(gè)字符時(shí)=0,第二個(gè)時(shí)=1,以此類推*/if (i=0)/*當(dāng)str中沒有xCh這個(gè)字符時(shí),i=0*/printf(Can Not Find The xCh! i=%d,i);/*在屏幕中提示無法找到str中的xCh,并輸出i=0*/elseprintf(ni=%d,i);/*n為換行*/pr

7、intf(nPardenY/N:);fflush(stdin);/*清空計(jì)算機(jī)緩存*/temp=getch();/*從屏幕中讀取一個(gè)字符賦給temp*/if(temp=N|temp=n)/*當(dāng)temp為N或n時(shí)*/break;/*跳出循環(huán)*/if(temp!=Y&temp!=y)/*當(dāng)輸入的temp不為Y、y、N、n時(shí)*/printf(Wrong!You can only put Y(N) or y(n)nPlease put again(Y/N):);fflush(stdin);temp=getch();/*fflush(stdin)*/實(shí)驗(yàn)八 結(jié)構(gòu)體與共用體一、 目的要求1、 掌握結(jié)構(gòu)體類

8、型變量與數(shù)組的定義和使用;2、 學(xué)會(huì)使用指針變量和結(jié)構(gòu)體指針數(shù)組;3、 按實(shí)驗(yàn)內(nèi)容要求完成全程程序設(shè)計(jì)后才允許上機(jī)。二、 實(shí)驗(yàn)內(nèi)容與步驟1. 設(shè)計(jì)一個(gè)結(jié)構(gòu)struct student long no; /*學(xué)號(hào)*/char name10;/*姓名*/char sex;/*性別*/int age;/*年齡*/float score;/*平均成績(jī)*/2. 完成下列任務(wù):(1) 輸入實(shí)際學(xué)生人數(shù)n (2n4);(2) 輸入每個(gè)學(xué)生的信息,組成結(jié)構(gòu)數(shù)組,并輸出;(3) 統(tǒng)計(jì)男、女生人數(shù)并輸出;(4) 計(jì)算全班平均成績(jī)并輸出;(5) 將低于全班平均成績(jī)的學(xué)生信息按行輸出三、 上機(jī)要求1. 可劃分為若干個(gè)

9、函數(shù),或?qū)懗梢粋€(gè)main( );2. 要求輸出格式有提示及相應(yīng)數(shù)據(jù)。#includestruct studentlong no; /*學(xué)號(hào)*/char name10;/*姓名*/char sex;/*性別(gender)*/int age;/*年齡*/float score;/*平均成績(jī)*/s3;void main()int i,n,t,m,na;float av,sum;float temp;clrscr();m=0;sum=0;printf(The number of the studens:);scanf(%d,&n);printf(n);for(i=0;i10)printf(Wrong

10、!You can only put 10 characters!nName:);elsena=1;printf(nGender:(W/M);t=0;while(t=0)scanf(%s,&si.sex);if(si.sex!=W&si.sex!=w&si.sex!=m&si.sex!=M)printf(Wrong!nGender:);elset=1;if(si.sex=m|si.sex=M)m+;printf(nAge:);scanf(%d,&si.age);printf(nScore:);scanf(%f,&temp);si.score=temp;for(i=0;in;i+)sum=sum+si.score;printf(nNo.%ldnName:%snGender:%cnAge:%dnScore:%.2f,si.no,,si.sex,si.age,si.score);av=sum/n;printf(nThe number of girl(s):%dnThe number of boy(s):%dn,n-m,m);p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論