版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基本控制结构与导出数据类型§4.4转向语句一、break语句:又称为跳出语句break语句用于强制退出循环语句以及switch语句的执行。当程序遇到这一语句后,将直接执行循环体后面的语句。for(i=0;i<10;i++){if(i>3)break;//跳出循环,执行cout
}cout<<“break”;例§4.4转向语句二、continue语句:又称为继续语句continue语句用在循环语句中,作用为结束本次循环,即跳过循环体中尚未执行的语句接着进行下一次是否执行循环的判定。for(n=100;n<=200;n++){if(n%3==0)continue;
cout<<n<<endl;}//输出100-200之间不能被3整除的数例§4.4转向语句表达式1表达式2表达式3continueft循环体表达式1表达式2表达式3breakft循环体#include<iostream.h>intmain(){
intx;for(x=1;x<=10;x++){if(x==5)
break;
cout<<x<<“”;}
cout<<“\nBrokeoutofloopatxof”<<x<<endl;return0;}输出结果:1234
Brokeoutlfloopatxof5
#include<iostream.h>intmain(){for(intx=1;x<=10;x++){if(x==5)
continue;
cout<<x<<“”;}
cout<<“\Usecontinuetoskipprinting5”<<endl;return0;}输出结果:1234678910
Usecontinuetoskipprinting5§4.4转向语句三、return语句:又称为返回语句。其功能:
1.改变语句顺序voidmessage(intn){if(a>10)return;//跳出函数体
//…}例§4.4转向语句三、return语句:又称为返回语句。其功能:
2.返回函数值
intf(){return3.5;
}voidmain()
{
int
a=f();cout<<a<<endl;//输出3
}例§4.4转向语句四、goto语句:又称为转向语句。功能:令程序跳转至程序指定的某标号处。i=1;sum=0;
loop:sum+=i++;{if(i<=100)
gotoloop;
cout<<“sumis”<<sum<<endl;}例§4.4转向语句i=1;sum=0;
loop:sum+=i++;{if(i<=100)
gotoloop;
cout<<“sumis”<<sum<<endl;}说明
1.语句标号用标志符表示,它的命名规则与变量名相同。§4.4转向语句i=1;sum=0;
loop:sum+=i++;{if(i<=100)
gotoloop;
cout<<“sumis”<<sum<<endl;}说明
2.一个函数体内的goto语句不可转向函数体外。
3.一个块语句外的goto语句不可转向该程序之内。§4.4转向语句i=1;sum=0;
loop:sum+=i++;{if(i<=100)
gotoloop;
cout<<“sumis”<<sum<<endl;}说明
4.用goto语句实现的循环完全可以用
while或for循环来实现。§4.4转向语句说明
5.一般说来goto语句可以用于以下两个方面:
①.与if语句一起构成循环语句
②.从循环体中跳转到循环体外,尤其是在从多层嵌套循环的内层直接跳到循环的外层。§4.4转向语句for(inti=1;i<10;i++)
for(intj=1;j<10;j++)
if(i*j==50)
gotoEnd;End:
cout<<i<<“*”<<j<<“50\n”;例#include<iostream.h>voidmain(){
ints=0,k;for(k=7;k>=0;k--){switch(k){case1:case4:case7:s++;break;case2:case3:case6:break;case0:case5:s+=2;break;}}
cout<<“s=”<<s<<endl;}练习1分析下列程序的执行结果:答:s=7#include<iostream.h>voidmain(){
inti,j,k,count=0;for(i=1;i<=9;i++)for(j=1;j<=9;j++)if(A)continue;elsefor(k=1;k<=9;k++)if(B)count++;
cout<<count<<endl;}练习2填空:统计符合要求的三位数的个数,要求各位上的数字彼此不同A:i=jB:k!=i&&k!=j§4.5数据导出类型(1),数组一、导出类型的概念导出数据类型数组类型指针类型引用类型
若干同一类型数据(或对象)的组合
某一种类型数据(或对象)的首地址
某一种类型数据(或对象)的引用§4.5数据导出类型(1),数组一、导出类型的概念
数组是具有相同名称和相同类型的一组连续内存地址。-456072154-89C[0]C[1]C[2]C[3]C[4]C[5]数组名数组元素位置号
数组的第6个元素和数组元素6的区别注意§4.5数据导出类型(1),数组二、数组
1.在inta[5]={1,3,5};中,数组元素a[1]
的值是___。①.一维数组的说明格式:<类型名><数组名>[<元素个数>];
②.一维数组的初始化<类型名><数组名>[<元素个数>]={<初值表>};
初始化数组的值不能多于数组元素的个数,初始化数组的值也不能通过跳过逗号的方式来省略,这在C中是允许的,但在C++中不允许。注§4.5数据导出类型(1),数组intarray1[5]={1,2,3,4,5,6};
//error:初始化值个数多于数组元素个数intarray2[5]={1,,2,3,4};
//error:初始化值不能省略intarray2[5]={1,2,3,};
//error:初始化值不能省略例§4.5数据导出类型(1),数组intarray4[]={1,2,3,4,5};
//ok:初始化值列表的个数就是数组元素个数intarray5[5]={};
//error:语法格式错误intarray6[5]={0};
//ok:如果初始化的元素比数组中的元素少,则其余元素自动初始化为0。但至少要显式地将第一个元素初始化为0。例§4.5数据导出类型(1),数组二、数组
2.在intb[][3]={{1},{3,2},{4,5,6},{0}};中,数组元素b[2][2]的值是___。①.二维数组的说明格式:<类型名><数组名>[<行数>][<列数>];
②.二维数组的初始化
初始化数组的值按行用花括号组合在一起,如b[2][3]={{1,2,3},{4,5,6}},其中{1,2,3}初始化了b[0][0],b[0][1],b[0][2],{4,5,6}初始化了b[1][0],b[1][1],b[1][2]。如果某行没有足够的初始化值,那么该行中的剩余元素都被初始化为0。注§4.5数据导出类型(1),数组三、数组与字符串
1.字符数组可以用字符串直接初始化,例如:字符数组的特性charstring1[]=“first”;
2.字符数组还可以用初始化值列表中的各个字符常量初始化。例如上例可以写成:charstring1[]={‘f’,‘i’,‘r’,‘s’,‘t’,‘\0’};§4.5数据导出类型(1),数组三、数组与字符串
3.可以用cin和>>直接从键盘输入字符串,例如:字符数组的特性charstring2[20];cin>>string2;
4.可以用cout和<<输出表示空字符终止字符串的字符数组,例如:
cout<<string2<<endl;§4.5数据导出类型(1),数组三、数组与字符串
3.下列给字符数组进行的初始化中,___是正确的。A.chars1[]=“abcd”;B.chars2[3]=“xyz”;C.chars3[][]={‘a’,‘x’,‘y’};第五章函数、函数与运算符重载√
函数概述√
函数的说明与使用√
函数与运算符重载§5.1函数概述一、函数main()fun1()fun2()fun3()fun4()fun5()§5.1函数概述函数类型
1.获取参数并返回值intbigger(inta,intb){return(a>b)?a:b;}例
2.获取参数但不返回值intgeti(){intx;
cout<<“input:\n”;
cin>>x;returnx;}例
3.没有获取参数但返回值
4.没有获取参数也不返回值voidmessage(){
cout<<“message!\n”;}例voiddelay(longa){
for(inti=1;i<=a;i++);}例§5.1函数概述二、数学库函数doublex,y;ceil(x)将x取整为不小于x的最小整数ceil(9.2)=10.0ceil(-9.8)=-9.0cos(x)x(弧度)的余弦cos(0.0)=1.0exp(x)指数函数exexp(1.0)=2.71828exp(2.0)=7.38906abs(x)x的绝对值x>0,abs(x)=xx=0,abs(x)=0.0x<0,abs(x)=-xfloor(x)x取整为不大于x的最大整数floor(9.2)=9.0floor(-9.8)=-10.0§5.1函数概述二、数学库函数doublex,y;fmod(x)x/y的浮点数余数fmod(13.657,2.3)=1.992log(x)x的自然对数log(2.71828)=1.0pow(x,y)x的y次方pow(2,7)=128pow(9,.5)=3sin(x)x(弧度)的正弦sin(0.0)=0sqrt(x)x的平方根sqrt(9.0)=3.0§5.1函数概述三、头文件
头文件包含库中所有函数的函数原型和这些函数所需各种数据类型和常量定义。<ctype.h>
包含测试某些字符属性的函数原型和将大小写字母互换的函数原型<math.h>
包含数学库函数的函数原型§5.1函数概述三、头文件<stdio.h>
包含标准输入/输出库函数的函数原型及其使用信息<stdlib.h>
包含数字与文本互换、内存分配、随机数和其他工具函数的函数原型<string.h>
包含C语言式的字符串处理函数的函数原型<time.h>
包含操作时间和日期的函数原型和类型<iostream.h>
包含标准输入/输出函数的函数原型§5.2函数的说明与使用
1.在函数说明时,下列__项是不必要的。A.函数的类型B.函数参数类型和名字C.函数名字D.返回值表达式问题§5.2函数的说明与使用一、函数说明
1.函数原型
函数原型(函数声明)用来指出函数的名称,类型和参数,它是一条程序语句,必须以分号结束。标准库函数的函数原型用户自定义函数的函数原型§5.2函数的说明与使用一、函数说明
1.函数原型其格式为:[<属性说明>]<类型><函数名>(<参数表>);说明①属性说明:可缺省,为下列之一inline——表示该函数为内联函数static——表示该函数为静态函数virtual——表示该函数为虚函数friend——表示该函数为某类的友元函数②类型:指函数的返回类型。C++语言规定除了特别情形(main()函数和类的构造函数、析构函数)之外,所有函数都必须在说明中指出返回类型。③函数名:一个标识符④参数表:函数原型中的参数表可忽略参数名,只包含参数的类型。如:intArea(int,int);等价于intArea(intlength,intWidth);§5.2函数的说明与使用
2.分析下列程序voidfuncA(int,float);voidmain()
{inta;
floatb;
funcA(a,b);
}voidfuncA(intx,inty)
{//…}
编译时可以通过,但是链接时产生“不能确定的外部函数”的错误。错误问题§5.2函数的说明与使用一、函数说明
2.函数定义
函数定义与函数原型的主要区别是它还包括函数体。voidfuncA(int,float);voidmain()
{inta;
floatb;
funcA(a,b);
}voidfuncA(int,int)
{//…}
函数声明要与定义的函数保持一致。§5.2函数的说明与使用
3.下列程序的运行结果是什么#include<iostream.h>intmain()
{for(intx=1;x<=10;x++)
cout<<square(x)<<“\n”;
return0;
}intsquare(inty){returny*y;}问题§5.2函数的说明与使用二、函数调用函数的调用过程:①根据调用语句中的函数名在整个程序中搜索同名的函数定义#include<iostream.h>intmain()
{for(intx=1;x<=10;x++)
cout<<square(x)<<“\n”;
return0;
}int
square(inty){returny*y;}②核对实参的参数个数、类型、顺序,判定是否与函数定义中的形参表对应一致③根据参数的类型进行传值或换名④运行函数体代码⑤返回调用点,并返回所要求的函数值§5.2函数的说明与使用
4.当一个函数无返回值时,函数的类型应定义为__。A.voidB.任意C.intD.无问题§5.2函数的说明与使用三、函数的返回1.返回void类型2.返回数值类型3.返回引用类型voidprint(){
cout<<“Hello!”;}
intadd(inta,intb);
下节详述
§5.2函数的说明与使用main()是特殊的函数,它由操作系统调用,返回到操作系统。补充voidmain()intmain()main()return1;之类的语句§5.2函数的说明与使用
5.在一个被调用函数中,关于return
语句使用的描述中,错误的是__。A.被调用函数中可以不用return语句B.被调用函数中可以使用多个return语句C.被调用函数中如果有返回值,就一定要有return语句D.被调用函数中,一个return语句可返回多个值给调用函数练习§5.2函数的说明与使用
6.若对函数类型未加显式说明,则函数的隐含类型是__。A.voidB.doubleC.intD.char练习§5.2函数的说明与使用
7.若有下列函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));
其中实参的个数是__。A.3B.4C.5D.6问题§5.2函数的说明与使用四、函数的参数1.无参函数2.一个或多个参数3.不定个数参数voidprint(void);
intgetx();
i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化疗病人腹泻护理措施
- 2026年网络口语测试题及答案
- 2026年怎么测试男朋友测试题及答案
- 2026年古诗滁州西涧测试题及答案
- 2026年初中教师技能测试题及答案
- 2026年企业安全知识测试题及答案
- 2026年汉字教学测试题型及答案
- 护理核心制度培训要点
- 洽谈协议书签订事宜的通知
- 2026年画树心理测试题及答案
- 2026年安全生产月知识竞赛试题(7套完整版 含答案)
- 2026文化和旅游部恭王府博物馆招聘应届毕业生4人考试备考试题及答案解析
- 昆明供电局项目制用工招聘笔试真题2025
- 2026年4月自考07816公共行政学试题及答案含评分参考
- 2026年二级建造师之二建机电工程实务真题含答案详解
- 内蒙古杉杉年产4万吨锂离子电池负极新能源材料加工项目环境影响报告表
- CPU性能测试实验报告
- 2025年光伏组件拆卸和更换施工技术方案
- 2026年中考历史重要知识点复习提纲
- 2025年贵阳产控安居投资运营有限公司社会招聘备考题库完整参考答案详解
- 网络游戏公司游戏策划实习报告
评论
0/150
提交评论