天天看点

c++学期末总结1.学习感想:2.最后的学习内容补充总结:

目录

1.学习感想:

2.最后的学习内容补充总结:

(1).退出程序/函数:

(2).标志变量:bool与Boolean

(3).最大公约数与最小公倍数的求法:

最大公约数求法1:一个个试

最大公约数求法2:辗转相减

最大公约数求法3:辗转相除

最小公倍数求法:

(4).筛法

(5).全局变量与局部变量

(6).函数

1.函数的基本实现原理:

2.写函数与调用函数:

3.虚实结合:

(7).指针

1.学习感想:

半年的学习生活结束了,转眼间我们已经步入大学四个月了,刚进入大学的激动与渴望提升自己的热切已经过去,我好像真的像老师说的一样进入了怠惰期,虽然每天都努力去自习室,但是不想学习的思想依旧侵蚀着我,可能这就是我跟那些会着急于即将末尾的人不同的一点——热情逐渐消失,即使是天大的事情也无法将我的热情变回以往。

但是我相信我不是一个会轻易放弃的人,即使始在现在这个令我堕落的时期,我也会熬过去,就像过去的十八年一样,努力做一个一直都在努力的人。

2.最后的学习内容补充总结:

(1).退出程序/函数:

break:退出最内层循环。

exit(0):退出操作系统。强制结束程序(正常运行程序且退出),在某些时刻有用。exit(1):非正常运行导致的退出。都是系统自带的退出程序(直接退出程序,与return不同,return是退出函数)的手段。

(2).标志变量:bool与Boolean

在c++中,我们习惯用bool来完成只有两个取值的定量,取true(注意拼写问题)为真,取false为假。只占一个字节数,十分节省内存。(实际上是只有一个符合的char变量)

我们或许会看见Boolean这种和bool长相极为相似的函数,经过查找,我发现了,bool定义的是有符号的char变量,而Boolean定义的是无符号的char变量(还不懂有什么区别···)

(3).最大公约数与最小公倍数的求法:

两个数:m、n;

最大公约数求法1:一个个试

求出m、n中较小的那一个,利用for循环一个一个除,看看最大的为哪一个数。

int m,n,i;
if(m>n)
swap(m,n);
i=m;//设m为较小的那个数。
while(i>=1)
{
    if(m%i!=0||n%i!=0)
    i--;
    else
    {
        cout<<i<<endl;
        break;
    }
}
return 0;
           

最大公约数求法2:辗转相减

m与n互相减去。大的等于差,直到两个相等,求出最大公约数。

int m,n;
while(m!=n)
{
    if(m>n)
    m=m-n;
    else if(n>m)
    n=n-m;
}
cout<<b;
return 0;
           

最大公约数求法3:辗转相除

跟相减差不多,这次变成了余数。

int m,n,r;
if(n>m)
swap(m,n);
r=m%n;
while(m%n!=0)
{
    m=n;
    n=r;
    r=m%n;
}
cout<<n;
           

最小公倍数求法:

最小公倍数=m*n/最大公约数。

(4).筛法

就像筛子一样,把不合格的都筛除掉。常用来求素数及类似反方向比较容易求得的问题。

求素数的筛法代码实现:

//例如求100以内的素数
bool a[101];
int main()
{
    for(int i=0;i<100;i++)a[i]=true;
    a[1]=false;
    for(int i=2;i<=sqrt(100);i++)
    {
        if(a[i])
        {
            for(int j=2;j<=100/i;j++)
            a[j*i]=false;
        }
    }
}
           

(5).全局变量与局部变量

全局变量容量更大,开大的数组的时候不会越界,而局部变量小一点,二维数组稍稍开大点都会越界。

全局变量还可以保证函数的实参和形参相互渗透。若用局部变量,一般情况下形参不可以传值给实参。

(6).函数

函数是为了实现一个独立的功能。要先定义,再调用。需要这个功能时用实参调用函数即可。

1.函数的基本实现原理:

对形参进行处理,结果以return形式返回。void函数无返回值。

2.写函数与调用函数:

1.写函数格式:类型  函数名(形参表)<形参无确定参数,谁来都可以。

2.函数的调用形式:函数名(实际参数表)。

注意:调用函数写时不需要写函数类型。因为调用的实参是已经知道了内容的,有确定的值,自然也知道了类型,所以不需要类型的。形参不一样,没有确定的值,必须要写类型。

3.为什么不是先定义函数在主函数之前,就要声明函数呢?

因为函数定义在后面系统不知道要分配多少内存。

4.函数声明格式:类型  函数名(形参表(可以只写类型,不用写a、b、c··· ···因为要分配空间啦))

5.传值参数:要是函数调用时,实参和形参类型不同,也会进行强制类型转换,将实参的类型强制转换为形参的类型。

实参形参相互合:赋值语句。:将实参赋值到形参中,再进行运算。所以函数的调用相当于赋值,对实参没有任何影响。那么如何使实参受到影响呢?

3.虚实结合:

(1).引用。

使用方法:类型名&引用名=某变量名。

相当于用不同名称代表一个变量。对引用名改变时对变量也改变。

void swap(int & a,int & b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}
int n1,n2;
swap(n1,n2);
           

这样就能对实参造成影响了。

(2).指针变量:

内容为存储地址的变量。他指向的地址上存放的变量是目标变量。

void swap(int*x,int*y)
{
    int t;
    t=*x;
    *x=*y;
    *y=t;
}
swap(a,b);
           

(7).指针

c里面指针是最难的一部分。还没有系统的学习,但是老师已经介绍了一点点。我就粗略的整理一下。

指针里面存储的数值被解释成内存里的地址,这个称作指针的值。

指针定义:类型标识符*变量名。

*i=&r取地址运算。

*i=3取内容运算。

i++指向下一个地址。相当于i[1]→i[2]。