C语言特点:
C语言优点与缺点 |
---|
代码量小、速度快、功能强大 |
危险高、开发周期长、可移植性不强 |
C语言的应用领域:
系统软件开发:
操作系统
:windows(C,C++)、Linux(C)、Unix(C)。驱动程序
:主板、显卡、摄像头驱动。数据库
:DB2、Oracle、Sql Server。
应用软件开发:
- 办公软件:WPS
- 图形图像多媒体: ACDSee 、Photoshop、 MediaPlayer
- 嵌入式开发:智能手机、掌上电脑。
- 游戏开发:2D、3D
一个简单的C程序:求一元二次方程的解
#include <stdio.h>
#include <math.h> //sqrt()头文件
int main(){
//把三个系数保存到计算机中
int a = 1;
int b = 5;
int c = 6;
double delta;
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);
x2 = x1;
printf("该一元二次方程有唯一解,x1 = x2 = %f\n",x1);
}else{
printf("无解\n");
}
return 0;
}
C语言编程预备知识:
(一):cpu 、内存条、硬盘、显卡、主板、显示器、之间的关系。
- 主板:通过主板将各个硬件组装在一起。
- 通过播放视频为例:鼠标双击击视频,操作系统就把视屏内容从外存(硬盘)拷贝到内存(内存条),cpu处理内存条中的数据,视频传给显示器,音频传给声卡。
(二):HelloWorld程序时如何运行起来的?
# include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
- 通过编译与链接生成一个.exe文件,编译软件请求操作系统调用cpu执行这个.exe文件
(三)什么是数据类型?
基本数据类型:
整数:
- 整型 ——— int
- 短整型———short int
- 长整型———long int
浮点数:
- 单精度浮点数——float
- 双精度浮点数——double
字符:char
符合数据类型:结构体、枚举、共用体
(四)什么是变量?
变量的本质就是在内存中对应一段存储空间
(五)变量为什么必须初始化?
- 当一个程序运行完毕后,操作系统将回收这部分内存空间,(注意:
操作系统并不清空该内存遗留下来的数据,而是允许其他程序覆盖该内存内容
) - 初始化就是赋初值
- 以前程序运行完毕后,遗留在内存中的数据——————称为
垃圾数据
(六)如何定义变量?
- 数据类型 变量名 = 初始值;
- 数据类型 变量名 ; 变量名 = 初始值;
- C语言以 ;号作为一个语句的分隔符
(六)什么是进制?
生活中用到进制的例子:
一周7天————7进制、一年12个月————12进制、一个小时60分钟————60进制
进制就是逢几进一,我们常说的N进制就是指逢N进一。
- C语言规定
八进制前面要加0(不是字母o),十六进制要加0x或0X,(不是字母o)
十进制什么也不加。 - 在汇编语言中,数字后面加
B表示二进制
,O(大小字母O)表示八进制
,D表示十进制
,H表示十六进制
。 - 十六进制:A----10、B----11、C----12、D----13、E----14、F----15
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制输出
%o表示以八进制输出
*/
return 0;
}
(七)什么是常量?
- 常量是什么:
常量是程序中其值不发生变化的量。
整数常量:
- 十进制、十六进制、8进制数
浮点数常量:
- 传统写法: float x = 3.2
注 3.2就是浮点型常量,x是float类型变量
- 科学计数法:
- float x = 3.2e3 //x的值为3200
- float x = 12.456e-2 //x的值为0.12456
字符常量:char
- 单个字符用单引号括起来----------’’, 如 :‘a’
- 字符串用双引号括起来------------"" , 如:“abc”
- ‘a’--------"a"的区别:“a”是有‘a’与‘\0’的组合,‘\0’字符串结尾标志
(八)常量是以什么样的二进制代码存储在计算机中?
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质耶与整数的本质相同—————字符通过ASCII码转换为对应的整数然后转换为补码
(九)char使用常见问题解析
# include <stdio.h>
int main(void)
{
char ch = 'A'; //4行 OK 等价 char ch; ch = 'A';
// char ch = "AB"; //error 因为"AB"是字符串, 我们不能把字符串赋给单个字符变量
// char ch = "A"; //error,“A”是有‘A’与‘\0’的组合,‘\0’字符串结尾标志
// char ch = 'AB'; //'AB'是错误的
// char ch = 'B'; //error, 因为ch变量已经在4行定义了, 这样会导致变量名被重复定义
ch = 'C';
ch = 'D';
printf("%c\n", ch);
return 0;
}
(十)什么是ASCII码
它是一种编码规定,规定了不同的字符是用那个整数数值去表示
如:‘A’------------65、‘B’--------------66、‘a’--------------------97、‘b’-----------------98、‘0’--------------------48