命令列引數
指標作為函式的返回值
鍊錶完成下列程式設計題目,每次上完課都會增加2-3道題目,並將程式設計過程記錄在部落格裡,一次pta作業任選一道題目給出設計思路、流程圖、源**和錯誤記錄,其他題目可只給出設計思路、源**和錯誤記錄。另外將每次pta作業的提交列表貼在部落格裡,每次5分。
1)c高階第三次pta作業(1)
6-1 輸出月份英文名
實驗**
char *getmonth( int設計思路n );
month =null;
if(n <= 0 || n > 12
)
return
month;
month = mon[n - 1
];
return
month;
}
第一步:將十二個月的名稱分別賦值給一維陣列指標,定義用於返回的資料型別。
第二步:遍歷陣列,滿足若n在(1-12)範圍則將month第n-1行的首元素的位址賦給一開始定義的資料。
第三步:返回變數的位址值。
流程圖
6-2 查詢星期
實驗**
int getindex( char *s )設計思路;
for (i = 0; i < 7; i ++)
if (i == 7
) i = -1
;
return
i;
}
第一步:將乙個星期每天的英文分別賦值給一維陣列指標,定義乙個整型變數,賦初值為0。
第二步:遍歷一維陣列,用strmcp函式比較陣列中每行元素與輸入的字串是否相同,若相同,則令此時的行數等於一開始定義的整型變數,且跳出迴圈。
第三步:返回整型變數值。
6-3 計算最長的字串長度
實驗**
int max_len( char *s, int設計思路n ) }
if(a[max]
max =i;
} return
a[max];
}
第一步:s陣列,計算出每行元素的長度。
第二步:在for迴圈中進行比較,定義int型max,賦初值為0,當行元素的長度大於max,則將長度的值賦給max。
第三步:返回max的值。
6-4 指定位置輸出字串
實驗**
char *match( char *s, char ch1, char設計思路ch2 )
printf("\n
");return s+i;}}
printf("\n
");*s = '\0'
; return
s;}
第一步:先遍歷s字元陣列,找到與ch1相同時s的下標,並將下標值賦給乙個整型變數,定義為j。
第二步:在確定下標後,定義乙個指標字元s,將&s[i]賦給s,後跳出迴圈。
第三步:從上面的j開始,迴圈字元陣列s,在迴圈中分情況,若s[i] != ch2,則輸出s[i],反之則輸出s[i]加換行,且返回temp。
第四步:迴圈結束後,輸出換行及返回s。
2)一道程式設計題:
有乙個axb的陣列,該陣列裡面順序存放了從1到a*b的數字。其中a是你大學號的前三位數字,b是你大學號的後四位數字,比如你的學號是2017023936,那麼陣列大小是201 x 3936,陣列中順序存放了1到791136(201和3936的積)的整數. 要求用篩選法,把該陣列裡的質數找出並列印出來,列印格式為5個質數一行,數字間用空格隔開。
篩選法具體做法是:先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這樣一直做下去,就會把不超過n的全部合數都篩掉,留下的就是不超過n的全部質數。
3)c高階第三次pta作業(2)
6-1 奇數值結點鍊錶
實驗**
struct listnode *readlist()設計思路n->next=null;
return head->next;
}struct listnode *getodd( struct listnode **l )
else
} j->next=null;
k->next=null;
*l=h2->next;
return h1->next;
}
第一步:分別建立2個新的鍊錶。
第二步:通過識別所給鍊錶各數值的奇偶性,將其給至不同的鍊錶。
第三步:返回2個鍊錶的頭結點。
6-2 學生成績煉表處理
實驗**
struct stud_node *createlist()設計思路n->next=null;
return head->next;
}struct stud_node *deletelist( struct stud_node *head, int
min_score )
}k->next=null;
return p->next;
}
第一步:建立鍊錶,通過迴圈進行賦值。若序號為0時,使鍊錶最後乙個節點指向空。
第二步:輸入條件值,在鍊錶中,對每個低於條件值的節點進行刪除。
第三步:返回刪除操作後的煉表頭結點。
6-3 鍊錶拼接
實驗**
struct listnode *mergelists(struct listnode *list1, struct listnode *list2)設計思路else
p=p->next;
}while
(i)
while
(k)
p->next=null;
return h->next;
}
第一步:將鍊錶1,2各值分別賦值給一陣列。
第二步:通過對陣列排序得到的有序陣列,將陣列各元素賦值回乙個新鍊錶。
第三步:返回煉表頭結點。
要求三、學習總結和進度(15分)
1、總結兩周裡所學的知識點,回答下列問題?
(1)如何理解指標陣列,它與指標、陣列有何關係?為何可以用二級指針對指標陣列進行操作?
(2)將c高階第三次pta作業(1)任何乙個題目改為使用二級指針對指標陣列進行操作。
(3)用指標陣列處理多個字串有何優勢?可以直接輸入多個字串給未初始化的指標陣列嗎?為什麼?
2、將pta作業的源**使用git提交到託管平台上,要求給出上傳成功截圖和你的git位址。
3、點評3個同學的本週作業(在作業中給出被點評同學部落格的鏈結),並邀請3名同學點評你的作業,無點評作業(你的作業未被3人點評)/或者沒有回覆同學或老師的點評都倒扣該題分數。
董雅潔
莯煙 揆空
4、請用**和折線圖呈現你本週(4/9 8:00~4/23 8:00)的**行數和所用時間、部落格字數和所用時間
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...
第三次作業
1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...
第三次作業
p67 2 12 有600mb的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率是2.4kbps 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kbps,其結果又如何?解 1 t 600 1024...