对整个程序设计的知识整理

觉得自己在C++这方面真的没有掌握的东西还有太多,希望自己在这半个月不到的时间内能尽可能弥补自己的空缺,以下是我利用课件和课外查阅的一些资料做的一些笔记,肯定还有很多很多不完善的地方,但是还是希望能通过自己的努力一点点的去改正。

 

第一章         绪论

一、课件知识点

  1. 机器语言

由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。

2. 汇编语言

将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。

3. 高级语言

屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定含义的数据命名和容易理解的执行语句。

4. 结构化程序设计的基本结构

每个模块内部都由三种基本结构组成。

模块的具体实现是使用子程序(函数)

 

5.面向对象的程序设计核心概念:对象、消息;类、实例

① 客观世界中的事物→抽象为“对象”

② 把所有对象的共性划分为对象类,每个类定义一组数据和一组方法(也叫操作,或,服务)

③ 每个对象属于一个类,称为该类的一个实例。

类与对象的关系是抽象与具体。

④ 对象和对象之间通过消息通信。

6.面向对象程序设计的基本特征:抽象性、封装性、继承性、多态性

7. 二进制的优点:

① 易于物理实现

② 运算简单

③ 机器可靠性高

④ 通用性强

二进制的缺点:

.用二进制表示一个数时,位数太多,太繁琐

.难于记忆,可读性差。

8.原码,反码,补码

(a) 原码

     能表示有符号数的范围为:-127~+127

     0有两种表示形式:[+0]原=0000 0000    [-0]原=1000 0000

(b) 反码

    能表示有符号数的范围为:-127~+127

    0有两种表示形式:[+0]反=0000 0000    [-0]反=1111 1111

(c) 补码

    有符号数的范围为:-128~+127

    在补码表示中,0有唯一的表示形式:[+0]补=[-0]补=0000 0000

    多出来的这个补码1000 0000被用来表示-128

二、自己对第一章的梳理

这一章主要是对一些概念性问题的掌握,各类语言的特点,编写程序的一些过程。

熟悉计算机存储的方式。

第二章        C++简单程序设计

一.    课件理解

1. 数据类型影响/决定:

① 数据占内存字节数

② 数据取值范围

③ 其上可进行的操作

2.常量(字面常量、符号常量)

const 说明,是语句,末尾有分号

例:const int N=10;

3,。变量的说明

<类型说明符><变量名表>;

4.sizeof运算符用来测试某类型数所占字节数

5.控制结构语句

if-else语句嵌套使用时,要注意if与else的正确配对。必要时,需要用{}括起语句块。

switch语句在使用过程中要注意break的合理使用

对于循环语句,要注意:

(1) 初始条件、循环结束条件的设置,尤其是边界部分;

(2) 在循环中使用break和continue的区别;

(3) 循环语句的嵌套使用中,要注意内外层循环变量的设置;

6. case是用于开关语句中的关键字。
开关语句,又称switch语句,由关键字switch搭配若干个case及可能存在的default语句,共同组建成的一种分支结构语句。其一般形式为
switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
其功能为判断表达式的值,然后跳转到与表达式值相同的常量表达式n对应的case上去执行。
其中,表达式必须为整型,case后的表达式必须为常量。
default语句可以省略。
在switch语句中,如果执行到break;语句,而break语句不在任何循环体内,那么会跳出switch语句

7.枚举型

语法格式:enum 枚举类型名  { 枚举值列表  };

① 枚举类型,本质是整型。枚举类型可以隐含转换为整型,但整型转换为枚举类型,必须显式转换。

② 枚举类型不能直接输入/输出。

8.变量的类型:auto,extern,siatic

二、自己的理解(这部分内容是根据课外视频整理的,所以可能会凌乱)

1、一个符号只能说明一次,且先声明,后使用

2.pow(x,y) 表示x的y次方,pow是函数名,x,y均为双精度实数

3.一次运行,多次输入

while(<条件>)

{

<循环体(一段程序)>

}

<其他语句>

4.数学函数的使用      #include<cmath>

 平方根:sqrt()        绝对值:fabs(x)

 自变量均为双精度,结果也是双精度实数

5.\n 换行

   \r 后面取代前面

   \t 空格

   \f 翻页

   \b 前移一格

6.const <类型说明符><符号常量名>=数据;

   const int N=100;(说明一个符号表示一个常量)

7.符号常量

在main函数之前       #define<符号名称><数据>

(define说明,预处理,行末没有分号)

   #define PAI 3.14

8. 变量使用中应注意的问题

  1先定义,再使用

  2只能定义一次,不能重复定义

  3先赋值,再参与计算

  4变量可以多次赋值,而常量是不能赋值的

  5变量的定义可以出现在使用前的任何地方,但建议在程序的开始定义变量

  6少用或者不用字面常量

9. 算数运算的实现

  pow(x,n)          x的n次方

  exp(x)            e的x次方

  log(x)             x的自然对数

  log10 (x)          x的常用对数

  sin(x)             x的正弦

  asin(x)            反正弦函数 -1<=x<=1

  这些都属于数学函数,使用时需要在程序的开头写#include<cmath>

10.运算的数据类型

   1相同类型的数据进行运算,结果还是这种数据类型

   2不同类型的数据计算,默认向级别高的类型转换

   3强制类型转换

     (<类型>) x或<类型> (x)

将x转化为<类型>数据,x可以是表达式

11.逻辑值true, 计算机中存的是1

   逻辑值false, 计算机中存的是0

12. auto被定义为自动推断变量的类型

第三章         函数

一.、课件知识点

1.函数的定义

语法格式:

类型  函数名(形式参数列表)

{

      语句序列

}

2函数定义注意点

a) 定义一个函数是为了实现特定的功能。是否需要形参,形参的个数、类型,是否需要有返回值,返回值的类型,这些应当在设计函数时考虑清楚。

b) 如不需要返回值,则返回值类型标识符为void。

c) 形参个数可以是0或多个; 多个时以逗号分隔,且每个都要分别说明类型。

d) 函数名应符合C++标识符命名规则,并尽量“见名知意”。

3.函数的参数值传递时要用上“&”

 4.函数的声明格式

 函数返回值类型  函数名 (形式参数列表);

例:void  swap(int, int);

                                   

5函数的调用

函数名(实际参数列表)

例:swap (x,y)

6.函数的引用注意事项

a) 引用变量必须在声明时进行初始化。

b) 引用变量声明中的&与取地址运算符没有关系,它只是引用变量声明固定的语法格式要求。

7.内联函数语法格式

   函数名(形式参数列表)

{

      语句序列

}

8.带默认参数的函数

(1) 形参的默认值必须在函数声明中指定。

(2) 有默认值的形参必须靠右放置。(即:在有默认值的形参右面,不能出现无默认值的形参)

9,函数重载简介

   c++允许若干函数使用相同的函数名,但形参的个数或类型不同,这样的函数称为重载函数,这个过程称为函数重载。

当调用重载函数时,编译器会根据实参的个数、类型,做最佳匹配,来决定调用哪一个重载函数

10.所有小数默认是double类型,如果想用浮点型必须强制转换,如

float i=3.5f或者(float)3.5

二、自己学习梳理

1.函数模板的定义形式:

   template<模板参数表>

   类型名  函数名(参数表)

   {

        函数体的定义

}

   所有函数模板的定义都是用关键字template开始的,该关键字之后是使用尖括号<>括起来的“模板参数表”。模板参数表由用逗号分隔开的模板参数构成,可以包括以下内容:

1class(或typename)标识符,指明可以接收一个类型参数。

2“类型说明符”标识符,指明可以接收一个由“类型说明符”所规定类型的常量作为参数。

3template<参数表>class标识符,指明可以接收一个类模板名作为参数

2.函数指针只能指向模板的实例,不能指向模板本身

3.类模板声明的语法形式:

 template<模板参数表>

 class 类名

{

       类成员声明

}

4.在类模板以外定义其成员函数

 template <模板参数表>

 类型名  类名<模板参数标识符列表>::函数名(参数表)

5.引用传递和值传递区别

 引用专递就是传递对象本身,值传递是传递对象的复制品
打个比方:比如你有一张相片要修改,把相片编辑工具看作函数,把被处理的相片看作参数,那么直接操作相片原件就相当于引用传递,把相片复制一份然后操作这个复制品就叫值传递。
很明显引用传递会影响当作参数的对象,而值传递不会影响当作参数的对象

猜你喜欢

转载自www.cnblogs.com/yyq828/p/9114480.html
今日推荐