C語言部落格05--指標
1.本章學習總結(2分)
1.1 思維導圖
請以思維導圖總結本週的學習內容。如下圖所示:
1.2 本章學習體會及程式碼量學習體會
1.2.1 學習體會
描述本週學習感受,也可以在這裡提出你不理解地方、對教師教學建議等等。
1.2.2 程式碼累計
在excel中畫如下表格,儲存好,複製到部落格隨筆。注意要累計所有程式碼量。
2.PTA總分(2分)
2.1截圖PTA中函式題目集的排名得分
貼圖展示。
2.2 我的總分:
填寫本次題目集的總得分。
注意,請把PTA程式碼展示給批閱助教,並能完整回答助教問題,才能得滿分。否則根據回答情況給分。
3.PTA實驗作業(1分)
從PTA題目集中選1題你最滿意的題目,題目選難度越大,分值越高。
3.1 PTA題目1
簡要介紹題目
3.1.1 演算法分析
以虛擬碼
方式描述演算法思路。虛擬碼
注意文字+C語法方式描述,不要純C程式碼或者C程式碼直接翻譯,能做到看了虛擬碼就知道你的思路是如何。
3.1.2 程式碼截圖
貼圖展示程式碼,不要複製。
3.1.4 PTA提交列表及說明
根據PTA提交列表,簡要描述下除錯程式碰到問題及解決辦法
4.大作業(5分)
題目:實現小學四則運算。
在函式那章,我們已經實現小學四則運算這份作業,現在要求大家把之前設計函式升級改造,原來的函式大家都是用全域性變數實現不同函式引數傳遞,這次作業要求改地址傳遞,減少全域性變數的使用。
題目要求:
題目有3個難度級別,分別為:
- 第一級是1位數的一步加減乘除計算
- 第二級是2位數的2步加減運算
- 第三級是3位數的2步加減運算
改進內容:
-1.構造字元陣列存放算術表示式
不管哪個級別的算式,請都生成一個字元陣列存放。不管使用者選擇哪個級別題目,都能在表示式生成函式中生成一個算術式子。具體函式介面
void CreateExp(char *exp,int level) { switch(level) { case 1:生成一位數一步加減式子,寫入字元陣列exp; case 2:生成2位數2步加減式子,寫入字元陣列exp; case 3:生成3位數2步加減式子,寫入字元陣列exp; } // 注意三位數隨機數,應該也包含生成一位數,即用rand()%1000就可以。 }
-2. 表示式是否合法(選做)
對於不合法或者超出該級別小學生學習範圍的表示式,視為不合法,需重造一個。不合法表示式體現有除數為0的表示式、1,2級別中出現不能整除的除法表示式或其他不合法情況
int IsExp(char *exp,int level)
{
}
-3.表示式運算
根據字元表示式,能計算其結果。有能力同學深入研究表示式優先順序。
int ComputeExp(char *exp)
{
}
這塊程式碼可以參考這題做法:
#include <stdio.h>
int main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c = getchar();
if( c<='9'&&c>='0' )
m = 10*m + c - '0';//1
else
{
if( oldc == '+' )
sum += m;
else
sum -= m;
m = 0;//2
oldc = c;
}
} while(c!='=');
printf("sum=%d", sum);
return;
}
4.1.改造函式介紹
主要上述三個函式的改造說明
1.函式1
- 虛擬碼介紹函式思路
- 截圖函式程式碼。
2.函式2
- 虛擬碼介紹函式思路
- 截圖函式程式碼。
3.函式3
- 虛擬碼介紹函式思路
- 截圖函式程式碼。
4.3 與原有函式程式碼比較
改造前函式1和改造後的函式1
文字說明2者不同及區別,優缺點。改造前函式2和改造後的函式2
文字說明2者不同及區別,優缺點。改造前函式3和改造後的函式3
文字說明2者不同及區別,優缺點。等等
4.4 改進大作業總結
回顧兩次作業編寫過程,總結碰到問題及後續程式編寫注意事項。
四則運算程式碼提交
請把寫好的大作業程式碼,全部複製在一個word文件中。(記住,要複製過去,不能截圖,截圖則本次作業0
分),文件儲存好請提交課堂派的作業中。我們會用課堂派對你寫的程式碼進行查重,發現抄襲者,將公佈名單,請務必要獨立完成
。
評分注意事項。
- 注意用Markdown語法排版,否則倒扣1分。
- 變數名不規範,沒註釋,沒縮排,括號不對齊,倒扣
5
分。 - 大作業必須演示給助教看。