C語言試驗4指針試驗_第1頁
C語言試驗4指針試驗_第2頁
C語言試驗4指針試驗_第3頁
C語言試驗4指針試驗_第4頁
C語言試驗4指針試驗_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗 4 指針實驗實驗?zāi)康?(四號黑體 )(1) 通過實驗進(jìn)一步掌握指針的概念,會定義和使用指針變量;(2) 能夠正確使用數(shù)組的指針和指向數(shù)組的指針變量;(3) 能夠正確使用字符串的指針和指向字符串的指針變量;(4) 能正確使用指向函數(shù)的指針變量.實驗原理 ( 算法分析(包括流程圖) )1、 a 是二維數(shù)組 ,p 和形參 pointer 是指向整型數(shù)據(jù)的指針變量 ,P 指向數(shù)組 0 行 0 列元素 a00 .在調(diào)用 move 函數(shù)時 , 將實參 p 的值 &a00 遞給形參 pointer, 在 move 函數(shù) 中將 aij 與 a 門的值互換.由于a數(shù)組的大小是3X 3,而數(shù)組元素是

2、按行排列的,因此aj在a數(shù)組中是第(3 x i+j) 個元素,例如,a21是數(shù)組中第(3 x 2+1)個元素,即第7個元素(序號從0算起).aij 的 地 址 是 ( pointer+3*i+j), 同理 ,aji 的 地 址是 ( poInter+3*j+i) . 將 *( pointer+3*i+j) 和 *( pointer+3*j+i) 互換,就是將 aij 和ij 互換算法如下:2、當(dāng)pl所指向的字符比 p2大時,t為正數(shù)即,pl所指向的字符的 ASC II碼,減去p2 所指向的字符的 ASCII碼大于0,當(dāng)pl所指向的字符比p小大時,為負(fù)數(shù),當(dāng) pl所指向 的字符與p2 一樣大時,

3、t=0;所以實現(xiàn)上訴命令的算法如下 :三、實驗過程原始記錄(數(shù)據(jù)、圖表、計算等)1、因此解決這一此題目要求編程實現(xiàn)矩陣的轉(zhuǎn)置,并且在實現(xiàn)這一操作時只能使用指針,問題時,應(yīng)注意下面幾個問題:數(shù)組名是一個指針變量,但該指針變量是一個常量;int a10 中的a的類型等同于int *p定義的指針變量 p ;int a105 中定的a的類型等同于int (*p)5;(2)程序代碼如下:#in elude <stdio.h>int mai n()void move(i nt * poin ter); int a33, * p, i;printf(輸入矩陣:n);for (i = 0; i &

4、lt; 3; i+)scan f_s("%d%d%d", & ai0, & ai1, & ai2); p = & a00;move(p);prin tf("轉(zhuǎn)置后:n");for (i = 0; i < 3; i+)I t = (pointer :*(iointer 豐 3:*(pointer + 3+ 3 + 1 + j);* I j) - *(pointer + 3 * j + i);* j + i) = t;printf("%d %d %dn", aiO, ai1, ai2); return

5、 0; void move(i nt * poi nter)int i, j, t;for (i = 0; i < 3; i+)for (j = i; j < 3; j+)t = *(poi nter + 3 * i + j);*(poi nter + 3 * i + j) = *(po inter + 3 * j + i);*(poi nter + 3 * j + i) = t;仝局帝圍:彈艮畛I4include <stdio, h>Sint niain0void irove (int * pointer;: int a3' 3, * p, i; printf

6、輸入矩陣:tT); for (i = 0 : i < 3; i+)scfinf_sfeatiJ To F fia T1 . FIL31 2 );p = &alO OZ ;xove p;printf C轉(zhuǎn)置JS; n*):for (i - 0; i < 3; i+)pruitfC'Kd %d fdn*» ail 0, aZi 1Z, ai _2): return 0;程序代碼如下:#include "stdio.h"int main(int argc, char* argv)int strcmp(char* p1, char* p2);c

7、har s100, a100;printf_s(" 輸入一串字符 1: "); gets_s(a);printf_s(" 輸入一串字符 2: "); gets_s(s);printf("%dn", strcmp(a, s); return 0;int strcmp(char* p1, char* p2)int t;t = *p1 - *p2;for (;t = 0 && p1!="0"&&*p2!='0') p1+;p2+;t = *p1 - *p2;return t

8、;Aint main(int argc, char* argvL)irit strcrap (char* pl, char* p2);:char s100, a100;:printf_sf輸入一串字符L:");I.gets_ s (a);printf_a 串字符2:"); gets_s (s);printfstrcmp s): return 0;早int strcmp (char* pl, ctiar* p2)|iaint t;I:t 二命pl 掘p2; for Ct = 0 && pl BP 僦切2 UP ;)I:pl+;p2+:! t _ *pl - *

9、p2:;Lireturn t;口 j主四、實驗結(jié)果及分析1、輸入矩陣結(jié)果如下:2、 1輸入第一個字符串比第二個小結(jié)果如下:QI Mie resort Vi&udl Studio 調(diào)試限制臺龍入曲了罰:gbjjgjd輸入申卞符2: cskjdskdj語育實釜宴驗4第二題Debu叭案驗4第二題昭進(jìn)程37820B退出,代碼為0- 險任點鍵無閉此窗口.分析:a的ASCII代碼是97, c的是99,所以二者相減t=-2(2)第一個字符串比第二個大 Microsoft Visual Studio 調(diào)i式限制芻輸-暉字符1: df dfkj 諭入 誦字符2; askdj dfklj(3)輸入完全相同

10、的字符串m Mic os:Ift VISUHI Studio H;限制臺篩人、吊了符1: abc def 輸入誦手持2; a be def淀黠騙盤心砂麗趙航題z陰豳)已退宀拠.五、附錄(自己實現(xiàn)的源代碼)1、#in elude <stdio.h>int mai n()void move(i nt * poin ter);int a33, * p, i;printf(輸入矩陣:n);for (i = 0; i < 3; i+)scan f_s("%d%d%d", & ai0, & ai1, & ai2);p = & a00;m

11、ove(p);prin tf("轉(zhuǎn)置后:n");for (i = 0; i < 3; i+)prin tf("%d %d %dn", ai0, ai1, ai2); return 0; void move(i nt * poi nter)int i, j, t;for (i = 0; i < 3; i+) for (j = i; j < 3; j+)t = *(pointer + 3 * i + j);*(pointer + 3 * i + j) = *(pointer + 3 * j + i);*(pointer + 3 * j + i) = t;2、#include "stdio.h"int main(int argc, char* argv)int strcmp(char* p1, char* p2);char s100, a100;printf_s(" 輸入一串字符 1: ");gets_s(a);printf_s(" 輸入一串字符 2: ");gets_s(s);printf(&quo

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論