C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx

上传人:b****7 文档编号:22548498 上传时间:2023-02-04 格式:DOCX 页数:21 大小:22.17KB
下载 相关 举报
C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx_第1页
第1页 / 共21页
C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx_第2页
第2页 / 共21页
C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx_第3页
第3页 / 共21页
C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx_第4页
第4页 / 共21页
C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx

《C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

C语言程序设计练习题含程序及参考答案Word文档下载推荐.docx

%d%d\n"

a,b);

fun(&

a,b);

3.从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中.

例如,输入的数为:

551234,

输出成果应该是:

.

voidfun(float*p,float*q,float*s)

floatk;

if(*p<

*q)

{k=*p;

*p=*q;

*q=k;

if(*q<

*s){k=*s;

*s=*p;

*p=k;

if(*p<

{k=*p;

{floata,b,c;

Inputabc:

scanf("

%f%f%f"

a=%4.1f,b=%4.1f,c=%4.1f\n\n"

4.编写函数fun(intn),它的功效是:

盘算正整数n的所有因子(1和n除外)之和作为函数值返回.例如:

n=120时,函数值为239.

stdlib.h>

intfun(intn)

inti,s=0;

for(i=2;

i<

n;

i++)

if(n%i==0)s=s+i;

returns;

voidmain()/*主函数*/

voidNONO();

printf("

%d\n"

fun(120));

NONO();

voidNONO()

{/*请在此函数内打开文件,输入测试数据,挪用fun函数,

输出数据,封闭文件.*/

FILE*wf;

wf=fopen("

a30.out"

"

w"

);

fprintf(wf,"

fclose(wf);

5.盘算s,并输出

111

S=1+──+───+……+──────

1+21+2+31+2+3+…+n

n经由过程键盘输入,例如:

若n的值为11时,则函数值为:

floatfun(intn)

inti;

floats=1.0,h=1;

for(i=2;

=n;

{

h=h+i;

s=s+1.0/h;

returns;

intn;

floats;

\nPleaseenterN:

"

%d"

n);

s=fun(n);

theresultis:

%f"

s);

6.将一个整数中的每一位上为奇数的数依次掏出,组成一个新数放在t中.高位仍在高位,低位仍在低位.例如,当s中的数为:

87653142时,t中的数为:

7531.

voidfun(longs,long*t)

intd;

longs1=1;

*t=0;

while(s>

0)

d=s%10;

if(d%2!

=0)

*t=d*s1+*t;

s1=s1*10;

s/=10;

main()

longs,t;

\nPleaseenters:

%ld"

s);

fun(s,&

t);

Theresultis:

%ld\n"

t);

7.盘算并输出k以内最大的10个能被13或17整除的天然数之和.k的值从键盘传入,若k的值为500,则输出4622.

intfun(intk)

intm=0,mc=0,j;

while((k>

=1)&

(mc<

10))

if((k%13==0)||(k%17==0))

{

m=m+k;

mc++;

k--;

returnm;

fun(500));

8.已知一个数列的前三项分离为0,0,1,今后的各项都是其相邻的前三项之和,盘算并输出该数列前n项的平方根之和sum.例如,当n=10时,程序的输出成果应为:

math.h>

doublefun(n){

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<

=2)sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

for(k=4;

k<

=n;

k++)

{s=s0+s1+s2;

sum+=sqrt(s);

s0=s1;

s1=s2;

s2=s;

returnsum;

voidmain()

InputN="

&

%f\n"

fun(n));

9.编写一个程序,从键盘输入m,输出大于m且紧随m的素数.

intfun(intm)

inti,k;

for(i=m+1;

;

i++){

for(k=2;

k<

i;

k++)

if(i%k==0)

break;

if(k>

=i)

return(i);

\nPleaseentern:

fun(n));

10.断定两个整数m和n是否互质(等于否有公共的因子)(m≠1,n≠1).办法是:

用2到t(t取m和n中较小的谁人数)之间的数分离去除m和n,若m和n能同时被某个数除尽,则m和n不互质;

不然它们互质.

例如,若输入187和85,则应输出No(暗示它们不互质,它们有公因子17).若输入89和187,则应输出Yes(暗示它们互质).

intIsThat(intm,intn)

intk,t,mk=1;

t=m;

if(m>

n)t=n;

for(k=2;

=t;

k++)if(m%k==0&

n%k==0)

{mk=0;

break;

returnmk;

voidmain()

intm,n;

printf("

\nPleaseenter2numbers:

\n"

);

%d%d"

m,&

if(IsThat(m,n))

Yes\n"

else

No\n"

11.将十进制正整数m转换成k进制数(2≤k≤9)并输出(m,k从键盘输入).

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制暗示是1000).

voidTrans(intm,intk)

intaa[20],i,j;

for(i=0;

m;

i++)

aa[i]=m%k;

m/=k;

for(j=i-1;

j>

=0;

j--)

aa[j]);

intb,n;

\nPleaseenteranumberandabase:

n,&

b);

Trans(n,b);

12.统计从键盘输入的50个实数中有若干个正数.若干个负数.若干个零

voidfun(int*zs,int*fs,int*l,floataa[])

for(i=0;

50;

if(aa[i]>

(*zs)++;

if(aa[i]<

(*fs)++;

if(aa[i]==0)

(*l)++;

floatnum[50];

inti,czs,cfs,cl;

czs=cfs=cl=0;

printf("

\nPleaseenter50floatnumbers:

scanf(“%f”,&

num[i]);

fun(&

czs,&

cfs,&

cl,num);

\n正数:

%d,负数:

%d,零:

%d\n"

czs,cfs,cl);

13.盘算并输出方程X2+Y2=1989的所有整数解

voidfun()

intx,y;

for(x=1;

x<

=44;

x++)

for(y=1;

y<

y++)

if(x*x+y*y==1989)

printf(“x=%d,y=%d\n”,x,y);

printf(“方程x^2+y^2=1989的整数解为:

\n”);

fun();

14.从键盘输入10个整数,求出个中的最大值.

intfun(intaa[])

intm,i;

m=aa[0];

for(i=1;

10;

m)

m=aa[i];

returnm;

intnum[10],i;

printf(“请从键盘输入10个整数:

scanf(“%d”,&

printf(“\n最大的数是:

%d\n”,fun(num));

12345

11234

11123

11112

11111

15.从键盘输入n值,输出如右图形.(例如n=5时)

voidfun(intn)

inti,j;

for(j=1;

j<

=i;

j++)

printf(“%3d”,1);

for(j=2;

=n+1-i;

printf(“%3d”,j);

printf(“\n”);

printf(“\n请输入图形的行数:

”);

fun(n);

16.应用函数的方法,盘算如下公式的值.

A1=1,A2=──,A3=──,……An=────

1+A11+A21+A(n-1)

例如:

若n=10,则应输出:

floatfun(intn)

floatA=1;

inti;

for(i=1;

i<

i++)

A=1.0/(1+A);

returnA;

intn;

n);

A%d=%f\n"

n,fun(n));

*17.应用函数的方法,,按下面的公式盘算并输出数列的第m项.

┌2,m=1;

│3,m=2;

FFF(m)=┤5,m=3;

└FFF(m-3)+FFF(m-1),m>

3;

例如,若输入整数9,则应输出:

47.

(不必做)

*18.应用函数的方法,按以下递归公式求函数值

┌10(n=1)

fun(n)=│

└fun(n-1)+2(n>

1)

例如,当给n输入5时,函数值为18;

当给n输入3时,函数值为14.

19.盘算并输出当0<

时下列多项式的值,直到为止.

例如,在主函数中从键盘给x输入后,输出为.

doublefun(doublex)

intn=1;

/*轮回计数*/

doublesn=1;

/*累计数*/

doublexn=1,xn1=0;

/*x的n值,以及x的n-1值;

*/

while(fabs(xn-xn1)>

=0.000001)/*绝对值是否及格*/

xn=xn*x*(0.5-n+1)/n;

/*表达式分化今后xn=(xn-1)*x*(0.5-n+1)/n*/

n+=1;

sn+=xn;

/*sn累加上xn*/

returnsn;

doublex,s;

Inputx:

%lf"

x);

s=fun(x);

s=%f\n"

20.盘算并输出s.

x^2x^3x^n

s=1+x+──+──+……+──

2!

3!

n!

n,x从键盘输入,例如,当n=10,时,函数值为.

doublefun(doublex,intn)

doublef=1.0,h=x;

doubles=1;

s=s+h/f;

f=f*i;

h=h*x;

returns;

fun(0.3,10));

21.从键盘输入high,盘算并输出high以内最大的10个素数之和.例如,输入high的值为100,则输出732.

intfun(inthigh)

intsum=0,n=0,j,yes;

while((high>

=2)&

(n<

10))

yes=1;

for(j=2;

j<

=high/2;

j++)

if(high%j==0)

yes=0;

if(yes==1)

sum+=high;

n++;

high--;

returnsum;

fun(100));

22.请编写函数floatfun(intn),它的功效是:

返回n(包含n)以内能被5或9整除的所有天然数的倒数之和.例如,n=20,返回.留意:

请求n的值不大于100.

doublefun(intn)

doublesum=0.0;

if(n>

0&

n<

=100)

for(i=1;

if(i%5==0||i%9==0)

sum+=1.0/i;

doubles;

\nInputn:

\n\ns=%f\n"

23.请编一个函数fun(int*a,intn,int*odd,int*even),函数的功效是分离求出数组中所有奇数之和以及所有偶数之和.形参n给出数组a中数据的个数;

应用指针odd返回奇数之和,应用指针even返回偶数之和.

数组中的值依次为:

1,9,2,3,11,6;

则应用指针odd返回奇数之和24;

应用指针even返回偶数之和8.

#defineN20

fun(int*a,intn,int*odd,int*even)

inti,sum_odd=0,sum_even=0;

for(i=0;

i++)

if(a[i]%2==0)

sum_even+=a[i];

sum_odd+=a[i];

*odd=sum_odd;

*even=sum_even;

inta[N]={1,9,2,3,11,6},i,n=6,odd,even;

printf("

Theoriginaldatais:

\n"

for(i=0;

i<

n;

i++)printf("

%5d"

*(a+i));

\n\n"

fun(a,n,&

odd,&

even);

printf("

Thesumofoddnumbers:

odd);

Thesumofevennumbers:

even);

24.编写盘算三角形面积的程序,留意:

将盘算面积界说成函数floatfun(inta,intb,intc)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中挪用fun

floatfun(inta,intb,intc)

floatp;

p=(a+b+c)/2;

returnsqrt(p*(p-a)*(p-b)*(p-c));

inta,b,c;

printf(“请输入三角形三条边:

scanf(“%d%d%d”,&

d);

printf(“三角形面积为:

%.2f”,fun(a,b,c));

else

printf(“无法组成三角形”);

25.编写程序,求E=1+1/1!

+1/2!

+……+1/n!

请求最后一项的值小于10-4

doublem=1.0;

inti=1;

doublep=1.0;

do{

m=m+1.0/p;

i++;

p=p*i;

}while(1.0/p>

=1E-4);

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

当前位置:首页 > PPT模板 > 中国风

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

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