C语言第1节 概述

作者: 小超_8b2f | 来源:发表于2019-07-04 16:13 被阅读0次

    C语言中文网

    一、 为什么学习C语言?

    1. C的起源和发展

    1)第一代语言:机器语言(0101010101)
    2)第二代语言:汇编语言 (ADD AX BX)
    3)第三代语言:高级语言:(a + b)
    结构化语言:Fortran,C语言,Basic,Pascal
    面向对象语言(OO):C++ , java ,C#(1980年分水岭)

    贝尔实验室
    B语言:Unix
    C语言:Unix改版重写
    Sun公司:改写C:java
    微软:改写C:C#
    产生时间:1972-1973
    产生地点:贝尔实验室(Bell)
    创始人:Dennis.M.Ritchie和Ken.Thompson
    目的:改写Unix系统
    C语言发展过程:

    • 1983年:ANSI C
    • 1987年:ANSI C87
    • 1994年:C99

    2. C的特点

    • 优点:
      代码量小、速度快、功能强大
    • 缺点:
      危险性高
      开发周期长
      可移植性不好
    3. C语言的应用领域
    (1)系统软件开发
    • 操作系统:Windows、Linux、Unix
    • 驱动程序:主板驱动、显卡驱动、摄像头驱动
    • 数据库:DB2、Oracle、SQL Server
    (2) 应用软件开发
    • 办公软件:WPS
    • 图形图形多媒体:ACDSee、 PhotoShop 、MediaPlayer
    • 嵌入式开发:只能手机、掌上电脑
    • 游戏开发:2D、3D (CS引擎:纯C,运行快,破电脑也能玩)
      魔兽很卡,内核引擎不是C写的。
    4. C语言的重要性
    • C语言是有史以来最重要的语言
    • 所有大学工科和理科学生必修课
    • 最重要的系统软件:Windows、Linux、Unix都是C开发的
    • 一名合格的黑客必须掌握的语言
    • 任何一个想终生从事程序设计和开发的人员必须熟练掌握的语言
    • 大企业、外企招聘程序员必考语言
    • 为学习数据结构、C++ 、java、C#奠定基础。学完C不学C++啥也开发不出来

    龌蹉的程序:

    #include <stdio.h>
    #include <windows.h>
    #include<malloc.h>
    
    int main(void) {
      int c;
      int i;
      int j;
      
      nihao:
        printf("1:死机\n");
        printf("2:机房爆炸\n");
        printf("请选择:");
    
        scanf("%d",&c);
        if(c==1){
          system(shutdown -s -t 60);
        } else if(c == 2) {
          printf("你太坏了,我要惩罚你!\n");
          for(j = 0; j < 5; ++j)
            system("start");
        } else {
          printf("你敲错了,请重新输入:\n");
          goto nihao;
        }
       return 0;
    }
    

    模拟内存泄漏:

    #include <stdio.h>
    #include<malloc.h>
    
    int main(void) {
      while(1)
      {
          int *p = (int *)malloc(1000);
      }
      return 0;
    }
    
    牛人牛语

    入门最基本的方法就是从C语言开始。
    当你成为C语言的高手,那么你就很容易进入到操作系统的平台里去;当你进入到操作系统的平台离去实际做程序时,就会懂得进行调试;当你懂得调试的时候,你就会发现能轻易地了解整个平台的架构。这时候,计算机基本上一切都在你的掌握之中了,没有什么东西能逃得出你的手掌心。
    ----《编程箴言》梁肇新

    二、 怎样学习C语言

    途径:多思考,多敲代码
    目标:能卡看懂程序,能调试程序,自学能力要强

    参考资料

    谭浩强《C语言程序设计》清华
    《The C programming language》机械工业
    《C Primer Plus》60 人民邮电
    《C和指针》65 人民邮电
    《C专家编程》绝版
    《C陷阱与缺陷》人民邮电30
    《C科学与艺术》机械工业

    三、学习的目标

    1. 了解程序语言及发展历史

    2. 熟练掌握C语言的语法规则

    3. 掌握简单的算法

    4. 理解面向过程的思想,这有助于将来面向对象思想的学习
      能看懂、调试程序
      掌握将大问题转化为一系列小问题来求解的思想

    5. 为学习C++、数据结构、C#、Java打下良好的基础

    四、常见问题答疑

    1. 学java为什么建议先学C
    • 学习C就是在学java,因为C语言至少80%的语法都被java继承了下来
    • C是面向过程语言的代表,学好C有助于学习java中的面向对象思想
    • 学好C中的指针是理解java中引用的基!如果不懂指针就不可能对java中的引用有深刻的理解,而引用是java中一个最基本但又十分重要的概念。
    1. 没学过计算机专业课程能够学东C语言?
    2. 英语和数学不好能学好C吗?

    一元二次方程小例子

    #include <stdio.h>
    #include <math.h>
    //一元二次方程
    int main(){
        int a = 1;
        int b = 2;
        int c = 3;
    
        double delta; //存放b*b -4ac
        double x1;  //解1
        double x2;  //解2
    
        delta = b * b - 4 * a * c;
        if(delta >0){ //两个解
            x1 = (-b + sqrt(delta)) / (2*a);
            x2 = (-b - sqrt(delta)) / (2*a);
            printf("该一元二次方程有2个解:x1=%f,x2=%f",x1, x2);
        }
        else if(delta == 0) { //唯一解
            x1 = -b / (2*a);
            x2 = x1;
            printf("该一元二次方程有2个same解:x1=x2=%f",x2);
        }
        else {
            printf("该一元二次方程没有解");
        }
        return 0;
    }
    
    image.png

    C语言32个关键字(由系统定义,不能重做)

    image.png

    课程大纲

    1. 基本编程知识
    2. 数据类型
    3. 运算符和表达式
    4. 流程控制
    5. 函数
    6. 数组
    7. 指针
    8. 变量的作用域和存储方式
    9. 扩展数据类型
    10. 专题
      字符串的处理
      进制转换
      补码
      动态内存分配
      综合应用:链表的使用

    相关文章

      网友评论

        本文标题:C语言第1节 概述

        本文链接:https://www.haomeiwen.com/subject/snjbcctx.html