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

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

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

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

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

);

scanf("

%d%d%d"

&

a,&

b,&

c);

\na=%d,b=%d,c=%d\n"

a,b,c);

shape=fun(a,b,c);

\n\nTheshape:

%d\n"

shape);

2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3,b中的值原为8,程序运行后a中的值为8,b中的值为3。

voidfun(int*x,int*y)

intt;

t=*x;

*x=*y;

*y=t

inta=3,b=8;

%d%d\n"

a,b);

fun(&

a,b);

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

例如,输入的数为:

551234,

输出结果应当是:

a=,b=,c=。

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=%,b=%,c=%\n\n"

4、编写函数fun(intn),它的功能是:

计算正整数n的所有因子(1和n除外)之和作为函数值返回。

例如:

n=120时,函数值为239。

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("

"

"

w"

);

fprintf(wf,"

fclose(wf);

5、计算s,并输出

111

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

1+2  1+2+3  1+2+3+…+n

n通过键盘输入,例如:

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

floatfun(intn)

inti;

floats=,h=1;

for(i=2;

=n;

{

h=h+i;

s=s+h;

returns;

intn;

floats;

\nPleaseenterN:

%d"

n);

s=fun(n);

theresultis:

%f"

s);

6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如,当s中的数为:

时,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时,程序的输出结果应为:

doublefun(n)

doublesum,s0,s1,s2,s;

intk;

sum=;

if(n<

=2)sum=;

s0=;

s1=;

s2=;

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;

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[])

inti;

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;

\nPleaseenter50floatnumbers:

scanf(“%f”,&

num[i]);

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];

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

当前位置:首页 > 初中教育 > 语文

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

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