C實(shí)驗(yàn)--指針_第1頁
C實(shí)驗(yàn)--指針_第2頁
C實(shí)驗(yàn)--指針_第3頁
C實(shí)驗(yàn)--指針_第4頁
C實(shí)驗(yàn)--指針_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(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)報(bào)告實(shí)驗(yàn)八 指針(2)一、實(shí)驗(yàn)?zāi)康?. 熟練掌握指針、地址、指針類型、空指針等有關(guān)概念;2. 熟練掌握指針的間接訪問、指針的加減運(yùn)算和指針表達(dá)式;3. 學(xué)會(huì)使用指針變量訪問數(shù)組元素;4. 學(xué)會(huì)建立動(dòng)態(tài)數(shù)組的方法。二、實(shí)驗(yàn)內(nèi)容1. 輸入以下程序,并寫出程序的輸出結(jié)果。編寫程序?qū)⒁唤M數(shù)字字符轉(zhuǎn)換為一個(gè)整型數(shù)據(jù)。比如,輸入字符串"234",輸出整型數(shù)據(jù)234。將文件命名為S14_1.cpp。#include #include void main( char str100; /定義一個(gè)字符數(shù)組,存放從鍵盤輸入的數(shù)字字符串cout<<"請(qǐng)輸入一串?dāng)?shù)字字符:&

2、quot;cin.getline(str,100; /從鍵盤輸入數(shù)字字符串到字符數(shù)組int i=0,s=0; while(stri /從數(shù)字字符串的首字母開始識(shí)別,到'0'結(jié)束 s=s*10+stri-'0' /將字符的ASCII碼轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字并附加對(duì)應(yīng)的權(quán)值i+;cout< 輸出轉(zhuǎn)換后的整型數(shù)字 要求:編譯運(yùn)行程序,當(dāng)輸入為1234時(shí),輸出是_1234_。2. 根據(jù)程序要求,完善程序后輸入源程序,編譯連接,并寫出運(yùn)行結(jié)果。編寫程序?qū)⒁粋€(gè)十進(jìn)制數(shù)轉(zhuǎn)換為其他進(jìn)制的數(shù)。例如輸入45 16,表示將十進(jìn)制數(shù)45轉(zhuǎn)換為16進(jìn)制數(shù),輸出結(jié)果為2D;輸入45 8,表

3、示將十進(jìn)制數(shù)45轉(zhuǎn)換為8進(jìn)制數(shù),輸出結(jié)果為55。將文件命名為S14_2.cpp。#include #include void fun1(char *s, int n, int r /將n轉(zhuǎn)換為r進(jìn)制, 結(jié)果放在s所指向的數(shù)組中 int i=0,t;while(n /轉(zhuǎn)換的算法是除r取余,首先取出來的是低位數(shù)字, 高位數(shù)字最后出來t=n%r; /求余數(shù)if(t>=10 /余數(shù)有可能大于10(16進(jìn)制si+=A+t-10; /大于10的數(shù)字轉(zhuǎn)換成字符AFelsesi+=t+0; /其余的數(shù)字直接將數(shù)字變成字符的形式n=n/r; /n除r后繼續(xù)取余轉(zhuǎn)換, 直至n為0為止 si='0&#

4、39; /Avoid fun2(char *s/由于上述轉(zhuǎn)換算法轉(zhuǎn)換出的結(jié)果低位在前, 所以正確的結(jié)果應(yīng)將字符串倒序排列 char ch;int len=strlen(s; /字符串的長(zhǎng)度for(int i=0;i 將第 1 個(gè)字符和最后一個(gè)字符交換 , 第 2 個(gè)和倒數(shù)第 2 個(gè)字符交換 , 直至交換到字符串的中間位置 */ ch=si; si=slen-i-1;slen-i-1=ch;void main(void char s200; /因?yàn)檗D(zhuǎn)換后的數(shù)有可能出現(xiàn)字母AF, 所以用字符串的形式存放int n, r;cout<<"請(qǐng)輸入您想轉(zhuǎn)換的十進(jìn)制數(shù): "c

5、in>>n;cout<<"您想將十進(jìn)制數(shù)"< 轉(zhuǎn)換成多少進(jìn)制的數(shù) ? " cin>>r;fun1(s, n, r; /將n轉(zhuǎn)換為r進(jìn)制的數(shù),結(jié)果存放在s中, 轉(zhuǎn)換的算法是除r取余fun2(s; /由于轉(zhuǎn)換首先存放的是數(shù)據(jù)的低位, 所以將原始的轉(zhuǎn)換結(jié)果要倒序排列, 高位在前cout<<"十進(jìn)制數(shù)"< 轉(zhuǎn)換成 "< 進(jìn)制的數(shù) , 結(jié)果為 : "< 要求:(1)完善程序;(2)編譯運(yùn)行程序,將123分別轉(zhuǎn)換為二進(jìn)制、八進(jìn)制和十六進(jìn)制的數(shù),程序的輸出分別為_11

6、11011_、_ 173 _和_7B_。(3)程序第A行的作用是什么?若要將此行刪除,程序是否能正確運(yùn)行,為什么?答:A是個(gè)結(jié)束標(biāo)識(shí)符,若刪除,則不能正確運(yùn)行,因?yàn)?,?shù)組字符串碰到結(jié)束標(biāo)志符才能跳出循環(huán)!3. 仿照樣例程序編寫程序輸入一個(gè)字符串,串內(nèi)有數(shù)字和非數(shù)字字符。例如:abc456 sd78fd123s 789df,將其中連續(xù)的數(shù)字作為一個(gè)整數(shù),依次存放到另一個(gè)整型數(shù)組b中。例如上述例子,將456放入b0中,78放入b1中,統(tǒng)計(jì)出整數(shù)的個(gè)數(shù)并輸出這些整數(shù)。要求在主函數(shù)中完成輸入和輸出工作,設(shè)計(jì)一個(gè)函數(shù),把指向字符串的指針和指向整數(shù)數(shù)組的指針作為函數(shù)的參數(shù),完成從字符串中提取整數(shù)的工作,并

7、將整數(shù)的個(gè)數(shù)作為函數(shù)值返回。將文件命名為S14_3.cpp。代碼:#include #include using namespace std;int selectnum(char*,int*;int main(char s100;int b50=0,count,i;cout<<"請(qǐng)輸入一個(gè)字符串:"cin.getline(s,100;count=selectnum(s,b;cout<<"count="< for(i=0;i cout< cout< return 0;int selectnum(char *ps,

8、int *prfor(int count=0;*ps!='0'while( *ps!='0'&&(*ps<'0'|*ps>'9' ps+;if(*ps>='0'&&*ps<='9'for( ; *ps>='0'&&*ps<='9'ps+prcount=prcount*10+*ps-'0'count+;return count;4. 進(jìn)階提高編寫一個(gè)函數(shù)int fun(

9、char *str, char *substr ,該函數(shù)可以統(tǒng)計(jì)子字符串substr在母字符串str中出現(xiàn)的次數(shù),并將該次數(shù)作為函數(shù)值返回。例如,輸入的母字符串為asd asasdfg asd as zx67, 輸入的子字符串為as,則as出現(xiàn)在母串中的次數(shù)應(yīng)為5。要求在主函數(shù)中分別輸入母串和子串,并將它們作為實(shí)際參數(shù)調(diào)用函數(shù)fun,同時(shí)將結(jié)果在主函數(shù)中輸出。將文件命名為S14_4.cpp。#include #include using namespace std;int fun(char*,char*;int main(char a100,b50;cout<<"請(qǐng)輸入一

10、串母字符串:"cin.getline(a,100;cout<<"請(qǐng)輸入一個(gè)子字符串:"cin.getline(b,50; cout<<"count="< return 0;int fun(char *str, char *substr /定義函數(shù)int count = 0;char *s,*p;while (*str != '0'p=str; /記錄新地址s=substr;while (*s != '0'if (*s = *ps+;p+;else break; /跳出循環(huán)if (*s = '0' count+; /每循環(huán)

溫馨提示

  • 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)論