C程序设计教程完整版教学课件整套教程电子讲义(最全最新).ppt

上传人:春哥&#****71; 文档编号:11354401 上传时间:2022-04-18 格式:PPT 页数:488 大小:6.38MB
返回 下载 相关 举报
C程序设计教程完整版教学课件整套教程电子讲义(最全最新).ppt_第1页
第1页 / 共488页
C程序设计教程完整版教学课件整套教程电子讲义(最全最新).ppt_第2页
第2页 / 共488页
点击查看更多>>
资源描述

《C程序设计教程完整版教学课件整套教程电子讲义(最全最新).ppt》由会员分享,可在线阅读,更多相关《C程序设计教程完整版教学课件整套教程电子讲义(最全最新).ppt(488页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1 1章章 C+C+及其开发环境概述及其开发环境概述 第2章 C+程序设计基础(上) 本章内容提要2.1 C+的数据类型的数据类型2.2 常量和变量常量和变量2.3 C+的运算符、表达式和优先级的运算符、表达式和优先级2.1 C+的数据类型的数据类型2.1.1 C+数据类型概述数据类型概述2.1.2 关于数值的范围关于数值的范围 例如,例如,unsigned short(无符号短整型)数据类型的长度为(无符号短整型)数据类型的长度为2字节,那么,它所能表示的最小数为字节,那么,它所能表示的最小数为0,最大数为,最大数为1111 1111 1111 1111,具体如下:,具体如下:2.1.3

2、 数据类型的转换数据类型的转换1数据类型的隐含转换数据类型的隐含转换2赋值表达式中的数据类型转换赋值表达式中的数据类型转换 在赋值表达式中,系统会自动将赋值运算符在赋值表达式中,系统会自动将赋值运算符“=”右侧表右侧表达式的值转换为左侧变量的数据类型,并赋值给变量。达式的值转换为左侧变量的数据类型,并赋值给变量。3强制数据类型转换强制数据类型转换一般形式:一般形式:(类型名)变量(类型名)变量 ,(类型名)(表达式),(类型名)(表达式)或或 类型名(变量)类型名(变量) ,类型名(表达式),类型名(表达式)例如:例如:(int)a/将变量将变量a强制转换成强制转换成int型型(double)

3、(m+n)/将将m与与n的和强制转换成的和强制转换成double型型(char)(8%3) /将将8与与3取余的结果强制转换成取余的结果强制转换成char型型(double)(7/4)/将将7/4的结果强制转换成的结果强制转换成double型型(double)7/4 /将将7的数据类型强制转换为的数据类型强制转换为double型,型,/再与再与4求商,结果是双精度型数据求商,结果是双精度型数据1.752.1.4 sizeof 操作符操作符一般形式:一般形式:sizeof(type) 或或 sizeof(变量(变量/表达式)表达式)sizeof(double)=8sizeof(8)=4sizeo

4、f(r)=1 sizeof(p) /假设假设p已定义,则求出变量已定义,则求出变量p所属类型所占的字节数所属类型所占的字节数 sizeof(struct Eg)/求出简单结构体求出简单结构体Eg的长度的长度例如,以下形式为合法的。例如,以下形式为合法的。sizeof操作符的操作对象不能是函数、不完全类型或位字段。操作符的操作对象不能是函数、不完全类型或位字段。2.2 常量和变量常量和变量(1)整型常量)整型常量n十进制整型常量:由正、负号和数字十进制整型常量:由正、负号和数字09组成,但数字部分组成,但数字部分不能以不能以0开头。如开头。如12、7、0等。等。2.2.1 常量的类型与符号常量的

5、声明常量的类型与符号常量的声明1常量类型常量类型n八进制整型常量:由正、负号和数字八进制整型常量:由正、负号和数字07组成,数字部分以组成,数字部分以0开头,如开头,如0408、07761等。等。n十六进制整型常量:由正、负号,数字十六进制整型常量:由正、负号,数字09和字母和字母AF(或(或af)组成,数字部分以)组成,数字部分以0X或或0 x开头,用开头,用AF(或(或af)分别)分别表示数值从表示数值从1015的数,如的数,如0XFFFF、0 x2D等。等。(2)实型常量)实型常量n十进制小数形式:由数字十进制小数形式:由数字09和小数点组成,例如和小数点组成,例如3.9,4.112。实

6、型常量默认为。实型常量默认为double型,如果在数字后添加字型,如果在数字后添加字母母F或或f,可使其成为,可使其成为float型。型。n指数形式:也称科学计数法,其格式为指数形式:也称科学计数法,其格式为“小数小数E或或e指数指数”,表示表示“小数小数10指数指数”。当用指数形式表示实型常量时,。当用指数形式表示实型常量时,E前前面的小数可以省略整数部分或小数部分,但不能同时省略。面的小数可以省略整数部分或小数部分,但不能同时省略。例如,例如,.12E2、11.E3都是正确的,而都是正确的,而E5是错误的。是错误的。(3)字符常量)字符常量n普通字符常量:用单引号括起来的一个字符。普通字符

7、常量:用单引号括起来的一个字符。n转移字符常量:由转移字符常量:由“”开头的一个或多个字符的序列,用于开头的一个或多个字符的序列,用于表示一些无法显示的字符。表示一些无法显示的字符。(4)字符串常量)字符串常量 由一对双引号括起来的零个或多个字符序列,每一个字符占一由一对双引号括起来的零个或多个字符序列,每一个字符占一个字节,并在末尾添加个字节,并在末尾添加“0”作为字符串结尾标志或结束标志。作为字符串结尾标志或结束标志。字符型常量与字符串常量的存储方式字符型常量与字符串常量的存储方式(5)布尔型常量)布尔型常量 只有两个值,即整数只有两个值,即整数0(表示逻辑假)和(表示逻辑假)和1(表示逻

8、辑真)。在(表示逻辑真)。在C+语言中还定义了这两个布尔型常量所对应的符号常量语言中还定义了这两个布尔型常量所对应的符号常量false和和true,false的值为的值为0,表示逻辑假,表示逻辑假,true的值为的值为1,表示逻辑真。,表示逻辑真。2符号常量的声明符号常量的声明一般形式:一般形式:const 数据类型数据类型 常量名常量名=数值数值/表达式表达式;例如,例如, const float PI=3.141592; /定义符号常量定义符号常量PI代替数值代替数值3.141592const int S=sin3*(1.2); /定义符号常量定义符号常量S代替表达式代替表达式sin3*(

9、1.2) 由字母、数字和下划线组成,且第一个字符必须是字母或由字母、数字和下划线组成,且第一个字符必须是字母或下划线。下划线。2.2.2 变量的命名、定义与声明变量的命名、定义与声明1变量的命名原则变量的命名原则例如,下面变量名为合法变量名:例如,下面变量名为合法变量名: std,code1,n_date,_kufun,i_jing,WAN,S_name,c_Code 非法变量名:非法变量名:Mr.Smith,$dollar,+y,7rain,li hua,C#,car-clour,stdn,U.S.An变量名不允许使用变量名不允许使用C+关键字关键字 、系统函数名和系统类名、系统函数名和系统

10、类名C+关键字关键字nC+语言中区分字母大小写语言中区分字母大小写n标识符采用英文单词或其组合。标识符采用英文单词或其组合。通常会对变量名做一些约束:通常会对变量名做一些约束:n遵循最小化长度与最大化信息量原则。遵循最小化长度与最大化信息量原则。n避免标识符过于相似。避免标识符过于相似。n用正确的反义词组命名具有互斥意义的标识符。用正确的反义词组命名具有互斥意义的标识符。n除非逻辑上的确需要编号,否则尽量避免名字中出现数字编号。除非逻辑上的确需要编号,否则尽量避免名字中出现数字编号。n保持在整个模块中命名风格的统一性。保持在整个模块中命名风格的统一性。2变量的定义变量的定义一般形式:一般形式:

11、数据类型数据类型 变量名变量名1,变量名,变量名2,变量名,变量名n;例如:例如:int n;char a,b; 在定义变量的同时,还可以给它赋予一个初值,即对变量进在定义变量的同时,还可以给它赋予一个初值,即对变量进行初始化。初值可以是常量,也可以是一个有确定值的表达式。行初始化。初值可以是常量,也可以是一个有确定值的表达式。例如:例如:int n=6;float pi=3.1415*3;char a=V,b,c=C;3变量的声明及其与变量定义的区别变量的声明及其与变量定义的区别 变量声明用于向程序表明变量的类型和名字,它并不一定为变量声明用于向程序表明变量的类型和名字,它并不一定为变量分配

12、存储单元。由于在定义变量时声明了它的类型和名字,变量分配存储单元。由于在定义变量时声明了它的类型和名字,因此变量定义可以看作是变量声明的一种,我们可称其为因此变量定义可以看作是变量声明的一种,我们可称其为“定义定义性声明性声明”。 除此之外,我们还可以在程序的其他地方声明已经定义的变除此之外,我们还可以在程序的其他地方声明已经定义的变量,这时变量的声明只是表明了变量的类型和名称,并不会为其量,这时变量的声明只是表明了变量的类型和名称,并不会为其分配存储空间。在分配存储空间。在C+程序中,可以通过使用程序中,可以通过使用extern关键字声明关键字声明变量名而不定义它。变量名而不定义它。2.3

13、C+的运算符、表达式和优先级的运算符、表达式和优先级C+中的运算符中的运算符2.3.1 算术运算符与算术表达式算术运算符与算术表达式 算术表达式算术表达式:用算术运算符和括号将操作数连接起来的、符合用算术运算符和括号将操作数连接起来的、符合C+语法规则的式子。语法规则的式子。算术运算符算术运算符 自增与自减运算符:自增与自减运算符:n+ + i:在使用:在使用i之前,先使之前,先使i加加1,例如:,例如:i=3,运行,运行j= + +i之后,之后,j=4,i=4。n i:在使用:在使用i之前,先使之前,先使i减减1,例如:,例如:i=3,运行,运行j=i之后,之后,j=2,i=2。ni + +

14、:在使用:在使用i之后,再使之后,再使i加加1,例如:,例如:i=3,运行,运行j=i + +之后,之后,j=3,i=4。ni:在使用:在使用i之后,再使之后,再使i减减1,例如:,例如:i=3,运行,运行j=i之后,之后,j=3,i=2。2.3.2 赋值运算符与赋值表达式赋值运算符与赋值表达式赋值表达式一般形式:赋值表达式一般形式: 变量名变量名=数值数值/表达式表达式例如:例如:a=5a=sin(2.0)a=b+c结合方向:结合方向: 自右向左自右向左复合的赋值运算符:复合的赋值运算符: +=、=、*=、/=、%=、=、 &=、=和和|=。2.3.3 关系运算符与关系表达式关系运算符与关系

15、表达式关系运算符关系运算符n前前4种优先级相同,后种优先级相同,后2种优先级相同,且前者级别高于后者。种优先级相同,且前者级别高于后者。优先级关系优先级关系关系表达式一般形式:关系表达式一般形式: 表达式表达式 关系运算符关系运算符 表达式表达式n结合方向是自左向右,其比较结果是布尔型(结合方向是自左向右,其比较结果是布尔型(bool)的逻辑值。)的逻辑值。2.3.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式逻辑运算符逻辑运算符优先级关系优先级关系真值表真值表2.3.5 条件运算符及其表达式条件运算符及其表达式一般形式:一般形式: 表达式表达式1?表达式表达式2:表达式表达式3 如果表达式

16、如果表达式1的值为的值为true,则整个表达式的值为表达式,则整个表达式的值为表达式2的的值;如果为值;如果为false,则整个表达式的值为表达式,则整个表达式的值为表达式3的值。的值。n表达式表达式1的值必须为的值必须为bool型,表达式型,表达式2与表达式与表达式3的值可以为任的值可以为任意类型,且类型可以互不相同。意类型,且类型可以互不相同。n当表达式当表达式2与表达式与表达式3的数据类型不相同时,条件表达式的值的的数据类型不相同时,条件表达式的值的数据类型为二者中较高级的数据类型。数据类型为二者中较高级的数据类型。优先级关系优先级关系2.3.6 逗号运算符及其表达式逗号运算符及其表达式

17、一般形式:一般形式: 表达式表达式1,表达式,表达式2 或或 表达式表达式1,表达式,表达式2,. ,表达式,表达式nn按顺序执行由逗号运算符分隔的各表达式,并且逗号表达式的按顺序执行由逗号运算符分隔的各表达式,并且逗号表达式的值是最右边的子表达式的值。值是最右边的子表达式的值。n结合方向:自左向右结合方向:自左向右2.3.7 位运算符和位运算位运算符和位运算位运算符符号及其功能描述位运算符符号及其功能描述n“”是右移运算符,表示按照指定的位数将一个数的二进制是右移运算符,表示按照指定的位数将一个数的二进制值向右移位,低位右移后溢出舍弃。值向右移位,低位右移后溢出舍弃。n“”是左移运算符,表示

18、按照指定的位数将一个数的二进制是左移运算符,表示按照指定的位数将一个数的二进制值向左移位,高位左移后溢出舍弃,低位顺序补值向左移位,高位左移后溢出舍弃,低位顺序补0。位运算实例位运算实例2.3.8 运算符的优先级运算符的优先级综合实例综合实例1 输出多种立体的的体积输出多种立体的的体积/实例实例2-1.cpp#include #include using namespace std;float VolumeCube();/以下四行代码用于声明函数。其中,如果函数定义以下四行代码用于声明函数。其中,如果函数定义float VolumeSphere();/在前,函数调用在后,则不必进行函数声明在前

19、,函数调用在后,则不必进行函数声明float VolumeCone();float VolumeCube();void ThreeDArea(const char&,bool&);const double PI=3.1415;/声明符号常量声明符号常量PI/主程序主程序int main()char ch= ;/定义字符串变量,用于接受选择信息定义字符串变量,用于接受选择信息bool flag=1;/布尔型变量,用作退出标记,为布尔型变量,用作退出标记,为0退出或返回上级退出或返回上级coutInput Corresponding Number n;do /dowhile循环,首先无条件执行一次

20、循环,首先无条件执行一次dowhile循环体循环体coutch; /从键盘接收字符,作为选择信息从键盘接收字符,作为选择信息switch(ch)/多分支选择结构多分支选择结构case 1:do/dowhile循环循环coutch;/再次从键盘接收字符再次从键盘接收字符ThreeDArea(ch,flag);/调用调用ThreeDArea函数,根据前面的选择函数,根据前面的选择/确定立体类型,然后调用相应函数。如果确定立体类型,然后调用相应函数。如果/前面选择前面选择5或其他字符,则将或其他字符,则将flag标志置标志置/0,然后结束,然后结束dowhile循环循环while(flag);/do

21、while循环结束循环结束do /dowhile循环,首先无条件执行一次循环,首先无条件执行一次dowhile循环体循环体coutch; /从键盘接收字符,作为选择信息从键盘接收字符,作为选择信息switch(ch)/多分支选择结构多分支选择结构case 1:do/dowhile循环循环coutch;/再次从键盘接收字符再次从键盘接收字符ThreeDArea(ch,flag);/调用调用ThreeDArea函数,根据前面的选择函数,根据前面的选择/确定立体类型,然后调用相应函数。如果确定立体类型,然后调用相应函数。如果/前面选择前面选择5或其他字符,则将或其他字符,则将flag标志置标志置/0

22、,然后结束,然后结束dowhile循环循环while(flag);/dowhile循环结束循环结束flag=1;/将将flag重新置重新置1break;/用于跳出用于跳出switch语句语句default: return 0;/输入输入“1”之外的其他字符,结束程序运行之外的其他字符,结束程序运行while(flag);/若若flag为为1,继续循环;若,继续循环;若flag为为0,循环结束,循环结束return 0;/求立方体体积函数。将所有求体积函数的返回值均定义为求立方体体积函数。将所有求体积函数的返回值均定义为float型,以保证型,以保证/体积值的精确度体积值的精确度float Vo

23、lumeCube()unsigned L=0;/无符号变量无符号变量L,赋初值为,赋初值为0coutL;return L*L*L;/求球体体积函数求球体体积函数float VolumeSphere()unsigned R=0;coutR;return 4*PI*R*R*R/3;/求圆锥体体积函数求圆锥体体积函数float VolumeCone()unsigned R=0,h=0;coutRh;return h*PI*R*R/3;/求长方体体积函数求长方体体积函数float VolumeCuboid()unsigned L=0,W=0,H=0;coutL;coutW;coutH;return L

24、*W*H;/根据选择调用不同的求立体体积函数根据选择调用不同的求立体体积函数void ThreeDArea(const char & ch,bool & flag)switch(ch) case 1:coutVolume:VolumeCube()endl;break;case 2:coutVolume:VolumeSphere()endl;break;case 3:coutVolume:VolumeCone()endl;break;case 4:coutVolume:VolumeCuboid()endl;break;default:flag=0;/无效选择,将无效选择,将flag置置0Inpu

25、t Corresponding Number【1】Volumes of Solids【2】Exit1 【1】Cube【2】Sphere【3】Cone【4】Cuboid【5】Return3 Please Input radius and height:5 8 volume:209.433【1】Cube【2】Sphere【3】Cone【4】Cuboid【5】Return5 【1】Volumes of Solids【2】Exit2 测试数据与运行结果:测试数据与运行结果:综合实例综合实例2 2 判断三角形类型并求解判断三角形类型并求解 其面积其面积/实例实例2-2.cpp#include #incl

26、ude /由于程序中用到由于程序中用到sqrt(),所以包含了,所以包含了math.h文件文件using namespace std;int main()double a,b,c,s,area;couta;coutb;coutc;if(a+bc&a+cb&b+ca)/此表达式相当于此表达式相当于/(a+bc)&(a+cb)&(b+ca)s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);cout三条边组成三角形的面积三条边组成三角形的面积:area逻辑运算符逻辑运算符cout此三角形是等边三角形此三角形是等边三角形!逻辑运算符逻辑运算符cout此三角形是等腰三角

27、形此三角形是等腰三角形!endl;else if(a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)/相当于相当于(a2=b2+c2)|(b2= a2+c2)|(c2=a2+b2)cout此三角形是直角三角形此三角形是直角三角形!endl;elsecout此三角形是不规则三角形此三角形是不规则三角形!endl;elsecout三条边不能组成三角形三条边不能组成三角形!ab;/输入语句输入语句couta+b;/输出语句输出语句3控制语句控制语句n选择语句:选择语句: if( )else(条件语句)(条件语句) switch(多分支选择语句)(多分支选择语句)n循环语句:循环

28、语句: for( )(for循环语句)循环语句) while( )(while循环语句)循环语句) dowhile( ) (dowhile循环语句)循环语句)n转向语句:转向语句: break(终止执行(终止执行switch或循环语句)或循环语句) continue(结束本次循环)(结束本次循环) goto(转向语句)(转向语句) return(从函数返回语句)(从函数返回语句)3.1.3 空语句空语句只有一个分号组成的语句,它不执行任何操作只有一个分号组成的语句,它不执行任何操作例如:例如:for(i=1;i100;i+);/起延时的作用起延时的作用3.1.4 复合语句复合语句 将若干条语句

29、用将若干条语句用括起来,又称为块语句。通常作为函数的函括起来,又称为块语句。通常作为函数的函数体、循环语句的循环体、数体、循环语句的循环体、if语句的分支等语句的分支等例如:例如:if(b) a=a+b;if(a=b)couta=0表达式表达式1表达式表达式2表达式表达式n; 两个数据之间用空格(两个数据之间用空格(Space)、制表符()、制表符(Tab)或换行符)或换行符(Enter)分隔开)分隔开3.2.1 输入语句输入语句例如:例如:char a, b;float c;int d;cinabcd;如果输入如果输入1 234.56 78 结果:结果:a=1,b= 2,c=34.56,d=

30、78cout表达式表达式1表达式表达式2表达式表达式nendl;3.2.2 输出语句输出语句例如:例如: cout变量变量score1的值是:的值是:score1t 变量变量score2的值是:的值是:score2endl;也可以写成:也可以写成:cout变量变量score1的值是:的值是:;/双引号中的字符串在屏幕上原样输出双引号中的字符串在屏幕上原样输出coutscore1;/输出变量输出变量score1的值的值coutt;/输出转义字符,移动一个制表位输出转义字符,移动一个制表位cout变量变量score2的值是:的值是:/双引号中的字符串在屏幕上原样输出双引号中的字符串在屏幕上原样输出

31、coutscore2;/输出变量输出变量score2的值的值coutendl;/输出全部数据并换行输出全部数据并换行3.2.3 输入输入/输出的格式控制输出的格式控制常用的输入常用的输入/输出流格式控制符输出流格式控制符3.3 程序的流程控制程序的流程控制3.3.1 选择结构选择结构n简化的简化的if语句:语句:1if语句语句if(表达式)(表达式)语句语句;nifelse语句:语句:if(表达式)(表达式)语句语句1;else 语句语句2;nifelse if语句:语句:if(表达式(表达式1)语句语句1;else if(表达式(表达式2)语句语句2;else if(表达式(表达式n)语句语

32、句n;else 语句语句n+1;2if语句的嵌套语句的嵌套注:注:else必须与必须与if配对使用,它总是与它上面最近的且未配对的配对使用,它总是与它上面最近的且未配对的if配配 对。对。3switch语句语句switch(表达式表达式)case 常量表达式常量表达式1:语句:语句1; break;case 常量表达式常量表达式2:语句:语句2; break;case 常量表达式常量表达式n:语句:语句n; break;default: 语句语句n+1; break;注意:注意:n每个每个case后面的常量表达式必须各不相同,否则会出现后面的常量表达式必须各不相同,否则会出现矛盾,即一个值有多

33、种选择。矛盾,即一个值有多种选择。n各个各个case语句和语句和default语句出现的顺序对执行结果没有语句出现的顺序对执行结果没有影响。影响。n若若case后面没有后面没有break,则执行完,则执行完case语句后不再进行语句后不再进行判断,程序将转到下一个判断,程序将转到下一个case语句继续执行,直至遇到语句继续执行,直至遇到break,程序才能退出,程序才能退出switch语句。语句。ndefault后面的后面的break可以省略。可以省略。n多个多个case可以共用一组执行语句。可以共用一组执行语句。3.3.2 循环结构循环结构for(表达式(表达式1;表达式表达式2;表达式表达

34、式3)循环体语句循环体语句;1for语句语句while(表达式表达式)循环体语句循环体语句;2while语句语句do循环体语句循环体语句;while(表达式表达式);3dowhile语句语句 在一个循环的循环体中又包含另一个循环语句称为循环在一个循环的循环体中又包含另一个循环语句称为循环嵌套,又称多重循环。三种循环语句嵌套,又称多重循环。三种循环语句for、while和和dowhile可以互相嵌套,执行顺序是先执行最里层的循环语句,依次可以互相嵌套,执行顺序是先执行最里层的循环语句,依次往外执行,最后执行最外层的循环。往外执行,最后执行最外层的循环。4循环嵌套循环嵌套3.3.3 转向语句转向语

35、句break;1break语句语句continue;2continue语句语句goto 语句标号;语句标号;3goto语句语句return 表达式表达式;4return语句语句3.4 预处理命令预处理命令3.4.1 宏定义宏定义#define 标识符标识符 字符串字符串例如:例如: #define PI 3.1415926#define 宏名(参数表)宏名(参数表) 字符串字符串例如:例如: #define L(a,b) (a+b)/2另外,还可以用另外,还可以用#define命令定义带参数的宏:命令定义带参数的宏:3.4.2 文件包含文件包含#include 文件名文件名或或 #includ

36、e 3.4.3 条件编译条件编译(1)#ifdef 标识符标识符程序段程序段1#else程序段程序段2#endif(2)#ifndef 标识符标识符程序段程序段1#else程序段程序段2#endif(3)#if 表达式表达式程序段程序段1#else程序段程序段2#endif综合实例综合实例1 根据输入的年龄判断根据输入的年龄判断 所属年龄阶段所属年龄阶段/实例实例3-1.cpp#include void main()int n;/局部声明语句局部声明语句do/循环结构,输入年龄信息循环结构,输入年龄信息 coutn;/输入年龄输入年龄if(n=0)/如果年龄如果年龄=0,显示出错信息,结束循环

37、,显示出错信息,结束循环 cout输入错误!输入错误!0&n10)cout“小孩小孩”;/多重选择语句,用于进行年龄阶段的判定多重选择语句,用于进行年龄阶段的判定else if(n20)cout少年少年;else if(n30)cout青年青年;else if(n50)cout=50)cout老年老年;coutendl;while(n200);/循环条件循环条件请输入年龄:请输入年龄:45 中年中年请输入年龄:请输入年龄:15 少年少年请输入年龄:请输入年龄:0 输入错误!输入错误!测试数据与运行结果:测试数据与运行结果:综合实例综合实例2 2 将输入数字转换为以汉字将输入数字转换为以汉字 形

38、式输出的货币金额形式输出的货币金额/实例实例3-2.cpp#include #include void main() double x,i=10000000;int j=0;unsigned int quotient,remainder;bool beginFlag=0,zeroFlag=0;coutx;while (x=100000000)/如果连续三次输入的数字不符合要求,则退出程序如果连续三次输入的数字不符合要求,则退出程序 if (j=2)/控制连续输入无效数字的次数控制连续输入无效数字的次数 cout你的错误输入已达你的错误输入已达3次,你无权再输入!次,你无权再输入!endl;re

39、turn;cout输入金额无效,请重新输入!输入金额无效,请重新输入!endl;coutx;j+;/累计输入次数累计输入次数x=floor(x*100+0.5)/100;/实现输入数值的小数点后实现输入数值的小数点后2位四舍五入位四舍五入while(i0.001) if(i=1)quotient=(unsigned int)floor(x/i);/将不大于将不大于x/i的最大整数转换成无符号整数的最大整数转换成无符号整数else if(i=0.1)quotient=(unsigned int)floor(x*10);/取第一位小数取第一位小数elsequotient=(unsigned int

40、)floor(x*100); /取第二位小数取第二位小数remainder=quotient%10;/取个位数字取个位数字if(remainder!=0)/如果当前数字不等于如果当前数字不等于0 beginFlag=1;/置置beginFlag标记位为标记位为1/根据标记位判断是否将数字之间的根据标记位判断是否将数字之间的0转换为转换为零零if(zeroFlag=1)&(beginFlag=1)&(i=1)&(remainder0)cout零零;switch(remainder)/将数字转换为相应的汉字将数字转换为相应的汉字 case 0:break;case 1:cout壹壹;break;c

41、ase 2:cout贰贰;break;case 3:cout叁叁;break;case 4:cout肆肆;break;case 5:cout伍伍;break;case 6:cout陆陆;break;case 7:cout柒柒;break;case 8:cout捌捌;break;case 9:cout0)/如果当前数字不为零如果当前数字不为零zeroFlag=0;/置置zeroFlag标记位为标记位为0else if(beginFlag=1)/如果当前数字为零且不是第一如果当前数字为零且不是第一个非零数字个非零数字zeroFlag=1;/置置zeroFlag标记位为标记位为1if(beginFl

42、ag=1)/对于非对于非0数字,输出各位数字后面的单位数字,输出各位数字后面的单位 if(i=10000000)&(remainder0)cout0)cout0)cout拾拾;if(i=10000)cout0)cout0)cout0)cout拾拾;if(i=1)cout0)cout0)cout分分;i=i/10;cout整整endl;/每个金额的最后一个字为每个金额的最后一个字为整整请输入要转换的数字(小于请输入要转换的数字(小于1亿):亿):-144.35 输入金额无效,请重新输入!输入金额无效,请重新输入!请输入要转换的数字(小于请输入要转换的数字(小于1亿):亿):4050076.536

43、4 肆佰零伍万零柒拾陆元伍角肆分整肆佰零伍万零柒拾陆元伍角肆分整测试数据与运行结果:测试数据与运行结果:综合实例综合实例3 3 输出杨辉三角输出杨辉三角/实例实例3-3.cpp#include void main() int n,r,c,m,j=0;coutm;while (m=14)/如果连续三次输入的数字不符合要求,则退出程序如果连续三次输入的数字不符合要求,则退出程序 if (j=2) cout你的错误输入已达你的错误输入已达3次,你无权再输入!次,你无权再输入!endl;return;cout你输入的行数超出范围,请重新输入!你输入的行数超出范围,请重新输入!endl;coutm;j+

44、;/累计输入次数累计输入次数for (n=0;n=m-1;n+)/逐行输出数字和空格逐行输出数字和空格 for(r=1;r15-n;r+)/输出第一个数字之前的空格,为了打印出金字输出第一个数字之前的空格,为了打印出金字cout ;/塔形状,要保证各行依次递减塔形状,要保证各行依次递减2个空格个空格c=1;/第一个数字总为第一个数字总为1coutc ;/输出第一个数字以及输出第一个数字以及3个空格个空格for(r=1;r=n;r+)/输出各行的其他数字和空格输出各行的其他数字和空格 c=c*(n-r+1)/r;/计算应输出数字计算应输出数字if(c100) /根据数值大小确定数字后面的空格个数

45、根据数值大小确定数字后面的空格个数if(c10)coutc ;/一位数的后面输出一位数的后面输出3个空格个空格elsecoutc ;/两位数的后面输出两位数的后面输出2个空格个空格elsecoutc ;/三位数的后面输出三位数的后面输出1个空格个空格couty?x:y;return z;(2)函数名 函数名通常用一个能反映函数功能的单词表示,它必须要符合C+标识符命名规则,由字母、数字和下划线组成。函数名后面必须跟一对括号,用来与其他标识符区分开。例如:int max(int x,int y) int z;z=xy?x:y;return z;(3)函数体 函数体是实现函数功能的主体部分,一般是

46、一条复合语句,用花括号括起来,中间可以是一条或若干条语句。(4)参数列表 参数列表由0个或多个参数组成,写在函数名后面的圆括号内,用于向函数传送数值或从函数带回数值。参数列表内给出的每一个参数都要指出其类型和参数名。根据参数列表中给出的参数的个数,函数可分为无参函数和有参函数。当参数个数多于1个时,参数之间用逗号隔开。4.1.2 函数原型的声明函数原型的声明函数类型 函数名(参数列表); 当在一个函数中调用另一个函数时,调用其他函数的函数称为主调函数,被其他函数调用的函数称为被调函数。 如果被调函数在使用时尚未定义,即调用在前,定义在后,则必须在函数调用前对被调函数原型进行声明。函数原型的声明

47、形式如下:例如:int max(int a,int b);void line();double area(double r);或int max(int a,int b);4.2 函数的参数与返回值函数的参数与返回值 定义函数时,函数名后面括号中的变量名称为形式参数(简称形参)。 调用函数时,函数名后面括号中的参数(或表达式)称为实际参数(简称实参)。4.2.1 函数的参数1形参和实参 形参和实参用于实现主调函数与被调函数之间数据的传递。例如:int max(int a,int b)/该语句中定义了两个形式参数a和bcout9和5中较大的数是max(9,5)endl;/该语句中定义了两个形式参数

48、a和b2参数的传递 函数调用过程中的数据传递是由实参向形参进行的。 在函数调用时,首先要计算出实参表达式的值,然后给对应的形参变量分配存储单元,并将实参的值复制到形参的存储空间中,即对形参进行初始化后执行该函数。这种传递方式称为值传递。 值传递的特点是:在函数执行过程中形参的变化不会影响实参的值。也就是说,即使形参的值在函数中发生了变化,实参的值也不会改变,仍为调用前的值。3设置函数参数的默认值 函数调用过程中的数据传递是由实参向形参进行的。 在函数调用时,首先要计算出实参表达式的值,然后给对应的形参变量分配存储单元,并将实参的值复制到形参的存储空间中,即对形参进行初始化后执行该函数。这种传递

49、方式称为值传递。 值传递的特点是:在函数执行过程中形参的变化不会影响实参的值。也就是说,即使形参的值在函数中发生了变化,实参的值也不会改变,仍为调用前的值。4.2.2 函数的返回值 通过函数的调用使主调函数得到一个确定的函数值,就是函数的返回值。函数的返回值是通过函数中的return语句给出的。 在定义函数时应指定函数类型,通常,return语句中表达式的类型应与函数类型相一致。如果二者不一致,则应以函数类型为准,自动进行类型转换,即函数类型决定返回值类型。例如: int area(double r)/函数类型为int型 double s; s=3.1415926*r*r; return s;

50、 /返回值类型为double型,返回时被转换为int型数据4.3 函数调用函数调用函数名(实参列表);常见的函数调用方式:4.3.1 函数调用的一般形式n若函数没有返回值,可将函数调用单独作为一个语句使用,用于完成一定的操作。n若函数有返回值,可将函数调用作为语句的一部分,利用返回值参与表达式的运算或执行某种操作。4.3.2 函数的嵌套调用 C+中不允许函数的嵌套定义,但允许函数的嵌套调用,即在调用一个函数的过程中又调用另一个函数。两层嵌套函数的调用过程4.3.3 函数的递归调用 一个函数直接或间接地调用该函数本身,称为函数的递归调用。执行过程n直接递归函数是指在一个函数中直接调用自身。例如:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com