cout<<",b="<
cout<<",c="<a++;
b++;
c++;
}
voidmain(){
while(a<4)
function();
cout<}
在VC++6环境下运行结果为:
a=1,b=1,c=1
a=2,b=1,c=2
a=3,b=1,c=3
Pressanykeytocontinue
4、(6分)
#include
voidfunction(int[][3],int[][2]);
voidmain(){
inta[2][3]={1,2,3,4,5},b[3][2];
function(a,b);
for(inti=0;i<3;i++){
for(intj=0;j<2;j++)
cout<
cout<}
}
voidfunction(inta[][3],intb[][2]){
for(inti=0;i<2;i++)
for(intj=0;j<3;j++)
b[j][i]=a[i][j];
}
在VC++6环境下运行结果为:
14
25
30
Pressanykeytocontinue
5、(6分)
#include
structmystruct{
charch;
intnum;
}b[10];
voidfunction(charstr[],mystructresult[]){
inti=0;
do{
intj=0;
while(result[j].num!
=0){
if(str[i]==result[j].ch){
result[j].num++;
break;
}
j++;
}
if(result[j].num==0){
result[j].ch=str[i];
result[j].num++;
}
i++;
}while(str[i]!
='\0');
}
voidmain()
{
chara[20]="acdveavcafe";
function(a,b);
inti=0;
while(b[i].num!
=0){
cout<
i++;
}
}
在VC++6环境下运行结果为:
a---3
c---2
d---1
v---2
e---2
f---1
Pressanykeytocontinue
三、程序填空
3.1下面的程序计算级数和S,请完善该程序。
计算S的公式如下:
S=
#include
voidmain(){
doubleresult;
________
(1)________;
for(inti=1;i<=100;______
(2)_______){
result+=________(3)________;
}
cout<}
3.2函数MaxCommonDivisor计算两个整数的最大公因数,请完善该函数。
intMaxCommonDivisor(intx,inty){
if(x%y==0)
returny;
else{
if(y%x==0)
returnx;
else{
intm=________
(1)________;
intn=________
(2)________;
for(inti=n-1;i>1;i--){
if(n%i==0){
if(________(3)________)
returni;
}
}
}
}
}
3.3以下程序统计1000以内的素数并显示在屏幕上,请完善改程序。
#include
voidmain(){
constintn=1000;
intsieve[n+1];
for(intj=1;jsieve[j]=j;
inti=1,count=0;
while(_______
(1)_______){
i++;
if(sieve[i]!
=0){
cout<<""<_______
(2)________;
if(count%15==0)
cout<for(_________(3)_________)
sieve[k]=0;
}
}
cout<}
3.4函数Invert对字符串内容进行颠倒,例如将字符串”abcde”变为”edcba”,请完善该函数。
voidInvert(charstr[])
{
inti,j,l=0;
________
(1)________;
while(________
(2)________)
l++;
for(________(3)________;i{
k=str[i];
str[i]=str[j];
str[j]=k;
}
}
3.5递归函数sort实现对整型数组b中的数据由小到大排序。
请完善该函数。
voidsort(intb[],intn)
{
intj,t;
if(n==1)
________
(1)___________;
for(j=1;jif(_____
(2)_____)
{
t=b[0];
b[0]=b[j];
b[j]=t;
}
sort(b+1,______(3)______);
}
四、程序设计
1、一个正整数,如果值为其各位数字的立方和,该正整数称为水仙花数,例如153=13+53+33。
请根据如下功能及函数原型设计两个函数:
(1)求一个整数的立方,函数原型为:
intCube(int);
(2)判断一个正整数是否为水仙花数,函数原型为:
boolIsArmstrong(int);
2、梭哈是一种扑克牌游戏,每位玩家手里有五张牌,根据由这五张牌组成的牌型确定胜者。
常见的牌型有:
Ø同花顺:
五张牌花色一致,点数连续;
Ø
Ø四条:
四张牌点数相同,另一张牌为任意牌
Ø
Ø富尔豪斯:
三张牌点数相同,另外两张牌点数也相同
Ø
Ø同花:
五张牌花色一致,点数任意
Ø
请根据上述规则,设计结构类型poker,用来描述一张扑克牌,然后分别设计bool类型函数:
StraightFlush、Four_of_a_Kind、FullHouse和Flush,分别判断同花顺、四条、富尔豪斯和同花四种牌型(上述四个函数,均可嵌套调用其它函数,请根据解题需要自行设计所需的其它函数)。
答案(参数为数组):
structpoker{
charhuase;
intdianshu;
}pokers[5];
//只写出结构类型,没设置结构类型数组也可以给分
voidsort(chara[],intb[],intn)
{
for(inti=0;i{
for(intj=i;j>0;j--)
{
if(b[j]
{
inttemp=b[j];
b[j]=b[j-1];
b[j-1]=temp;
chartempc=a[j];
a[j]=a[j-1];
a[j-1]=tempc;
}
}
}
}
boolStraightFlush(chara[],intb[])
{
chartemp=a[0];
for(inti=1;i<5;i++)
{
if(a[i]!
=temp)
returnfalse;
}
for(i=0;i<4;i++)
{
if((b[i+1]-b[i])!
=1)
returnfalse;
}
returntrue;
}
boolFour_of_a_Kind(chara[],intb[])
{
inttemp=b[0];
boolflag1=true,flag2=true;
for(inti=1;i<4;i++)
{
if(b[i]!
=temp)
flag1=false;
}
temp=b[4];
for(i=3;i>0;i--)
{
if(b[i]!
=temp)
flag2=false;
}
returnflag1||flag2;
}
boolFullHouse(chara[],intb[])
{
inttemp=b[0];
boolflag1=true,flag2=true;
if(b[3]!
=b[4]||b[0]!
=b[1])
returnfalse;
for(inti=1;i<2;i++)
{
if(b[i]!
=temp)
flag1=false;
}
temp=b[4];
for(i=2;i<5;i++)
{
if(b[i]!
=temp)
flag2=false;
}
returnflag1||flag2;
}
boolFlush(chara[],intb[])
{
chartemp=a[0];
for(inti=0;i<5;i++)
{
if(a[i]!
=temp)
returnfalse;
}
returntrue;
}