C++ 学习笔记.docx

上传人:b****8 文档编号:30077459 上传时间:2023-08-04 格式:DOCX 页数:72 大小:131.69KB
下载 相关 举报
C++ 学习笔记.docx_第1页
第1页 / 共72页
C++ 学习笔记.docx_第2页
第2页 / 共72页
C++ 学习笔记.docx_第3页
第3页 / 共72页
C++ 学习笔记.docx_第4页
第4页 / 共72页
C++ 学习笔记.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

C++ 学习笔记.docx

《C++ 学习笔记.docx》由会员分享,可在线阅读,更多相关《C++ 学习笔记.docx(72页珍藏版)》请在冰豆网上搜索。

C++ 学习笔记.docx

C++学习笔记

C++学习笔记

第一章程序设计基本概念

1.1.2程序设计

1.确定数据结构

2.确定算法

3.编码

4.在计算机上调试程序

5.整理并写出文文件资料

1.2算法

定义:

是指为了解决某个特定的问题而采取的确定且有限的步骤。

1.有限性

2.确定性

3.可行性

4.

有零个或多个输入一个程序可以没有输入但是一定要有输出

5.有一个或多个输出

1.3结构化程序设计和模块结构

结构化程序由三种基本结构组成

1.顺序结构

 

语句1

 

 

语句2

 

2.选择结构

不满足

判断表达式

 

语句2

语句1

 

3循环结构

(当性循环结构)

 

判断表达式

 

满足

 

循环体

 

 

(直到性循环结构)

 

循环体

 

满足

 

判断表达式

 

不满足

 

习题:

1、计算机能直接执行的程序是(B)

A.源程序B.目标程序C.汇编程序D.可执行程序

2、下列叙述中正确的是(D)

A.程序设计的任务就是编写程序代码并上机调试

B.程序设计的任务就是确定所有数据结构

C.程序设计的任务就是确定所用算法

D.以上三种说法都不完整

第二章程序的设计初步了解

2.1C语言程序的构成和格式

#include

Main()

{

Doublea,b,area;

a=1.2,b=3.6;/*将矩形的两边长分别赋给a和b变数*/

}

#include:

每当写一个程序时,第一条语句永远是这条语句,因为一个程序可以没有输入但必须有输出,而这个语句就是控制输入和输出的。

所以任何一个程序都必须由这个语句开始。

main():

是一个程序的主函数。

一个程序是由多个函数组成的,而任何一个程序都要有一个主函数,有且只有一个。

任何程序都是由主函数开始执行的。

{}:

它们两个必须要成对出现,它们中的语句是主函数体。

包括定义部分和执行部分。

它们中的语句,每一条必须由;结束。

;是C语言的一个组成部分而不是一个结束标识。

/**/:

注释符一定要成对出现,不允许嵌套。

两个符号间的语句不被执行。

 

2.2标识符,常量和变数

2.2.1标识符:

定义:

由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。

这样的组成就是标识符。

注意:

在C语言中大写字母和小写字母被认为是两个不同的字符。

分类:

在C语言中已经定义好了的,不能当作其它来用了。

如:

ifdoubleint等等。

预定义标识符:

如printfscanf

用户标识符:

用户根据自己的需求来定义的

 

2.2.2常量:

定义:

是指在程序的执行过程中,其值不会被改变的量。

分类:

整数常量:

没有小数的常量。

如:

391234

实型常量:

有小数的常量。

如:

3.93.03.

字符常量:

由单个字符组成的量。

如:

’a’‘b’

字符串常量:

至少由一个字符组成的量。

如:

”a”“abc”“beijng”

符号常量:

符号常量的值到底是多少,这是由在来定义符号常量时来决定的。

2.3整型常量与实型常量

整型常量的几种表示方法

十进制数:

由0–9组成

八进制数:

以0开头的数字,由0-7组成。

十六进制数:

以OX开头,由0–9和A-F组成。

实型常量123.4

小数形式:

123.4

指数形式:

1.234e2

1.字母e和E之间必须要有数字

2.字母e和E之后的数字必须是整数

3.字母e和数字之间不能有空格

2.2.4变数

变数

1.定义:

在程序的运行过程中其值可以被改变的量,就叫做变量。

2.原则:

变量必须先定义后使用。

变量定义的过程就是给变量开辟存储单元的过程。

3.分类:

整型变数:

用关键词int来表示。

shortint短整型

longint长整型在内存中占4个字节如123L

unsigned无符号如有-200U这就是错的

变量的定义:

inta这是定义了一个整型变量a

实型变数:

用关键词double或float来表示。

float单精度在内存中占4个字节

double双精度在内存中占8个字节。

 

算术表达式

一、基本的算术运算符

+-*/%这些是双目运算符(就是指操作对象有两个)

注意:

除%外,其它的运算符的运算对象可以是整型也可以是实型。

%的操作对象只能是整型。

如:

10%3=110.3%310%4.5

+-也可以做为单目运算。

-5.4+4.9

说明:

1.如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。

如1.0/2.0=0.51/2=0

2.如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。

1.0/2=0.5

是正负符号,是单目运算,高于

双目运算级

3.所有的单精度数据,在运算过程中都以双进度进行运算。

二、优先级

()+-*/%+-

没有优先级的,它们的运算等级是一样的

由高低

如5+1/2=5

解析:

1/2=0

5+0=5

前面的类型名小括号必须得有,当表达式的式子是一个时,表达式的小括号可有可无,但是表达式的式子是多个时,表达式的小括号就一定得有。

(5+1)/2=3

解析:

(5+1)=6

6/2=3

总结

2.5.3强制类型转换表达式

格式:

(类型名)(表达式)

例如:

(int)(3.234)=3

(double)10%3=

解析:

先把10转换为双精度然后再%3

表达式:

(int)((double)9/2)-(9)%2的值是(B)

A.0B.3C.4D.5

解析:

因为:

(int)((double)9/2)=4

(9)%2=1

所以:

4-1=3

设变量已正确定义并赋值,以下正确的表达式是(C)

A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,++yD.x=25%5.0

少了小括号

2.6赋值表达式

格式:

变量名=表达式

注:

1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)

2.功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变数。

确切的说是把数据库存入以该变量为标识的存储单元中去。

3.结合性的优先级级高于逗号表达式。

顺序是自右向左的。

如a=2+7/3

4.“=”是一个赋值号,不是一个等号。

5.x=y。

变量的值也是可以传递和赋值的,它的意思就是将变量y中的值赋值到x中去。

同样N=N+1也成立

6.赋值运算符的左侧只能是变量,不能是常量或表达式a+b=c这样是违法的

7.赋值号的右边也可以是一个赋值表达式。

如a=b=7+1

补充:

表达式与语句的区别,

表达式后面加一个分号就是语句。

2.6.2复合赋值表达式

格式:

a+=3-------a=a+3同理可得a*=3/=-=

例如:

a+=a-=a+aa的初始值是9

解析:

a+=a--=18

a+=(a=a-18)

a+=(a=-9)

a+=a

-18

 

2-9++和--的讲解

++:

自身加1

--:

自身减1

注:

++--是单目运算的

当++在前,先自身加1,然后再干别人干的事。

当++在后,先别人让干的事情然后再自身加1

2-10、逗号表达式

一、定义:

用逗号表达式连接起来的式子称为逗号表达式。

二、格式:

表达式1,表达式2,……,表达式N

三、说明:

1、逗号运算的结合性为从左边到右边进行运算,逗号表达式的值是最后一个表达式的值。

2、在所有运算符中,逗号运算符的优先级最低。

例题:

inti=5

inta,b,c

a=(i+8,7,i+7);a=12i=5

b=(i++,++i);b=7i=7

c=(i+7,i++);c=5i=6

 

3-1、输出语句的讲解

输出语句

一、printf函数的一般调用形式

格式:

printf(格式控制,输出项1,输出项2,……)

在printf函数的最后面写上;号就是输出语句。

1、给输出项白提供输出格式说明

格式说明符:

作用:

就是使数据按格式说明的要求进行输出

组成:

由%号和紧跟在其后的格式描述符组成。

int--------%d

float或double----%f或e%

char-----%c

2、提供原样输出的文字或字符

在”“中除了格式说明符和传译字符之外的内容要全部原样输出

各个输出项之间要用逗号隔开。

输出项可以是任意合法的常量,变量或表达式。

 

printf中常用的格式说明

需要被的

在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。

但在他们之间可以有其它的一个内容

%c:

输出一个字符

%d:

输出一个十进制的数据

%o:

以八进制格式输出

%X:

以十六进制输出

%U:

无符号十进制输出

%f:

以带小数点的数字输出

%e:

以指数形式输出

%s:

输出一个字符串

%%:

输出一个%号

%4d:

输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。

小于4个时会填充空格。

%x.yf:

X代表数制的宽度(包括小数点)。

Y代表小数点后面的小数字数

 

注意事项:

1、输出比较自由一些,输出有的各个数字到底是什么,取决于格式说明符之间的内容。

2、格式说明符要与输出项一一对应。

3、输出语句中还可以有\n\r\t\a

4、尽管不要在输出语句中改变输出变量的值。

5、输出的数据中如果存在变量,一定要定义过的

 

3-6、输入语句的讲解

输入语句

格式:

scanf(格式控制,输入项1,输入项2……);

例如:

想通过键盘输入3个数分别给变量a,b,c.并且他们分别为整型,浮点型,双精度型。

输入语句为scanf(“%d%f%lf”&k,&a,&y);

说明:

1、格式说明符与输出语句一样。

(也就是%d呀,%f之类的,一样)

2、在格式串中,必须含有与输入项一一对应的格式转换说明符

3、在VC6.0的环境下,要收输入的DOUBLE型数据的格式说明符一定要用%if,否则数据不能正确输入。

4、由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。

当输入的数据多于输入项时,多余的数据会自动作废。

复合语句:

多个语被{}括起来,当成一条语句来执行。

空语句:

最后的表示只有一个;

4-1、关系运算与逻辑运算

关系运算与逻辑运算

一、简介:

关系表达式与逻辑表达式的运算结果都会得到一个逻辑值。

就是“真”、“假”

单“=”是赋值,双“==”是比较

在C语言中0表示“假”,非0(无论是负数还是正数都是真,更多时候用1来代替)表示真。

不等于

二、几个简单的关系运算符

<<=>>===!

=

注意:

1、由两个字符组成的运算符,中间不能有空格

2、它们都是双目运算符,且有自左至右的结合性。

3、上面的6个运算符中,前4个的优先级要比后2个的优先级要高。

先计算,后判断,最后进行赋值运算。

三、几个简单的逻辑运算符

运算优先级

&&与一假则假

||或一真则真

非非假则真,非真则假

1&&2=1

0&&6=0

inta=4,b=7

a&&7=1

intx=0,y=7

x++&&y++?

x=1y=7

++x&&y++?

x=1y=8

同样放在||中也是一样。

|

 

if语句

一、定义:

只有两个结果。

要么执行这条语句,要么执行那条语句。

if(条件表达式)

上述条件成立执行的句子

else

上述条件不成立执行的句子。

如:

if(成绩>60)

显示及格

else

显示不及格

二、分类

1、不含有else的语句

if(表达式)语句

 

2.含有else的语句

if(条件)

语句1;

else

{

语句2;

语句;

 

}

注:

1、if(条件)后面没有分号

2、控制的是与if或者else紧临的“一条”语句。

如:

if(a

printf(“%d”,b);

else

printf(“%d”,a);

#include

main()

{

Inta,b,c,t;

printf(“inputa,b,c:

”);

scanf(“%d%d”,&a&b&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

if(a>b)

{

t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;

}

printf(“%d,%d,%d”,a,b,c);

}

5,7,22,7,52,5,7

4,1,81,4,8

嵌套的if语句

成绩分为>90<90&&>60<60

if(成绩>60)

if(成绩>90)

else

else

输入一个学生的成绩,评定他的等级。

每十分一个等级

if(a>=90)printf(“a”);

elseif(>=80)printf(“b”);

elseif(>=70)printf(“c”);

elseif(>=60)printf(“d”);

elseprintf(“e”);

4-6、条件表达式

条件表达式

是C语言中唯一的一个三目运算

格式:

表达式1?

表达式2:

表达式3

当成立(非零时)时,表达式的值就是2的值,否则就是3的值。

如:

1.1<2?

4:

5

2.printf(“%d”,x<0?

(-1)*++x:

x++)(假定x的值为3)

3.x++>3?

(x<3?

a:

b:

):

b(假定x的值为3)

case与常量之间有空格

4-7、switch语句

switch(表达式)

{

case常量表达式1:

语句1

case常量表达式2:

语句2

case常量表达式3:

语句3

case常量表达式3:

语句4

……

case常量表达式N:

语句N

}

5-1、while语句

while语句

一、格式:

while(表达式)

循环体

注:

1、while是一个关键词,不能再去使用

2、while后面的表达式不能丢,小括号也不能丢,其表达式是任意的,表达式都可以。

3、循环体while控制语句是其相邻的语句,如果,我们想执行多条语句的话,我就需要把这些多条语句变成复合语句来执行。

例如:

1+2+3+4+5……100求和

inti,sum;

i=1;sum=0;

while(i<101)

{sum=sum+i;

i++;}

printf(“%d”,sum);

优化while语句

inti=1,sum=0

while(i<101)

sum=sum+i++

printf(“%d”,sum);

从1开始加到那个数时它们的和将超过1000?

inti=1,sum=0;

while(sum<1000)

{sum+=I;

i++;}

printf(“%d”,--i);

注:

当什么什么时的时候,我们尽可能的使用while语句,while语句看上去是比较清晰的。

dowhile语句

dowhile()

格式:

do

循环体

while(表达式)

如:

1235813

inta1=1,a2=2;

do

{a3=a1+a2;

a1=a2;

A2=a3;

}while(a3<1000);

注:

1、对于dowhile语句的话,循环体至少循环1次。

2、对于dowhile语句的后面要有;号的,而while语句是没有那个分号的。

for语句和for语句构成的循环结构

一、格式:

for(表达式1;表达式2;表达式3)

循环体

相当于while语句的

表达式1;

while(表达式2)

{

循环体;

表达式3;

}

for(k=0;k<10;k++)

printf(“*”);

intk=0;

while(<10)

{

printf(“*”);

k++;

}

注:

1、表达式可以省略,但分号不可以。

2、表达式可以是任意有效的C语言表达式。

1+2+3+4+……+100求和

#include

main()

{

intI,sum;

for(i=0,sum=0;i<=100;i++)

sum+=I;

}

 

2+4+6+8+……+100

intI,sum=0;

for(i=2;i<=100;i++,i++)或for(i=2;i<=100;i+=2)

sum+=i;

 

素数:

只能被和他本身整除。

这样的数叫做质数。

break:

终止了break所有的當層循環體的執行。

continue:

跳過循環體continue下面的語句返回到循環開始的地方進行下次循環。

如:

S=1+2+3+4+……+i

>500時,求i的值

Main()

{

inti=1,s=0;

for(;;i++)

{

s+=i

if(s>5000)

break;

}

printf(“s=%d,i=%d”,s,i);

}

 

第六章、字符型數據

字符型常量

格式:

’a’‘a’‘’

要求:

1、單引號中的大寫字母和小寫字母代表不同的字符常量。

2、單引號中的空格也是一個字符常量,但不能是兩個連續的單引號

3、字符常量只能用單引號括起來,不能用雙引號。

轉義字符

\n代表回車

\’代表一個單引號

\\代表一個\

\\’’代表一個雙一號

注意:

1、轉義字符常量,如’\141’只代表一個字符

2、反斜線后的8進制數可以不用0開頭。

如1中所講的141就是一個8進制數。

0141

3、反斜線后的16進制數只可以用x開頭,不可以用X開頭。

字符串常量

格式:

由雙引號括起來的一串字符。

同時也要知道“A”和’A’是不一樣的

 

注:

單引號里的內容有且只有一個如,’a而’abc’就是錯誤的;但是”abc”就是真確的,因為它是字符串雙引號。

ACSⅡ嗎

A65a97

字符變量

定義:

char是一個字符變量

格式:

chara=’s’

字符的輸入和輸出

printf和scanf函數輸出和輸入字符

對於字符型數據的格式說明符是%c

charc=’a’

printf(“%c”,c);

chara,b,c,d;

scanf(“%c%c%c”,&a,&b,&c);

 

程序舉例

寫出26個大寫字母和他們的ASCⅡ代碼要求每行輸出兩組數據。

#include

main()

{

charch;inti

for(i=0;i<26:

i++)

{

ch=i+65;

if(i%2==0)

printf(“\n”);

printf(“c=%c,ASCⅡ=%d”,ch,ch);

}

}

在上面的程序中有對於字符的輸入與輸出,在C語言中也有另外的輸入輸出字符的語句。

這兩個函數只能用於字符

輸入:

變量名=getchar()

輸出:

putchar(變量名)

 

若變量已經正確說明,要求用以下語句給C1賦予字符%,給C2賦予字符#,給a賦予2.0,給b賦予4.0,則正確的輸入形式是C

A)2.0%4.0#B)2.0%4.0#

C)2%4#D)2%4

scanf(“%f%c%f%c”,&a,&c1,&b,&c2);

 

第七章、函數

分類:

庫函數

自定義函數

作用:

爲了解決固定問題而寫的程序。

擋在其它程序中也要解決相應的問題時,就不用再重新編寫了。

提高了程序的效率。

7.1、庫函數

1、調用C語言標準庫函數時要求的include命令行

include命令行必須以#開頭,系統提供的頭文件以h作為文件的後綴,文件名用一對尖括號(需要注意include命令行不是c語句,因此不能在最後加分號)

3、標準庫函數的調用

函數名(參數表)

如:

putchar(ch)

⑴出現在表達式中------printf()

⑵作為單獨的語句完成某種操作。

-------printf(“*******”);

7.2、函數的定義和返回值

由於C語言中的定義的函數不能完成用戶所有的要求,所以用戶可以為自己定義函數實現相應的功能。

7.2.1函數定義的語法

1、格式:

函數返回值的類型名函數名(類型名形式參數1,類型名形式參數2……)

{

說明部份

語句部份

}

2函數名和形式參數都是用戶命名的標誌符。

在同一個程序中,函數名必須唯一,形式參數名只要在同一函數中唯一即可,可以與其他函數中的變量同名

3、C語言規定,不能在函數的內部定義函數

4、若在函數的首部省略了函數返回值的類型名,則說明該函數的返回值是int類型

5、除了返回值類型為int類型的函數外,函數必須先定義後調用。

6、當沒有函數返回值,則必須把函數定義成void類型。

例:

編寫求兩個雙精度之和的函數。

doulbeadd(doublea,doubleb)

{

doubles:

s=a+b;

retums;

}

7.2.2、函數的返回值

函數的值通過retum語句返回,

retum表達式;

此表達式的值必須與函數首部所說明的類型一致,若類型不一致,則以函數值的類型爲準。

需要注意的是,無論函數體中有多少個retun語句,只能執行一次。

函數體內可沒有retum語句,這時也必須定義函數為viod類型。

7.3、函數的調用

7.3.1、函數的兩種調用方式

格式為:

函數名(實在參數表)

當實參的個數多餘一個時,各實參用逗號隔開。

實參的個數必須與調用函數中形參的個數相同,類型一一對應匹配。

如沒有形參,則形式為函數名()注意後面的小括號不能丟。

如題:

#include

doubleadd(double,double);

main()

{

doublem,n,z;

scanf(“%lf%lf”,m,n);

z=add(m,n);

printf(“%ld”,z);\

}

doubleadd(doublea,doubleb)

{

doubles;

s=a+b;

retums;

}

 

7.3.2、函數調用時的語法要求

1、調用函數時,函數名必須與所調用的函數名字完全一致。

2、實參的個數必須與形參的個數一致。

3、C語

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1