C语言程序设计试题库与答案_第1页
C语言程序设计试题库与答案_第2页
C语言程序设计试题库与答案_第3页
C语言程序设计试题库与答案_第4页
C语言程序设计试题库与答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z."C语言程序设计"复习题库1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m!当m=52、程序填空:用*号输出字母C的图案。

#include"stdio.h"

#include"conio.h"

main()

{

_____________

printf("*\n");

__________________________

getch();

}3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!)答案:15334594、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。〔注:只有一处错误!〕*/答案:6591#include<stdio.h>voidmain(){inttotal=0,mc=1,k=700;intpm[10],count=0;while((k>=2)&&mc<=10){if((k%13==0)||(k%17==0)){pm[mc]=k;mc++;}k--;}for(k=1;k<=10;k++)total+=pm[k-1];printf("%d\n",total);}5、求*=1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。6、计算如下公式的A20值。A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3),......〔按四舍五入保存10位小数〕。答案:7、求[10,1600]之间能被7整除的奇数之和。答案:909658、函数mystrlen(char*s)的功能是求字符串s的长度。请填空。Intmystrlen(char*s){intnum=0;while(){____;}return();}9、[100,500]之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:104210、求[100,999]之间所有的素数的个数。答案:14311、编写程序,求满足以下条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。答案:11012、/*数列1,2,1,4,7,12,23…具有这样的特征,从第四项〔也就是4〕开场,每一项为哪一项前三项之和,4=1+2+1,7=2+1+4,12=1+4+7….。以下程序的功能是求出该数列前10项的和。请改正程序中的错误,并运行修改后的程序,给出程序结果。〔注:只有一处错误!〕*/答案:311#include<stdio.h>voidmain(){longsum=0,a[30]={1,2,1};intk,j;for(k=3;k<10;k++)a[k]=a[k-1]+a[k-2]+a[k-3];for(j=1;j<=10;j++)sum+=a[j];printf("%ld\n",sum);}13、/*求1到2000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/答案:61#include<stdio.h>intprime(int*){intk;for(k=2;k<*;k++)if(__________)break;if(k==*)return1;elsereturn0;}voidmain(){inta,b,n=0;intprime(int*);for(a=2;a<=1998;a++){if(prime(a)==1){b=a+2;if(__________)n++;}}printf("%d\n",n);}14、编写程序,统计200~400之间的所有满足三个数字之积为42,三个数字之和为12的数的个数。答案:415、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解〔去掉*类学生数为0的解〕?答案:916、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?答案:11917、/*求1000以内最大的10个素数的和。*/答案:9664#include<stdio.h>intprime(longn){longk;for(k=2;k<=n-1;k++)if(____________)return0;return1;}voidmain(){longt,total=0,num=0;intprime(longn);for(t=1000;t>=2;t--){if(____________){total=total+t;num++;}if(num==10)break;}printf("\n%ld",total);}18、/*求1!+2!+3!+...+7!,7!表示7的阶乘。*/答案:5913#include<stdio.h>longjc(long*){longk,fac=1;for(k=1;________;k++)fac*=k;________;}voidmain(){longn,sum=0;longjc(long*);for(n=1;n<=7;n++)________;printf("\n%ld",sum);}19、求10000以内所有完数之和,"完数"是指:一个数如果刚好与它所有的真因子〔不包括该数本身〕之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用int数据类型定义!)答案:865820、/*数列1,2,1,4,7,12,23…具有这样的特征,从第四项〔也就是4〕开场,每一项为哪一项前三项之和,4=1+2+1,7=2+1+4,12=1+4+7….。以下程序先给出数列的第一项〔1〕、第二项〔2〕、第三项〔1〕,再逐步计算其它项并保存在数组a中,最后求出该数列的第25项。请改正程序中的错误,并运行修改后的程序,给出程序结果。〔注:只有一处错误!〕*/答案:1323525#include<conio.h>#include<stdio.h>#defineN30voidmain(){longa[N];intk;clrscr();a[0]=1;a[1]=2;a[2]=1;for(k=3;k<=20;k++)a[k]=a[k-1]+a[k-2]+a[k-3];printf("%ld\n",a[k-1]);}21、/*求区间[200,3000]中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。*/答案:87970#include<stdio.h>inthws(longn){long*=n,t=0,k;while(*>0){k=*%10;t=t*10+k;*=*/10;}if(___________)return1;elsereturn0;}voidmain(){longk,s=0;inthws(longn);for(k=200;k<=2000;k++)if(___________)s=s+k;printf("\n%ld",s);}22、/*下面的程序是求表达式的值:#include<stdio.h>doublefun(intn){doubles=1.0,t=1.0;intk;doublertn=1.0;for(k=1;k<=n;k++){t=t*k;s=s*(2*k+1);_________________}returnrtn;}voidmain(){doublesum;__________printf("\n%.10lf",sum);}23、:Sn=2/1+3/2+4/3+…+(n+1)/n,求Sn不超过50的最大值〔按四舍五入的方式准确到小数点后第三位〕。答案:24、计算Y=*/1!-*^3/3!+*^5/5!-*^7/7!+……前20项的值(:*=2)。要求:按四舍五入的方式准确到小数点后第二位。答案:25、假设*正整数平方等于*两个正整数平方之和,称该正整数为弦数。例:3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数。答案:13526、*,Y,Z为三个正整数,且*^2+Y^2+Z^2=25^2,求*+Y+Z的最大值。答案:4327、猴吃桃:有一天小猴子摘下了假设干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。答案:153428、求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以{3,4,5}作为一组,但{4,3,5}视为跟{3,4,5}一样的一组。答案:2029、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?输出所有的兑换方法。答案:18种30、用迭代法求*等于a开平方的正数值。迭代公式为:*n+1=1/(2*(*n+a/*n)),要求直到前后两次求出的*的差的绝对值小于10-5为止。A的值从键盘输入。31、求最大的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该数。答案:40732、一球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?答案:33、编写程序,完成如下功能,输入8个float类型的实数,分别求最大值和最小值,保存三位小数输出最大值和最小值。34、编写程序输出如下字符图形:…35、计算:s=f(-30)+f(-29)+......+f(-1)+f(0)+f(1)+......+f(30)的值。其中函数定义如下:f(*)=(*+1)/(*-2)如果*>1;f(*)=0如果*=0或*=2;f(*)=(*-1)/(*-2)如果*<0。(按四舍五入保存6位小数)答案:36、编写程序输出如下字符图形〔最后一行19颗星〕:***************…***…****37、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的局部按10%提成,高于10万元的局部,可提成7.5%;20万到40万之间时,高于20万元的局部,可提成5%;40万到60万之间时高于40万元的局部,可提成3%;60万到100万之间时,高于60万元的局部,可提成1.5%,高于100万元时,超过100万元的局部按1%提成,从键盘输入当月利润I,求应发放奖金总数?38、计算下面公式的值。T=1+1/(2*3)+1/(3*4)+……+1/(m*(m+1)),当m=50时的结果〔按四舍五入保存6位小数〕。〔注:所有变量用double数据类型定义!〕答案:039239、程序填空:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:利用while语句,条件为输入的字符不为'\n'.

#include"stdio.h"

#include"conio.h"

main()

{

charc;

intletters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters\n");

while((c=getchar())!='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

_________

elseif(c=='')

_________

elseif(c>='0'&&c<='9')

_________

else

_________

}

printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);

getch();

}40、打印出如以下图案〔菱形〕

*

***

*****

*******

*****

***

*41、求出[2,478]以内的:(1)最大的素数。*467(2)素数数目。*91(3)所有素数之和。*1958042、:(1)假设N=10,求Y。*1304735(2)假设N=15,求Y。*1.184172E+0743、:,Y值〔准确到小数点后第5位〕与〔1〕匹配的最小的n*744、以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例如:读入后,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。#include<stdio.h>main(){inta,b,c,t;printf("Entera,b,c:");scanf("%d%d%d",___);___;a=b;___;___;printf("a=%db=%dc=%d\n",a,b,c);}45.下面fun函数的功能是从a数组中查找值为y的元素;假设找到,返回该元素的下标值,假设不存在值为y的元素,返回0;数列放在a数组的a[1]到a[n]中,a[0]元素用来作为临时存储单元。请填空。fun(inta[],inty,intn){intk=0;a[0]=y;k=n;while()k--;return();}46、/*以下程序的功能是求出二阶Fibonacci数列前10之和,1,1,2,3,5,8…。请改正程序中的错误,并运行修改后的程序,给出程序结果。〔注:只有一处错误!3是第四项,5是第五项。〕*/答案:143#include<stdio.h>voidmain(){longsum=0,a[30]={1,1,2};intk;for(k=2;k<10;k++)a[k]=a[k-1]+a[k-2];for(k=1;k<=10;k++)sum+=a[k];printf("%ld\n",sum);}47、20,160]之间的所有偶数的平方和。答案:69438048、求[10,2000]之间能被2或3或5整除的数之和。答案:6779549、求800以内的最大的20个素数之和。答案:1451050、求当n=60时下式的和:s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n)〔按四舍五入保存6位小数〕。答案:51、编写程序:输入*的值,按照以下公式计算cos(*)cos(*)=1-*2/2!+*4/4!-*6/6!+...准确到10-5。/*C1 1.717*/main(){inti;longjc=1;floats=0;for(i=1;i<=5;i++){jc=jc*i;s=s+1.0/jc;}printf("%f",s);}/*C31533459*/main(){longi,c=0,t=0,g,s,b,q;for(i=1001;i<=9999;i=i+2){g=i%10;s=i/10%10;b=i/100%10;q=i/1000;if((g+s+b+q)%15==0){c++;t=t+i;}}printf("%ld",t);}/*C46591*/main(){inti,s=0,c=0;for(i=700;i>=1;i--)if(i%13==0||i%17==0){c++;s+=i;if(c==10)break;}printf("%d",s);}/*C56.058311*/main(){longi=5;doubles=1;while(1.0/i>=1e-5){s=s+1.0/i;i=i+2;}printf("%lf",s);}/*C60.6180339850*/main(){inti;doublea=1;for(i=2;i<=20;i++){a=1.0/(1+a);}printf("%.10lf",a);}/*C790965*/main(){longi,s=0;for(i=11;i<=1600;i=i+2)if(i%7==0)s=s+i;printf("%ld",s);}/*C91042*/main(){longi,s=0;for(i=100;i<=500;i++)if(i%5==3&&i%7==5&&i%3==1)s=s+i;printf("%ld",s);}/*C10143*/main(){intc=0,i,j,p;for(i=100;i<=999;i++){p=1;for(j=2;j<i;j++)if(i%j==0){p=0;break;}if(p==1)c++;}printf("%d",c);}/*C11110*/main(){intc=0,i,q,b,s;for(i=1000;i<=9999;i=i+8){q=i/1000;b=i/100%10;s=i/10%10;if(q+b==b+s)c++;}printf("%d",c);}/*C1361*/#include"fun.c"main(){inta,b,n=0;intprime(int*);for(a=2;a<=1998;a++)if(prime(a)==1&&prime(a+2)==1)n++;printf("%d",n);}/*C144*/main(){intc=0,i,g,s,b;for(i=200;i<=400;i++){g=i%10;s=i/10%10;b=i/100;if(g+s+b==12&&g*s*b==42)c++;}printf("%d",c);}/*C159*/main(){intd,z,*,c=0;for(d=1;d<=17;d++)for(z=1;z<=25;z++){*=30-d-z;if(*>=0&&d*3+z*2+*==50)c++;}printf("%d",c);}/*C16119*/main(){inttj,i,j;for(tj=1;tj>=0;tj++)if(tj%2==1&&tj%3==2&&tj%4==3&&tj%5==4&&tj%6==5&&tj%7==0)break;printf("%d",tj);}/*C198658*/main(){inti,s=0,w,j;for(i=1;i<=10000;i++){w=0;for(j=1;j<i;j++)if(i%j==0)w+=j;if(w==i)s+=i;}printf("%d",s);}/*C201323525*/main(){longa[25]={1,2,1};inti;for(i=3;i<25;i++)a[i]=a[i-1]+a[i-2]+a[i-3];printf("%ld",a[24]);}/*C221.5707963166*/#defineN24main(){inti,j;doubles=1,s1,s2;for(i=1;i<=N;i++){s1=1;s2=1;for(j=1;j<=i;j++){s1*=j;s2*=(2*j+1);}s+=(s1/s2);}printf("%.10lf",s);}/*C2349.395*/main(){inti=1;doubles=0;do{s+=(1+1.0/i);printf("\n%0.3lf",s);i++;}while(s<50);}/*C240.91*/#include<math.h>main(){int*=2,i,j;doublejc(inti);doubley=0,fz;for(i=1;i<=20;i++){fz=pow(-1,i+1)*pow(*,2*i-1);y+=fz/jc(2*i-1);printf("\n%d,%.0lf/%.0lf",i,fz,jc(2*i-1));}printf("\n%.2lf",y);}doublejc(inti){intj;doubler=1;for(j=1;j<=i;j++)r*=j;returnr;}/*C25135*/#include<math.h>main(){longa,b,c;int*s=0;for(c=131;c<=200;c++){*s=0;for(a=1;a<c;a++){b=sqrt(c*c-a*a);if(b*b+a*a==c*c){*s=1;break;}}if(*s==1){printf("%ld",c);break;}}}/*C2643*/main(){intd=25;int*,y,z,ma*=0;for(*=1;*<d;*++)for(y=1;y<d;y++)for(z=1;z<d;z++)if(***+y*y+z*z==d*d&&ma*<*+y+z)ma*=*+y+z;printf("%d",ma*);}/*C2820*/#include<math.h>main(){inta,b,c,n=0;int*s=0;for(c=1;c<=50;c++)for(a=1;a<c;a++)for(b=1;b<a;b++)if(b*b+a*a==c*c)n++;printf("%d",n);}/*C30*/#include<math.h>main(){double*1=1.0,*2;doublea;scanf("%lf",&a);while(1){*1=1.0/2*(*1+a/*1);if(fabs(*2-*1)<=1e-5)break;else*2=*1;}printf("%lf",*1);}/*C3567.223018*/main(){doublef(double*),s=0;inti;for(i=-30;i<=30;i++)s=s+f(i);printf("%lf",s);}doublef(double*){doubley;if(*==0||*==2)y=0;elseif(*>1)y=(*+1)/(*-2);elseif(*<0)y=(*-1)/(*-2);returny;}/*C381.480392*/main(){doublet=1;intm;for(m=2;m<=50;m++)t=t+1.0/(m*(m+1));printf("%lf",t);}/*C41467,91,19580*/#include"fun.c"main(){int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论