C++程序设计总结

本文详细介绍了C++程序设计的核心概念,包括循环、数组、字符串、类、引用及其应用。讨论了预处理命令、数据类型、运算符优先级、循环控制以及异常处理。还深入讲解了字符串处理函数、数组的初始化与查找、类的构造函数、拷贝构造函数、运算符重载、模板、输入输出和异常处理等关键技术。特别强调了在程序设计中的一些实用技巧和考试重点。
摘要由CSDN通过智能技术生成

 

绪论

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后面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值