西安交大C++随堂练习5.docx

上传人:b****8 文档编号:9687481 上传时间:2023-02-05 格式:DOCX 页数:15 大小:253.20KB
下载 相关 举报
西安交大C++随堂练习5.docx_第1页
第1页 / 共15页
西安交大C++随堂练习5.docx_第2页
第2页 / 共15页
西安交大C++随堂练习5.docx_第3页
第3页 / 共15页
西安交大C++随堂练习5.docx_第4页
第4页 / 共15页
西安交大C++随堂练习5.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

西安交大C++随堂练习5.docx

《西安交大C++随堂练习5.docx》由会员分享,可在线阅读,更多相关《西安交大C++随堂练习5.docx(15页珍藏版)》请在冰豆网上搜索。

西安交大C++随堂练习5.docx

西安交大C++随堂练习5

西安交通大学实验报告

一.实验目的

(1)掌握C++的选择结构语句的使用,如:

if…else…,switch…

(2)掌握C++的循环结构语句的使用,如:

while…,do…while…,for….

二.实验内容

(-)实验题目一:

分段函数

#include

usingnamespacestd;

intmain()

{

doublex,y;

cout<<"请输入自变量x=";

cin>>x;

if(x<0)

{

y=x*x;

}

else

{

y=x*x*x+2*x*x+x;

}

cout<<"y="<

return0;

}

(二)实验题目二:

计算n!

#include

usingnamespacestd;

intmain()

{

intn,i=0,mul=1;

cout<<"请输入非负整数n=";

cin>>n;

if(n>=0)

{

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

{

mul=mul*i;

}

cout<<"n!

="<

}

else

{

cout<<"输入的数不合法"<

}

return0;

}

(三)实验题目三:

Fabonacci数列

(1)、#include

usingnamespacestd;

intfib(intn)

{

if(n==0)return0;

elseif(n==1)return1;

returnfib(n-1)+fib(n-2);

}

intmain()

{

inti,n,u=0;

cout<<"请输入待求的斐波那契数列项数n:

";

cin>>n;

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

{

u=u+fib(i);

}

cout<<"斐波那契数列的第"<

"<

cout<<"斐波那契数列的前"<

"<

return0;

}

(2)、#include

#include

usingnamespacestd;

intmain()

{

doublesum,u,n;

sum=0;

u=0;

n=1;

do

{

u=1/(u+1);

sum=sum+u;

n++;

}while(fabs(u-1/(u+1))>10E-8);

cout<<"变式斐波那契数列的所求n为:

"<

cout<<"变式斐波那契数列的所求第n项为:

"<

cout<<"变式斐波那契数列的所求前n项和为:

"<

return0;

}

(四)、实验题目四:

数学计算

#include

#include

usingnamespacestd;

intmain()

{

inta,n,u,i,sum;

sum=0;

i=1;

cout<<"请输入1-9的整数a和任意正整数n:

";

cin>>a>>n;

u=a;

do

{

sum=sum+u;

u=10*u+a;

i++;

}while(i<=n);

cout<<"a+aa+aaa+aaaa+……+="<

return0;

}

(五)、实验题目五:

谁是小偷

#include

usingnamespacestd;

intmain()

{

inta,b,c,d;

for(a=1;a>=0;a--)//穷举每个人是否是小偷的所有情况

for(b=1;b>=0;b--)//1:

是小偷0:

不是

for(c=1;c>=0;c--)

for(d=1;d>=0;d--)

if((a==0)+(c==1)+(d==1)+(d==0)==3&&a+b+c+d==1)//4人的说法中有3个真的,且只有一个小偷

{

cout<<"A"<<(a?

"":

"不")<<"是。

"<

cout<<"B"<<(b?

"":

"不")<<"是。

"<

cout<<"C"<<(c?

"":

"不")<<"是。

"<

cout<<"D"<<(d?

"":

"不")<<"是。

"<

}

return0;

}

#include

usingnamespacestd;

intmain()

{

inta,b,c,d;

for(a=1;a>=0;a--)//穷举每个人是否是小偷的所有情况

for(b=1;b>=0;b--)//1:

是小偷0:

不是

for(c=1;c>=0;c--)

for(d=1;d>=0;d--)

if((!

a)+(c)+(d)+(!

d)==3&&a+b+c+d==1)//!

a与a==0或a!

=1完全等价,其他同

{

cout<<"A"<<(a?

"":

"不")<<"是。

"<

cout<<"B"<<(b?

"":

"不")<<"是。

"<

cout<<"C"<<(c?

"":

"不")<<"是。

"<

cout<<"D"<<(d?

"":

"不")<<"是。

"<

}

return0;

}

(六)、实验题目六:

水仙花数

#include

usingnamespacestd;

intmain()

{

intn,i,j,k,sum,m;

doubleaverage;

sum=0;

m=0;

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

{i=n/100;//取出n的百位数

j=(n/10)%10;//取数n的十位数

k=n%10;//取出n的个位数

if(n==i*i*i+j*j*j+k*k*k)

{

cout<

sum=sum+n;

m++;

}

}

cout<<"所有水仙花数的和sum="<

average=sum/m;

cout<<"所有水仙花数的平均值average="<

return0;

}

(七)、实验题目七:

二元一次方程组

#include

usingnamespacestd;

intmain()

{

intn,i,j,k,t,m=0;

for(n=1000;n<=2000;n++)

{

i=n/1000;//取出千位

j=n/100-10*i;//取出n的百位数

k=n/10-100*i-10*j;//取数n的十位数

t=n%10;//取出n的个位数

if((i+j)==(k+t))

{

m++;

cout<<"n="<

}

}

cout<

cout<<"水仙花数的个数m="<

return0;

}

三.个人小结

这次的实验明显比前两次难,很多程序都不能直接套用例子,但总体来说还是很基本的。

第三题求斐波那契数列,重点在于最后两位数与新加入数的转换。

第三题其实是斐波那契数列的改版,循环中加一个sum即可。

第四题重点在于n个a到n+1个a的转换(乘十加a)比较简单。

第六题可对求水仙花数程序略作修改,为求和可在循环中加入sum+=n,为求平均值可添加计数器num++。

本此实验最应注意的是循环的次数,循环的条件(停止循环的条件)。

需要在写程序前将结构彻底搞懂,必要时可画流程图。

个人缺点编程速度太慢,主要是第二题调试时间太长。

另外应注意程序的注释,提高可读性。

**********请看下页样例**********

西安交通大学实验报告

课程计算机程序设计实验名称C++集成开发环境的使用第1页共2页

系别理学院实验日期2007年3月15日

专业班级应数61组别___________实验报告日期2007年3月16日

姓名张三学号06031027报告退发(订正、重做)

同组人_________________________________教师审批签字

一.实验目的

(1)掌握集成开发环境的使用方法;

(2)了解C++程序的基本特点。

二.实验内容

(-)实验题目一:

求解任意两个正整数的最大公因数。

1.要点分析

根据古希腊数学家欧几里德的算法,要求解给定两个正整数p和q的最大公因数可按照如下方法:

步骤1:

如果p

步骤2:

求p/q的余数r;

步骤3:

如果r=0,则q就是所求的结果;

否则反复做如下工作:

令p=q,q=r,重新计算p和q的余数r,直到r=0为止

则q就是原来的两正整数的最大公因数.

2.程序源代码

//计算两个正整数的最大公因数

#include//包含基本输入输出库文件

intmain()

{

//说明三个整型变量p,q,r

intp,q,r;

//提示用户由键盘输入两个正整数

cout<<"Pleaseinputtwointegernumbers:

"<

cin>>p>>q;

//如果p

if(p

{

r=p;

p=q;

q=r;

}

//计算p除以q的余数r

r=p%q;

//只要r不等于0,重复进行下列计算

while(r!

=0)

{

p=q;

q=r;

r=p%q;

}

//输出结果

cout<<"Themaximumcommondivisoris"<

return0;

}

3.实验结果

(二)实验题目二:

计算矩形面积

1.要点分析

(略)

2.程序源代码

(略)

3.实验结果

(略)

三.个人小结

(略)

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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