admin 管理员组文章数量: 887031
2024年1月23日发(作者:idea安装教程详解)
《C语言程序设计》复习题库
1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717
2、程序填空:用*号输出字母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数据类型定义!) 答案:1533459
4、 /*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591
#include
void main()
{
int total=0, mc=1, k=700;
int pm[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(" %dn",total);
}
5、求x = 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位小数)。答案:0.6180339850
7、求[10,1600]之间能被7整除的奇数之和。答案:90965
8、函数mystrlen(char *s)的功能是求字符串s的长度。请填空。
Int mystrlen(char *s)
{int num=0;
while( ) {____;}
return ( );
}
9、[100,500]之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:1042
10、求[100,999]之间所有的素数的个数。答案:143
11、编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。答案:110
12、 /*数列1,2,1,4,7,12,23…具有这样的特征,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序的功能是求出该数列前10项的和。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/
答案:311
#include
void main()
{
long sum=0,a[30]={1,2,1};
int k,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(" %ldn",sum);
}
13、 /*求1到2000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ 答案:61
#include
int prime(int x)
{
int k;
for(k=2;k if(__________) break; if(k==x) return 1; else return 0; } void main( ) { int a,b,n=0; int prime(int x); for(a=2;a<=1998;a++) { if(prime(a)==1) { b=a+2; if(__________) n++; } } printf(" %d n",n); } 14、编写程序,统计200~400之间的所有满足三个数字之积为42,三个数字之和为12的数的个数。答案:4 15、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)?答案:9 16、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?答案:119 17、 /*求1000以内最大的10个素数的和。*/ 答案:9664 #include int prime(long n) { long k; for(k=2;k<=n-1;k++) if(____________) return 0; return 1; } void main( ) { long t,total=0,num=0; int prime(long n); 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 long jc( long x) { long k,fac=1; for(k=1;________;k++) fac *=k ; ________; } void main( ) { long n,sum=0; long jc(long x); for(n=1;n<=7;n++) ________; printf("n%ld",sum); } 19、求10000以内所有完数之和,"完数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用int数据类型定义!) 答案:8658 20、/*数列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 #include #define N 30 void main() { long a[N]; int k; 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(" %ldn",a[k-1]); } 21、/*求区间[200,3000]中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。*/ 答案:87970 #include int hws(long n) { long x=n,t=0,k; while(x>0) { k=x%10; t = t*10 + k; x=x/10; } if( ___________) return 1; else return 0; } void main( ) { long k,s=0; int hws(long n); for(k=200; k<=2000;k++) if(___________) s=s+k; printf("n%ld",s); } 22、/*下面的程序是求表达式的值: s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+...+(1*2*3*...*n)/(3*5*7*...(2*n+1))请将程序补充完整,并给出当n=25时,程序的运行结果(按四舍五入保留10位小数)。*/答案:1.5707963267 #include double fun(int n) { double s=1.0, t=1.0; int k; double rtn=1.0; for(k=1;k<=n; k++) { t = t*k; s = s*(2*k+1); _________________ } return rtn; } void main() { double sum; __________ printf("n %.10lf",sum); } 23、已知:Sn=2/1+3/2+4/3+…+(n+1)/n, 求Sn不超过50的最大值(按四舍五入的方式精确到小数点后第三位)。答案:49.395 24、计算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20项的值(已知:X=2)。要求:按四舍五入的方式精确到小数点后第二位。答案: 0.91 25、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例:3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数。答案:135 26、已知X,Y,Z为三个正整数,且X^2+Y^2+Z^2=25^2,求X+Y+Z的最大值。答案:43 27、猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。答案:1534 28、求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以{3,4,5}作为一组,但{4,3,5}视为跟{3,4,5}相同的一组。答 案:20 29、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?输出所有的兑换方法。 答案: 18种 30、用迭代法求x等于a开平方的正数值。 -5迭代公式为:xn+1=1/(2*(xn+a/xn)),要求直到前后两次求出的x的差的绝对值小于10为止。A的值从键盘输入。 31、求最大的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该数。 答案:407 32、一球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高? 答案: 299.609375 0.097656 33、编写程序,完成如下功能,输入8个float类型的实数,分别求最大值和最小值,保留三位小数输出最大值和最小值。 34、编写程序输出如下字符图形: @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ … @ @ @ 35、计算:s=f(-30)+f(-29)+......+f(-1)+f(0)+f(1)+......+f(30)的值。其中函数定义如下:f(x)=(x+1)/(x-2) 如果 x>1; f(x)=0 如果 x=0 或 x=2 ;f(x)=(x-1)/(x-2) 如果 x<0。(按四舍五入保留6位小数) 答案:65.223018 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数据类型定义!) 答案:1.480392 39、程序填空:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为'n'. #include "stdio.h" #include "conio.h" main() { char c; int letters=0,space=0,digit=0,others=0; printf("please input some charactersn"); while((c=getchar())!='n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') _________ else if(c==' ') _________ else if(c>='0'&&c<='9') _________ else _________ } printf("all in all:char=%d space=%d digit=%d others=%dn",letters, space,digit,others); getch(); } 40、打印出如下图案(菱形) * *** ***** ******* ***** *** * 41、求出[2,478]以内的: (1)最大的素数。 *467 (2)素数数目。 *91 (3)所有素数之和。 *19580 42、已知: y(ab)iii1N2i aii2(i为奇数)2i bi3(i为偶数)i(i为奇数)(i为偶数) (1)若N=10,求Y 。 *1304735 (2)若N=15,求Y。 *1.184172E+07 2nXX43、 已知:y1X2n, 其中:X = 0.25,n = 1,2,┅,求:(1) Y值(精确到小数点后第5位) *1.28767 (2) 与(1)匹配的最小的n *7 44、以下程序输入三个整数值给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() {int a,b,c,t; printf("Enter a,b,c:"); scanf("%d%d%d", ___); ___;a=b;___;___; printf("a=%d b=%d c=%dn",a,b,c); } 45.下面fun函数的功能是从a数组中查找值为y的元素;若找到,返回该元素的下标值,若不存在值为y的元素,返回0;数列放在a数组的a[1]到a[n]中,a[0]元素用来作为临时存储单元。请填空。 fun(int a[],int y,int n) {int k=0; a[0]=y;k=n; while( ) k--; return( ); } 46、 /*下列程序的功能是求出二阶Fibonacci数列前10之和,1,1,2,3,5,8…。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!3是第四项,5是第五项。)*/ 答案:143 #include void main() { long sum=0,a[30]={1,1,2}; int k; for( k=2;k<10;k++ ) a[k] = a[k-1]+a[k-2]; for( k=1;k<=10;k++ ) sum += a[k]; printf(" %ldn",sum); } 47、20,160]之间的所有偶数的平方和。答案:694380 48、求[10,2000]之间能被2或3或5整除的数之和。答案:67795 49、求800以内的最大的20个素数之和。答案:14510 50、求当n=60时下式的和:s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n)(按四舍五入保留6位小数)。答案:1.967214 51、编写程序:输入x的值,按照下列公式计算cos(x) cos(x)=1-x2/2!+ x4/4!- x6/6!+... 精确到10-5。 /*C1 1.717*/ main() { int i; long jc=1; float s=0; for(i=1;i<=5;i++) { jc=jc*i; s=s+1.0/jc; } printf("%f",s); } /*C3 1533459*/ main() { long i,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); } /*C4 6591*/ main() { int i,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); } /*C5 6.058311*/ main() { long i=5; double s=1; while(1.0/i>=1e-5) { s=s+1.0/i; i=i+2; } printf("%lf",s); } /*C6 0.6180339850 */ main() { int i; double a=1; for(i=2;i<=20;i++) { a=1.0/(1+a); } printf("%.10lf",a); } /*C7 90965*/ main() { long i,s=0; for(i=11;i<=1600;i=i+2) if(i%7==0) s=s+i; printf("%ld",s); } /*C9 1042 */ main() { long i,s=0; for(i=100;i<=500;i++) if(i%5==3&&i%7==5&&i%3==1) s=s+i; printf("%ld",s); } /*C10 143*/ main() { int c=0,i,j,p; for(i=100;i<=999;i++) { p=1; for(j=2;j if(i%j==0){p=0;break;} if(p==1)c++; } printf("%d",c); } /*C11 110*/ main() { int c=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); } /*C13 61*/ #include"fun.c" main( ) { int a,b,n=0; int prime(int x); for(a=2;a<=1998;a++) if(prime(a)==1&&prime(a+2)==1) n++; printf("%d",n); } /*C14 4*/ main() { int c=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); } /*C15 9*/ main() { int d,z,x,c=0; for(d=1;d<=17;d++) for(z=1;z<=25;z++) { x=30-d-z; if(x>=0&&d*3+z*2+x==50) c++; } printf("%d",c); } /*C16 119*/ main() { int tj,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); } /*C19 8658*/ main() { int i,s=0,w,j; for(i=1;i<=10000;i++) { w=0; for(j=1;j if(i%j==0)w+=j; if(w==i)s+=i; } printf("%d",s); } /*C20 1323525*/ main() { long a[25]={1,2,1}; int i; for(i=3;i<25;i++) a[i]=a[i-1]+a[i-2]+a[i-3]; printf("%ld",a[24]); } /*C22 1.5707963166*/ #define N 24 main() { int i,j; double s=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); } /*C23 49.395*/ main() { int i=1; double s=0; do { s+=(1+1.0/i); printf("n%0.3lf",s); i++; } while(s<50); } /*C24 0.91*/ #include main() { int x=2,i,j; double jc(int i); double y=0,fz; for(i=1;i<=20;i++) { fz=pow(-1,i+1)*pow(x,2*i-1); y+=fz/jc(2*i-1); printf("n%d,%.0lf/%.0lf",i,fz,jc(2*i-1)); } printf("n%.2lf",y); } double jc(int i) { int j; double r=1; for(j=1;j<=i;j++) r*=j; return r; } /*C25 135*/ #include main() { long a,b,c; int xs=0; for(c=131;c<=200;c++) { xs=0; for(a=1;a { b=sqrt(c*c-a*a); if(b*b+a*a==c*c) { xs=1; break; } } if(xs==1) { printf("%ld",c); break; } } } /*C26 43*/ main() { int d=25; int x,y,z,max=0;
版权声明:本文标题:《C语言程序设计》题库及答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705982706h496613.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论