實驗任務1
#include const執行結果int n=3
;int
main() ;
inti;
printf(
"通過陣列名及下標直接訪問陣列元素:\n");
for(i=0; i)
printf(
"%d: %d\n
", &a[i], a[i]);
printf(
"通過位址間接訪問陣列元素:\n");
for(i=0; i)
printf(
"%d: %d\n
", a+i, *(a+i));
return0;
}
實驗結論
1.陣列元素在記憶體中是連續存放的
2.a+i和&a[i]都表示陣列元素a[i]的位址是正確的
*(a+i)和a[i]都表示陣列元素a[i] 是等價的
實驗任務2
#include const int line = 2;執行結果const int col = 3;
int main() ;
int i,j;
printf("通過陣列名及下標直接訪問陣列元素:\n");
for(i=0; i執行結果
實驗結論
1.c語言中,二維陣列在記憶體中是按行存放的
2.以下方式是等價的
a[i]+j和&a[i][j]都表示二維陣列元素a[i][j]的位址
*(a[i]+j)和a[i][j]都表示二維陣列元素a[i][j]
3.對於二維陣列a[2][3],以下方式是等價的
a和&a[0]都表示二維陣列第0行的位址
a+1和&a[1]都表示二維陣列第1行的位址
實驗任務3
//使用指標變數間接訪問一維陣列
#include #include
const
int n=3
;int
main()
實驗結論
1. 程式中,指標變數p在使用時並不指向確定的位址
2. 程式原始碼中,line12-line13執行完後,指標變數p指向a[2],line16-line17執行完後,指標變數p
指向a[2]
3. 程式原始碼中,line22-line27執行完後,指標變數p指向a[2],line26-line27執行完後,指標變數p
指向a[2]
4.line26-line27和line16-17二者都運用指標,更為靈活
實驗任務4
// 使用指標變數間接訪問二維陣列執行結果#include int main() ;
int i,j;
int *p; // p是指標變數,存放int型資料的位址
int (*q)[3]; // q是指標變數,存放包含有3個元素的一維陣列的位址
// 通過指標變數p間接訪問,輸出二維陣列a的元素值
for(p=a[0]; p執行結果
實驗結論
1.可以
2.*q+j和*(*q+j)分別表示&q[i][j]和q[i][j]
3.指向陣列元素的指標變數p可以看作把2行3列的二維陣列看作6個一維陣列,指向一維陣列的指標變數q則要分行與列依次指向
4.全對
實驗任務5.1
// 練習:使用二分查詢,在一組有序元素中查詢資料項
// 形參是陣列,實參是陣列名
#include
const int n=5;
int binarysearch(int x, int n, int item); // 函式宣告
int main() ;
int i,index, key;
printf("陣列a中的資料:\n");
for(i=0;i=0)
printf("%d在陣列中,下標為%d\n", key, index);
else
printf("%d不在陣列中\n", key);
return 0;
}//函式功能描述:
//使用二分查詢演算法在陣列x中查詢特定值item,陣列x大小為n
// 如果找到,返回其下標
// 如果沒找到,返回-1
int binarysearch(int x, int n, int item)
return -1;
}執行結果
5.2// 練習:使用二分查詢,在一組有序元素中查詢資料項
// 形參是指標變數,實參是陣列名
#include const int n=5;
int binarysearch(int *x, int n, int item); // 函式宣告
int main() ;
int i,index, key;
printf("陣列a中的資料:\n");
for(i=0;i=0)
printf("%d在陣列中,下標為%d\n", key, index);
else
printf("%d不在陣列中\n", key);
return 0;
}//函式功能描述:
//使用二分查詢演算法在從x中查詢特定值item,陣列x大小為n
// 如果找到,返回其下標
// 如果沒找到,返回-1
int binarysearch(int *x, int n, int item)
return -1;
}
實驗任務6
// 練習:使用選擇法對字串按字典序排序#include const int n = 5;
void selectsort(char str[20], int n ); // 函式宣告,形參str是二維陣列名
int main() ;
int i;
printf("輸出初始名單:\n");
for(i=0; istr[j][m])
if(str[k][m]執行結果
實驗總結
最後乙個實驗專案很有難度參考幾位同學的設計才弄出來,下去還是很有必要加強陣列和函式這塊
實驗5 函式與陣列
實驗1 include const int n 3 int main inti printf 通過陣列名及下標直接訪問陣列元素 n for i 0 i printf d d n a i a i printf 通過位址間接訪問陣列元素 n 1.是的 2.等價 實驗2 include const int...
實驗5 陣列和指標
1.二分查詢 實現方式1 形參是陣列,實參是陣列名,使用陣列元素直接訪問方式實現。include const int n 5 int binarysearch int x,int n,int item intmain inti,index,key printf 陣列a中的資料 n for i 0 i...
實驗5 陣列和指標
實現方式1 形參是陣列,實參是陣列名,使用陣列元素直接訪問方式實現 程式原始碼檔案ex1 1.cpp 以下是補全程式ex1 1.cpp之後的程式原始碼 練習 使用二分查詢,在一組有序元素中查詢資料項 形參是陣列,實參是陣列名 include const int n 5 int binarysearc...