1>视频主要学习笔记
一、cpu 内存条 硬盘 显卡(声卡等)主板显示器 电脑操作系统之间的关系
- 假设点击主板显示器的一个键,这时电脑操作系统接受指令将对硬盘存储的数据进行调用,调用至内存条里,然后cpu接受指令将对内存条里的数据进行处理,cpu又控制其他显卡等部件将处理结果在主板显示器中进行运行。这就是整个电脑背后的处理系统
二、数据类型
* 基本数据类型
1、整数
整型:int(字节4)——%d
短整型:short int(字节2)——%hd
长整型:long int(字节8)——%ld
(一个字节对应8位)
2、浮点数(实数)
单精度:float(字节8)——%f
双精度:double(字节16)——%lf
3、字符
char(1字节)——%c
* 复合数据类型
1、结构体
2、枚举
3、共用体
三、变量的本质
C语言中变量的本质
就是内存条的某个空闲的空间。程序运行时,当变量被赋值时,这个空闲的空间就被储存数据,然后被用于cpu计算处理,当程序结束后,这个内存的空间又将这个数据释放出来。
四、进制
*1、计算机只识别二进制
*2、进制的表示方法
-
c语言中
二进制只有0和1组成,其表示符号为0b123(最前面加0b(B)) 八进制有0-7组成,其表示符号为0123(最开始前面加个零) 16进制有1-9,a-f组成,其表示符号为0x(X)34f6(最前面加0x(X))
赋值时表示方法
-
汇编语言中
数字后加B,表示二进制,如1011B 数字后家O,表示八进制,如1345O(字母o) 数字后加H,表示16进制,如3FB7H
五、常量在C语言中是如何表示的?
*整数
10进制,二进制,八进制,十六进制
*浮点数
传统方法(小数点):1223.556 0.0056
科学计数法:1.223556e3 5.6e-3
*字符
1,单个字符用''括起来(而不是中文的‘’)
如'a'为不是‘a’
2,多个字符用""括起来
如"AS"
六、二进制存储在计算机的形式
二进制以补码形式存储;辨明原码,反码,补码的区别(正数相同,负数有区别)
1,整数以补码形式存储在计算机中
2,实数以IEEE754形式存储在计算机中
(字符的本质存储方式与整数一样
)
七、代码的规范化及如何更好保存有价值的代码的习惯
*代码规范化
1、添加注释的必要性
2、流程图中的语法嵌套要有结构分明的感觉(这个可通过格式化文档)
*保存习惯
八、什么是字节?
字节是储存数据的单位,并且是硬件
所能访问到的最小单位
一字节=8位
1k=1024字节
1M=1024k
1G=1024M
九、什么是ASCLL码?
ASCLL码不是一个值,而是一种规定
ASCLL码规定不同的字符是使用哪个数值去表示
十、定义中的一些问题
*变量不能被重复定义,只能重复运算
例如,int a=1; int a=2;进行了多次定义是错误的
只能int a=1;a=2;a=3;这是可以的
如下图所示
*char i,变量i只能存放一个字节
如char i='A'正确
char i="AB"错误(两个字节)
char i="A"错误("A"表示是'\o'与'A'的组合,也为两个字节)
十一、使用printf
*三种类型
printf("字符串")(字符串既可以是数字也可以是文字)
printf("输出控制符....",a,,,,)
(遵循控制符和变量数量上和类型上一一对应)
printf("输出控制符和非输出控制符组合",变量,,,)
(非控制符原样输出)
*为什么printf中要有输出控制符?
因为程序在运行时都是电脑后台系统在计算运行,而处理的数据都是二进制数据。
(二进制01组成的代码表示的是数据也可以是指令)
这时程序运行结束(计算结束),你想输出什么是通过用不同的输出控制符来将二进制01组成的代码转换不同的输出结果
(而这个结果可以是图像,数字,声音等)
*printf的进制控制符(整数)
十六进制:%x(输出小写a~f)
%X(输出大写A~F)
%#x(X)(输出0x(X),小写,大写)
十进制:%d %ld %hd
八进制:%o(字母o)
编代码后运行结果如下
十二、使用scanf(键盘输入)
*几种类型
scanf("%d%f",&a,&b);(不含非控制符)
输入时以空格/回车键..分开对应数据,如 3 5
scanf("%d,%f",&a,&b);(含非控制符)
输入时非控制符原样输入 如 1,3
scanf("%d%c%f",%a,%h,%b);(含有字符输入且夹在数字中间区分的)
输入时可以空格,也可以直接输入
如4 b 56 如4b56 都可以
*高质量scanf输入
1.使用scanf之前最好先用printf提示要输入什么内容
2.scanf使用尽量不要使用非控制符
3.用户的垃圾输入处理
用一个结构来处理
char ch;
while (ch=gatcher()!='\n')
continue;
2>作业
一、3.10
第四题
常量 | 类型 | 含义 |
---|---|---|
' \b' | 字符型 | 转义符 |
1066 | 整型 | 十进制 |
99.44 | 浮点型 | 传统表示 |
0XAA | 整形 | 十六进制 |
2.0e30 | 浮点型 | 科学计数法 |
第六题
常量 | 类型 | 转换字符 |
---|---|---|
12 | 整型 | %d |
0x3 | 整型 | %x或%X或%#X |
'c' | 字符型 | %c |
2.34E07 | 浮点型 | %lf |
'\040' | 字符型(转义符) | %c(重点 ) |
7.0 | 浮点型 | %f |
第八题
printf("The odds against the % d
were %ld
to 1.\n ",imate,shot);
printf("A sore of %f
is not an %c
grade.\n".log,grade)
二、3.11
第一题
整数上溢,浮点数上溢下溢问题
代码如下(网站
:(paste.ubuntu.com/p/W4vjD2Qzq…
int main()
{
int a=0xfffffffffff;
float b=999999999999999999.45;
float c=-1111111111111119999.43;
printf("%d,%f,%f",a,b,c);
return 0;
}
电脑上运行结果
第二题
ASCll码值
代码如下(网站
:(paste.ubuntu.com/p/BxXqdRkkG…
int main()
{
int a;
printf("输入一个ASCII码值:");
scanf("%d", &a);
printf("%c", a); //转化为对应字符
return 0;
}
运行后如下
三、4.8
第一题
字符串的输出输入
代码如下(网站
:paste.ubuntu.com/p/K2k2CS5MK…
int main()
{
printf("分别输入你的名和姓(用拼音,并用空格分隔开):");
char g[5], a[5];
scanf("%s%s", &g, &a);
printf("名:%s,姓:%s", g, a);
return 0;
}
运行后如下
第四题
身高,姓名输入输出
代码如下(网站
:(paste.ubuntu.com/p/9JbSwXRv2…
int main()
{
char g[10];
float a;
printf("依次输入身高(厘米),姓名,中间以逗号分隔开:\n");
scanf("%f,%s", &a, &g);
a = a / 100; //将单位厘米转化为米
printf("%s,you are %.3f feet tall\n", g,a );
return 0;
}
运行后如下
第七题
验证float与double精度的区别
代码如下(网站
:(paste.ubuntu.com/p/PhK7TYx8t…
int main()
{
float a;
double b;
a=1.0/3.0;
b=1.0/3.0;
printf("%.6f,%.6lf\n",a,b);
printf("%.12f,%.12lf\n",a,b);
printf("%.16f,%.16lf\n",a,b);
return 0;
}
运行后如下
四、名词翻译
中文 | 英文 | 中文 | 英文 |
---|---|---|---|
整数 | integer | 变量 | variable |
字符 | character | 初始化 | initialization |
浮点数 | floating point | 十进制 | decimal |
结构体 | structure | 二进制 | binary |
枚举 | enumerate | 十六进制 | hexadecimal |
联合 | joint | 打印 |