绪论
1.机器语言:每个语句用一组二进制数表示
汇编语言:和机器语言一样,不同类的机器有不同的汇编语言,要汇编器处理后机器才懂.
高级语言:需要编译器或解释器翻译后机器才懂
2.预处理命令:
#include <iostream>
using namespace std;
3.int long 4byte Short 2byte float 4byte
4.指数必须为整数 2.5e2.3是非法的
5.优先级: ! > 关系运算符 > && > ||
6.短路求值:逻辑表达式在执行时,先处理左边。如左边已能决定此逻辑表达式的结果,则右边不执行。
7.if-else的配对: else总是与上面最近的、且未配对的if配对
8.(条件) ? 表达式1 : 表达式2 ,首先计算条件值。如果条件结果为true,则计算表达式1的值,并将它作为整个表达式的值。如果条件结果为false,则整个表达式的值为表达式2的值。
循环
1.循环变量可以是其他类型比如字符型:
For(char ch=‘A’;ch<‘Z’;ch++)
for里面的第二句,(循环条件)i<3,不一定是关系表达式,也可以是逻辑表达式,i!=3,甚至可以是算术表达式i=1;只要非0就进行循环,可能出现死循环。
考试范围是啥?
2.break 和continue
Break 是跳出循环
continue是忽略它后面的语句,回到循环控制行,进行下一次循环。跳出当前循环周期
3.基于哨兵的循环:while 和do while
Do{
需要重复的语句
}while(条件)
4.递归的时候,如果前后项有关联,用前项去推后项,而不是重新计算an+1
5.循环控制行执行了第三句就不符合控制条件了,但是这里还是继续执行循环,因为第二句判断的时候i还没有被改变。
for(i=0;i<1;i++){
cout<<i<<endl;
}
6.for 循环的遍历
for(i:{1,2,3,4})
7.default子句省略时,当表达式的值不等于表达式1到表达式n的值时,直接跳出switch语句,执行switch语句的下一语句
8.break跳出当前的switch语句
9.switch 后面跟的只能是常量1,而不是a>1;
数组
1.赋值
方法1:int a[3]={0,1,2};//每个都赋初值,等价于int a[]={0,1,2};可以不用写数据个数,系统自动匹配。
方法2:int a[10]={0,1,2}; //给前三个赋初值,没有被赋值的就是0;初始化表的长度短于要被初始化的数组元素数目,那么剩余元素被初始化为0。
若int a[10]={1};只有第一个是1,给全部的数赋值只能一个一个来。
查找:
1.顺序查找
2.二分查找
int main()
{
int i=0;
int low,high,mid,x;
int a[]={0,1,2,3,4,5,6};
low=0;high=6;
cin>>x;
while(low<high){
mid=(high+low)/2;
if(x==a[mid]) {cout<<"Found!The location is"<<mid<<endl;break;}
else if(x<a[mid])high=mid-1;
else low=mid+1;
}
return 0;
}
排序:都执行n-1次就行,因为不用比较最后一个肯定排好啦。
1.选择排序,左手一个一个向前,右手找右边最小的与左手交换。
int main()
{
int i=0;
int lh,rh;
int a[7]={3,4,2,4,5,63,5};
int low=0,high=6;
for (lh=0; lh<6; lh++) {
i=lh;
for(rh=lh;rh<7;rh++){
if(a[rh]<a[i]){
i=rh;
}
}
swap(a[lh],a[i]);
}
for(int i=0;i<7;i++)cout<<a[i]<<" ";
return 0;
}
2.冒泡排序
for(int i=1;i<n;++i){
for(int k=0;k<n-i;k++){
交换位置
}
}
if(没有变动) break;
}
二维数组
类型名 数组名[行数][列数]
int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
也可以通过花括号把每一行括起来使这种初始化方法表示得更加清晰。
int a[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
为每一行的部分元素赋初值
int a[3][4] = { {1, 2}, {3, 4}, {5}};
字符串
初始化
1.cahr ch[]={‘a’,’b’,’c’};
2.char ch[]=“abc”;
3.char ch[]={“abc”};
一个字符一个字节,分配4个字节
处理函数:
1.strcpy(a,b)//把b复制到a中;
2.strncpy(a,b,n)//至多从b中选取n个字符复制到a中
3.strcat(a,b)//把b拼到a后面