C语言概述(郝斌09年版网课学习笔记)

1、为什么学习C语言

1)C语言的起源与发展

第一代语言是机器语言(1、0二进制)如0000 0001 1101 10000

第二代语言是汇编语言(把0101此类二进制代码翻译成一些英文单词(对应二进制指令) (ADD AX,BX)

第三代高级语言 (以八十年代分界线,因为结构化的语言有缺陷,后有面向对象的)

形如a+b

Fortran(应用于科学实验)Basic(微软)
C(结构化语言)Pascal(用于教学,数据结构(10年前)

面向对象(OO)
Algosimula67
AdaSmallTalk
C++(最复杂的)C++学好了,其他都没什么问题了
Java(对C++进行改装而成)C#(和JAVA一个平台的语言,语法差不多二学一即可)

汇编语言将机器语言翻译为英文,而高级语言更智能化但速度最慢并不能被直接执行,机器语言最快,其次汇编语言,最慢是高级语言。高级语言中C语言最快,其次C++,然后是JAVA和C#)

横轴为二十世纪时间表,此表是依据时间顺序出现的编程语言,以及语言间的发展关系和关联度。以C语言所在轴进行展开,CPL编写硬件比较方便,但功能不够强大,对其进一步简化,产生了BCPL(B是指简化),1970年左右又产生了B语言(B语言创始人据此写出了世界上第一个操作系统UNIX,用于大型机商务场所里),C语言是B语言的改版(C语言创始人和B语言创始人是同事,一起利用C语言改写了UNIX系统第五版,这个系统的应用也是C语言流行起来的原因),C++是另外一个人写的(是C语言创始人的下属,都是贝尔实验室的),某公司又对C++进行改写产生了JAVA,C#和JAVA的语法高度相似。C语言绝大部分知识(函数与指针必学,学了才会知道其他语言这方面的不同)都在C++的学习中得到应用。

linux(c),windows(c),unix(c)

2)C的特点

优点是代码量小速度快功能强大(许多操作系统和软件是C语言写的,C可以仿硬件

缺点是危险性高,开发周期长(写大项目容易崩溃),可移植性不强

3)C的应用领域

系统软件开发

操作系统:Windows、Linux、Unix

驱动程序:主板驱动、显卡驱动、摄像头驱动

数据库:DB2,Oracle,Sql Server

应用软件开发

办公软件:Wps

图形图像多媒体:ACDSee, Photoshop,Mediaplayer

嵌入式软件开发:智能手机、掌上电脑

游戏开发:2D、3D游戏

4)C的重要性

有史以来最重要的语言

所有工科大学生和理科生必修课程

最重要系统软件:windows、Linux、unix均使用C语言开发

一名合格黑客必须掌握的语言

任何想要从事程序设计和开发人员必须掌握的语言

大企业、外企招聘程序员必考的语言

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

2、怎样学习C语言

每一讲分四节课

前两节为理论课,讲授理论知识

后两节课为上级课,在机房完成当堂训练(自学的用自己设备跑)

途径:多思考、多上机(多问问题,查帖子和问代码能力较强的AI)

目标:能看懂程序、能调试程序、自学能力要很强

3、学习的目标

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

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

3、掌握简单算法(解题的方法和步骤)

4、理解面向过程的思想,这非常有助于将来面向对象思想的学习

  1. 能看懂程序
  2. 会调试程序
  3. 掌握将大问题转化为一系列小问题来求解的思想

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

4、常见问题答疑

1、学习JAVA为什么要先学C语言

学C就是在学 JAVA,因为C语言至少80%的语法知识都被JAVA继承过来了。

C是面向过程语言的代表,学好C有助于学习JAVA中面向对象的思想。

学好C中的指针是理解JAVA中引用的基础!如果不懂指针就不可能对JAVA中的引用有深刻的理解,而引用是JAVA中一个最基本但又十分重要的概念。

2、没学过计算机专业课程能够学懂C语言

郝老师课程解决该忧虑。

3、英语和数学不好能学好C么?

基本没关系,但懂英语更好

C语言组成——关键字

auto(自动)break(终止)case(案件)charconst(常量)
continue(继续)default(默认)do(做)double(双)else(否则)
enumextern(额外的)float(浮点型)for(为了)goto(去)
if(如果)int(整数)longregisterreturn
shortsignedsizeofstaticstruct
switchtypedefunsignedunion(联合)void
volatilewhile(当)

课程大纲


举例子——一元二次方程

# include <stdio.h>
#include <math.h>
int main(void)
{

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

	}


	return 0;

}





运行结果

# include <stdio.h>
#include <math.h>
int main(void)
{

	//把三个系数保存到计算机中
	int a=1;//=不表示相等,表示赋值
	int b=5;
	int c=1;
    double delta;//delta存放的是b*b-4*a*c
	double x1, x2;//存放一元二次方程的两个解
	delta = b * b - 4 * a * c;
	if (delta> 0)
	{
		x1 = (-b + sqrt(delta)) / (2 * a);
		x2 = (-b - sqrt(delta)) / (2 * a);
		printf("该一元二次方程组有两个解,x1=%f,x2=%f\n", x1, x2);
	}
	else if (delta == 0)
	{
		x1 = x2 = (-b) / (2 * a);
		printf("该一元二次方程有一个唯一解,x1=x2=%f\n", x1);
	}
	else
	{
		

	}


	return 0;

}





运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值