C语言程序设计函数练习题及参考答案Word下载.docx
- 文档编号:15993215
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:33
- 大小:31.41KB
C语言程序设计函数练习题及参考答案Word下载.docx
《C语言程序设计函数练习题及参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计函数练习题及参考答案Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
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=55.0,b=34.0,c=12.0。
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;
{floata,b,c;
Inputabc:
scanf("
%f%f%f"
printf("
a=%4.1f,b=%4.1f,c=%4.1f\n\n"
fun(&
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();
%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
1.833333
n通过键盘输入,例如:
若n的值为11时,则函数值为:
#include<
floatfun(intn)
inti;
floats=1.0,h=1;
=n;
h=h+i;
s=s+1.0/h;
intn;
floats;
\nPleaseenterN:
"
%d"
n);
s=fun(n);
theresultis:
%f"
s);
。
高位
7531。
6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中仍在高位,低位仍在低位。
例如,当s中的数为:
87653142时,t中的数为:
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);
k的值从键盘传
7、计算并输出k以内最大的10个能被13或17整除的自然数之和入,若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时,程序的输出结果应为:
23.197745。
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的素数#include<
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)#include<
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个实数中有多少个正数、多少个负数、多少个零#include<
voidfun(int*zs,int*fs,int*l,floataa[])
for(i=0;
50;
if(aa[i]>
0)(*zs)++;
if(aa[i]<
0)(*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(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 函数 练习题 参考答案