课堂理论知识
1.cpu 内存条 硬盘 显卡 显示器 之间的关系?
- 它们之间的关系可以通过一个例子来说明。比如一部电影是怎样运行的?
- 首先双击这部电影,“双击”是操作系统提供的一个操作。电影本身是放在硬盘上的,当我们通过鼠标对它进行操作后,操作系统就会将硬盘上的这部电影拷贝到内存中。为什么要拷贝到内存中?,因为CPU不能直接处理硬盘上的数据,所以要先将硬盘上的数据拷贝到内存中进行处理。处理的结果就是将一些数据变成图像、一些数据变成声音。图像数据发送给显卡,通过显示器显示出来;声音数据则通过声卡放出来。这基本上就是一部电影的运行过程。
2.hello world程序是怎么运行起来的?
- 通过编译和链接这两个步骤会产生一个
.exe
可执行文件。这个可执行文件是由编译器这个软件生成的。当单击“执行”执行的就是这个 .exe 文件。但这个文件并不是编译器执行的,而是由 CPU 执行的。如果没有操作系统,所有的软件都是不能运行的。所以不要以为编译器可以解决任何问题。它的所有操作也都要靠底层操作系统的支持,并最终靠 CPU 来执行。因为只有操作系统才能控制硬件,所有的软件都不能直接访问硬件。
####3.什么是数据类型? - 基本类型数据
| 整数 | | |
| — | — | — |
| 整形 |int |4个字节|
| 短整型 | shrot int | 2个字节 |
| 长整型| long int | 8个字节 |
浮点数 | ||
---|---|---|
单精度浮点数 | float | 4个字节 |
双精度浮点数 | double | 8个字节 |
字符 | char | 1个字节 |
---|
- 复合类型数据
结构体
枚举体
共用体
4.什么是变量?
- 变量是内存里一段有名字的连续存储空间。
5.cpu 内存条 vc++6.0 操作系统 之间的关系
- 执行C语言程序时,vc++6.0请求操作系统,操作系统从内存条分配空间,vc++6.0 就会把字母 i 和操作系统分配的内存对应。
6.变量为什么必须初始化?
- 所谓初始化就是赋值的意思。
- 内存是在操作系统的统一管理下使用的!
- 1、软件在运行前需向操作系统申请存储空间,在内存空闲足够时,操作系统将分配一段内存空间并将外存中软件拷贝一份存入该内存空间中,并启动该软件的运行;
- 2、当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用。
- 综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据。 所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化.
7.如何定义变量?
- 数据类型 变量名=要赋的值; 等价于 数据类型 变量名; 变量名=要赋的值;
8.什么是进制?
- 进制就是逢几进一,r 进制就是逢 r 进一。计算机只能识别二进制,人类最习惯使用的是十进制,而为了实际需要,又建立了八进制和十六进制。八进制就是逢八进一,十六进制就是逢十六进一。
- C语言中规定了八进制数前面要加
0
(注意是数字零而不是字母 o),十六进制数前面要加0x
或0X
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
9.常量在C语言中是怎么表示的?
整数
- 十进制: 传统的写法
- 十六进制:前面加0x 或0X
- 八进制: 前面加0 (注意是数字零而不是字母O)
浮点数:
- 传统的写法
- Float x =3.2;//传统
科学技术法
- Float x=3.2e3; //x的值是3200
- Float x=123.45e-2;//x的值是1.2345
字符
单个字符用单引号括起来
- ‘A’表示字符A
- ‘AB’ 错误
- “AB”正确
- 字符串用双引号括起来
"A"正确因为"A"表示的是‘A’和‘\0’的组合
10.常量以什么形式储存在代码中?
- 整数是以补码的形式转化为二进制代码存储在计算机中的
- 实数是以IEEE754标准转化为二进制代码存储在计算机中的
- 字符的本质实际也是与整数的存储方式相同
11.代码规范化?
- 代码的可读性更强(容易让自己和别人更清楚的看懂程序)使程序更不容易出错
12.什么是字节?
- 字节就是储存数据的单位,并且是硬件所能访问的最小单位
- 1字节=8位
- 1K=1024字节
- 1M=1024K
- 1G=1024M
13.不同类型数据之间相互赋值的问题
int i =45;
long j=102345;
i=j;
printf("%ld%d\n",i,j);
float x=6.6;
double y=8.8;
printf("%f%lf\n,x,y");`
14.什么是ASCII?
- ASCII不是一个值,而是一种规定, ASCII规定不同的字符是使用哪个整数值去表示 它规定了\
- ‘A’——65
- ‘B’——66
- ‘a’——97
- ‘b’——98
- ‘o’——48
基本的输入与输出函数的用法
printf()–将变量的内容输出到显示器上
- 1.printf(“字符串\n”);
- 2.printf("输出控制符”,输出参数);
- 3.printf(“输出控制符1 输出控制符2.。。”,输出参数1,输出参数2输出控制符和输出参数的个数必须一一对应)
- 4.printf(“输出控制符 非输出控制符”,输出参数);
输出控制符包含如下
为什么需要输出控制符
- 1.01组成的代码可以表示数据也可以表示指令。
- 2.如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果。
scanf()【通过键盘将数据输入到变量中】
用法一
- scanf("输入控制符”,输入参数);
- 功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
用法二
- scanf(“非输入控制符 输入控制符”,输入参数);
- 功能:将从键盘输入控制符所规定的格式的数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入
如何使用scanf编写出高质量代码
- 1.使用scanf之前最好先使用printf提示用户以什么样的方式来输入
- 2.scanf中尽量不要使用非输入控制符,尤其是不要用**\n**
- 3.应该编写代码对用户的非法输入做适当的处理(非重点)
课后作业
名词翻译
中文 | 英文 | 中文 | 英文 |
---|---|---|---|
整数 | integer | 变量 | variable |
字符 | character | 初始化 | initialition |
浮点数 | float | 十进制 | decimal system |
结构体 | structure | 二进制 | binary system |
枚举 | enum | 十六进制 | hexadecimal |
联合 | union | 打印 | printf |
3.10第四题
'\b’的含义是,将光标从当前位置向前(左)移动一个字符(遇到\n或\r则停止移动),并从此位置开始输出后面的字符(空字符\0和换行符\n除外)。
- 1066 int类型 表示为十进制常量。
- 99.44 float类型 表示为单精度浮点数。
- OXAA double类型 表示十六进制常量。
- 2.0e30 double类型 表示为双精度浮点数。
3.10第六题
常量 | 类型 | 转换说明(转换字符) |
---|---|---|
12 | int | %d |
OX3 | unsigned int | %X |
‘C’ | char | %c |
2.34E07 | double | %lf |
‘\040’ | char | %c |
7.0 | float | %f |
3.10第八题
- %d,%ld;
- %f,%c;
###3.11编程练习第一题 - 整数上溢
- 浮点数上溢
- 浮点数下溢