数值算法 和 非数值算法
有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出
1.vim 1.c ----> 2.写代码---->3.gcc 1.c ----> 4.生成a.out -----> 5./a.out
1.字母数字下划线;
2.区分大小写;
3.标识符的名字要见名知义;
4.首字母必须下划线和字母
原码、反码、补码
整数的原码、反码、补码一样
有符号的数值,反码将原码的除符号位,0变,1变0;补码在反码基础上加2;
单精度(float)、双精度(double)、长双精度(long double)
十进制、八进制、十六进制
int 1500
long 1500L
unsigned int 1500U
十进制小数形式、指数形式、float类型实常量
/n :回车换行 /r :回车
/b :退格 /t :table 键
/ddd :1~3位八进制数所代表的字符
/xhh :1~2位十六位进制数所代表的字符
‘A’ :65 ‘a’ :97 ’ (空格)’ :32
‘0’ :48
字符串常量是由一对双引号括起的字符序列.
#define N 10 //将N默认为10
基本型、短整型、长整型、无符号型
float :占4字节,提供7位有效数字
double :占8字节,提供16位有效数字
char a = ‘A’; 可以与int数据进行运算
小端模式:低位存放在低地址当中;
大端模式:低位字节存放在高地址当中;
输出字符到显示器
从键盘上读取一个字符
%:格式说明的起始符号
-:左对齐,不加-则补空格右对齐;
0:指定空位
m.n:表示宽度为m,若宽度大于m,则原样输出;可以用*.*来代替,将数字传递进去;
相当与给删除掉,不要;
scanf("%3d%*4d%f",&k,&f); //输入123456789.256
//则k =123 , 4567由于抑制符所以不要; f = 89.256
#include
// 添加头文件
#include
// 添加头文件
double sqrt(double )
double fbs(double)
double pow(double x, double y)
#include
// 添加头文件
int a = rand();
void srand (time(NULL)) // 需要添加头文件
exit(0);
如果main函数里面不传入实参的话,推荐使用int main(void);如果有实参传入的话,则不需要添加void在main函数里面。
整数在内存中是以补码存取的,正数的补码:等于自己,负数的补码:取反加1,例如:127在内存中表示为0111 1111, -127在内存中表示为~(0111 1111)+1=1000 0001; 假定某内存单元p的内容是1111 1111,那么它一定是255吗?实际上取决于你的代码是要把它看成有符号还是无符号数,如果是无符号则表示255,如果是有符号则表示-1【对于有符号数,最高位为符号位,1表示负,0表示正】:
因为在现在的电脑系统中一般都是32位或者64位的操作系统,所以用十六进制数比较方便,而且便于操作。
当时用getchar()输入函数时::检测到回车,数据首先会被写入到输入缓存区,然后将缓存区里面的内容逐个取走;若数据没有被完全取光,显示界面不然不会出现阻塞区,而是直接会输出缓存区中的等待字符【回车也会被当做指令写入到输入缓存区】;
%*抑制符可以将输入的回车删除,直接输入下一个字符。
转成二进制后四位必定为0,则能被16整除
if (X & 0x0F == 0) // 说明能被16整除
A.2.3F
B.3.1e0.5
C.800U
D.18UL
ACD:c选项中的指数型e后只能跟随整数,D选项UL表示 unsigned long
if(a > -0.000001 && a < 0.000001)
这里的‘’* . *表示宽度为7,保留三位小数,可以很灵活的控制输出格式。
short —%hd
unsigned short —%hhd
char – %hhd:char要用十进制输出
unsigned char:要用%hhu
long --%ld
unsigned long —%lu
#include
int main()
{
char ch[4] = {'1','2','3','\0'};
int *p = (int *)ch;
printf("%d",*p);
return 0;
}
原因是0x31转换成十进制就表示49,ASCLL码表示字符‘1’
1 #include
2 #include
4 #define profit_rate 0.2
9 int main()
10 {
11
12 double BenJing,Money_Sum,lixi;
13 int date;
14 printf("请输入您要新存的本金(万)和年限:\n");
15 scanf("%lf %d",&BenJing,&date);
16 Money_Sum = BenJing + BenJing*date*profit_rate;
17 lixi = BenJing * profit_rate;
18
19 printf("您的本金总和为:%.2lf\n利息一共为:%.2lf\n",Money_Sum,lixi);
20 return 0;
21 }
1 #include
2 #include
3 #include
4 #include
5
6 int main()
7 {
8 int a;
9 srand(time(NULL));
10 a = rand();
11 printf("%d\n",a%100);
12
13 return 0;
14 }
通过了这一天对C语言的学习,让我在以前对C语言的理解基础上接触到了更深层次的知识点,比如抑制符、printf函数的输出格式、算法的分类和特点;以及对补码和数据溢出的理解更加深刻。更多接触到的是以前没有接触过的领域,也对这些比较难的知识点有了更深的认识。
学习的过程中任然存着很多不明白的知识,我也都记录了下来,希望能在后续的学习过程中一步一步的攻克;