2025年C語言編程寶典權(quán)威題庫解析與標準答案匯編_第1頁
2025年C語言編程寶典權(quán)威題庫解析與標準答案匯編_第2頁
2025年C語言編程寶典權(quán)威題庫解析與標準答案匯編_第3頁
2025年C語言編程寶典權(quán)威題庫解析與標準答案匯編_第4頁
2025年C語言編程寶典權(quán)威題庫解析與標準答案匯編_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《C語言程序設(shè)計》復習題庫

1、計算下面公式的值。T=l/l!+l/2!+l/3!+……+l/m!當m=5時的成果(按四舍五入保留3

位小數(shù))。(注:所有變量用float數(shù)據(jù)類型定義!)答案:1.717

2、程序填空:用*號輸出字母C的圖案。

#include"stdio.h"

#include"conio.h"

main()

printf("*\n");

getch();

}

3、8232和9678,它們的個、十、百、千各位數(shù)字之和是15的倍數(shù),8+2+3+2=15,9+6+7+8=30°

編寫程方:,求四位數(shù)的所有奇數(shù)中,這樣的數(shù)(各位數(shù)字之和是15的倍數(shù))的總和。(注:所

有變量用long數(shù)據(jù)類型定義!)答案:1533459

4、/*下面程序的功能是:計算并輸出700以內(nèi)的最大的10個能被13或者17整除的自然

數(shù)之和。請改正程序中的錯誤,并運行,最終給出程序運行的對的成果。(注:只有一處錯

誤!)*/答案:6591

#include<stdio.h>

voidmain()

(

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

intpm[IO],count=0;

while((k>=2)&&mc<=10)

(

if((k%13==0)||(k%I7==0))

(

pm[mc]=k;

mc++;

for(k=l;k<=10;k++)

total+=pm[k-l];

printf("

I

5、求乂=1+1/5+1/7+1/9+…的近似值,直到最終一項的絕對值不不小于10-5為止。

6、計算如下公式的A20值。Al=l,A2=1/(1+A1),A3=l/(1+A2),A4=l/(1+A3),...........(按

四舍五入保留10位小數(shù))。答案:0.

7、求[10,1600]之間能被7整除的奇數(shù)之和。答案:90965

8、函數(shù)mystrlen(char*s)的功能是求字符串s的長度。請?zhí)羁铡?/p>

Intmystrlen(char*s)

{intnurn=O;

while(_){;}

return(_);

)

9、[100,500]之間同步滿足除以7余5,除以5余3,除以3余1的整數(shù)之和。答案:1042

10、求[100,999]之間所有的素數(shù)的個數(shù)。答案:143

11、編寫程序,求滿足下列條件的所有四位數(shù)ABCD的個數(shù),該四位數(shù)是8的倍數(shù),且A+B=B+C,

即第1位數(shù)加上第2位數(shù)等于第2位數(shù)加上第3位數(shù)。答案:110

12、/*數(shù)列1,2,1,4,7,12,23…具有這樣的特性,從第四項(也就是4)開始,每一項是前三

項之和,4=1+2+1,7=2+1+4,12=1+4+7-.o下列程序的功能是求出該數(shù)列前10項的和。

請改正程序中的錯誤,并運行修改后的程序,給出程序成果。(注:只有一處錯誤!)*/

答案:311

#include<stdio.h>

voidmain()

(

longsum=0,a[30]={1,2,1);

intk,j:

for(k=3;k<IO;k++)

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

for(j=l;j<=10;j++)

sum+=a[j];

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

}

13、/*求1到之間的雙胞胎數(shù)的對數(shù)。雙胞胎數(shù):兩素數(shù)差為2稱為雙胞胎數(shù)。例如227

和229是一對雙胞胎數(shù),它們都是素數(shù)且差為2。寫案:61

#include<stdio.h>

intprime(intx)

(

intk;

for(k=2;k<x;k++)

if()break;

if(k==x)return1;

elsereturn0;

)

voidmain()

{inta,b,n=0;

intprime(intx);

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

(

if(prime(a)==l)

{b=a+2;

if()n++;

)

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

I

14、編寫程序,記錄200F00之間的所有滿足三個數(shù)字之積為42,三個數(shù)字之和為12的數(shù)的

個數(shù)。答案:4

15、有30個學生一起買小吃,共花錢50元,其中每個大學生花3元,每個中學生花2元,每個

小學生花1元,問大、中、小學生的人數(shù)分派共有多少種不一樣的解(去掉某類學生數(shù)為0

的解)?答案:9

16、愛因斯坦走臺階:有一臺階,假如每次走兩階,最終剩一階;假如每次走三階,最終剩兩階;

假如每次走四階,最終剩三階;假如每次走五階,最終剩四階;假如每次走六階,最終剩五階;

假如每次走七階,剛好走完.求滿足上述條件的最小臺階數(shù)是多少?答案:119

17、/*求1000以內(nèi)最大的10個素數(shù)的和。*/答案:9664

#include<stdio.h>

intpriine(longn)

(

longk;

for(k=2;k<=n-l;k++)

if()return0;

return1;

I

voidmain()

(

longt,total=0,num=0;

intprime(longn);

for(t=IOOO;t>=2;t-)

(

if()

(

total=total+t;num++;

}

if(num==10)break;

)

prinlf("\n%Id",total);

}

18、/*求l!+2!+3!+...+7!,7!表達7的階乘。*/答案:5913

#include<stdio.h>

longjc(longx)

(

longk,fac=1;

for(k=1;;k++)

fac*=k;

1

voidmain()

longn,sum=();

longjc(longx);

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

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

I

19、求10000以內(nèi)所有完數(shù)之和,“完數(shù)”是指:一種數(shù)假如剛好與它所有的真因子(不包括

該數(shù)自身)之和相等,如:6=1+2+3,則6就是一種完數(shù)。(注:所有變量用int數(shù)據(jù)類型定

義!)答案:8658

20、/*數(shù)列1,2,1,4712,23…具有這樣的特性,從第四項(也就是4)開始,每一項是前三項

之和,4=1+2+1,7=2+1+4,12=1+4+7-.<>下列程序先給出數(shù)列的第一項(1)、第二項(2)、

第三項(1),再逐漸計算其他項并保留在數(shù)組a中,最終求出該數(shù)列的第25項。請改正程

序中的錯誤,并運行修改后的程序,給出程序成果。(注:只有一處錯誤!)刃答案:1323525

#include<conio.h>

#includc<stdio.h>

#dcfineN30

voidniain()

(

longa[N];

intk;

clrscr();

a[0]=I;a[l]=2;a[2]=l;

for(k=3;k<=20;k++)

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

prinlfC%ld\n",a[k-l]);

}

21、/*求區(qū)間|200,3000]中所有回文數(shù)的和,回文數(shù)是正讀與反讀都是同樣的數(shù),如525,15510

*/答案:87970

#include<stdio.h>

inthws(longn)

(

longx=n,t=O,k;

while(x>0)

(

k=x%10;

t=t*10+k;

x=x/10;

)

if()return1;

elsereturn0;

voidmain()

longk,s=O;

inthws(longn);

for(k=200;k<=;k++)

if()

s=s+k;

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

I

22、/*下面的程序是求體現(xiàn)式的值:

s=l+l/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+...+(1*2*3*...*n)/0x5*7*...(2*n+1))請將程序補充完整,

并給出當n=25時,程序的運行成果(按四舍五入保留10位小數(shù))。*/答案:1.

#include<stdio.h>

doublefun(intn)

(

doubles=1.0,t=1.0;

intk;

doublertn=1.0;

for(k=l;k<=n;k++)

{

c=t*k;

s=s*(2*k+l);

I

returnrtn;

}

voidmain()

(

doublesum;

printf("\n%.10lf',sum);

)

23、已知:Sn=2/l+3/2+4/3+-+(n+l)/n,求Sn不超過50的最大值(按四舍五入的方式精確

到小數(shù)點后第三位)。答案:49.395

24、計算Y=X/l!-X-3/3!+X"/5!-X7/7!+……前20項的值(已知:X=2)。規(guī)定:按四舍五入

的方式精確到小數(shù)點后第二位。答案:0.91

25、若某正整數(shù)平方等于某兩個正整數(shù)平方之和,稱該正整數(shù)為弦數(shù)。例:2+4.2=52則

5為弦數(shù),求[131,200]之間最小的弦數(shù)。答案:135

26、已知X,Y,Z為三個正整數(shù),且X〃2+Y'2+Z〃2=25.2,求X+Y+Z的最大值。答案:43

27、猴吃桃:有一天小猴子摘下了若干個桃子,當即吃掉二分之一,還覺得不過癮,又多吃

了一種。第二天接著吃了剩余的桃子中的二分之一,仍不過癮,又多吃了一種。后來每天都

是吃尚存桃子的二分之一零一種。到第1()天早上小猴子再去吃桃子時,看到只剩余一種桃子

了。問小猴子第一天共摘下了多少個桃子。答案:1534

28、求[1,50]之間的所有整數(shù)能構(gòu)成直角三角形的三邊的組數(shù)。例如:3*3+求4=5*5,它們

構(gòu)成直角三角形,因此{3,4,5}作為一組,但{4,3,5}視為跟{3,4,5}相似的一組。答

案:20

29、15元錢換成1元、2元、5元的票面,問有多少種不一樣的兌換措施?輸出所有的兌換措

施。答案:18種

30、用迭代法求x等于a開平方的正數(shù)值。

迭代公式為:xe=l/(2*(xn+a/x.)),規(guī)定直到前后兩次求出的x的差的絕對值不不小于I。/

為止。A的值從鍵盤輸入。

31、求最大的水仙花數(shù),所謂水仙花數(shù),指的是一種三位數(shù),其各個數(shù)字的立方之和等于該

數(shù)。答案:407

32、一球從100米的高度自由落下,每次落地后反跳回原高度的二分之一,再落下。求它在

第10次落地時,共通過多少米?第10次反彈多高?

答案:299.6093750.097656

33、編寫程序,完畢如下功能,輸入8個float類型的實數(shù),分別求最大值和最小值,保留

三位小數(shù)輸出最大值和最小值。

34、編寫程序輸出如下字符圖形:

@@@@@@@@@@@

@@@@@@@@@司

???

@@

@

35、計算:s=f(-30)+f(-29)+.......+f(-l)+f(0)+f(l)-......+f(30)的值。其中函數(shù)定義

如下:f(x)=(x+l)/(x-2)假如x>l;f(x)=0假如x=0或x=2;f(x)=(x-l)/(x-2)假

如x<0。(按四舍五入保留6位小數(shù))答案:65.223018

36、編寫程序輸出如下字符圖形(最終一行19顆星):

***

*****

*******

???

***???****

37、企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤⑴低于或等J70萬元時,獎金可提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,求應發(fā)放獎金總

數(shù)?

38、計算下面公式的值。T=l+l/(2*3)+l/(3*4)+……+l/(m*(m+l)),當m=50時的成果(按四

舍五入保留6位小數(shù))。(注:所有變量用double數(shù)據(jù)類型定義!)答案:1.480392

39、程序填空:輸入一行字符,分別記錄出其中英文字母、空格、數(shù)字和其他字符的個數(shù)。

程序分析:運用while語句,條件為輸入的字符不為

#include"stdio.h"

#include"conio.h"

main()

chare;

intIetters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters"");

while((c=getchar(y)!='\ii')

(

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"Jetters,space,digi(,others);

getch();

40、打印出如下圖案(菱形)

*

***

*****

*******

*7*4、*7**1*

***

*

41、求出[2,478]以內(nèi)的:

*467

(2)素數(shù)數(shù)目。*91

(3)所有素數(shù)之和。*19580

42、已知:

N7。.為奇數(shù))6(,?為奇數(shù))

尸2〃-4

“=||a為偶數(shù))'一卜③(,為偶數(shù))

/=1

⑴若210,求Yo*1304735

(2)若N=15,求Y。*1.184172E+07

X"

43、已知:)'=l+X+?.+,+了,其中:了二0.25,〃=求:

(1)Y值(精確到小數(shù)點后第5位)*1.28767

(2)與⑴匹配的最小的n*7

44、如下程序輸入三個整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a中的

值給c,互換后輸出a>b>c的值。例如:讀入后,a=10>b=20>c=30;互換后,a=20%b=30>

c=10o請?zhí)羁铡?/p>

#include<stdio.h>

rnain()

{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函數(shù)的功能是從a數(shù)組中查找值為y的元素;若找到,返回該元素的下標值,

若不存在值為y的元素,返回0;數(shù)列放在a數(shù)組的a⑴到a[n]中,a⑼元素用來作為臨時存

儲單元。請?zhí)羁铡?/p>

fun(inta[l,inty,intn)

{intk=0;

a[O]=y;k=n;

whiie()k-;

return();

)

46、/*下列程序的功能是求出二階Fibonacci數(shù)列前1()之和,1,1,2,3,5,8…。請改正程序中

的錯誤,并運行修改后的程療,給出程樣成果。(注;只有一處錯誤!3足第四項,5足第五

項。)*/答案:143

#include<stdio.h>

voidinain()

{

longsum=0,a[30]={1,1,2};

intk;

for(k=2;k<10;k++)

a[k]=a[k-l]+a[k-2];

for(k=l;k<=10;k++)

sum+=a[kj;

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

)

47、20,160]之間的所有倡數(shù)的平方和。答案:694380

48、求[10,]之間能被2或3或5整除的數(shù)之和。答案:67795

49、求800以內(nèi)的最大的20個素數(shù)之和。答案:14510

50、求當n=60時下式的和:s=l+l/(l+2)+l/(l+2+3)+......+1/(1+2+3+.......+n)(按四舍

五入保留6位小數(shù))。答案:1.967214

51、編寫程序:輸入x的值,按照下列公式計算cos(x)

COS(X)=1-X2/2!+X4/4!-X6/6!+...精確到10汽

/*C11.717*/

mainO

inti;

longjc=l;

floats=0;

for(i=l;i<=5;i++)

jc=jc*i;

s=s+l.0/jc;

)

printfs);

)

/*C31533459*/

mainO

(

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;

)

)

printft);

)

/*C16591*/

main()

{

inti,s=0,c=0;

for(i=700;i>=l;i—)

if(i%13==0||i%17==0)

(

c++;

s+=i;

if(c==10)break;

)

printf('%d",s);

)

/*C56.058311*/

main()

(

longi=5;

doubles=l;

while(1.0/i>=le-5)

{

s=s+l.0/i;

i=i+2;

)

printfC%ir,s);

1

/*C60.*/

main()

{

inti;

doublea=l;

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

(

a=1.0/(l+a);

)

printf(飛.lOlf”,a);

)

/*C790965*/

main()

(

longi,s=0;

for(i=ll;i<=1600;i=i+2)

if(i%7==0)

s=s+i;

printfs);

)

/*C91042*/

main()

longi,s=0;

for(i=100;i<=500;i++)

if(i%5==3&&i%7==5&&i%3==l)

s=s+i;

printf("為ld〃,s);

}

/*C10143*/

main()

{

intc=0,i,j,p;

for(i=100;i<=999;i++)

(

P=l;

for(j=2;j<i;j++)

if(i%j==0){p=0;break;}

if(p==l)c??;

)

prinlf(飛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(intx);

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++;

)

printfC%d",c);

)

/?Cl59*/

main()

{

intd,z,x,c=0;

for(d=l;d<=17;d++)

for(z=l;z<=25;z++)

(

x=30-d-z;

if(x>=0&&d*3+z*2+x==50)

c++;

printf("困d”,c);

)

/*C16119*/

mainO

(

inttj,i,j;

for(tj=l;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=O,w,j;

for(i=l;i<=10000;i++)

(

w=O;

for(j=l;j<i;j++)

if(i%j=O)w+=j;

if(w==i)s+=i;

}

printf('%d",s);

)

/*C201323525*/

main()

{

longa[25]={l,2,1);

inti;

for(i=3;i<25;i++)

a[i]=a[i-l]+a[i-2]+a[i-3];

printfa[24]);

}

/*C221.*/

^defineN24

main()

{

inti,j;

doubles=l,si,s2;

for(i=l;i<=N;i++)

(

sl=l;

s2=\;

for(j=l;j<=i;j++)

(

sl*=j;

s2*=(2*j+l);

)

s+=(sl/s2);

)

printf("%.lOlf”,s);

)

/*C2349.395*/

main()

{

inti=l;

doubles=();

do

(

s+=(l+1.0/i);

printf(z,\n%0.31f”,s);

i++;

)

while(s<50);

}

/*C240.91V

#include<math.h>

main()

(

intx=2,i,j;

doublejc(inti);

doubley=0,fz;

for(i=l;i<=20:i++)

(

fz=pow(-l,i+l)*pow(x,2*i-l);

y+=fz/jc(2*i-l);

printf("\n%d,%.01f/%.01f”,i,fz,jc(2*i-l));

)

printf(z,\n%.2ir,y);

)

doublejc(inti)

(

intj;

doubler=l;

for(j=l;j<=i;j++)

r*二j;

returnr;

}

/*C25135*/

#include<math.h>

main()

(

longa,b,c;

intxs=0;

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

(

xs=0;

for(a=l;a<c;a++)

(

b=sqrt(c*c-a*a);

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

xs=l;

break;

)

)

if(xs==l)

(

printf(飛Id",c);

break;

}

)

)

/*C2643*/

mainO

(

intd=25;

intx,y,z,max=0;

for(x=l;x<d;x??)

for(y=l;y<d;y++)

for(z=I;z<d;z+-*-)

if(x*x+y*y+z*z==d*d&&max<x+y+z)

max=x+y+z;

printfmax);

}

/*C2820*/

#include<math.h>

mainO

{inta,b,c,n=0;

intxs=O;

for(c=l;c<=50;c++)

for(a=l;a<c;a++)

for(b=l;b<a;b++)

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

printfn);

)

/*C30*/

#include<math.h>

main()

{

doublexl=l.0,x2;

doublea;

scanf(飛If",&a);

while(l)

xl=1.0/2*(xl+a/xl);

if(fabs(x2-xl)<=le-5)break;

elsex2=xl;

)

printf("%1f”,xl);

}

/*C3567.223018*/

main()

(

doublef(doublex),s=0;

inti;

for(i=-30;i<=30;i++)

s=s+f(i);

printfs);

}

doublef(doublex)

(

doubley;

if(x==0||x=2)y=0;

elseif(x>l)y=(x+l)/(x-2);

elseif(x<0)y=(x-l)/(x-2);

retur

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論