课程笔记部分
一、c的起源与发展
- c的起源 c语言是由1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统 的 DEC PDP-11 计算机上使用。它由早期的编程语言它由BCPL(也称b语言),发展而来。
- c的发展 1982年,许多有识之士和美国国家标准协会为了使这个语言良好的发展下去,成立了c标准委员会,建立c语言的标准。1989年,ANSI发布了第一个完整的c语言标准,简称“c89”。1994年,ANSI/ISO联合委员会开始修订c标准,最终发布了“c99”。2011年发布了“c11”
二、为什么学c
-
c的特点
优点:代码量小简洁 速度快 功能强大
缺点:危险性高 开发周期长 可移植性不强
-
c的应用
系统开发:windows、UNIX、Linux
驱动程序:主板驱动、显卡驱动、摄像头驱动
数据库:DB2、Oracle、Sql sever、MySQL
应用软件开发:wps,2D、3D游戏等(cs整个游戏的引擎都是用c写的)
-
c的重要性
1.为学习其他语言(Java、c#、c++)打好基础
2.有史以来最重要的语言
3.一名合格黑客必须掌握的语言
4.最重要的系统windows、UNIX、Linux均用c进行开发
5.所有大学理工科必修课程
6.任何一个想要终身从事程序设计和开发的人员必须熟练掌握的语言
三、怎样学c
最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封——梁肇新
- 学习方法
- 实践很重要只听不动手等于白学
- 看书一本好的教材能引导你
- 学会总结
- 多思考,多实践
- 在动手写程序之前可以把思路写在纸上
- 学习目标
- 了解程序语言及发展历史
- 熟练掌握c语言的语法规则
- 掌握简单的算法
- 理解面向过程的思想
- 为学习c++ 、Java、数据结构、c#打下良好基础
- 做出自己的作品
四、需要掌握的32个关键字
| 关键字 | 说明 |
|---|---|
| auto | 声明自动变量 |
| short | 声明短整型变量或函数 |
| int | 声明整型变量或函数 |
| long | 声明长整型变量或函数 |
| float | 声明浮点型变量或函数 |
| double | 声明双精度变量或函数 |
| char | 声明字符型变量或函数 |
| struct | 声明结构体变量或函数 |
| union | 声明共用数据类型 |
| enum | 声明枚举类型 |
| typedef | 用以给数据类型取别名 |
| const | 声明只读变量 |
| unsigned | 声明无符号类型变量或函数 |
| signed | 声明有符号类型变量或函数 |
| extern | 声明变量是在其他文件正声明 |
| register | 声明寄存器变量 |
| static | 声明静态变量 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| if | 条件语句 |
| else | 条件语句否定分支(与 if 连用) |
| switch | 用于开关语句 |
| case | 开关语句分支 |
| for | 一种循环语句 |
| do | 循环语句的循环体 |
| while | 循环语句的循环条件 |
| goto | 无条件跳转语句 |
| continue | 结束当前循环,开始下一轮循环 |
| break | 跳出当前循环 |
| default | 开关语句中的“其他”分支 |
| sizeof | 计算数据类型长度 |
| return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
上述资料来自C语言中32个关键字详解 - 知乎 zhihu.com)
课程代码实践
1.“欢迎学习c语言”
#include<stdio.h>
int main(){
printf("欢迎大家学习c语言");
return 0;
}
下图为成功运行图示
2.“死机代码”
# include <stdio.h>
# include <malloc.h>
int main(void) {
while (1) { int *p = (int *)malloc(100000); }
return 0; }
include <malloc.h>需要向系统申请内存时要用到malloc函数,所以该代码将内存占满导致死机
3.“一元二次方程改进版”
#include<stdio.h>
#include<math.h>
int main()
{
int a;
int b;
int c;
printf("输入二次项系数:");
scanf("%d",&a);
printf("输入一次项系数:");
scanf("%d",&b);
printf("输入常数项");
scanf("%d",&c);
double delta;
delta=b*b-4*a*c;
if(delta>0){
double x1=(-b+sqrt(delta))/2*a;
double x2=(-b-sqrt(delta))/2*a;
printf("该方程有两根x1=%f,x2=%f",x1,x2);
}else if(delta==0){
double x=-b/2*a;
printf("该方程有两个相同的根%f",x);
}if(delta<0){
printf("无解");
}
return 0;
}
下图为成功图示
4.“嘻嘻,哈哈”
# include <stdio.h>
int main(void)
{
printf("嘻嘻\n");
printf("哈哈");
return 0;
}
下图为成功图示
学习总结
- 学习中遇到的问题 1.因编码方式错误导致无法输出中文
如图所示
解决方法如图所示
2.经常误用中文分号或经常漏写分号