實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練_第1頁(yè)
實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練_第2頁(yè)
實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練_第3頁(yè)
實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練_第4頁(yè)
實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)10指針做函數(shù)參數(shù)編程訓(xùn)練實(shí)驗(yàn)?zāi)康模?.掌握指針的定義及使用;2.體會(huì)使用指針的作用;3.掌握指針做函數(shù)參數(shù)的作用;4.掌握指針做函數(shù)參數(shù)的基本步驟;實(shí)驗(yàn)題目:1.輸入某年某月某日,計(jì)算并輸出它是這一年的第幾天。/*函數(shù)功能:對(duì)給定的某年某月某日,計(jì)算它是這一年第幾天函數(shù)參數(shù):整型變量year,month,day,分別代表年,月,日函數(shù)返回值:這一年的第幾天*/int DayofYear(int year,int month,int day);2.輸入某一年的第幾天,計(jì)算并輸出它是這一年的第幾月第幾日。/*函數(shù)功能:對(duì)給定的某一年的第幾天,計(jì)算它是這一年的第幾月第幾日函數(shù)入口參數(shù):整型變量

2、year,存儲(chǔ)年整型變量yearDay,存儲(chǔ)這一年的第幾天函數(shù)出口參數(shù):整型指針pMonth,指向存儲(chǔ)這一年第幾月的整型變量整型指針pDay,指向存儲(chǔ)第幾日的整型變量函數(shù)返回值:無(wú)*/void MonthDay(int year,int yearDay,int *pMonth,int *pDay);3.輸出如下菜單,用switch語(yǔ)句實(shí)現(xiàn)根據(jù)用戶輸入的選擇執(zhí)行相應(yīng)的操作。 1.year/month/day-yearDay2.yearDay-year/month/day3.ExitPlease enter your choice:參考程序及注釋:#include #include int Day

3、ofYear(int year, int month, int day);void MonthDay(int year, int yearDay, int *pMonth, int *pDay);void Menu(void);int dayTab213 = 0,31,28,31,30,31,30,31,31,30,31,30,31, 0,31,29,31,30,31,30,31,31,30,31,30,31;int main()int year, month, day, yearDay;char c;Menu(); /* 調(diào)用Menu函數(shù)顯示一個(gè)固定式菜單 */c = getchar();

4、/* 輸入選擇 */switch (c) /* 判斷選擇的是何種操作 */case 1:printf(Please enter year, month, day:);scanf(%d,%d,%d, &year, &month, &day);yearDay = DayofYear(year, month, day);printf(yearDay = %dn, yearDay);break;case 2:printf(Please enter year, yearDay:);scanf(%d,%d, &year, &yearDay);MonthDay(year, yearDay, &month,

5、&day);printf(month = %d, day = %dn, month, day);break;case 3:exit(0); /* 退出程序的運(yùn)行 */default:printf(Input error!);return 0;/* 函數(shù)功能:對(duì)給定的某年某月某日,計(jì)算并返回它是這一年的第幾天 */int DayofYear(int year, int month, int day)int i, leap;/* 若year為閏年,即leap值為1,則用第1行元素dayTab1i計(jì)算;否則leap值為0,用第0行dayTab0i計(jì)算 */leap = (year % 4 = 0)

6、& (year % 100 != 0) | (year % 400 = 0);for (i=1; idayTableapi; i+)yearDay = yearDay - dayTableapi;*pMonth = i; /* 將計(jì)算出的月份值賦值給pMonth所指向的變量 */*pDay = yearDay; /* 將計(jì)算出的日號(hào)賦值給pDay所指向的變量 */* 函數(shù)功能:顯示菜單 */void Menu(void)printf(1. year/month/day - yearDayn);printf(2. yearDay - year/month/dayn);printf(3. Exit

7、n);printf(Please enter your choice:);實(shí)驗(yàn)11 字符串與指針編程練習(xí)實(shí)驗(yàn)?zāi)康模?. 熟悉字符串的輸入及輸出2. 掌握字符指針做函數(shù)參數(shù)的方法3. 掌握數(shù)組做函數(shù)參數(shù)的方法實(shí)驗(yàn)題目:1. 編寫(xiě)一函數(shù)實(shí)現(xiàn)字符串的反序輸出,函數(shù)原型如下:void invert(char *s);即將字符串s反序。解題思路:用循環(huán)將串s的首尾字符對(duì)調(diào),直到中間位置結(jié)束。如:串“ABCDE0”,將A與E對(duì)調(diào)(交換),B與D對(duì)調(diào),循環(huán)次數(shù)是串的實(shí)際長(zhǎng)度的一半。2. 在主函數(shù)main中輸入一串字符串,并調(diào)用invert函數(shù)將此字符串反序,然后再將反序后的字符串輸出。3. 編寫(xiě)一函數(shù)將字符

8、串s中的字符c刪除void charDel(char *s,char c);解題思路:假設(shè)s為“aebefe0”串中的e字符刪除,判斷當(dāng)前s指針是否指向e字符,若指向e字符,則將e字符后面的befe0字符向前移動(dòng)一位,然后移動(dòng)s指針,重復(fù)這一過(guò)程。4. 編寫(xiě)函數(shù)void replace(char *s,char c1,char c2)實(shí)現(xiàn)將s所指向的字符串中所有字符c1用c2替換,字符串,字符c1和c2均在主函數(shù)中輸入,將原始字符串和替換后的字符串顯示在屏幕上。解題思路:如果當(dāng)前s指針指向的是c1字符,則把c2賦值給s指針?biāo)赶虻牡刂房臻g,然后移動(dòng)指針s,重復(fù)上述過(guò)程。參考代碼:#includ

9、e stdio.h#include string.hvoid replace(char *s,char c1,char c2);void charDel(char *s,char c);void invert(char *s);int main()char str=acbd;invert(str);puts(str);void invert(char *s)int strLenth;char *i,*j,*mid,temp;/j和i所指向字符是相互交換的字符strLenth=strlen(s);mid=s+strLenth/2;/交換的次數(shù)應(yīng)為字符串總長(zhǎng)度除以2j=s+strLenth-1;/令j指向字符串的末尾,0字符的前一個(gè)字符for(i=s;imid;i+)/i=s令i指針指向字符串的首部,i+令i指針指向下一個(gè)字符temp=*i;*i=*j;*j=temp;/交換對(duì)應(yīng)的字符j-;/字符串末尾指向前移void charDel(char *s,char c)char *p,*q;while(*s!=0)if(*s=c)p=s;q=s+1;whil

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論