程序设计练习题及代码.docx

上传人:b****2 文档编号:2183987 上传时间:2023-05-02 格式:DOCX 页数:63 大小:29.61KB
下载 相关 举报
程序设计练习题及代码.docx_第1页
第1页 / 共63页
程序设计练习题及代码.docx_第2页
第2页 / 共63页
程序设计练习题及代码.docx_第3页
第3页 / 共63页
程序设计练习题及代码.docx_第4页
第4页 / 共63页
程序设计练习题及代码.docx_第5页
第5页 / 共63页
程序设计练习题及代码.docx_第6页
第6页 / 共63页
程序设计练习题及代码.docx_第7页
第7页 / 共63页
程序设计练习题及代码.docx_第8页
第8页 / 共63页
程序设计练习题及代码.docx_第9页
第9页 / 共63页
程序设计练习题及代码.docx_第10页
第10页 / 共63页
程序设计练习题及代码.docx_第11页
第11页 / 共63页
程序设计练习题及代码.docx_第12页
第12页 / 共63页
程序设计练习题及代码.docx_第13页
第13页 / 共63页
程序设计练习题及代码.docx_第14页
第14页 / 共63页
程序设计练习题及代码.docx_第15页
第15页 / 共63页
程序设计练习题及代码.docx_第16页
第16页 / 共63页
程序设计练习题及代码.docx_第17页
第17页 / 共63页
程序设计练习题及代码.docx_第18页
第18页 / 共63页
程序设计练习题及代码.docx_第19页
第19页 / 共63页
程序设计练习题及代码.docx_第20页
第20页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计练习题及代码.docx

《程序设计练习题及代码.docx》由会员分享,可在线阅读,更多相关《程序设计练习题及代码.docx(63页珍藏版)》请在冰点文库上搜索。

程序设计练习题及代码.docx

程序设计练习题及代码

C语言程序设计基础题

3.1鸡兔同笼一共有40只脚,求鸡兔各有多少只,总共有多少种组合。

#include

main()

{

inti,j,x=0;

for(i=0;i<=10;i++)

{

for(j=0;j<=20;j++)

{

if((4*i+2*j)==40)

{

printf("兔的只数为:

%d鸡的只数:

%d\n",i,j);

x++;

}

}

}

Printf("组合数:

%d\n",x);

}

3.2换零钱.把一元钱全兑换成硬币(1分2分5分),有多少种兑换方法

#include

main()

{

intone,two,five;

for(one=1;one<=100;one++)

{

for(two=0;two<=50;two++)

{

for(five=0;five<=20;five++)

{

if(one+2*two+5*five==100)

{

printf("一分:

%d二分:

%d五分:

%d\n",one,two,five);

}

}

}

}

}

3.3已知A>B>C>0,A,B,C为整数,且A+B+C<100。

求满足1/A2+1/B2=1/C2的A,B,C共有多少组。

#include

main()

{

intA,B,C;

for(A=1;A<100;A++)

{

for(B=1;B<100;B++)

{

for(C=1;C<100;C++)

{

if(((A+B+C)<100)&&((1.0/(A*A))+(1.0/(B*B))==(1.0/(C*C))))

{

printf("A=%dB=%dC=%d\n",A,B,C);

}

}

}

}

}

3.4设abcd*e=dcba,(a非0,e非0非1),求满足条件的整数abcd与e

#include

main()

{

inta,b,c,d,e;

for(a=1;a<9;a++){

for(b=0;b<9;b++){

for(c=0;c<9;c++){

for(d=0;d<9;d++){

for(e=2;e<9;e++){

if(((a*1000+b*100+c*10+d))*e==(d*1000+c*100+b*10+a)){

printf("a=%db=%dc=%dd=%de=%d\n",a,b,c,d,e);

}

}

}

}

}

}

}

3.5因子之和等于它本身的数为完数。

如:

28的因子是1,2,4,7,14,且1+2+4+7+14=28,则28为完数。

求[2,1000]中的完数。

#include

main()

{

inti,j,x;

for(i=2;i<=1000;i++)

{

x=0;

for(j=1;j

{

if(i%j==0)

{

x=x+j;

}

}

if(x==i)

{

printf("%d\n",i);

}

}

}

 

3.6将一个整数分解为1、质因子或本身之积。

如5=1*5,8=1*2*2*2

#include

main()

{

intx,i=2,j;

scanf("%d",&x);

printf("%d=1",x);

while(x!

=1)

{

if(x%i==0)

{

printf("*%d",i);

x=x/i;

}

else

{

i++;

}

}

}

3.7求1000以内亲密数对。

亲密数对的定义是:

若正整数a的所有因子之和为b,b的所有因子之和为a,且a!

=b,则称ab互为亲密数对。

如:

220的因子之和1+2+4+…+110=284

284的因子之和1+2+…+142=220

#include

main()

{

inti,j,k;

intx,y,n,m;

inta[100],b[100];

for(i=7;i<1000;i++)

{

x=0,y=0,n=0,m=0;

for(j=2;j

{

if(i%j==0)

{

a[n++]=j;

x=x+j;

}

}

for(j=2;j

{

if(x%j==0)

{

b[m++]=j;

y=y+j;

}

}

if(y==i&&i

{

printf("%d的因子之和为:

1",i);

for(k=0;k

{

printf("+%d",a[k]);

}

printf("=%d\n",x);

printf("%d的因子之和为:

1",x);

for(k=0;k

{

printf("+%d",b[k]);

}

printf("=%d\n\n\n",y);

}

}

}

3.8用二分法求方程在(-10,10)之间的根.2x3-4x2+3x-6=0

#include

#include

main()

{

doublex1=-10,x2=10,middle;

doubley1,y2,ym;

while((x2-x1)>=0.00001)

{

middle=(x1+x2)/2;

y1=2*pow(x1,3)-4*pow(x1,2)+3*x1-6;

y2=2*pow(x2,3)-4*pow(x2,2)+3*x2-6;

ym=2*pow(middle,3)-4*pow(middle,2)+3*middle-6;

if((y1/ym)>0)

{

x1=middle;

}

else

x2=middle;

}

printf("%lf\n",(x1+x2)/2);

}

3.9一个球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地后,共经过多少米?

第10次反弹多高?

#include

main()

{

doubleH=100,high=0,x=0;

inti;

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

{

x=x+H+high;

H=H/2;

high=H;

}

printf("共经过多少米:

%f米\n第10次反弹多高度:

%f米\n",x,H);

}

3.10猴子吃桃子.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天将剩下的桃子吃掉一半,又多吃了一个.以后每天都吃了前一天剩下的一半零一个.到第十天再想吃时,发现只剩下一个桃子.求第一天共摘多少桃子?

#include

main()

{

intnum=1,i;

for(i=10;i>1;i--)

{

num=(num+1)*2;

}

printf("第一天共摘%d个桃子\n",num);

}

3.11打印形状为直角三角形的九九乘法表

#include

main()

{

inti,j,x;

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

{

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

{

x=j*i;

printf("%d*%d=%2d",j,i,x);

}

printf("\n");

}

}

3.12求sn=a+aa+aaa+……+aa...a之值(n个a),其中a是一个一位整数.

如:

2+22+222+2222+22222+......

#include

voidmain()

{

intSn=0,s=0,a,n;

inti;

printf("请输入a,n:

\n");

scanf("%d",&a);

scanf("%d",&n);

for(i=0;i

{

s=s+a;

Sn=Sn+s;

s=s*10;

}

printf("Sn=%d\n",Sn);

}

3.13利用循环,打印除如下图案。

a

ab

abc

abcd

#include

voidmain()

{

chara[6]={'a','b','c','d','e','f'};

inti,j,x=0;

intn=sizeof(a)/sizeof(a[0]);

printf("n=%d",n);

printf("模式一:

\n");

for(i=0;i<6;i++)

{

for(j=0;j<=i;j++)

{

printf("%c",a[j]);

}

printf("\n");

}

printf("模式二:

\n");

for(i=0;i<3;i++)

{

for(j=0;j<2-i;j++)

{

printf("");

}

for(j=0;j

{

printf("%c",a[x]);

x++;

}

printf("\n");

}

printf("模式三:

\n");

x=0;

for(i=0;i<3;i++)

{

for(j=0;j<2-i;j++)

{

printf("");

}

for(j=0;j

{

printf("%c",a[x]);

x++;

}

printf("\n");

}

}

 

4.1用函数(传值和传址两种方式)实现2.2,2.3,2.5,2.6,2.9,2.10.

2.2

#include

intSum(intn)

{

ints=0,i;

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

{

s=s+i;

}

returns;

}

voidmain()

{

intn,s;

scanf("%d",&n);

s=Sum(n);

printf("前n项和为:

%d\n",s);

}

2.3

#include

intSum(intn)

{

ints=0,i,j=1,k=1;

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

{

s=s+j*k;

k=(-1)*k;

j=j+2;

}

returns;

}

voidmain()

{

intn=100,s;

s=Sum(n);

printf("前100项和为:

%d\n",s);

}

2.5

#include

longSum(intn)

{

inti;

longs=1;

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

{

s=s*i;

}

returns;

}

voidmain()

{

intn;

longs=1;

scanf("%d",&n);

printf("n=%d\n",n);

s=Sum(n);

printf("n!

:

%ld\n",s);

}

2.6

#include

longSum(intn)

{

inti;

longS=0,s=1;

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

{

s=s*i;

S=S+s;

}

returnS;

}

voidmain()

{

intn;

longs=1;

scanf("%d",&n);

printf("n=%d\n",n);

s=Sum(n);

printf("和为:

%ld\n",s);

}

2.9

#include

intPrime(intn)

{

inti,k=1;

for(i=2;i

{

if(n%i==0)

{

k=0;

break;

}

}

return(k?

1:

0);

}

voidmain()

{

intn,k;

scanf("%d",&n);

k=Prime(n);

if(k==0)

{

printf("%d不是素数!

\n",n);

}

else

{

printf("%d是素数!

\n",n);

}

}

2.10

#include

#include

voidPrimescope(intn,intm)

{

inti,j,k;

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

{

k=0;

for(j=2;j

{

if(i%j==0)

{

k=0;

break;

}

elsek=1;

}

if(k==1)

{

printf("%d\n",j);

}

}

}

voidmain()

{

intn,m;

printf("请输入想要的素数范围:

\n");

scanf("%d",&n);

scanf("%d",&m);

printf("%d到%d范围内的素数为:

\n",n,m);

if(n>=m)

{

printf("输入错误!

\n");

exit(0);

}

Primescope(n,m);

}

5.1输入一个字符串,求字母,数字其它字符的个数.

#include

intNum(char*p)

{

intnum=0,word=0,other=0;

while(*p!

='\0')

{

if('a'<=*p&&*p<='z'||'A'<=*p&&*p<='Z')

{

num++;

}

elseif('0'<=*p&&*p<='9')

{

word++;

}

elseother++;

p++;

}

printf("字母个数:

%d\n",word);

printf("数字个数:

%d\n",num);

printf("其他字符个数:

%d\n",other);

returnnum;

}

voidmain()

{

chara[50];

char*p=a;

gets(a);

Num(p);

}

5.2输入一个十六进制数,转换成十进制输出.

#include

#include

intTransform(chara[])

{

inti,j,n=0;

char*p=a;

intx,X=0;

while(*p!

='\0')

{

p++;

n++;

}

p--;

for(i=0;i

{

x=(int)*(p--);

if(x>57)

{

switch(x)

{

case65:

x=10;break;

case66:

x=11;break;

case67:

x=12;break;

case68:

x=13;break;

case69:

x=14;break;

case70:

x=15;break;

default:

printf("输入错误!

"),exit(0);

}

}

else

{

x=x-48;

}

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

{

x=x*16;

}

X=X+x;

}

returnX;

}

voidmain()

{

chara[20];

intX;

printf("请输入十六进制数(大写表示):

\n");

scanf("%s",a);

X=Transform(a);

printf("转换后:

%d\n",X);

}

 

5.3求Fibonacci数列的前20项.a1=1,a2=1,a3=a1+a2,...,an=an-1+an-2

#include

voidFibonacci()

{

inta1=1,a2=1,i,t;

printf("%d\n",a1);

printf("%d\n",a2);

for(i=3;i<=20;i++)

{

t=a2;

a2=a1+a2;

a1=t;

printf("%d\n",a2);

}

}

intmain()

{

intn;

Fibonacci();

}

5.4将一个整型数组中的元素逆置.

#include

voidSa[],intn)

{

inti,t;

printf("\n逆置前:

\n\t");

for(i=0;i

{

printf("%d",a[i]);

}

for(i=0;i<(n/2);i++)

{

t=a[n-i-1];

a[n-i-1]=a[i];

a[i]=t;

}

printf("\n逆置后:

\n\t");

for(i=0;i

{

printf("%d",a[i]);

}

printf("\n");

}

voidmain()

{

inta[]={1,2,3,4,5,6,7,8,9};

intn=sizeof(a)/sizeof(a[0]);

S);

}

5.5求一个数组中最大、最小元素的值以及下标.

#include

voidFind(inta[],intn)

{

inti,max=0,min=0;

for(i=0;i

{

if(a[i]>a[max])

{

max=i;

}

if(a[i]

{

min=i;

}

}

printf("最大值%d下标:

%d\n",a[max],max);

printf("最小值%d下标:

%d\n",a[min],min);

}

voidmain()

{

inta[]={7,5,3,9,2,1,6,4,8};

intn=sizeof(a)/sizeof(a[0]);

Find(a,n);

}

5.6求一个数组中的最大、次大元素的值以及下标.

#include

voidFind(inta[],intn)

{

inti,max=0,secondly=0;

for(i=0;i

{

secondly=i;

if(a[i]>a[max])

{

max=i;

}

}

printf("最大值%d下标:

%d\n",a[max],max);

printf("次大值%d下标:

%d\n",a[secondly],secondly);

}

voidmain()

{

inta[]={7,5,3,9,2,1,6,4,8};

intn=sizeof(a)/sizeof(a[0]);

Find(a,n);

}

5.7已知一个数组中的元素按非递减有序排列,现要向其中插入一个元素,要求数组仍然有序.

#include

voidInsert(inta[],intx,intn)

{

inti;

a[n+1]=x;

for(i=8;i>=0&&x

{

a[i+1]=a[i];

}

a[i+1]=x;

}

voidmain()

{

inta[10]={1,3,4,5,7,9,11,13,17};

inti,n,x;

n=sizeof(a)/sizeof(a[0]);

printf("请输入要插入的元素:

");

scanf("%d",&x);

Insert(a,x,8);

printf("\n");

for(i=0;i

{

printf("%d\n",a[i]);

}

}

5.8将一个整型数组中重复的元素删除,并计算剩下元素的个数。

#include

voidWipe(inta[],intn)

{

inti,j,k,t;

for(i=0;i

{

t=a[i];

for(j=i+1;j

{

if(a[j]==t)

{

for(k=j;k

{

a[k]=a[k+1];

}

n--;

}

elsej++;

}

}

for(i=0;i

{

printf("%d\n",a[i]);

}

printf("剩下元素的个数为:

%d\n",n);

}

voidmain()

{

inta[9];

inti;

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

{

scanf("%d",&a[i]);

}

Wipe(a,9);

}

5.9将两个按值非递减排列的整型数组合并为一个非递减排列的数组,且值相等的元素只保留一个(即结果数组中没有重复的元素)。

#include

voidCombine(inta[],intn,intb[],intm,intc[]);//合并模块

voidInsert(inta[],intn);//插入排序法

intWipe(inta[],intn);//去除数组中重复元素

voidCombine(inta[],intn,intb[],intm,intc[])

{

inti,j=0,num;

for(i=0;i

{

if(i<9)

{

c[i]=a[i];

}

else

{

c[i]=b[j];

j

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2