visualc++程序设计的上机操作的答案.docx

上传人:b****6 文档编号:5918461 上传时间:2023-01-02 格式:DOCX 页数:73 大小:41.83KB
下载 相关 举报
visualc++程序设计的上机操作的答案.docx_第1页
第1页 / 共73页
visualc++程序设计的上机操作的答案.docx_第2页
第2页 / 共73页
visualc++程序设计的上机操作的答案.docx_第3页
第3页 / 共73页
visualc++程序设计的上机操作的答案.docx_第4页
第4页 / 共73页
visualc++程序设计的上机操作的答案.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

visualc++程序设计的上机操作的答案.docx

《visualc++程序设计的上机操作的答案.docx》由会员分享,可在线阅读,更多相关《visualc++程序设计的上机操作的答案.docx(73页珍藏版)》请在冰豆网上搜索。

visualc++程序设计的上机操作的答案.docx

visualc++程序设计的上机操作的答案

实验一

#include

voidmain(void)

{

inta,b,sum;

cout<<"请输入加数与被加数\n";

cin>>a>>b;

sum=a+b;

cout<<"sum="<

}

 

#include

voidmain()

{

doublef,c;

cout<<"请输入华氏温度:

";

cin>>f;

c=5.0/9*(f-32);

cout<<"摄氏温度="<

}

 

#include

voidmain()

{

doubler,s;

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

";

cin>>r;

s=3.14159*r*r;

cout<<"圆的面积是:

s="<

}

 

#include

#include

voidmain()

{

doublea,b,c,s,area;

cout<<"请输入三角形的三边:

";

cin>>a>>b>>c;

s=a+b+c;

s=s/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

cout<

}

 

实验二

#include

voidmain(void)

{floata,b,c;//定义变量,存放三角形的三边数据

cout<<"inputabc\n";//输入提示信息

cin>>a>>b>>c;//从键盘依次输入三边的值

if((a+b

cout<<"NotTriangle\n";//不满足三角形三边条件,输出否定信息

else

cout<<"Triangle\n";//满足三边构成条件,输出确认信息

}

 

#include

voidmain(void)

{intyear;//定义变量,存放将输入的年份

cout<<"Inputyear:

";//输出提示信息

cin>>year;//输入欲判断的年份

if(year%400==0||year%4==0&&year%100!

=0)//判断该年份是否为闰年的条件

cout<

else

cout<

}

 

#include

voidmain()

{

floata1,a2;//定义两个操作数

charoper;//定义运算符

floatresult;//定义变量,存放结果

intflag=0;//?

cout<<"请输入简单的运算式:

\n";//输出提示信息

cin>>a1>>oper>>a2;//从键盘键入运算式,如5+34.5*7

switch(oper)//利用开关语句结构判断进行何种运算

{

case'+':

//加法

result=a1+a2;

break;

case'-':

//减法

result=a1-a2;

break;

case'*':

result=a1*a2;

break;

default:

cout<<"输入错误的运算符!

\n";

flag=1;

}

if(flag==0)

cout<

}

 

#include

#include

voidmain()

{

doublea,b,c;

doublex1,x2,disc;

cout<<"请输入方程的系数abc:

";

cin>>a>>b>>c;

disc=b*b-4*a*c;

if(fabs(disc)<1e-5)

{

x1=(-b)/2/a;

cout<<"方程有两个相等的实根:

x="<

}

elseif(disc<0)

cout<<"方程无实根!

\n";

else

{

x1=(-b+sqrt(disc))/2/a;

x2=(-b-sqrt(disc))/2/a;

cout<<"方程有两个不同的实根:

"<

cout<<"x1="<

}

}

\\

#include

voidmain()

{

floata1,a2;//定义两个操作数

charoper;//定义运算符

floatresult;//定义变量,存放结果

intflag=0;//?

cout<<"请输入简单的运算式:

\n";//输出提示信息

cin>>a1>>oper>>a2;//从键盘键入运算式,如5+34.5*7

switch(oper)//利用开关语句结构判断进行何种运算

{

case'+':

//加法

result=a1+a2;

break;

case'-':

//减法

result=a1-a2;

break;

case'*':

result=a1*a2;

break;

case'/':

if(a2==0)

{

cout<<"除数不能为0!

\n";

flag=1;

break;

}

result=a1/a2;

break;

default:

cout<<"输入错误的运算符!

\n";

flag=1;

}

if(flag==0)

cout<

}

实验三

#include

voidmain()

{

intx,y;//定义变量,x代表鸡的数目,y代表兔子的数目

for(x=1;x<30;x++)//鸡的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍

for(y=1;y<30;y++)//同样兔子的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍

if(2*x+4*y==90&&x+y==30)//所有可能的解中将满足给定条件的解输出

{

cout<<"鸡有:

"<

"<

}

}

 

#include

voidmain()

{inta,a1,a2;//定义变量,a代表个位,a1代表十位,a2代表百位

intb;//b为由a2,a1,a所组成的百位数

for(a2=1;a2<=9;a2++)//百位的位值从1~9皆有可能,所以程序将所有可能的解循环验证一遍

for(a1=0;a1<=9;a1++)//同样十位的位值从0~9皆有可能,所以程序将所有可能的解循环验证一遍

for(a=0;a<=9;a++)

{b=a2*100+a1*10+a;

if(a*a*a+a1*a1*a1+a2*a2*a2==b)//所有可能的解中将满足给定条件的解输出

cout<

}

}

 

#include

voidmain(void)

{

inta0,a1,a2;//定义变量,a0代表个位,a1代表十位,a2代表百位

intb;//b为由a2,a1,a0所组成的百位数

for(b=100;b<=999;b++)//将数字b从100到999循环,并将每个数拆开,看看是否符合水仙花数的条件

{

a2=b/100;//剥出数字b的百位数

a1=b/10%10;//剥出数字b的十位数

a0=b%10;//剥出数字b的个位数

if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b)//判断是否满足水仙花数的条件

cout<

}

cout<

}

 

#include

voidmain(void)

{

intman,woman,children;//定义变量,存放结果(男人、女人、小孩的个数)

for(man=1;man<=9;man++)//男人从1人到9人循环,每种情况下计算满足条件的女人和小孩的人数

for(woman=1;woman<=18;woman++)//在男人人数确定的情况下,女人从1人到18人循环,每种情况下计算满足条件的小孩人数

{

children=36-man-woman;//男人女人人数确定后,小孩的人数就可以根据条件求出

if((man+woman+children==man*4+woman*2+children/2)&&(children%2==0))

//看看每种条件下男人、女人、小孩的人数及搬的砖是否满足给定的条件,因为小孩是每两人

//搬一块砖,所以小孩人数必须是偶数

cout<<"man="<

//输出满足if条件的结果,即男人、女人、小孩的人数

}

}

 

#include

voidmain(void)

{

inti,j,k,n,t=0;//定义n为从1到599循环的数字,i,j,k分别为n的百位、十位、个位数字

//t为控制输出格式的计数变量

for(n=1;n<=599;n++)//使n从1到599循环,将满足条件的n摘出来

{

i=n/100;//剥出n的百位数

j=n/10%10;//剥出n的十位数

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

if(n%3==0&&(i==5||j==5||k==5))//当数字n满足给定的条件是

{

cout<

t++;

if(t%5==0)//控制输出格式,每5个为一行,即输出5个数后输出回车

cout<<'\n';

}

}

cout<

}

 

#include

voidmain(void)

{

inta0,a1,a2;//定义变量,a0代表个位,a1代表十位,a2代表百位

intb;//b为由a2,a1,a0所组成的百位数

for(b=100;b<=999;b++)//将数字b从100到999循环,并将每个数拆开,看看是否符合水仙花数的条件

{

a2=b/100;//剥出数字b的百位数

a1=b/10%10;//剥出数字b的十位数

a0=b%10;//剥出数字b的个位数

if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b)//判断是否满足水仙花数的条件

cout<

}

cout<

}

 

实验四

#include

voidmain(void)

{

inta,b;

intt,x;

cout<<"请输入两个正整数:

";

cin>>a>>b;

x=a*b;

if(a

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

while(t=a%b)

{

a=b;

b=t;

}

cout<<"最大公约数:

"<

cout<<"最小公倍数:

"<

}

 

#include

voidmain(void)

{inta,b,c;//定义存放输入的三个整数的变量空间

cout<<"Inputthreenumber:

";//提示信息

cin>>a>>b>>c;//从键盘输入三个整数

for(inti=a;i>=1;i--)//假设最大公约数为i,使i从a(或b或c)到1逐次递减循环

if(a%i==0&&b%i==0&&c%i==0)//当i满足公约数的条件时(同时能被a,b,c整除)时,退出循环,即这时的i即为最大公约数

break;

cout<

}

 

#include

voidmain(void)

{

inta;

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

";

cin>>a;

for(inti=2;i

if(a%i==0)

break;

if(i>=a/2)

cout<

else

cout<

}

 

#include

voidmain(void)

{

inta,b,c;

cout<<"请输入三个整数:

";

cin>>a>>b>>c;

for(inti=a;i<=a*b*c;i++)

if(i%a==0&&i%b==0&&i%c==0)

break;

cout<<"最小公倍数为:

"<

}

 

#include

voidmain(void)

{

for(inti=100;i<=200;i++)//将i从100到200依次循环,以求出所有满足素数条件的i

{

for(intj=2;j

if(i%j==0)//若i能被上述其中一个数整除,即表示i不是素数,后面的数就不必除了,直接退出循环

break;

if(j>=i/2)//出了循环后,要判断i是中途退出的(不是素数)还是循环到i/2后再退出的(是素数)

cout<

}

}

 

#include

voidmain(void)

{

inta;

ints;

for(inti=1;i<1000;i++)

{

a=i;

s=0;

for(intj=1;j

{

if(a%j==0)

s=s+j;

}

if(a==s)

cout<

}

}

 

实验五

#include

voidmain(void)

{

intt=2;

ints=0;

for(inti=1;i<=7;i++)

{

s=s+t;

t=t*10+2;

}

cout<<"2+22+222+...+2222222="<

}

 

#include

voidmain(void)

{floaty=1,t=1;//t为通项,初值为1,即1!

,y为结果,初值为1

intn;

cout<<"Inputn:

";//输出提示信息

cin>>n;//输入欲求的项数

for(inti=2;i<=n;i++)

{t=t*i;//根据前一项求后一项

y=y+t;//通项累加和

}

cout<<"1!

+2!

+3!

+....+"<

="<

}

 

#include

#include

voidmain(void)

{

floatx,y1,y2;

cout<<"请输入x的值:

";

cin>>x;

y2=x;

do

{

y1=y2;

y2=2*y1/3+x/y1/y1/3;

}while(fabs(y1-y2)>1e-5);

cout<<"y="<

}

 

#include

voidmain(void)

{

floatx,y,t;//t为通项,x为未知数

intn;//n为通项个数,必须是整数

cout<<"Inputnx:

";//输出提示信息

cin>>n>>x;//从键盘输入数据102.5

y=x;//结果的初始值,因为循环从第2项开始,所以第1项要先赋给结果y

t=x;//通项的初始值

for(inti=2;i<=n;i++)//假设第1项已求出(初始值),从第2项开始计算

{

t=-t*x*x/((2*i-1)*(2*i-2));//首先计算通项,计算方法是用前1项的值推算后1项的值

//即求出前后两项相除的结果,这个结果是它们相差的倍数,然后前1项的值乘以这个倍数即为后1项的值

y=y+t;//将当前的通项值累加起来

}

cout<<"y="<

}

 

实验六

#include

floatfun(floatx)//函数fun求形参x的函数值,并将结果返回

{

floaty;//定义x的函数值

y=2*x*x+3*x+5;//计算函数值

returny;//将结果返回

}

voidmain(void)

{

floaty1,y2;//定义x为1和1.2时的函数值

y1=fun(1.0);//将1.0作为实参调用fun函数,即赋给形参x,函数值即为所求的结果

y2=fun(1.2);//将1.2作为实参调用fun函数,即赋给形参x,函数值即为所求的结果

cout<<"y1="<

cout<<"y2="<

}

 

#include

#include

floatf(floatx)//求形参x的多项式的值

{

returnx*x+3*x-4;

}

floatf1(floatx)//求形参x的多项式的导数值

{

return2*x+3;

}

voidmain(void)

{

floatx1,x0;//定义存放新旧迭代值的变量

x1=0;//迭代变量赋初值

do

{

x0=x1;//迭代循环,将新的迭代值变成旧的迭代值,再去求新的迭代值

x1=x0-f(x0)/f1(x0);//用旧的迭代值求新的迭代值

}while(fabs(x1-x0)>1e-5);//不满足结束条件,一直迭代循环

cout<<"x="<

}

 

#include

#include

floatf(floatx)//根据形参x求函数f(x)=x*x+3*x-4的值

{returnx*x+3*x-4;

}

voidmain(void)

{

floatx1,x2,x0;

do//判断输入的初值是否满足要求

{cout<<"请输入初值x1和x2:

";

cin>>x1>>x2;//输入初值

}while((f(x1)*f(x2))>0);//当解不在初值范围之内时,重新循环输入初值

do

{x0=(x1+x2)/2;//根据初值求方程的新的根x0

if(f(x0)*f(x1)>0)//实际的根在x2和x0之间

x1=x0;//将x0作为新的x1

else//实际的根在x1和x0之间

x2=x0;//将x0作为新的x2

}while(fabs(f(x0))>1e-5);//判断x0是否是满足方程的解的精度

cout<<"x0="<

}

 

#include

#include

floatf(floatx)//根据形参x求函数f(x)=x*x+3*x-4的值

{returnx*x+3*x-4;

}

voidmain(void)

{

floatx1,x2,x0;

do//判断输入的初值是否满足要求

{cout<<"请输入初值x1和x2:

";

cin>>x1>>x2;//输入初值

}while((f(x1)*f(x2))>0);//当解不在初值范围之内时,重新循环输入初值

do

{x0=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));//根据初值求方程的新的根x0

if(f(x0)*f(x1)>0)//实际的根在x2和x0之间

x1=x0;//将x0作为新的x1

else//实际的根在x1和x0之间

x2=x0;//将x0作为新的x2

}while(fabs(f(x0))>1e-5);//判断x0是否是满足方程的解的精度

cout<<"x0="<

}

 

#include

#include

floatf(floatx)//求形参x的多项式的值

{

returnx*x+3*x-4;

}

floatf1(floatx)//求形参x的多项式的导数值

{

return2*x+3;

}

floatff(floatx)

{

floaty;

if(fabs(f(x))<1e-5)

y=x;

else

y=ff(x-f(x)/f1(x));

returny;

}

voidmain(void)

{

floatx1;//定义存放新旧迭代值的变量

x1=0;//迭代变量赋初值

cout<<"x="<

展开阅读全文
相关搜索

当前位置:首页 > 表格模板 > 合同协议

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

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