学习笔记
程序设计语言的发展
1.第一代语言
- 机器语言:011101 2.第二代语言
- 汇编语言:ADD等英文单词 3.第三代高级语言
- 结构化语言:其中c语言最为重要
- 面向对象的语言:其中c++最为复杂
运行速度:第一代语言>第二代>第三代
其中第三代高级语言中运行速度:c>c++>java(但是java在任何电脑都可运行)
为什么学习c语言
c的起源与发展
1.产生时间:1972-1973
2.产生地点:美国Bell实验室
3.目的: 改写UNIX操作系统
4.发展过程:
- 1983年 ANSI C
- 1987年 ANSI C 87
- 1994年 C 99
c的特点
| 优点 | 缺点 |
|---|---|
| 代码量小 | 危险性高 |
| 速度快 | 开发周期长 |
| 功能强大 | 可移植性不强 |
c语言的应用领域
系统软件开发
- 操作系统:Windows、Linux、Unix
- 驱动程序:主板驱动、显卡驱动、摄像头驱动
- 数据库:DB2、Oracle
应用软件开发
- 办公软件
- 图形图像多媒体
- 嵌入式软件
- 2D、3D游戏
c的重要性
1.是有史以来最重要的语言
2.所有大学工科和理科学生必修课程
3.许多重要的系统软件如windows、unix等均使用c开发
4.是一名合格的黑客以及任何一个终身从事程序设计与开发人员必须掌握的语言
5.大企业、外企招聘程序员必考的语言
6.为学习数据结构、c++、java等奠定基础
怎样学习c语言
途径:多思考,多上机
目标:能看懂程序,能调试程序,自学能力要很强
参考资料
- 《c primer plus》
- 《c和指针》
- 郝斌老师的教学视频
学习目标
1.了解程序语言及发展历史
2.熟练掌握c语言的语法规则
3.掌握简单的算法
4.理解面向过程的思想:
- 能看懂程序
- 会调试程序
- 掌握将大问题转化为系列小问题来求解的思想
5.为学习c++、数据结构、c#、java打下基础
6.熟记32个关键词:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、unsigned、union、void、volatile、while
常见问题答疑
学习java为什么建议先学c语言?
- java继承了c语言至少80%的语法知识,学c语言就是在学java
- c是面向过程语言的代表
- 学好c中的指针是理解java中引用的基础,不懂指针就不可能对java中的引用有深刻理解
没学过计算机专业课程能否学懂c语言?
能。c语言所需计算机专业知识并不多(但很重要),且会穿插在郝斌老师的教学视频中
英语和数学不好能否学好c语言?
能。懂英语有助于c语言的学习,但不懂同样可学好c语言
c语言编程基本用不到数学知识,只有在涉及极高深的算法时才可能用到
代码实操
输出中文的代码:
#include< stdio.h>
int main()
{
printf("欢迎大家学习c语言!");
return 0;
}
成功运行的结果:
一元二次方程求解代码:
# include< stdio.h>
# include< math.h>
int main(void)
{
int a = 3;
int b = 5;
int c = 2;
double delta;
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 = (-b + sqrt(delta)) / (2*a);
x2 = x1;
printf("该一元二次方程有唯一解,x1 = x2 = %f\n",x1);
}
else
{
printf("无解\n");
}
return 0;
}
运行结果:
死机代码(内存泄露):
#include< stdio.h>
int main(void)
{
while (1)
{
int *p = (int *)malloc(10);
}
return 0;
}
运行结果:
malloc()括号中的数字越大,所需死机时间越短,越小则越长 关机/弹窗代码:
#include< stdio.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 (2 == c)
{
printf("我要惩罚你\n");
for (j=0; j<10; ++j);
system("start");
}
else
{
printf("你敲错了,请重新输入!\n");
goto nihao;
}
return 0;
}
运行结果:
用win键+R换出运行框输入cmd打开后再输入shutdown -a来关闭程序
j<的数字代表弹窗数
编码中遇到的问题及解决方法
输出中文时出现乱码
需更改编码格式,步骤:点击右下角UTF-8→选择通过编码保存→找到simplified Chinese(GBK),点击后回到代码界面保存后再运行
出现error:id returned 1 exit status字样 系未保存,应保存后再运行,为了方便可以点开左上角的文件然后勾选自动保存