C語言程序設計學習心得


一,思維導圖

二,語法認識

1,if-else的用法

if (條件一) {
  語句一;
}
else {
  語句二;
}

問題:else與if的匹配關系不明確,導致程序異常。

解決方法:牢記else與離其最近的一個if配對,不與其他的if連用,並規范代碼書寫格式,使其看起來跟加清晰明了。
2,while語句的用法

while (循環條件) {
   循環語句;
}

注意事項:while比較好用,基本上所有的循環結構都能用while寫。

3,for語句的用法

for(表達式1; 表達式2; 表達式3)
{
    循環體語句
}

問題:進行編程時,用for循環時經常運行超時,控制不好循環次數。

解決方法:在使用for循環時,先在草稿紙上書寫一遍,確定准確無誤時,再謄寫到自己的代碼上。並多加練習,增加自己對for循環的理解,從根本上解決。

4,do-while的使用方法

do
{
    循環體語句
}while(循環條件);

問題:剛開始使用時,無法理解他這個循環,這個循環的思路與其他的循環不同,導致自己總是寫錯。

解決方案: 理解此語句的循環原理和特殊的循環順序,多加訓練,當自己一看到問題就能判斷出是否用do-while語句時,就意味着對do-while有了比較正確的理解。

5,switch語句的使用方法

switch(整形表達式)
{ 
    case 常量表達式1:  語句1;break;
    case 常量表達式2:  語句2;break;
    … 
    case 常量表達式n:  語句n;break;
    default:  語句n+1;
}

注意事項:並不是所有的case后面都有break,需要合理的利用break的位置,來使自己的代碼更加簡單。

6.break以及continue 使用方法

switch(整形表達式)
{ 
    case 常量表達式1:  語句1;break;
    … 
    case 常量表達式n:  語句n;break;
    default:  語句n+1;

}

for(表達式1; 表達式2; 表達式3)
{
    語句1;
     continue;
    語句2;
}

注意事項: break語句可以出現在選擇結構和循環結構里,但continue語句只能用在循環語句中,continue語句使用后,本次循環直接結束,不再執行continue之后的語句,直接進行下一輪循環。

三,PTA分數截圖

2.2,2.3作業

4.1作業

第三章作業

四,PTA代碼分析

題目:

代碼:

#include <stdio.h>
int main()
{
    int a,b;
    char c;
    double x;
    scanf("%d %d %c",&a,&b,&c);
    if (b==90&&c=='m') {
        x = a*6.95*(1-0.05);
    }
    else if (b==90&&c=='e') {
        x = a*6.95*(1-0.03);
    }
    else if (b==93&&c=='m') {
        x = a*7.44*(1-0.05);
    }
    else if (b==93&&c=='e') {
        x = a*7.44*(1-0.03);
    }
    else if (b==97&&c=='m') {
        x = a*7.93*(1-0.05);
    }
    else if (b==97&&c=='e') {
        x = a*7.93*(1-0.03);
    }
    printf("%.2f",x);
    return 0;
}

思路:分析題目,將題中的油的種類與服務項目合成,分為六種情況,再依次求解。

錯誤歸納:

(1),過多的if-else,容易讓人頭腦混亂,無法有清晰的思路。

(2),忘記保留兩位小數,導致答案錯誤。

收獲:讓我更好的理解了if-else的用法,並鞏固了知識,夯實了基礎。

題目:

代碼:

#include <stdio.h>
int main()
{
    int l,u,f;
    double c;
    scanf("%d %d",&l,&u);
    if (l>u||l>100||u>100) {
        printf("Invalid.\n");
    }
    else if (l<=u) {
        printf("fahr celsius\n");
        for(f=l;f<=u;f+=2) {
            c = 5.0*(f-32)/9;
            printf("%d%6.1lf\n",f,c);
        }
    }
    return 0;
}

思路:首先分析輸入數據的值是否在給定范圍內,根據判斷結果,執行不同的操作,所以使用if-else,在一種情況中,我們需要依次加二的進行計算,所以使用循環結構。

錯誤歸納:

(1),不進行分情況,直接就就進入循環,只計算了第二種情況。

(2),對於其中給出“ 占據6個字符寬度,靠右對齊 ”,無法用代碼的形式表達出來。

收獲:我知道了占據n個字符寬度的表達方式,並鞏固了for循環的用法。

題目:

代碼:

#include <stdio.h>
#include <math.h>
int main()
{
    int h,n,i;
    double s,H;
    scanf("%d %d",&h,&n);
    s = h;
    H = h*1.0/pow(2,n);
    if (n==0) {
        s = 0;
        H = 0;
    }
    else if (n==1) {
        s = s;
        H = h;
    }
    else {
        for(i=1;i<=n-1;i++) {
            s=s+2.0*h/pow(2,i);
        }
    }
    printf("%.1f %.1f",s,H);
    return 0;
}

思路:通過在草稿紙上對球墜落的過程進行分析,了解球下落的過程,並用編譯器驗證自己的猜想是否正確,多次實驗,完善自己的代碼,最終得到結果。

錯誤歸納:

(1),主觀臆斷,以自己的第一映像去寫代碼,導致自己對過程不熟悉,從而全盤皆錯。

(2),只考慮到其中的某一方面,導致無法完美的解決問題。

(3),對於小數位的保留,沒有注意,導致答案錯誤。

收獲:讓我了解到編程也需要在草稿紙上先分析,在求解。

五,總結:

通過一個多月的學習,我了解到了C語言程序設計的一些基本知識,雖然我的技能不是很純熟,但一有了明顯的進步,我希望在未來能夠掌握更多的技巧與能力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM