码迷,mamicode.com
首页 > 编程语言 > 详细

C语言程序设计学习心得

时间:2019-10-13 15:26:30      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:else   code   info   一个   位置   比较   写代码   ++   出现   

一,思维导图

技术图片

二,语法认识

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语言程序设计的一些基本知识,虽然我的技能不是很纯熟,但一有了明显的进步,我希望在未来能够掌握更多的技巧与能力。

C语言程序设计学习心得

标签:else   code   info   一个   位置   比较   写代码   ++   出现   

原文地址:https://www.cnblogs.com/xzxzxzx/p/11666223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!