期末备考(3)

1.进制转化

2.字节及原补反码

3.常量

4.运算符的多层含义

5.指针理解

6.错题积累

7.基础算法

一.进制转化

1.各进制转为十进制:加权法

2.十进制转为其他进制:逆序除以该进制

3.八、十六进制转化为二进制: 写为2^n 按八进制和十六进制各自特殊符号,其中注意的是八进制三位,十六进制四位。

二.字节及原补反码

1.bit 代表二进制的一位数字 是计算机存储数据的方式

2.Byte 1Byte=8bit 一个字节常表示一个字符或是一个数字
**特别注意的是字节通常简写为“B”,而位通常简写为小写“b”

3.1kb=2^10 b (因为1024与1000最接近 故用1024来近似计算)

4.原码 补码 反码:
原码即为该数的二进制表示由于有符号区别 在8位中首位用来表示正负,即0代表正,1为负。
正数的反码即为原码,负数的反码除符号位不变,其余均相反。
补码是各数的反码加一

三.常量

1.’ \n’代表一个字符,“\n”代表一个字符串

2.类型字节数:char 1 short 2 int 4 long long int 8
float 4 (6位有效字符) double 8 (15位有效字符)

四.运算符理解

运算符总的来说包括:符号 参数 运算规则 返回值

1.[ ] (1)开辟数组空间
(2)代表二元运算符 例如a[b] (返回*(a+b))a为地址b偏移量
给多维数组赋值最好采用a[2][2]={{0},{0}};

2.*(1)乘法运算符
(2)声明指针变量
(3)间接运算符取地址量
(2)(3)区别在于运算元数不同

五.指针理解

1.对于指针变量 *p需先有指向地址,才可以进行赋值

2.注意地址符的书写&

3.指针变量初始化和赋值

int *p=&ch;
int *p;
	p=&ch;

这两种效果相同

4.对于**p的理解:
可以看成*(*p)即声明一个指针变量 变量名为(*p) 即p为地址

5.注意++*p和 *++p
++*p=*p+1
++p=(p+1)

6.复杂类型与指针结合
*通常有两种命名方式(1)(p).a (2)p->a

指向自身的结构体例子:

struct tag_3{
    int value;
    struct tag_3 *link; 
};
typedef struct tag_3 NODE;

或者

struct tag_2;
typedef struct tag_2 NODE;
struct tag_2{
    int value;
    NODE *link;   
};

六.错题积累

1.结构体数组定义`

struct person class[10]

2.结构体类型名

typedef struct S
{
	int g;
	char h;
}T; 

可用T定义结构体变量

3.函数调用与定义数组的区别
调用sort(str);
定义sort (str[n])(数组和地址定义函数传参时都需这样)
注意此处数组区别

4.a[]={010}
此题易错需注意0
10=0所以可以这样赋初值

5.for(A; ;B)
此处空为1,即为真就会执行

6.字符串读和赋值需注意‘\0’来结尾

七.基础算法

#include<stdio.h>
max (int a,int b)
{
	return a>b?a:b;
}
sushu(int n)
{
	if(n<=1) return 0;
	for(int i=0;i*i<n;i++)
	if(n%i==0) return 1;
	else return 0;
}
gcd(int m,int n)
{
	int min=(m>n?n:m);
	for(int i=n;i>0;i--)
	if(m%i==0&&n%i==0) return 1;
	else return 0;
}
vcd(int a,int b)
{
	return b?vcd(b,a%b):a;
}
Icm(int a,int b)
{
	return a*b/vcd(a,b);
}

cal(int n)
{
	return n<=1?1:n*cal(n-1);
}

fib(int n)
{
	return n<=2?1:fib(n-1)+fib(n-2);
}
main()
{
	int a=3,b=5,c=6,d=8;
	printf("%d\n%d\n",max(max(a,b),max(c,d)),Icm(c,d));
 } 

此处包括比大小 素数 最大公约数(辗转相除法) 最大公倍数 阶乘
斐波那契数列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值