跟郝斌老师复习C语言part1--C语言概述和预备知识

21考研看郝斌老师的数据结构,发现有些C语言的知识已经忘了,顺便复习一下C语言。

一 、C语言概述

1 、为什么学C语言

1.C语言的起源和发展
2.C的特点:
优点:代码量小,速度快,功能强大
缺点:危险性高,开发周期长,可移植性不强
3.C的应用领域
4.C的重要性

2、举例子

32个关键字:(由系统定义,不能重作其他定义)

autobreakcasecharconstcontinuedefaultdo
doubleelseenumextrenfloatforgotoif
intlongregisterreturnshortsignedsizeofstatic
structswitchtypedefunsignedunionvoidwolatilewhile

一个简单的一元二次方程

#include<stdio.h>
#include<math.h>
int main(void)
{
	int a=1;//=表示赋值 
	int b=2;
	int c=1;
	float x1;
	float x2;
	float delta;
	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",x1);
	}
	else{
		printf("无解");
	}	
	return 0;
 } 

二、C语言编程预备知识

1、CPU,内存条,硬盘,显卡,主板,显示器之间的关系

以电影播放为例:文件存储于硬盘中,操作系统将文件中的数据调用到内存条中(因为CPU不能直接处理硬盘中的数据),CPU处理内存条中的文件,处理后的结果是将部分数据变为声音,部分数据变为图像。声音数据发送给声卡,图像通过显卡在显示器上显示。主板组织以上设备。

2、HelloWord程序如何运行起来的

操作系统调用cpu执行.exe文件

3、什么是数据类型

  • 基本类型数据
整数浮点数字符
整型 int 4字节单精度浮点数 float 4字节char 1字节
长整型 long int 8字节双精度浮点数 double 8字节
短整型 short int 2字节
  • 复合类型数据(把基本类型复合在一起)
    结构体
    枚举
    共用体

4、什么是变量

给变量赋的值存放在内存中,程序终止后所其占空间被释放掉
变量的本质是内存中的一段存储空间

5、cpu内存条 vc++6.0 操作系统之间的关系

vc++发出请求,操作系统为其分配空间,vc++将变量和操作系统中对应的内存中的地址编号产生一一对应的关系,最终运行起程序

6、变量为什么必须初始化

所谓初始化就是赋值的意思
垃圾数据:当某软件运行完后,操作系统回收该内存空间(并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用。即软件使用过后的残留数据被称为垃圾数据。
未初始化时,变量中是遗留垃圾值,由编译软件加上填充字的无意义值

7、如何定义变量

数据类型 变量名 = 要赋的值;
等价于:
数据类型 变量名;
变量名=要赋的值;

	int i=3;//等价于int i; i=3;
	int i,j=3;//等价于int i;int j ; j=3;

8、什么是进制

  • 什么叫进制
    N进制就是逢N进一
  • 计算机只识别二进制
  • 为了实际需要建立了八进制和十六进制
  • C语言规定八进制前加0,十六进制前加0x或0X,十进制前什么都不加
  • 在汇编语言中,在数字后面加B表示二进制数,加O表示八进制数,加D表示十进制数,加H表示十六进制数
	int i=77;
	printf("十六进制i=%x\n",i);//4d 
	printf("八进制i=%o\n",i);//115
	/*
	printf 中 %d表示以十进制输出
	%x 或 %X表示以十六进制输出 
	%o 表示以八进制输出 
	*/

不同进制所代表的数值本质上是同一个东西
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

9、常量在C语言中是如何表示的

  • 整数
    十进制:
    十六进制:前面加0x或0X
    八进制:前面加0
  • 浮点数
    传统写法
    科学计数法
	float x=3.7788662e-2;
	printf("%f",x);//0.037789
  • 字符
    单个字符用单引号括起来
    字符串用双引号括起来

10、常量以什么样的二进制代码存储在计算机中

整数是以补码形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质实际也是与整数的存储方式相同

  • 浮点数的存储所带来的问题:
    float和double都不能保证可以精确的存储一个小数
    举例:
    有一个浮点型变量x,如何判断x的值是否为0
    if(|x-0.000001|<=0.000001)
    是0
    else
    不是0
    为什么循环中更新的变量不能定义成浮点型:浮点型非准确存储

11、代码规范化

  • 成对写括号
  • 地位相等不需要缩进,代码属于另一部分代码的内部代码就需要缩进。
  • 换行
  • if,while,for等为了与函数区分,在其与括号之间加空格

12、什么是字节

字节就是存储数据的单位,并且是硬件所能访问的最小单位。
1字节=8位/8bit
1K = 1024字节
1M = 1024K
1G = 1024M

13、不同类型数据之间相互赋值的问题

补码 = 原码取反加一

14、什么是ASCII

	char ch='A';
	//char ch1="AB";// error AB是字符串,不能把字符串赋给单个字符 
	//char ch2="A";// error 字符串默认添加\0 
	//char ch='B';//error 重复定义
	ch = 'C';
	printf("%c\n",ch);//输出C 
	char ch = 'A';
	printf("%d\n",ch);//65

ASCII不是一个值,而是一种规定
ASCII规定了不同的字符使用哪个整数值去表示
它规定了’A’–65,‘a’–97,‘0’–48

15、字符的的存储(字符本质上与整数的存储方式相同)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值