C++课程设计南通大学计算机科学与技术学院Word文件下载.docx

上传人:b****4 文档编号:18020542 上传时间:2022-12-12 格式:DOCX 页数:22 大小:21.83KB
下载 相关 举报
C++课程设计南通大学计算机科学与技术学院Word文件下载.docx_第1页
第1页 / 共22页
C++课程设计南通大学计算机科学与技术学院Word文件下载.docx_第2页
第2页 / 共22页
C++课程设计南通大学计算机科学与技术学院Word文件下载.docx_第3页
第3页 / 共22页
C++课程设计南通大学计算机科学与技术学院Word文件下载.docx_第4页
第4页 / 共22页
C++课程设计南通大学计算机科学与技术学院Word文件下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C++课程设计南通大学计算机科学与技术学院Word文件下载.docx

《C++课程设计南通大学计算机科学与技术学院Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计南通大学计算机科学与技术学院Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。

C++课程设计南通大学计算机科学与技术学院Word文件下载.docx

for(i=0;

for(intj=0;

j<

j++)

{

if(a[i]==2*a[j])

{cout<

a[i]<

是"

a[j]<

的两倍"

t++;

}

答案是:

t<

103.(3分)找出所有这样的3位数,390625——625*625

{

for(intx=100;

x<

=999;

x++)

if(x*x%1000==x)

cout<

的平方为:

x*x<

104.(3分)找出既是素数又是回文数(从右向左读和从左向右读相同)的3位数。

cmath>

boolsushu(intx)//判断是否为素数

{

for(inti=2;

=(int)sqrt(x);

i++)

if(x%i==0)return0;

return1;

intx,a,b,c;

for(x=100;

a=x%10;

//求个位数

b=x/10%10;

//求十位数

c=x/100;

//求百位数

if((sushu(x))!

=0&

&

a==c)cout<

'

\t'

;

//既满足是素数又是回文数,因为是3位数,所以个位等于百位就可以

106.(3分)求这样一个3位数,abc=a!

+b!

+c!

intf(intn)

{ints=1;

=n;

s*=i;

returns;

{intx,a,b,c;

a=x%10;

c=x/100;

if(x==f(a)+f(b)+f(c))

107.(3分)求5位数既能被5整除,又能被3整除。

已知54-7-

inta,b,t=0;

for(a=0;

a<

=9;

a++)

for(b=0;

b<

b++)

if((5*10000+4*1000+a*100+7*10+b)%5==0&

(5*10000+4*1000+a*100+7*10+b)%3==0)

54"

7"

这样的数共有"

个"

108.(4分)鸡兔同笼,共有头98只,脚386只,编程求鸡、兔各多少只?

intx,y;

//鸡有x只,兔有y只

for(x=1;

=98;

x++)//循环,设置循环条件,鸡或兔都应小于等于头的数

for(y=1;

y<

y++)

{

if((x+y==98)&

(2*x+4*y==386))//满足条件头有98,脚有386.

cout<

鸡有"

只,兔有"

只。

109.(4分)百鸡问题。

设公鸡5元一只,母鸡3元一只,小鸡一元3只,请问花一百元买100只鸡,且需包含公鸡、母鸡和小鸡,有哪几种方案。

intx,y,z;

//公鸡x只,共5x元,母鸡y只,共3y元,小鸡3z只,共z元。

=100/5;

x++)//限制x,y,z的条件是鸡的最大只数。

{for(y=1;

=(int)100/3;

for(z=1;

z<

=100;

z++)

if((5*x+3*y+z==100)&

(x+y+3*z==100))//限制条件百元白鸡

cout<

公鸡"

只,母鸡"

只,小鸡"

3*z<

110.(4分)三色球问题。

若一个口袋中放有12只球,其中有红球3只,白球3只,黑球6只,试问从中任取8只球,共有多少种不同色取法。

intx,y,z,t=0;

//取红球x个,白球y个,黑球z个。

t用来统计有多少种取法

for(x=0;

=3;

x++)//因为各种颜色的球的个数有限制,所以限制条件

{for(y=0;

for(z=0;

=6;

if(x+y+z==8)//满足要求的条件

{cout<

取红球"

个,白球"

个,黑球"

个。

共有"

种取法"

111.(4分)用1元5角人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?

每种方案各换多少枚?

分析:

将单位换位,则共有150分,再确定x,y,z的限制条件.

//x指5分的枚数,y指2分的枚数,z指1分的枚数。

t统计方案数

150/5;

150/2;

150;

if((x+y+z==100)&

(5*x+2*y+z==150))

5分的"

枚,2分的"

枚,1分的"

枚"

种方案"

112.(4分)一辆卡车违反交通规则,撞人逃跑。

现场三人目击事件,但都没记住车号,只记下车号的一些特征。

甲说:

拍照的前两位数字是相同的;

乙说:

拍照的后两位数字是想同的;

丙是位数学家,他说:

四位的车号刚好是一个整数分平方。

请根据以上线索求出车号。

inta,b;

//a代表车牌号的第一、第二位,b代表第三、第四位。

{for(b=0;

for(inti=1;

100;

i++)//因为100的平方是5位数,所以四位数的开根号一定小于100.

if(a*1000+a*100+b*10+b==i*i&

a!

=b)

车牌号为:

//也可以输出i*i。

113.(4分)编程输出满足下列算式的各字母所代表的数字。

PEAR-ARA=PEA。

intP,E,A,R;

for(P=1;

P<

P++)//注意,因为P、E有出现在数字的首位,所以不能为0

for(A=1;

A<

A++)

for(R=0;

R<

R++)//R、E不在首位,可以从0开始循环

{

for(E=0;

E<

E++)

{

if((P*1000+E*100+A*10+R)-(A*100+R*10+A)==(P*100+E*10+A))

cout<

P:

'

E:

A:

R:

}

}

114.(4分)一个自然数的七进制是一个三位数,而这个自然数的九进制也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。

inta,b,c;

//设3位数为abc;

for(a=1;

b++)//a,c出现在首位,所以不能为1,b可以为1

for(c=1;

c<

c++)

if((a*7*7+b*7+c)==(c*9*9+b*9+a))//将自然数分别用七进制和九进制表示

116.(4分)在数字圆圈中,相隔一个数字的两个数,看作是一对数。

试编程找出乘积最小的一对。

inta[20]={1,6,16,10,2,18,7,13,3,15,11,8,4,20,19,14,5,9,12,17},max=a[0]*a[2],min=a[0]*a[2],j1,k1,j2,k2;

18;

if(max<

=a[i]*a[i+2]){max=a[i]*a[i+2];

j1=i;

k1=i+2;

}//循环。

将相隔一个数的两个数乘积大小比较

if(min>

=a[i]*a[i+2]){min=a[i]*a[i+2];

j2=i;

k2=i+2;

if(max<

=a[18]*a[0]){max=a[18]*a[0];

j1=18;

k1=0;

}//由于排列为环形,所以最后两个数应该单独拿出来比较

=a[19]*a[1]){max=a[19]*a[1];

j1=19;

k1=1;

if(min>

=a[18]*a[0]){min=a[18]*a[0];

j2=18;

k2=0;

=a[19]*a[1]){min=a[19]*a[1];

j2=19;

k2=1;

最大的一对:

a[j1]<

*'

a[k1]<

='

max<

最小的一对:

a[j2]<

a[k2]<

min<

118.(5分)编程计算当x=0.5和x=1.5时下述级数和的近似值,使其误差小于某一指定值epsilon。

先找出通式,再将通式转化为编程语言。

doublef(intn)

doubles=1.0;

{doublesum=0;

intn=1;

doubleepsilon=1.0e-6;

doublex;

请输入x的值:

x;

do{

sum+=(pow(x,2*n-1)*pow(-1,n-1))/((2*n-1)*f(n-1));

n++;

}while(pow(x,2*n-1)/((2*n-1)*f(n-1))>

=epsilon);

cout<

sum<

119.(5分)编程计算下式的值。

doubles=0;

for(intk=1;

k<

k++)

s+=k;

for(k=1;

=50;

s+=k*k;

=10;

s+=1.0/k;

结果为:

122.(6分)编程计算N*N的二维数组周边元素的平均值。

{intN,s=0,x=0;

请输入N:

N;

int**a=newint*[N];

//定义二级指针,申请动态内存

if(!

a){cout<

未申请到动态内存"

return1;

{a[i]=newint[N];

a[i]){cout<

cin>

a[i][j];

//数据读取

{s+=a[0][i]+a[N-1][i];

x=x+2;

}//计算第一行和最后一行的和

for(i=1;

N-1;

{s+=a[i][0]+a[i][N-1];

}//计算第一列和最后一列的和,但是注意第一行和最后一行的那个数不用再算

平均值为:

(double)s/x<

i++)deletea[i];

//释放动态内存

deletea;

123.(6分)输入字符串,分别统计字符串中所包含的各个不同的字母及其各个字母的数量(不区分大小写)。

如:

输入字符串:

abcedabcdcd,则输出a=2b=2c=3d=3e=1

voidtongji(char*p)

{intnum[26]={0};

while(*p)

if(*p>

=65&

*p<

=90)num[*p-65]++;

elseif(*p>

=97&

=122)num[*p-97]++;

//读取字符,并将字符个数存入num[],注意大写小写的AscII码不同

p++;

26;

i++)//若出现次数大于1,则输出,否则不输出。

{if(num[i]>

0)cout<

(char)(i+97)<

num[i]<

{intn;

char*a;

n=sizeof(a)/sizeof(char);

//申请动态内存

a=newchar[n];

a){cout<

请输入字符串:

tongji(a);

208.(8分)用筛选法求出0~N(N>

0)之间的所有素数。

voidsushu(inta[],intsize)

a[0]=0;

a[1]=0;

size;

i++)//为数组中的元素赋值

{a[i]=1;

for(i=2;

(int)(size/2+0.5);

i++)//找对应元素为1的下标

{

if(a[i]==1)

for(intj=i+1;

{if(j%i==0)a[j]=0;

}//将对应下标的倍数的元素设置为0

if(a[i]==1)cout<

{intb[10];

sushu(b,10);

//函数调用

210.(10分)通过定义结构体,实现分数的有关运算(加、减、乘、除、大小比较、输入和输出)。

在加减和大小比较中,先求出分母的最小公倍数,最为分母,再根据通分法则运算,在大小比较时也可以借助减法结果的正负。

乘除法直接用运算方法。

structfenshu{

intfenzi;

intfenmu;

};

voidinput(fenshu*p1,fenshu*p2)

请输入分子和分母:

(*p1).fenzi>

(*p1).fenmu>

(*p2).fenzi>

(*p2).fenmu;

voidoutput(fenshu&

p)

{cout<

结果为:

p.fenzi<

/"

p.fenmu<

fenshujia(fenshu*p1,fenshu*p2)

{fenshut;

{intm=p1->

fenmu,n=p2->

fenmu;

if(m<

n)

{ints=m;

m=n;

n=s;

while(m%n!

=0)

{ints=m%n;

t.fenmu=p1->

fenmu*p2->

fenmu/n;

t.fenzi=(p1->

fenzi*t.fenmu/p1->

fenmu)+(p2->

fenzi*t.fenmu/p2->

fenmu);

returnt;

fenshujian(fenshu*p1,fenshu*p2)

fenmu)-(p2->

fenshucheng(fenshu*p1,fenshu*p2)

t.fenzi=(*p1).fenzi*(*p2).fenzi;

t.fenmu=(*p1).fenmu*(*p2).fenmu;

fenshuchu(fenshu*p1,fenshu*p2)

{fenshut;

t.fenzi=(*p1).fenzi*(*p2).fenmu;

t.fenmu=(*p1).fenmu*(*p2).fenzi;

voiddaxiao(fenshu*p1,fenshu*p2)

if((p1->

fenmu)>

(p2->

fenmu))cout<

第一个分数大于第二个"

elseif((p1->

fenmu)==(p2->

第一个分数等于第二个"

elsecout<

第一个分数小于第二个"

{fenshup1,p2;

fenshut1,t2,t3,t4;

input(&

p1,&

p2);

//指针调用

t1=jia(&

output(t1);

//引用

t2=jian(&

output(t2);

t3=cheng(&

output(t3);

t4=chu(&

output(t4);

daxiao(&

p2

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

当前位置:首页 > 考试认证 > 交规考试

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

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