• C语言自学教程 - 郝斌 - 第一讲

  • 为什么需要A

  • 什么是A

  • 怎么用A

  • 注意的问题

  • A应用的领域

  • A是否重要

  • 时代

  • 勤奋

  • 出身

  • 机遇

  • 天赋

1. C语言概述

1.1 为什么学C语言

# include <stdio.h>

int main(void)
{
    printf("欢迎大家学习C语言!\n");
    return 0;
}

1.1.1 C的起源和发展

  • 机器语言:第一代语言
  • 汇编语言:第二代语言
  • 结构化:Fortan/Basic/C/Pascal:第三代高级语言
  • 面向对象:Algo/Simula67/Ada/SmallTalk/C++/Java/C#
  • 产生时间:1972-1973
  • 产生地点:美国贝尔实验室
  • 创始人:Dennis.M.Ritchie和Ken.Thompson
  • 目的:改写UNIX操作系统
  • 发展过程:1982年--ANSI C 1987年--ANSI C 87 1994年--C99

1.1.2 C的特点

  • 优点:代码量小、速度快、功能强大
  • 缺点:危险性高、开发周期长、可移植性不强

1.1.3 C的应用领域

  • 系统软件、应用软件

1.1.4 C的重要性

  • 为学习数据结构、C++、Java、C#奠定基础

2. 怎样学C语言

  • 多思考、多上机

3. 学习的目标

  1. 了解程序语言及发展历史
  2. 熟练掌握C语言的语法规则
  3. 掌握简单的算法
  4. 理解面向过程的思想,这非常有助于将来对面向对象思想的学习
  5. 为学习C++、数据结构、C#、Java打下良好的基础

4. 学Java为什么建议要先学C

  • C语言的语法大部分都被Java继承
  • C是面向过程语言的代表
  • C中的指针是理解Java中引用的基础

5. 举例子:一元二次方程

# include <stdio.h>
# include <math.h>

int main(void)
{
    //把三个系数保存到计算机中
    int a = 1;	//=表示赋值
    int b = 2;
    int c = 3;
    
    double delta;	//delt存放的是b*b-4*a*c
    double x1;		//存放一元二次方程的其中一个解
    double x2;
    
    delta = b*b - 4*a*c;
    
    if (delta > 0)
    {
        x1 = (-b + sqrt(delta)) / (2*a);
        x1 = (-b + sqrt(delta)) / (2*a);
        printf("该一元二次方程有两个解,x1 = %f, x2 = %f\n", x1,x2);
    }
    else if (delta == 0)
    {
        x1 = (-b) / (2*a);
        x2 = x1;	//右边赋值给左边
        printf("该一元二次方程有两一个唯一解,x1 = x2 = %f\n", x1);
    }
    else
    {
        printf("无解");
    }
    
    return 0;
}