c語言實驗7陣列實驗報告

2022-06-09 05:45:03 字數 3385 閱讀 6784

實驗報告

課程名稱程式設計

實驗專案名稱陣列

班級與班級** 14級電腦科學與技術1班

實驗室名稱(或課室) ss1-332

專業電腦科學與技術

任課教師

學號姓名

實驗日期: 2023年月日

廣東商學院教務處制

1.實驗目的

1.熟練掌握一維陣列、二維陣列的定義、賦值、輸入、輸出方法。

2.熟練掌握字元陣列和字串函式的使用。

3.熟練掌握一位陣列以及一位陣列元素的儲存關係。

4.熟練掌握一位陣列和二維陣列的使用以及在函式中的傳遞。

5.通過上機實踐掌握與陣列有關的演算法。

二、實驗內容

上機題1輸入並執行以下程式。

實驗內容:用2個陣列對第3個陣列進行賦值

#include<>

main()

}實驗步驟int a[5]:整型一維陣列說明,a是陣列名,也是陣列的起始位址,該陣列可以儲存5個整數。a[0]~a[4]也可以看成是變數標識字元,中的數值稱為陣列下標,下標從0開始。

陣列賦值方法和一般變數一樣。例如,a[0]=2表示將2賦給a[0]。

執行結果

上機題2 輸入並執行以下程式。

實驗內容:對不指明陣列的陣列進行賦值並用迴圈結構進行求和

#include<>

main()

; sum=0;

for(i=0;i<=10;i++)

sum+=a[i];

printf("sum=%d\n",sum);

}實驗結果

實驗小結對全部元素賦初值時,可以不指定陣列長度,c編譯系統自動根據初值個數來決定陣列長度。

由於陣列元素的下標可以是變數,因此陣列的操作一般用迴圈實現。

上機題3 程式實現:從鍵盤輸入5個數,輸出最大、最小元素的值以及它們的下標。將程式補充完整並上機除錯。

實驗內容:用迴圈結構對陣列進行輸入並求出最大最小值及下標

#include<>

main()

else if(max>a[i])

}printf("max:a[%d]=%d,min:a[%d]=%d\n",j,max,k,min);

}實驗結果

實驗小結:比較最值時令第乙個值為最大最小值,再用迴圈結構把最大值最小值賦給max min

上機題4 輸入並執行以下程式,分析程式執行結果。

實驗內容:二維陣列的加法

#include<>

main()

; int b[3][2]=;

int c[3][2];

for(i=0;i<=2;i++)

for(j=0;j<=1;j++)

c[i][j]=a[i][j]+b[i][j];

for(i=0;i<=2;i++) }

實驗結果:

實驗小結:以上程式實現兩個3行2列的矩陣相加,如果要實現兩個矩陣相乘,在其程式的第9行和第12行的「+」改為「*」。

上機題5 程式實現:從鍵盤輸入12個數,組成乙個3行4列的二維陣列並輸出。將程式補充完整並上機除錯。

實驗內容:對二維陣列的輸入輸出

#include<>

main()

}實驗小結執行程式後,從鍵盤輸入的12個整數應以空格、enter鍵或tab鍵分開。

分別輸出各行最小值各列最大值

實驗過程:#include<>

main()

; for(j=0;j<4;j++)

printf("\t%d",max);}

實驗結果:

實驗小結:注意格式

上機題6 輸入並執行以下程式。

實驗內容:字串的輸入與輸出

#include<>

main()

實驗結果:

實驗小結:陣列可以用字串進行初始化「char a[7]=「foxpro」;」,但是不能將字串直接賦給陣列,如「a[7]=」foxpro;」和「a=」foxpro;」都是錯誤的。

字串的最後有串尾標誌『\o』,所以「char a[6]=」foxpro」;」也是不正確的。

用「%s」格式輸出指定位址開始的字串,用「%c」格式輸出陣列元素的字元。

上機題7 輸入並執行以下程式。

實驗內容:利用二維陣列對字串進行輸入輸出

#include<>

main()

; for(i=0;i<=3;i++)

printf("%s\n",a[i]);

}實驗小結:「char a[8]=;」定義了乙個二維陣列。a[0]是乙個字串的串首位址,a[1]是第2個字串的串首位址,a[i]為第i個字串的串首位址。

因此,字串輸出時用「printf(「%s」,a[i] );」。

上機題8 輸入並執行以下程式,分析程式執行結果。

實驗內容:引用函式對陣列進行運算

#include<>

main()

; int i;

pr(a);

for(i=0;i<5;i++)printf("%5d",a[i]);

printf("\n");

}pr(p)

int p;

實驗結果:

實驗小結:當形參為陣列時,對應的實參為陣列名,傳遞的是陣列的首位址,此時實參陣列與形引數組共享同一段記憶體單元,形引數組元素的改變會影響實參陣列元素的改變。

上機題9編寫程式:從鍵盤輸入一串整數儲存到陣列中,呼叫函式antitone()將陣列反序並輸出。自定義函式void antitone

(int a,int n)實現將陣列中的n個資料按逆序存放。

實驗內容:將陣列反序並輸出,

實驗步驟:#include<>

void antitone(int a,int n);

int b[5],n;int i;

main()

antitone(b,5);

} void antitone(int a,int n)

}實驗結果:

實驗小結:注意區域性變數與全域性變數作用域,陣列的常量表示式必須是常量,格式必須對,還有對程式的了解。

上機題10已知某數列的前兩項為2和3,其後每一項為其前兩項之積。分別用函式和陣列實現:從鍵盤輸入乙個整數x,判斷並輸出x最接近數列的第幾項?

實驗內容:從鍵盤輸入乙個整數x,判斷並輸出x最接近數列的第幾項

實驗步驟:#include<>

#include<>

#define m 100

int a[m]=;

int i,x,t;

main()

{for(i=0;i<98;i++)

a[i+2]=a[i+1]+a[i];

scanf("%d",&x);

for(i=0;i<99;i++)

{if(fabs(a[i+1]-x)

C語言實驗報告《陣列》

學號姓名班級日期 指導教師成績 實驗三陣列 一 實驗目的 1 掌握一維和二維陣列的定義 賦值和輸入輸出2 掌握字元陣列和字串陣列的使用 3 掌握與陣列有關的排序演算法 二 實驗內容 1 已有乙個已排好序的陣列,要求輸入乙個數後,按原來排序的規律將它插入陣列中。習題 2 將乙個陣列中的值按逆序重新存放...

C語言實驗報告

1 實驗目的 1.熟練掌握if if.else if.else if語句,掌握if語句中的巢狀關係和匹配原則,利用if語句實現分支選擇結構。2.熟練掌握for語句格式及使用方法 3.掌握簡單 常用的演算法,並在程式設計過程中體驗各種演算法的程式設計技巧.進一步學習除錯程式,掌握語法錯誤和邏輯的檢查方...

c語言實驗報告

姓名學號 實驗班號機器號 1 實驗目的 1.掌握微控制器c語言程式結構 2.掌握微控制器c語言程式除錯方法 3.掌握msp430fg2553基本i o控制方法 4.鞏固編寫和除錯微控制器c語言程式方法 5.了解簡單介面電路的控制方法 6.了解msp430彙編格式的定址方式和指令系統 2 實驗基本任務...