语言程序设计复习题.docx

上传人:b****6 文档编号:12277078 上传时间:2023-06-05 格式:DOCX 页数:19 大小:32.33KB
下载 相关 举报
语言程序设计复习题.docx_第1页
第1页 / 共19页
语言程序设计复习题.docx_第2页
第2页 / 共19页
语言程序设计复习题.docx_第3页
第3页 / 共19页
语言程序设计复习题.docx_第4页
第4页 / 共19页
语言程序设计复习题.docx_第5页
第5页 / 共19页
语言程序设计复习题.docx_第6页
第6页 / 共19页
语言程序设计复习题.docx_第7页
第7页 / 共19页
语言程序设计复习题.docx_第8页
第8页 / 共19页
语言程序设计复习题.docx_第9页
第9页 / 共19页
语言程序设计复习题.docx_第10页
第10页 / 共19页
语言程序设计复习题.docx_第11页
第11页 / 共19页
语言程序设计复习题.docx_第12页
第12页 / 共19页
语言程序设计复习题.docx_第13页
第13页 / 共19页
语言程序设计复习题.docx_第14页
第14页 / 共19页
语言程序设计复习题.docx_第15页
第15页 / 共19页
语言程序设计复习题.docx_第16页
第16页 / 共19页
语言程序设计复习题.docx_第17页
第17页 / 共19页
语言程序设计复习题.docx_第18页
第18页 / 共19页
语言程序设计复习题.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

语言程序设计复习题.docx

《语言程序设计复习题.docx》由会员分享,可在线阅读,更多相关《语言程序设计复习题.docx(19页珍藏版)》请在冰点文库上搜索。

语言程序设计复习题.docx

语言程序设计复习题

《C语言程序设计》复习题库

1、计算下面公式的值。

T=1/1!

+1/2!

+1/3!

+……+1/m!

当m=5时的结果(按四舍五入保留3位小数)。

(注:

所有变量用float数据类型定义!

)答案:

1.717

#include

main()

{floatT,m,i,n;

T=0;

for(m=1;m<=5;m++)

{n=1;

for(i=1;i<=m;i++)

{n=n*i;}

T=T+(1/n);}

printf("%.3f",T);}

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

#include

main()

{longa,b,c,d,s,n;

s=0;

for(n=1000;n<=9999;n++)

{if(n%2==1)

{a=n/1000%10;

b=n/100%10;

c=n/10%10;

d=n%10;

if((a+b+c+d)%15==0)

s=s+n;}

}

printf("%ld",s);}

4、/*下面程序的功能是:

计算并输出700以内的最大的10个能被13或者17整除的自然数之和。

请改正程序中的错误,并运行,最后给出程序运行的正确结果。

(注:

只有一处错误!

)*/答案:

6591

#include

voidmain()

{

inttotal=0,mc=1,k=700;改成mc=0

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求x=1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。

5、#include

6、#include

7、main()

8、{

9、floatx,t;

10、x=1,t=5;

11、do

12、{x=x+1/t;

13、t=t+2;}while(abs(1/t)>0.0001);

14、printf("%f",x);

15、}

16、

6、计算如下公式的A20值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3),......(按四舍五入保留10位小数)。

答案:

0.6180339850

#include

main()

{doublen,x;

x=1;

for(n=2;n<=20;n++)

x=1/(1+x);

printf("%.10lf",x);

}

7、求[10,1600]之间能被7整除的奇数之和。

答案:

90965

8、函数mystrlen(char*s)的功能是求字符串s的长度。

请填空。

Intmystrlen(char*s)

{intnum=0;

while(){____;}

return(0);

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

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++)改成j=0

sum+=a[j];

printf("%ld\n",sum);

}

13、/*求1到2000之间的双胞胎数的对数。

双胞胎数:

两素数差为2称为双胞胎数。

例如227和229是一对双胞胎数,它们都是素数且差为2。

*/答案:

61

#include

intprime(intx)

{

intk;

for(k=2;k

if(__________)break;x%k==0

if(k==x)return1;

elsereturn0;

}

voidmain()

{inta,b,n=0;

intprime(intx);

for(a=2;a<=1998;a++)

{

if(prime(a)==1)

{b=a+2;

if(__________)n++;prime(b)==1

}

printf("%d\n",n);

}

14、编写程序,统计200~400之间的所有满足三个数字之积为42,三个数字之和为12的数的个数。

答案:

4

15、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)?

答案:

9

16、爱因斯坦走台阶:

有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?

答案:

119

#include

voidmain()

{inta;

for(a=1;;a++)

if(a%2==1&&a%3==2&&a%4==3&&a%5==4&&a%6==5&&a%7==0)

break;

printf("%d",a);}

17、/*求1000以内最大的10个素数的和。

*/答案:

9664

#include

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

longjc(longx)

{

longk,fac=1;

for(k=1;________;k++)

fac*=k;

________;

}

voidmain()

{

longn,sum=0;

longjc(longx);

for(n=1;n<=7;n++)

________;

printf("\n%ld",sum);

}

19、求10000以内所有完数之和,"完数"是指:

一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:

6=1+2+3,则6就是一个完数。

(注:

所有变量用int数据类型定义!

)答案:

8658

20、#include

21、main()

22、{intn,a,d,sum;

23、sum=0;

24、for(n=2;n<=10000;n++)

25、{d=0;

26、for(a=2;a

27、{if(n%a==0)

28、d=d+a;}

29、if(d+1==n)

30、sum=sum+n;}

31、printf("%d",sum);}

32、

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

#defineN30

voidmain()

{

longa[N];

intk;

clrscr();

a[0]=1;a[1]=2;a[2]=1;

for(k=3;k<=20;k++)改为k<=24

a[k]=a[k-1]+a[k-2]+a[k-3];

printf("%ld\n",a[k-1]);

}

21、/*求区间[200,3000]中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。

*/答案:

87970

#include

inthws(longn)

{

longx=n,t=0,k;

while(x>0)

{

k=x%10;

t=t*10+k;

x=x/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、/*下面的程序是求表达式的值:

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

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的最大值(按四舍五入的方式精确到小数点后第三位)。

答案:

49.395

24、计算Y=X/1!

-X^3/3!

+X^5/5!

-X^7/7!

+……前20项的值(已知:

X=2)。

要求:

按四舍五入的方式精确到小数点后第二位。

答案:

0.91

#include

main()

{floatn,m,x,i,j,y,a,d,v;

x=2;

v=0;

y=0;

a=(-1);

for(n=1;;)

{i=1;

j=1;

for(d=1;d<=n;d++)

i=i*x;

for(m=1;m<=n;m++)

j=j*m;

a=a*(-1);

y=y+a*i/j;

n=n+2;

v++;

if(v==20)

break;

}

printf("%.2f",y);

}

25、正整数平若某正整数平方等于某两个方之和,称该正整数为弦数。

例:

3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数。

答案:

135

#include

main()

{intn,a,b,c;

c=200;

for(n=131;n<=200;n++)

for(a=1;a<=199;a++)

for(b=1;b<=199;b++)

{if(a*a+b*b==n*n)

c=n

n:

c;}

printf("%d",c);}

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

#include

main()

{intn,a,b,c;

c=0;

for(n=1;n<=50;n++)

for(a=1;a<=50;a++)

for(b=1;b<=50;b++)

if(a*a+b*b==n*n)

c++;

printf("%d",c/2);}

29、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?

输出所有的兑换方法。

答案:

18种

30、用迭代法求x等于a开平方的正数值。

迭代公式为:

xn+1=1/(2*(xn+a/xn)),要求直到前后两次求出的x的差的绝对值小于10-5为止。

A的值从键盘输入。

31、求最大的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该数。

答案:

407

32、一球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。

求它在第10次落地时,共经过多少米?

第10次反弹多高?

答案:

299.6093750.097656

#include

main()

{floatn,x,sum;

x=100;

sum=-100;

for(n=1;n<=10;n++)

{sum=sum+2*x;

x=x/2;

}

printf("%f\t%f",x,sum);}

33、编写程序,完成如下功能,输入8个float类型的实数,分别求最大值和最小值,保留三位小数输出最大值和最小值。

34、编写程序输出如下字符图形:

@@@@@@@@@@@

@@@@@@@@@@

@@

@

#include

main()

{inti,j;

for(i=11;i>=0;i--)

{for(j=1;j<=i;j++)

printf("@");

printf("\n");}

}

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

#include

voidmain()

{doublem,a,T;

T=1;

for(m=2;m<=50;m++)

{a=m*(m+1);

T=T+1/a;}

printf("%lf",T);}

39、程序填空:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:

利用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)所有素数之和。

*19580

42、已知:

(1)若N=10,求Y。

*1304735

(2)若N=15,求Y。

*1.184172E+07

43、已知:

其中:

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

{inta,b,c,t;

printf("Entera,b,c:

");

scanf("%d%d%d",___);

___;a=b;___;___;

printf("a=%db=%dc=%d\n",a,b,c);

#include

main()

{inta,b,c,t;

printf("Entera,b,c:

");

scanf("%d%d%d",&a,&b,&c);

t=a;a=b;b=c;c=t;

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

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]之间的所有偶数的平方和。

答案:

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。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2