班級:https://edu.cnblogs.com/campus/fzu/2024C
作業要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304
學號:102400202
姓名:高婭婷
第一題
(1)定義一個二維陣列和指向該陣列的指標,分別以陣列下標和指標的形式引用陣列各個元素進行賦值與輸出。
第二題
(2)構造螺旋方陣。對任意給定的N,將1到N×N的數字從左上角第1個格子開始,按順時針螺旋方向順序填入N×N的方陣裡。
輸入格式:
輸入在一行中給出一個正整數N(<10)。
輸出格式:
輸出N×N的螺旋方陣。每行N個數字,每個數字佔3位。
輸入樣例:
5
輸出樣例:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
問題:不知道怎麼螺旋輸出
解決:上網查詢
第三題
(3)7門課程的成績分別存放在score[n][1]、score[n][2]、...、score[n][7]中,第0列用來存放總成績。請編寫一個函式實現計算成績表score中每一個學生7門課程的總成績,並將總成績存放在該學生的第0列中。請在main函式中構造資料測試你寫的函式。
問題:只對s[0][0]初始化,導致剩下幾行求和結果錯誤
解決:s[0][0]=0改成s[i][0]=0
第四題
(4)將以下定義的含義寫出來。
a)int a; b)int a; c)int **a; d)int a[10]; e)int (a)[10];
第五題
(5)給定一個二維陣列,使用指標把陣列中的數字複製到另一個陣列中相同的位置。
問題:沒有對陣列x[4][4]初始化
解決:把陣列x[4][4]初始化為0
第六題
(6)請編寫一個函式,接受一個字串指標作為引數,並返回該字串的長度,不包括字串結尾的空字元。
第七題
(7)輸出以下內容,並解釋每一個輸出內容的含義。
int a[3][4] = {0};
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(a[0][0]));
printf("%d\n",sizeof(a[0]));
printf("%d\n",sizeof(a[0]+1));
printf("%d\n",sizeof(*(a[0]+1)));
printf("%d\n",sizeof(a+1));
printf("%d\n",sizeof(*(a+1)));
printf("%d\n",sizeof(&a[0]+1));
printf("%d\n",sizeof(*(&a[0]+1)));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(a[3]));)
問題:分不清楚sizeof(a[0]+1)和sizeof(*(&a[0]+1))
解決:上網查詢
第八題
(8)鍵盤輸入一個長度為len(1 <= len < 30)的字串,再輸入一個正整數 m(1 <= m <= len),將此字串中從第 m 個字元開始的剩餘全部字元複製成為另一個字串,並將這個新字串輸出。要求用指標處理字串。
問題:'\0'寫成'/0'導致沒有輸出結果
解決:'/0'修改為'\0'
思考總結:還是分不太清楚部分指標變數表示的意思,編寫關於指標的函式存在很多錯誤,還要多加練習。