北邮c++实验 实验四.docx

上传人:b****3 文档编号:6956139 上传时间:2023-05-10 格式:DOCX 页数:18 大小:503.31KB
下载 相关 举报
北邮c++实验 实验四.docx_第1页
第1页 / 共18页
北邮c++实验 实验四.docx_第2页
第2页 / 共18页
北邮c++实验 实验四.docx_第3页
第3页 / 共18页
北邮c++实验 实验四.docx_第4页
第4页 / 共18页
北邮c++实验 实验四.docx_第5页
第5页 / 共18页
北邮c++实验 实验四.docx_第6页
第6页 / 共18页
北邮c++实验 实验四.docx_第7页
第7页 / 共18页
北邮c++实验 实验四.docx_第8页
第8页 / 共18页
北邮c++实验 实验四.docx_第9页
第9页 / 共18页
北邮c++实验 实验四.docx_第10页
第10页 / 共18页
北邮c++实验 实验四.docx_第11页
第11页 / 共18页
北邮c++实验 实验四.docx_第12页
第12页 / 共18页
北邮c++实验 实验四.docx_第13页
第13页 / 共18页
北邮c++实验 实验四.docx_第14页
第14页 / 共18页
北邮c++实验 实验四.docx_第15页
第15页 / 共18页
北邮c++实验 实验四.docx_第16页
第16页 / 共18页
北邮c++实验 实验四.docx_第17页
第17页 / 共18页
北邮c++实验 实验四.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北邮c++实验 实验四.docx

《北邮c++实验 实验四.docx》由会员分享,可在线阅读,更多相关《北邮c++实验 实验四.docx(18页珍藏版)》请在冰点文库上搜索。

北邮c++实验 实验四.docx

北邮c++实验实验四

5.3实验题

一、基础题

1.修改下列程序中的错误,输出结果,输出示例如图5-1所示。

并对有注释标记的语句进行功能注释。

#include

usingnamespacestd;

voidf1(intx[])

{

inti;

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

{x[i]=2*x[i]+1;

if(i==6)//如果i的值为6,则执行大括号里面的语句

{cout<

else

cout<

cout<

}

voidmain()

{

inta[10],i;

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

cin>>a[i];//循环输入a[i]的值

f1(a);//调用函数f1,计算a[i]的值

}

图5-1第1题的输出示例

2.修改下列程序的错误,完成求最大数的功能。

#include

#include

usingnamespacestd;

intf1(intx,inty);

voidmain()

{

inta=120,b=300,c=40;

intd,e;

d=f1(a,b);e=f1(d,c);

cout<<"a="<

cout<<"b="<

cout<<"c="<

cout<<"三个数中的最大数为:

"<

}

inlineintf1(intx,inty)

{

returnx>y?

x:

y;

}

3.分析程序出错的原因,并更正、输出正确的结果。

要求对有注释标记的语句进行功能注释。

//这个程序的错误在于:

重载函数用于实现功能相似而处理的数据类型不同的问题,而编译器不以函数类型区分重载函数,认为是同一个函数声明两次,编译出错。

#include

usingnamespacestd;

intsum1(inta,intb)//定义整型函数,函数名称为sum1,括号内为形参a,b(均为整型)

{

returna+b;

}

doublesum2(doublex,doubley,doublez)//定义double类型函数,名称为sum2,形参为x,y,z,均为double类型

{

returnx+y+z;

}

floatsum3(floatx,floaty)

{

returnx+y;

}

voidmain()

{

cout<<"调用函数sum1(int,int)的结果为:

"<

cout<<"调用函数sum2(double,double,double)的结果为:

"<

cout<<"调用函数sum3(float,float)的结果为:

"<

}

4.分析下列程序所完成的功能,并标出程序中各个变量的存储类型。

//这个程序的功能为:

通过定义变量的存储类型不同,了解变量作用域的不同,从而使输出的结果不同。

#include

usingnamespacestd;

intf1(int);

voidmain()

{

intx=5;//x是auto型

staticinty;//y在此处是static型中的静态局部变量

y=y+f1(x);

cout<<"x="<

y=y+f1(x);

cout<<"x="<

}

staticintx=12;//x在此处是static型中的静态全局变量

intf1(inta)//a是auto型

{staticinty=300;//y在此处是static型中的静态局部变量

y=y+a;

cout<<"x="<

returny;

}

5.分析下列程序所完成的功能,并输出正确的结果。

//这个程序的功能是:

输入一个正整数,将此正整数的各个位的数字按逆序排列,即个位的数字作为最高位,十位的数字作为第二高位,以此循环类推,直到x对10取商的值为0时循环结束。

经过函数运算后的数称为逆转数,并将此数在屏幕上显示出来。

#include

usingnamespacestd;

voidf1(intx)

{intd;

cout<<"输出该数的逆转数为:

";

do

{

d=x%10;

cout<

x=x/10;

}while(x!

=0);

cout<

}

voidmain()

{

intn;

cout<<"输入一个正整数:

";

cin>>n;

f1(n);

}

二、编程题

1.设计一个函数求100以内能被13整除的最大数。

#include

usingnamespacestd;

intf(intx)

{

inty;

y=x-x%13;

returny;

}

voidmain()

{

intn;

cout<<"请输入一个非0整数:

"<

cin>>n;

f(n);

cout<

"<

}

2.设计一个可以计算阶乘的函数,由用户输入n值,计算出1!

+2!

+3!

+4!

+……+n!

的值,并打印出来。

#include

usingnamespacestd;

longlongf(longlongn)

{

longlongfn;

if(n==0)

fn=1;

else

fn=n*f(n-1);

returnfn;

}

voidmain()

{

cout<<"请输入整数n值:

";

longlongn,sum=0,i;

cin>>n;

for(i=1;i<=n;i++)

{f(i);

sum+=f(i);}

cout<<"1!

直到"<

的和为:

"<

}

3.设计一个函数,完成将一个十进制数转换成2、8、16进制数。

#include

#include

usingnamespacestd;

voidf1(intx)

{

inta,i=0,b[16]={0};

do

{

a=x%2;

b[i++]=a;

x=x/2;

}while(x!

=0);

cout<<"二进制数转化为:

";

for(intk=i-1;k>=0;k--)

{cout<

cout<

}

voidf2(inty)

{

cout<<"八进制数转化为:

"<

}

voidf3(intz)

{

cout<<"十六进制数转化为:

"<

}

voidmain()

{

intn;

cout<<"请输入一个数:

";

cin>>n;

f1(n);

f2(n);

f3(n);

}

4.设计一个递归函数,求满足以下条件的最大的n:

12+22+32+……+n2<1000

#include

usingnamespacestd;

intf(intn)

{

intfn;

if(n==0)

fn=0;

else

fn=n*n+f(n-1);

returnfn;

}

voidmain()

{

intn=1,fn;

for(n=1;n<100;n++)

{

f(n);

if(f(n)>1000)break;

}

cout<<"满足条件的最大n值为:

"<

}

5.设计一个重载函数area,用于求出长方形和圆形的面积,其中长方形的长和宽、圆的半径由用户从键盘输入。

#include

#include

usingnamespacestd;

doublearea(doublex,doubley)

{

return(x+y)*2;

}

doublearea(doubler)

{

doublepi=3.1415926;

returnpi*r*r;

}

voidmain()

{

cout<<"请输入长方形的长和宽:

"<

doublex,y;

cin>>x>>y;

cout<<"长方形的面积为:

"<

cout<<"请输入圆的半径:

"<

doubler;

cin>>r;

cout<<"圆的面积为:

"<

}

6.编写一个程序,将一个文件中所有大写字母转换成小写字母,并存储到另一个文件中。

#include

#include

usingnamespacestd;

voidmain()

{

ifstreamifile("wenjian1.txt");

ofstreamofile("wenjian2.txt");

charv;

cout<<"转换后的字符串为:

";

inta;

while(ifile>>v)

{

a=v;

if(a<97)

{cout<

ofile<

else{cout<

ofile<

}

ofile.close();

cout<

}

7.编写一个程序,实现将存放在文件中的学号、姓名、电话等信息读出并显示出来。

#include

#include

#include

usingnamespacestd;

intmain()

{

strings;

ifstreaminf("D:

\\test.txt");

if(!

inf)

{

cout<<"打开失败"<

return-1;

}

while(getline(inf,s))

{

cout<

}

}

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2