c语言编程题.docx
- 文档编号:10153863
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:60
- 大小:90.38KB
c语言编程题.docx
《c语言编程题.docx》由会员分享,可在线阅读,更多相关《c语言编程题.docx(60页珍藏版)》请在冰豆网上搜索。
c语言编程题
1.编写函数fun,函数的功能是:
根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
例如:
若n的值为11时,函数的值为1.833333
floatfun(intn)
{inti;
floatp=1,s=1;
for(i=2;i<=n;i++){p=p+i;s=s+1/p;}
returns;
}
main()
{intn;floats;
printf(“\nPleaseentern:
”);
scanf(“%d”,&n);s=fun(n);
printf(“Theresultis:
%f\n”,s);
}
2.请编写一个函数unsignedfun(unsignedw)
w是一个大于是10的无符号整数,若w是n(n>=2)的整数,则返回值是w的后n-1位的数作为函数的值返回。
例如:
w的值为5923,则函数返回923,若w值为923,则函数返回为23
#include
unsignedfun(unsignedw)
{unsignedx;
if(w<100)x=w%10;
elseif(w<1000)x=w%100;
elseif(w<10000)x=w%1000;
elseif(w<65535)x=w%10000;
returnx;
}
main()
{unsignedx;clrscr();printf(“enterx”);
scanf(“%u”,&x);printf(“%u”,x):
if(x<10)printf(“Dataerror!
”);
elseprintf(“Theresult:
%u\n”,fun(x));}
3.(68,97,98,99)编写函数fun(),其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c的十位和千位上。
例如,当a=45,b=12,调用函数后,c=2415
voidfun(inta,intb,long*c)
{*c=b%10*1000+a/10*100+b/10*10+a%10;
returnc;
}
main()
{inta,b;longc;
clrscr();printf(“entera,b”);
scanf(“%d%d”,&a,&b);
fun(a,b,&c);
printf(“Theresultis:
%d\n”,c);}
4.编写函数fun,它的功能是:
计算并输出下列级数和:
例如:
当n=10时,函数值为0.909091
doublefun(intn)
{inti;doubles=0,p=0;
for(i=1;i<=n;i++)
{p=i*(i+1);s=s+1.0/p;}
returns;
}
main()
{printf(“%f\n”,fun(10));}
5.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
例如,当n=10,x=0.3时,函数值为1.349859
doublefun(doublex,intn)
{doubles=1,p=1;inti;
for(i=1;i<=n;i++){p*=x/i;s+=p;}
returns;}
main(){clrscr();printf(“%f\n”,fun(0.3,10));}
6.编写函数fun,它的功能是:
计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和:
例如,若n=20,是输出为s=0.583333
doublefun(intn)
{inti;doubles=0;
for(i=1;i<=n;i++)if(i%5==0||i%9==0)s+=1.0/i;
returns;
}
main(){intn;doubles;printf(“Inputn”);
scanf(“%d”,&n);s=fun(n);
printf(“s=%f\n”,s);}
7.请编写函数fun,其功能是:
计算并输出3到n之间所有素数的平方根之和。
例如:
若n=100,则输出和为sum=148.874270。
doublefun(intn)
{inti,j,yes=1;doubles=0;
for(i=3;i<=n;i++)
{yes=1;
for(j=2;j
if(i%j==0){yes=0;break;}
if(yes)s+=sqrt(i);}
returns;
}
main(){intn;doublesum;printf(“Inputn”);
scanf(“%d”,&n);sum=fun(n);
printf(“\nsum=%f\n”,sum);}
8.请编写函数fun,其功能是:
计算并输出
例如:
n=20,则输出s=534.188884
注意:
n的值要求大于1但不大于是100
#include
doublefun(intn)
{inti;doubles=1,t=1;
for(i=2;i<=n;i++)
{t+=pow(i,0.5);s+=t;}
returns;
}
main()
{intn;doubles;
printf(“Inputn:
”);
scanf(“%d”,&n);
s=fun(n);
printf(“\ns=%f\n”,s):
}
9.编写函数fun,它功能是:
求Fibonacci数列中大于t的最小的一个数,结果由函数返回.其中Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1F(n)=F(n-1)+F(n-2)例如:
当t=1000时,函数值为:
1597
intfun(intt)
{intf0,f1,f2;f0=f1=1;
f2=f0+f1;
while(f2 returnf2; } main() {intn;n=1000; printf("n=%d,f=%d\n",n,fun(n));} 10.编写函数fun,其功能是: 根据以下公式求P的值,结果由函数值带回。 m与n为两个正整数且要求m>n。 例如: m=12,n=8时,运行结果为495.000000。 floatfun(intm,intn) {floatp1,p2,p3; inti; p1=p2=p3=1; for(i=1;i<=m;i++)p1*=i; for(i=1;i<=n;i++)p2*=i; for(i=1;i<=m-n;i++)p3*=i; returnp1/(p2*p3); } main() {printf("P=%f\n",fun(12,8));} 11.请编写一个函数fun,它的功能是: 根据以下公式∏的值(要求满足精度0.0005,即某项小于0.0005时停止迭代): 程序运行后,如果输入精度0.0005,则程序输出为3.14… doublefun(doubleeps) {doublepi,t;inti; pi=0;t=1; for(i=1;t>eps;i++) {pi+=t;t=t*i/(2*i+1);} return2*pi;} main() {doublex; printf("Inputeps: ");scanf("%lf",&x); printf("\neps=%lf,PI=%lf\n",x,fun(x));} 12.请编写一个函数intfun(intx),它的功能是: 判断整数x是否是同构数。 若是同构数,函数值返回1,否则返回0。 如果某个整数能够在它的平方数的最左边出现,那么这个整数就叫做“同构数”(正整数n若是它平方数的尾部)例如: 输入整数5,5的平方数是25,5是25中右侧的数,所以是同构数 intfun(intx) {if(x<10)returnx*x%10==x; elsereturnx*x%100==x; } main() {intx,y;clrscr(); printf("\nenternum: "); scanf("%d",&x); if(x>100||x<0) {printf("dataerror! \n");exit(0);} y=fun(x); if(y)printf("%dYES\n",x); elseprintf("%dNO! \n",x);} 13.请编写一个函数floatfun(doublen),函数的功能是对变量n中的值保留2位小数,并对第三位进行四舍五入(规定n中的值为正数) 例如: h值为8.32433,则函数返回8.32 h值为8.32533,则函数返回8.33 floatfun(floatn) {n=(int)(n*100+0.5)/100.0; returnn;} main() {floata; printf("Entera: ");scanf("%f",&a); printf("Theoriginaldatais: "); printf("%f\n\n",a); printf("Theresult: %f\n",fun(a));} 14.编写函数fun,它的功能是: 求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 例如: 若n为878时,并作为函数值应为: s=134.465609 doublefun(intn) {doubles=0;inti; for(i=1;i if(i%3==0&&i%7==0) s+=i;returnsqrt(s); } main(){printf("s=%f\n",fun(878));} 15.编写函数fun,它的功能是: 计算正整数n所有因子(1和n除外)之和作为函数值返回。 例如: n=256时,函数值为254。 intfun(intn) {ints=0,i; for(i=2;i if(n%i==0)s+=i;returns; } main(){printf("%d\n",fun(256));} 16.m个人的成绩放在score数组中,请编写函数fun,它的功能是: 将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的组中。 例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时函数返回的人数应该是4,below中的数据应为10、20、30、40。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 intfun(intscore[],intm,intbelow[]) {inti,j=0,ave=0; for(i=0;i ave/=m; for(i=0;i returnj;} main() {inti,n,below[9]; intscore[]={10,20,30,40,50,60,70,80,90}; n=fun(score,9,below); printf(“\nbelowtheaveragescoreare: ”); for(i=0;i 17.请编写程序fun,它的功能是: 求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 voidfun(int*a,int*n) {inti,j=0; for(i=1;i<=1000;i++) if(i%7==0||i%11==0&&i%77! =0)a[j++]=i; *n=j;} main() {intaa[1000],n,k; fun(aa,&n); for(k=0;k if((k+1)%10==0)printf(“\n”); elseprintf(“%5d”,aa[k]);} 18.请编写函数voidfun(intx,intpp[],int*n),它的功能是: 求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如: x=30,则有4个数符合要求: 1,3,5,15。 voidfun(intx,intpp[],int*n) {inti,j=0; for(i=1;i<=x;i++) if(x%i==0&&i%2==1)pp[j++]=i; *n=j;} main() {intx,aa[1000],n,i;clrscr(); printf(“\npleaseenterannum: ”); scanf(“%d”,&x);fun(x,aa,&n); for(i=0;i 19.请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中”a”到”z”26个字母各自出现的次数,并依次放在pp所指的数组中。 voidfun(char*tt,intpp[]) {inti; for(i=0;i<26;i++) pp[i]=0; for(i=0;tt[i]! ='\0';i++) if(tt[i]>='a'&&tt[i]<='z')pp[tt[i]-'a']++; } main() {charaa[1000];intbb[26],k,n; printf(“\npleaseenterastring: ”); scanf(“%s”,aa);fun(aa,bb); for(k=0;k<26;k++)printf(“%d“,bb[k]); printf(“\n”);} 20.请编写函数fun,函数功能是: 统计各年龄段人数。 N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段人数放在d[1]中,把20至29岁年龄段人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。 结果在主函数中输出。 #defineN50 #defineM11 voidfun(int*a,int*b) {inti,j; for(i=0;i for(i=0;i {j=a[i]/10; if(j<10)b[j]++;elseb[10]++;} } doublernd() {statict=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((double)r/m);} main() {intage[N],i,d[M]; for(i=0;i printf("Theoriginaldata: \n"); for(i=0;i printf((i+1)%10==0? "%4d\n": "%4d",age[i]); fun(age,d); for(i=0;i<10;i++) printf("%4d-%4d: %4d\n",i*10,i*10+9,d[i]);} 21.函数fun的功能是: 对指定字符在字符串a中出现的次数进行统计,统计的数据存到b数组中。 其中: 字符‘a’出现的次数存放到b[0]中,字符‘b’出现的次数存放到b[1]中,字符‘c’’出现的次数存放到b[2]中,字符‘d’出现的次数存放到b[3]中,字符‘e’出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如: 当a中的字符串为: “bacd1b+ddep”,调用该函数后,b中存放数据应是: 1、2、1、3、1、3 voidfun(char*a,intb[]) {inti; for(i=0;i<6;i++)b[i]=0; for(i=0;a[i];i++) if(a[i]>='a'&&a[i]<='e')b[a[i]-'a']++; elseb[5]++; } main() {inti,b[6];chara[100]="bacd1b+ddep"; fun(a,b);printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]); printf("\n");} 22.函数fun的功能是: 统计字符串a中,以下指定字符出现的次数,并存到b数组中。 其中: 字符‘+’出现的次数存放到b[0]中,字符‘-’出现的次数存放到b[1]中,字符‘*’出现的次数存放到b[2]中,字符‘/’出现的次数存放到b[3]中,字符‘&’出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如: 当a中的字符串为: “-+*1/-a/&b”,调用该函数后,b中存放数据应是: 1、2、1、2、1、3 voidfun(char*a,intb[]) {inti;for(i=0;i<6;i++)b[i]=0; for(i=0;a[i]! ='\0';i++) switch(a[i]) {case'+': b[0]++;break; case'-': b[1]++;break; case'*': b[2]++;break; case'/': b[3]++;break; case'&': b[4]++;break; default: b[5]++;}} main() {inti,b[6];chara[100]="-+*1/-a/&b"; fun(a,b); printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]);} 23.函数fun的功能是: 对指定字符在字符串a中出现的次数进行统计,统计的数据存到b数组中。 其中: 字符‘z’出现的次数存放到b[0]中,字符‘y’出现的次数存放到b[1]中,字符‘x’出现的次数存放到b[2]中,字符‘w’出现的次数存放到b[3]中,字符‘v’出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如: 当a中的字符串为“yyzxxw1y+wvp”,调用该函数后,b中存放数据应是: 1、3、2、2、1、3 voidfun(char*a,intb[]) {inti; for(i=0;i<6;i++)b[i]=0; for(i=0;a[i]! ='\0';i++) if(a[i]>='v'&&a[i]<='z')b['z'-a[i]]++; elseb[5]++; } main() {inti,b[6];chara[100]="yyzxxw1y+wvp"; fun(a,b); printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]); printf("\n");} 24.函数fun的功能是: 对a数组中n个人员的工资进行分段统计,各段的人数存到b数组中;工资为1000元以下的人数存到b[0]中,工资为1000元到1999元的人数存到b[1]中,工资为2000元到2999元的人数存到b[2]中,工资为3000元到3999元的人数存到b[3]中,工资为4000元到4999元的人数存到b[4]中,工资为5000元以上的人数存到b[5]中。 例如: 当a数组中的数据为: 900、1800、2700、3800、5900、3300、2400、7500、3800,调用该函数后,b中存放的数据应是: 1、1、2、3、0、2。 voidfun(inta[],intb[],intn) {inti,m; for(i=0;i<6;i++)b[i]=0; for(i=0;i {m=a[i]/1000; if(m<5)b[m]++; elseb[5]++;} } main() {inti,a[100]={900,1800,2700,3800,5900,3300,2400,7500,3800}; b[6];fun(a,b,9); printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]);} 25.函数fun的功能是: 把a数组中n个数和b数组中逆序的n个数一一相减,结果存在c数组中。 例如: 当a数组中的值是: 1、3、5、7、8。 b数组中的值是: 2、3、4、5、8调用该函数后,c中存放的数据是: -7、-2、1、4、6 voidfun(inta[],intb[],intc[],intn) {inti; for(i=0;i } main() {inti,a[100]={1,3,5,7,8}, b[100]={2,3,4,5,8},c[100]; clrscr();fun(a,b,c,5); printf("Theresultis: "); for(i=0;i<5;i++)printf("%d",c[i]);} 26.函数fun的功能是: 把a数组中n个数的平方值,与b数组中逆序的n个数平方值一一对应相减,结果存在c数组中。 例如: 当a数组中的值是: 1、3、5、7、8。 b数组中的值是: 2、3、4、5、8调用该函数后,c中存放的数据是: -63、-16、9、40、60。 voidfun(inta[],intb[],intc[],intn) {inti; for(i=0;i c[i]=a[i]*a[i]-b[n-1-i]*b[n-1-i]; } main() {inti,a[100]={1,3,5,7,8}; intb[100]={2,3,4,5,8},c[100]; fun(a,b,c,5); printf("Theresultis: "); for(i=0;i<5;i++)printf("%d",c[i]);} 27.请编写一个函数vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程