C语言学习大纲 郝斌(讲解)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言概述:
1、为什么学习C语言
1). C的起源和发展
2).C的特点
优点
代码量小速度快功能强大
缺点
危险性高
开发周期长
可移植性不强
3).c的应用领域
主要是系统领域
4).c的重要性
2、怎样学习C语言
3、学习的目标
了解程序语言及发展历史
熟练掌握c语言的语法规则
掌握简单的算法
理解面向过程的思想,这非常有助于将来对面向对象思想的学习能看懂程序
会调试程序
掌握将大问题转化为一系列小问题来求解的思想
为学习c++、数据结构、c#、java打下良好的基础
4、常见的学习问题
1、学习java为什么建议先学习C语言
2、没学过计算机专业的课程能够学懂C语言
3、英语和数学不好能学好C吗
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 unsigned
union void volatile while
5、课程规划
c语言简介
第一讲、基本编程知识
第二讲、数据类型
第三讲、运算符和表达式
第四讲、流程控制(所有语言都一样的)
第五讲、函数(体现出面向过程和面向对象的区别)
第六讲、数组
第七讲、指针(c语言的灵魂)
第八讲、变量的作用域和存储方式
第九讲、扩展数据类型
第十讲、专题:
字符串的处理
进制转换
补码
动态内存分配(java、数据结构必学)
综合应用:链表的使用
6、举例子:一元二次方程
# include
# include
int main (void)
{
//把三个系数保存到计算机中
int a=1; //=不表示相等,表示赋值
int b=2;
int c=3;
double delta; //delta存放的是b*b-4*a*c
double x1; //存放一元二次方程的其中一个解
double 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)/(2*a);
x1=x2; //右边赋给左边
printf("该一元二次方程有一个唯一解,x1 =
x2=%f\n",x1);
}
else
{
printf("无解\n");
}
}
Helloword程序举例
# include
int main(void)
{
printf("欢迎大家学习C语言!");
return 0;
}
C语言编写的病毒举例:
1、龌龊的程序:
/*
龌龊的程序!
/*
# include
# include
# include
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;
}
2、内存泄露(占满内存)程序导致死机实例
# include
# include
int main(void)
{
while (1)
{
int *p = (int*)malloc(1000);
}
return 0;
}