C++实验报告文本版.doc
真诚为您提供优质参考资料,若有不当之处,请指正。
真诚为您提供优质参考资料,若有不当之处,请指正。
PAGE/NUMPAGES
真诚为您提供优质参考资料,若有不当之处,请指正。
实验目的
熟悉定义函数的方法、函数实参与形参的对应关系机“值传递”方式
熟悉函数的嵌套调用和递归调用的方法。
熟悉全局变量、局部变量概念和使用方法。
熟悉编译预处理的应用。
熟悉多文件的程序的编译和运行的方法。
二、实验环境
VisualC++6.0
三、实验内容
1、输入一个数字并判断其是否是素数。
程序为:
#includeiostream
usingnamespacestd;
intmain()
{inta,b,i;
cout请输入一个数endl;
cina;
if(a==2)cout2是素数;
elseif(a2)
{for(i=2;ia;i++)
{b=a%i;
if(b==0)break;}
if(b==0)couta不是素数;
elsecouta是素数;}
elsecouta不是素数;
return0;}
运行时分别输入:17、34、2、1、0
2、验证哥德巴赫猜想,输入一个不小于6的偶数,输出一下形式的结果:
34=3+31
程序为:#includeiostream
#includecmath
usingnamespacestd;
intmain()
{voidgodbaha(int);
intn;
cout请输入一个数字;
cinn;
godbaha(n);
return0;}
voidgodbaha(intn)
{intprime(int);
inta,b;
for(a=3;a=n/2;a=a+2)
{if(prime(a))
{b=n-a;
if(prime(b))
coutn=a+bendl;
}}}
intprime(intm)
{inti,k=sqrt(m);
for(i=2;i=k;i++)
if(m%i==0)break;
if(ik)return1;
elsereturn0;}
运行时输入:6、12、20、458
3、汉诺塔问题
程序为:#includeiostream
usingnamespacestd;
intmain()
{voidhanoi(intn,charone,chartwo,charthree);
intm;
coutinputthenumberofdisks:;
cinm;
coutThestepsofmovingmdisks:endl;
hanoi(m,A,B,C);
return0;
}
voidhanoi(intn,charone,chartwo,charthree)
{voidmove(charx,chary);
if(n==1)move(one,three);
else
{hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);}
}
voidmove(charx,chary)
{
coutx--yendl;
}
运行时分别输入:3,5,7,16,
4、输入一个字母字符,设置条件编译,使之能根据需要将小写字母改为大写字母输出,或将大写字母改为小写字母输出。
程序如下:
#includeiostream
usingnamespacestd;
//#defineLETTER1
intmain()
{charc;
cinc;
#ifLETTER
if(c=ac=z)
c=c-32;
#else
if(c=Ac=Z)
c=c+32;
#endif
coutcendl;
return0;
}运行时分别输入:a,B,y
5、求a*b和a^m的值,其中b的值在程序中给出,a和m的值由键盘输入,要求写一个power函数求a^m的值,在主函数中求a*b,并调用power函数得到a^m的值。
主要程序如下(部分)
Filel.cpp中
intmain()
{intpower(int);
intb=3mc,d,m;
coutenteranintegeraanditspowerm:endl;
cinam;
d=power(m)
couta**m=dendl;
return0;}
filed2.cpp中
externinta;
intpow