学习笔记——C语言编程预备知识
1.CPU 内存条 硬盘 显卡 主板显示器 之间的关系
操作系统提供操作 CPU不能够直接处理硬盘上的数据,操作是先把硬盘上的数据调到内存条中,再有CPU处理,由显卡在显示器上输出,主板是中间传输的设备
2.HelloWorld程序是如何运行起来的
结果是生成一个可执行的exe程序,软件会请求操作系统调用CPU执行这个exe程序,所有运行都是通过CPU运行,编译软件不能直接控制操作系统,因为比较危险
3.什么是数据类型
基本类型数据:整数:整形---int-----4字节
短整型---short int-----2字节
长整型---long int----8字节
Int i=10; 表示i变量是整形变量,所谓整形变量就是指i只能存放整数,不能存放实数。
浮点数(实数):
单精度浮点数---float 4字节
双精度浮点数---double 8字节
数据比较小就用单精度浮点数保存,多数据就用双精度浮点数保存,防止数据丢失
字符(char):
单个字符-----1字节
字符串---一系列字符的组合
复合类型数据:
结构体
枚举
共用体
4.什么是变量
输出的变量最终是存放在内存中,在内存条中找到空间与变量产生关联,程序终止之后输出的变量所占的空间被释放掉
例:int I I=3; 变量的本质就是内存中一段存储空间
5.CPU 内存条 VC++6.0 操作系统之间的关系
CPU处理内存条上的数据,VC++6.0编辑出变量来使用内存条上的空间,然后请求操作系统运用CPU来处理内存条上的变量
6.变量为什么必须的初始化
所谓初始化就是赋值的意思,仅定义没有赋值,会自动放入填充值,没有实际意义 一个软件所分配的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据,通常情况下为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化
7.如何定义变量
数据类型 变量名 =要赋的值 等价于 数据类型 变量名
变量名=要赋的值
举例子: int i=3; 等价于 int i; i=3;
Int i,j; 等价于 int i; int j;
Int I,j=3; 等价于int i; int j; j=3;
int i,j; i=j=5 等价于 int I; i=5; int j; j=5;
8.什么是进制
十进制就是逢十进一
二进制就是逢二进一
计算机只识别二进制,人类习惯使用十进制,为实际需要又建立了八进制和十六进制
C语言规定八进制前要加0(注意是零不是字母O),十六进制前要加0x或0X,十进制前什么都不加
数字后加B表示二进制数,加字母O表示八进制数,加字母D表示十进制数,加字母H表示十六进制数
Printf的用法
%d表示以十进制输出
%x或%X表示以十六进制输出
%o表示以八进制输出
#include
int main(void)
{
int i=015;//八进制前面加0
printf("%d\n",i);
return 0;
}
#include
int main(void)
{
int i=98;
printf("i=%d\n",i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制输出
%o表示以八进制输出
*/
return 0;
}
9.常量在C语言中是如何表示的
整数:
十进制:传统的写法
十六进制:前面加0x或0X
八进制:前面加0 注意是数字0不是字母O
浮点数:
传统的写法
Float x =3.2;//传统
科学技术法
Float x=3.2e3; //x的值是3200
Float x=123.45e-2;//x的值是1.2345
字符
单个字符用单引号括起来 ‘A’表示字符A “AB”表示字符串AB
字符串用双引号括起来
# include
int main(void)
{
float x=123.45e-2;
printf("%f\n",x);
return 0;
}
10.常量以什么样的二进制代码存储在计算机中
整数是以补码的形式转化为二进制代码存储在计算机中的 实数是以IEEE764标准转化为二进制代码存储在计算机中的 字符的本质实际也是与整数的存储方式相同
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
Ubuntu pastebin
分享代码 Ubuntu Pastebin
名词翻译
| 中文 | 英文 | 中文 | 英文 |
|---|---|---|---|
| 整数 | integer | 变量 | variate |
| 字符 | character | 初始化 | initialize |
| 浮点数 | float | 十进制 | decimalism |
| 结构体 | structural body | 二进制 | binary system |
| 枚举 | enumeration | 十六进制 | hexadecimal |
| 联合 | unite | 打印 |
课后习题
指出下列常量的类型和含义(如果有的话)
a.‘\b’
单引号表示字符类型常量,‘\’表示转义,‘\b’表示退格
b.1066;
1066是一个int型数据常量
c.99.44
表示双精度浮点型数据常量
d.0xAA
0xAA表示十六进制unsigned int 类型数据常量,也解释为无符号类型
e.2.0e30
表示双精度浮点类数据常量
写出下列常量在声明中使用的数据类型和在printf()中对应的转换说明
| 常量 | 类型 | 转换说明(%转换字符) | |
|---|---|---|---|
| 12 | int | %d | |
| 0X3 | unsigned int | %#X | |
| ‘C’ | char | %c | |
| 2.34E07 | double | %e | |
| ‘\040’ | char | %c | |
| 7.0 | double | %f |
假设程序的开头有下列声明
int imate =2;
long shot =53456;
char grade =‘A’;
float log =2.71828
把下面printf()语句中的转换字符补充完整
printf(“The odds against the %d were %ld to 1.\n”,imate,shot);
printf(“A score fo %f is not an %c grade.\n”,log,grade);
编程练习
第一题
整数上溢
浮点数上溢
浮点数下溢
提示输入一个ASCII码值
提示用户输入名和姓
提示用户输入身高和姓名
设置变量
#include
#include
int main(void)
{
double d_third = 1.0/3.0;
float f_third =1.0/3.0;
printf("float of one third(6)=%.6f\n",f_third);
printf("float of one third(12)=%.12f\n",f_third);
printf("float of one third(16)=%.16f\n",f_third);
printf("double of one third (6)=%.61f\n",d_third);
printf("double of one third(12)=%.121f\n",d_third);
printf("double of one third(16)=%.161f\n",d_third);
printf("FLT_DTG in float.h is %d\n",FLT_DIG);
printf("DBL_DIG in float.h is %d\n",DBL_DIG);
return 0;