版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《C語(yǔ)言程序設(shè)計(jì)》復(fù)習(xí)題庫(kù)1、計(jì)算下面公式的值。T=l/l!+l/2!+l/3!++l/m!當(dāng)m=5時(shí)的結(jié)果(按四舍五入保留3位小數(shù))。(注:所有變量用float數(shù)據(jù)類型定義!)答案:1.7172、程序填空:用?號(hào)輸出字母C的圖案。#include"stdio.h"#includenconio.hnmain()printf(H*\nu);getch();)3、8232和9678,它們的個(gè)、十、百、千各位數(shù)字之和是15的倍數(shù),8+2+3+2=15,9+6+7+8=30。編寫程序,求四位數(shù)的所有奇數(shù)中,這樣的數(shù)(各位數(shù)字之和是15的倍數(shù))的總和。(注:所有變量用kmg數(shù)據(jù)類型定義!)答案:15334594、ノ?下面程序的功能是:計(jì)算并輸出700以內(nèi)的最大的10個(gè)能被13或者17整除的自然數(shù)之和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行,最后給出程序運(yùn)行的正確結(jié)果。(注:只有一處錯(cuò)誤!)*/答案:6591#include<stdio.h>voidmain()(inttotal=0,mc=l,k=700;intpm[10],count=0;while((k>=2)&&mc<=10)(if((k%13==0)II(k%17==0))(pm[mc]=k;mc++;)k-;)for(k=l;k<=10;k++)total+=pm[k-l];printf(H%d\n”,total);}5、求x=l+l/5+l/7+l/9+???的近似值,直到最后ー項(xiàng)的絕對(duì)值小于10-5為止。6、計(jì)算如下公式的A20值。Al=l,A2=1/(1+A1),A3=l/(1+A2),A4=l/(1+A3),……(按四舍五入保留10位小數(shù))。答案:0.61803398507、求[10,1600]之間能被7整除的奇數(shù)之和。答案:909658、函數(shù)mystrlen(char*s)的功能是求字符串s的長(zhǎng)度。請(qǐng)?zhí)領(lǐng)ntmystrlen(char*s){intnum=0;while(){;}return();)9、[100,500]之間同時(shí)滿足除以7余5,除以5余3,除以3余1的整數(shù)之和。答案:104210、求[100,999]之間所有的素?cái)?shù)的個(gè)數(shù)。答案:14311、編寫程序,求滿足下列條件的所有四位數(shù)ABCD的個(gè)數(shù),該四位數(shù)是8的倍數(shù),且A+B=B+C,即第1位數(shù)加上第2位數(shù)等于第2位數(shù)加上第3位數(shù)。答案:11012、/?數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每ー項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序的功能是求出該數(shù)列前10項(xiàng)的和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!)*/答案:311#include<stdio.h>voidmain()(longsum=0,a[30]={1,2,1};intkJ;for(k=3;k<10;k++)a[k]=a[k-l]+a[k-2]+a[k-3];for(j=l;j<=10;j++)sum+=a[j];printf(H%ld\n",sum);}13、/?求1到2000之間的雙胞胎數(shù)的對(duì)數(shù)。雙胞胎數(shù):兩素?cái)?shù)差為2稱為雙胞胎數(shù)。例如227和229是ー對(duì)雙胞胎數(shù),它們都是素?cái)?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(H%d\n'*,n);)14、編寫程序,統(tǒng)計(jì)200~400之間的所有滿足三個(gè)數(shù)字之積為42,三個(gè)數(shù)字之和為12的數(shù)的個(gè)數(shù)。答案:415、有30個(gè)學(xué)生一起買小吃,共花錢50元,其中每個(gè)大學(xué)生花3元,每個(gè)中學(xué)生花2元,每個(gè)小學(xué)生花1元,問(wèn)大、中、小學(xué)生的人數(shù)分配共有多少種不同的解(去掉某類學(xué)生數(shù)為0的解)?答案:916、愛因斯坦走臺(tái)階:有一臺(tái)階,如果每次走兩階,最后剩ー階;如果每次走三階,最后剩兩階;如果每次走四階,最后剩三階;如果每次走五階,最后剩四階;如果每次走六階,最后剩五階;如果每次走七階,剛好走完.求滿足上述條件的最小臺(tái)階數(shù)是多少?答案:11917、ノ*求1000以內(nèi)最大的10個(gè)素?cái)?shù)的和。?ノ答案:9664#include<stdio.h>intprime(longn)(longk;for(k=2;k<=n-l;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%Id**,total);}答案:591318、/?求l!+2!+3!+...+7!,7!表示7的階乘。答案:5913#include<stdio.h>longjc(longx)(longk,fac=l;for(k=1;;k++)fac*=k;}voidmain()(longn,sum=0;longjc(longx);for(n=l;n<=7;n++)printf('へn%Id”,sum);)19、求10000以內(nèi)所有完數(shù)之和,“完數(shù)”是指:ー個(gè)數(shù)如果剛好與它所有的真因子(不包括該數(shù)本身)之和相等,如:6=1+2+3,則6就是ー個(gè)完數(shù)。(注:所有變量用int數(shù)據(jù)類型定義!)答案:865820、ノ?數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每ー項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7…下列程序先給出數(shù)列的第一項(xiàng)(1)、第二項(xiàng)(2)、第三項(xiàng)(1),再逐步計(jì)算其它項(xiàng)并保存在數(shù)組a中,最后求出該數(shù)列的第25項(xiàng)。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!)刃答案:1323525#include<conio.h>#include<stdio.h>#defineN30voidmain()(longa[N];intk;clrscr();a[0]=1;a[l]=2; a[2]=l;for(k=3;k<=20;k++)a[k]=a[k-l]+a[k-2]+a[k-3];printf(M%ld\n",a[k-l]);21、/?求區(qū)間[200,3000]中所有回文數(shù)的和,回文數(shù)是正讀與反讀都是ー樣的數(shù),如525,1551。*/答案:87970#include<stdio.h>inthws(longn)(longx=n,t=01k;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(H\n%ld",s);)22、ノ?下面的程序是求表達(dá)式的值:s=l+l/3+(l*2)/(3*5)+(l*2*3)/(3*5*7)+.??+(1*2*3*...*n)/(3*5*7*...(2*n+l))請(qǐng)將程序補(bǔ)充完整,并給出當(dāng)n=25時(shí),程序的運(yùn)行結(jié)果(按四舍五入保留10位小數(shù))。?ノ答案:1.5707963267#include<stdio.h>doublefun(intn)(doubles=1.0,t=1.0;intk;doublertn=1.0;for(k=l;k<=n;k++)(t=t*k;s=s*(2*k+l);}returnrtn;}voidmain()doublesum;printf(n\n%.10Ifn,sum);)23、已知:Sn=2/l+3/2+4/3+…+(n+l)/n,求Sn不超過(guò)50的最大值(按四舍五入的方式精確到小數(shù)點(diǎn)后第三位)。答案:49.39524、計(jì)算丫=X/1!-X人3/3!+XA5/5!-X人7/7!+前20項(xiàng)的值(已知:X=2)o要求:按四舍五入的方式精確到小數(shù)點(diǎn)后第二位。答案:0.9125、若某正整數(shù)平方等于某兩個(gè)正整數(shù)平方之和,稱該正整數(shù)為弦數(shù)。例:3A2+4A2=5A2,則5為弦數(shù),求[131,200]之間最小的弦數(shù)。答案:13526、已知X,Y,Z為三個(gè)正整數(shù),且XA2+YA2+ZA2=25A2,求X+Y+Z的最大值。答案:4327、猴吃桃:有一天小猴子摘下了若干個(gè)桃子,當(dāng)即吃掉ー半,還覺得不過(guò)癮,又多吃了一個(gè)。第二天接著吃了剩下的桃子中的一半,仍不過(guò)癮,又多吃了一個(gè)。以后每天都是吃尚存桃子的一半零一個(gè)。到第10天早上小猴子再去吃桃子時(shí),看到只剩下ー個(gè)桃子了。問(wèn)小猴子第一天共摘下了多少個(gè)桃子。答案:153428、求[1,50]之間的所有整數(shù)能構(gòu)成直角三角形的三邊的組數(shù)。例如:3*3+4*4=5*5,它們構(gòu)成直角三角形,所以{3,4,5}作為ー組,但{4,3,5}視為跟{3,4,5}相同的ー組。答案:2029、15元錢換成1元、2元、5元的票面,問(wèn)有多少種不同的兌換方法?輸出所有的兌換方法。答案:18種30、用迭代法求x等于a開平方的正數(shù)值。迭代公式為:xn+l=l/(2*(xn+a/xn)),要求直到前后兩次求出的x的差的絕對(duì)值小于10-5為止。A的值從鍵盤輸入。31、求最大的水仙花數(shù),所謂水仙花數(shù),指的是ー個(gè)三位數(shù),其各個(gè)數(shù)字的立方之和等于該數(shù)。 答案:40732、ー球從100米的高度自由落下,每次落地后反跳回原髙度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多髙?答案:299.609375 0.09765633、編寫程序,完成如下功能,輸入8個(gè)れoat類型的實(shí)數(shù),分別求最大值和最小值,保留三位小數(shù)輸出最大值和最小值。34、編寫程序輸出如下字符圖形:@@@@@@@@@@@@@@@@@@@@@35、計(jì)算:s=f(-30)+f(-29)+......+f(-l)+f(O)+f(l)+......+f(30)的值。其中函數(shù)定義如下:f(x)=(x+l)/(x-2)如果x>l;f(x)=O如果x=0或x=2;f(x)=(x-l)/(x-2)如果x<0o(按四舍五入保留6位小數(shù))答案:65.22301836、編寫程序輸出如下字符圖形(最后一行19顆星):37、企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)⑴低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)髙于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,髙于10萬(wàn)元的部分,可提 成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),髙于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)髙于 40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),髙于60萬(wàn)元的部分,可提成1.5%,髙于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)!,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?38、計(jì)算下面公式的值。T=l+l/(2*3)+l/(3*4)+ +l/(m*(m+l)),當(dāng)m=50時(shí)的結(jié)果(按四舍五入保留6位小數(shù))。(注:所有變量用double數(shù)據(jù)類型定義!) 答案:1.48039239、程序填空:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。程序分析:利用while語(yǔ)句,條件為輸入的字符不為ヘ足.#include"stdio.h"#includenconio.hnmain()(charc;intIetters=0,space=0,digit=0,others=0;printf(npleaseinputsomecharacters'll");while((c=getchar())!=,\n,)(if(c>=,a,&&c<=,z,llc>='A,&&c<='Z,)elseif(c==**)elseif(c>=,0,&&c<=,9,)elseprintf(Hallinall:char=%dspace=%ddigit=%dothers=%d\n”,Utters,space,digit,others);getch();)40、打印出如下圖案(菱形)****7く扌??レ唾?、ヤ7sy.<!>****41、求出[2,478]以內(nèi)的:⑴最大的素?cái)?shù)。 ?467⑵素?cái)?shù)數(shù)目。 ?91⑶所有素?cái)?shù)之和。 *1958042、已知:⑴若N=10,求丫0 *1304735*1.184172E+07(2)若N=15,求丫。*1.184172E+0743、已知:,其中:X=0.25,n=1,2,…,求:(DY值(精確到小數(shù)點(diǎn)后第5位)*1.28767⑵與(1)匹配的最小的n *744、以下程序輸入三個(gè)整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a、b、c的值。例如:讀入后,a=10>b=20、c=30J交換后,a=20>b=30、c=10o請(qǐng)?zhí)羁铡?include<stdio.h>main(){inta,b,c,t;printf(MEntera,b,c:M);scanf("%d%d%d",—);;a=b;;;printf("a:%db二%dc=%d\n”,a,b,c);)45.下面fun函數(shù)的功能是從a數(shù)組中查找值為y的元素;若找到,返回該元素的下標(biāo)值,若不存在值為y的元素,返回〇;數(shù)列放在a數(shù)組的a[l]到a[n]中,a[〇]元素用來(lái)作為臨時(shí)存儲(chǔ)單元。請(qǐng)?zhí)羁铡un(inta[],inty,intn){intkニ〇;a[O]=y;k=n;while()k—;return();)46、ノ?下列程序的功能是求出二階Fibonacci數(shù)列前!0之和,1,1,2,3,5,8…。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!3是第四項(xiàng),5是第五項(xiàng)。)*/答案:143#include<stdio.h>voidmain()(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[k];printf(H%ld\n",sum);)47、20,16〇]之間的所有偶數(shù)的平方和。答案:69438048、求[10,2000]之間能被2或3或5整除的數(shù)之和。答案:6779549、求800以內(nèi)的最大的20個(gè)素?cái)?shù)之和。答案:14510
50求當(dāng)50求當(dāng)n=60時(shí)下式的和s=l+l/(l+2)+l/(l+2+3)+......+1/(1+2+3+......+n)(按四舍五入保留6位小數(shù))。答案:1.96721451、編寫程序:輸入x的值,按照下列公式計(jì)算cos(x)cos(x)=l-x2/2!+x4/4!-x6/6!+...精確到10-5〇答案1、計(jì)算下面公式的值。T=l/l!+l/2!+l/3!+ +l/m!當(dāng)m=5時(shí)的結(jié)果(按四舍五入保留3位小數(shù))。(注:所有變量用float數(shù)據(jù)類型定義!)答案:1.717#include<stdio.h>main(){intn,k=l,i=l;解釋;floatT=0;T必需是浮點(diǎn)數(shù),因?yàn)楹竺媸切?shù)scanf(M%d{intn,k=l,i=l;解釋;floatT=0;T必需是浮點(diǎn)數(shù),因?yàn)楹竺媸切?shù)scanf(M%dH,&n);輸入ー個(gè)你要算到的數(shù)。while(i<=n)一直做到你輸入的那個(gè)數(shù){i++;T=T+1.0/k;做一次循環(huán)就磊加一次k=k*i;這就是算T=T+1.0/k;做一次循環(huán)就磊加一次k=k*i;這就是算n的階乘printf(n%f\nn,T);getchQ;算完以后停止看到結(jié)果getchQ;算完以后停止看到結(jié)果2、程序填空:用?號(hào)輸出字母C的圖案。#include<stdio.h>#include<conio.h>main(){inti=Oj=O;for(i=4;i>0;i-){for(j=i*i;j>0;j-)做循環(huán)printfC,M); 前輸出前面的空格printグ**、パ); 打印?字符)printf(,,*\n*\n,*);for(i=l;i<5;i++) 用兩個(gè)循環(huán)完成,當(dāng)然也能用ー個(gè)完成,但是要算哦{for(j=l;jv=i*i;j++) 后面的循環(huán)是ー樣的就只是反過(guò)來(lái)printf(Hn);printf(,'**\nH);)getch();}3、8232和9678,它們的個(gè)、十、百、千各位數(shù)字之和是15的倍數(shù),8+2+3+2=15,9+6+7+8=30。編寫程序,求四位數(shù)的所有奇數(shù)中,這樣的數(shù)(各位數(shù)字之和是15的倍數(shù))的總和。(注:所有變量用long數(shù)據(jù)類型定義!)答案:1533459#include"stdio.h"main(){intk=0;inti,c;for(i=1001;i<10000;){ints=0;inta=0J=l;c=i;for(;j<5;j++){a=c%10; 求各位數(shù)字的循環(huán)c=c/10;s=s+a; 求各位數(shù)的和)if(s%15==0) 判斷是否滿足條件k=k+i; 求滿足條件的數(shù)字的和i=i+2;)printf(M%dn,k); 輸出總和)4、ノ?下面程序的功能是:計(jì)算并輸出700以內(nèi)的最大的10個(gè)能被13或者17整除的自然數(shù)之和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行,最后給出程序運(yùn)行的正確結(jié)果。(注:只有一處錯(cuò)誤!)刃答案:6591#include<stdio.h>voidmain()(inttotal=0,mc=l,k=700;intpm[10],count=0;while((k>=2)&&mc<=10)if((k%13==0)II(k%17==0))pm[mc]=k;mc++;)k-;)for(k=l;k<=10;k++)total+=pm[k-l];printf(H%d\nH,total);}這是正確的程序#include<stdio.h>voidmain()(inttotal=0,mc=0,k=700;intpm[10];while((k>=2)&&mc<10)(if((k%13==0)II(k%17==0)){ 這兩個(gè)程序之間的差異就是在數(shù)組中的ー個(gè)
要從零開始注意其中的差異哦pm[mc]=k;mc++;}k-;)for(k=0;k<10;k++)total+=pm[k];printf(**%d\nH,total);}5、求x=l+l/5+l/7+l/9+…的近似值,直到最后ー項(xiàng)的絕對(duì)值小于10-5為止。#include"stdio.h"longfloats(floati);voidmain(){floati=1.0;longfloata,x=0; 因?yàn)橛行?shù)就要用浮點(diǎn)數(shù)哦調(diào)用函數(shù)do{a=s(i);調(diào)用函數(shù)x=x+a;)while(a>0.00001); 條件當(dāng)然也可以用遞歸的方法,你要是不習(xí)慣就用著方法printf(,,x=%lf\n,,,x);getch();)longfloats(floati) 寫函數(shù)求1/(2i+l)的值(if(i==l)return(l);elsereturn(l/(2*i+l));)6、計(jì)算如下公式的A20值。Al=l,A2=1/(1+A1),A3=l/(1+A2),A4=l/(1+A3),......(按四舍五入保留10位小數(shù))。答案:0.6180339850#include"stdio.h"floatsm(inti);voidmain()printf(n%fu,sm(20));打印并調(diào)用函數(shù)getch();)floatsm(inti) 定義sm函數(shù){floatf;if(i==l)f=l; 中斷函數(shù)條件就是當(dāng)f為ー時(shí)就終止了elsef=l/(l+sm(i-l)); 遞歸法求函數(shù)return(f);)7、求[10,1600]之間能被7整除的奇數(shù)之和。答案:90965#include"stdio.h"voidmain(){intiJ,a=0;for(i=ll;i<=1600;){if(i%7==0) 條件判斷是否能被7整除a=a+i;i=i+2;}printf(,,%dn,a);getch();)8、函數(shù)mystrlen(char*s)的功能是求字符串s的長(zhǎng)度。請(qǐng)?zhí)羁铡ntmystrlen(char*s){intnum=0;while(){;}return();)答案是Intmystrlen(char*s)寫函數(shù){intnum=0;while(へ(T){num=num+l;}知道字符串結(jié)束時(shí)就結(jié)束字符串最后的一定是以、〇結(jié)尾的書上有哦return(num);9、[100,500]之間同時(shí)滿足除以7余5,除以5余3,除以3余1的整數(shù)之和。答案:1042#include"stdio.h"voidmain(){inti,a=0;for(i=100;i<=500;i++) 做循環(huán)并且判斷是不是滿足條件if(i%7==5&&i%5==3&&i%3==l)a+=i;printf(H%dn,a);getch();)10、求[100,999]之間所有的素?cái)?shù)的個(gè)數(shù)。答案:143#include"stdio.h"intss(inti);voidmain(){inti,a=0;for(i=100;i<999;i++) 因?yàn)槭撬財(cái)?shù)是flag是1不是flag是〇所以可以對(duì)flag做疊加a=a+ss(i);printf(n%dH,a);getch();)intss(inti) 此函數(shù)判斷是不是素?cái)?shù){intj,flag=l;for(j=2;j<i;j++)if(i%j==O){flag=O;break;}return(flag);)11、編寫程序,求滿足下列條件的所有四位數(shù)ABCD的個(gè)數(shù),該四位數(shù)是8的倍數(shù),且A+B=B+C,即第1位數(shù)加上第2位數(shù)等于第2位數(shù)加上第3位數(shù)。答案:110#include"stdio.h"intf(intx);voidmain(){intn=0,i;for(i=1000;i<10000;i++)if(i%8==0&&f(i))n=n+l;printf("%dgetch();)intf(intx){inta[41,i;for(i=0;i<4;i++){a[i]=x%10;x=x/10;}if(a[3]==a[l])return(l);elsereturn(O);)12、ノ?數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每ー項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7…下列程序的功能是求出該數(shù)列前10項(xiàng)的和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!)*/答案:311#include<stdio.h>voidmain()(longsum=0,a[30]={1,2,1};intkJ;for(k=3;k<10;k++)a[k]=a[k-l]+a[k-2]+a[k-3];for(j=l;j<=10;j++) 數(shù)組中第一個(gè)應(yīng)該從〇開始。所以要把這行的ー改為零,然后把等號(hào)去了。sum+=a[j];printf(M%ld\n",sum);}13、ノ?求1到2000之間的雙胞胎數(shù)的對(duì)數(shù)。雙胞胎數(shù):兩素?cái)?shù)差為2稱為雙胞胎數(shù)。例如227和229是ー對(duì)雙胞胎數(shù),它們都是素?cái)?shù)且差為2。?/答案:61#include<stdio.h>intprime(intx)(intk;for(k=2;k<x;k++)if()break;填:x%k==0if(k==x)return1;elsereturn0;} 求素?cái)?shù)的函數(shù),當(dāng)然的用ー個(gè)循環(huán)來(lái)完成。也就是要找出滿足素?cái)?shù)的條件。voidmain(){inta,b,n=0;intprime(intx);for(a=2;a<=1998;a++) 做循環(huán)看看是不是有滿足條件的那些數(shù)if(prime(a)==l){ b=a+2;if()n++;此處填prime(b)==1就是判斷比a大兩的數(shù)是不是素?cái)?shù);})printf(H%d\nn,n);)14、編寫程序,統(tǒng)計(jì)200?400之間的所有滿足三個(gè)數(shù)字之積為42,三個(gè)數(shù)字之和為12的數(shù)的個(gè)數(shù)。答案:4#include"stdio.h"voidmain(){intiJ,n=0;for(i=200;i<400;i++){inta[3],c=i; 此函數(shù)要注意定義a【3]與c因?yàn)橐侵苯佑胕就會(huì)改了i數(shù)值就會(huì)算錯(cuò)for(j=0;j<3;j++){a[j]=c%10;c=c/10;} 用ー個(gè)數(shù)組吧各位數(shù)字儲(chǔ)存起來(lái)if(a[0]*a[l]*a[2]==42&&a[0]+a[l]+a[2]==12)n=n+l;}printf(H%dn,n);}15、有30個(gè)學(xué)生一起買小吃,共花錢50元,其中每個(gè)大學(xué)生花3元,每個(gè)中學(xué)生花2元,每個(gè)小學(xué)生花1元,問(wèn)大、中、小學(xué)生的人數(shù)分配共有多少種不同的解(去掉某類學(xué)生數(shù)為〇的解)?答案:9#include"stdio.h"main(){intij,k;for(i=l;i<29;i++) 用三個(gè)數(shù)做循環(huán)for(j=l;j<29;j++)for(k=l;k<29;k++)if(i+j+k==30&&i*3+j*2+k==50) 判斷是不是滿足題目的條件滿足就打印出來(lái)printf(H\ndaxuesheng%d chuzhongsheng%dxiaoxuesheng%d\nn,ij,k);}16、愛因斯坦走臺(tái)階:有一臺(tái)階,如果每次走兩階,最后剩ー階;如果每次走三階,最后剩兩階;如果每次走四階,最后剩三階;如果每次走五階,最后剩四階;如果每次走六階,最后剩五階;如果每次走七階,剛好走完.求滿足上述條件的最小臺(tái)階數(shù)是多少?答案:119答案應(yīng)該是419#include"stdio.h"voidmain(){inti=l;do{i+=l;) 做循環(huán)直到滿足條件時(shí)就停止while(i%2!=llli%3!=2lli%4!=3lli%5!=4lli%6!=5lli%7!=6);條件再不滿足時(shí)要是真的,就是不用i%4==3等去判斷的原因printグ%d”,i);)17、ノ?求1000以內(nèi)最大的10個(gè)素?cái)?shù)的和。*1 答案:9664#include<stdio.h>intprime(Iongn)(longk;for(k=2;k<=n-l;k++)if()return0; 此處應(yīng)該是填素?cái)?shù)的條件n%k==0有約數(shù)就斷開循環(huán)return1;)voidmain()(longt,total=0,num=0;intprime(longn);for(t=1000;t>=2;t-)(if() 條件調(diào)用前面的函數(shù)判斷是不是滿足素?cái)?shù)(total=total+t;num++;用來(lái)加起滿足條件的數(shù),total用來(lái)記數(shù))if(num==10)break; 用來(lái)判斷是不是有十個(gè)數(shù)字滿足條
件了}printf(',\n%ld,,,total);}18、ノ?求!!+2!+3!+...+7!,7!表示?的階乘。*/答案:5913#include<stdio.h>longjc(longx)longk,fac=l;for(k=l;;k++)for(k=l;;k++)填k<xfac*=k;voidmain()longn,sum=0;longjc(longx);for(n=l;n<=7;n++);用它來(lái)求和sum=sum+jc(n)調(diào)用函數(shù)printf(n\n%ldn,sum);19、求10000以內(nèi)所有完數(shù)之和,“完數(shù)”是指:ー個(gè)數(shù)如果剛好與它所有的真因子(不包括該數(shù)本身)之和相等,如:6=1+2+3,則6就是ー個(gè)完數(shù)。(注:所有變量用int數(shù)據(jù)類型定義!)答案:8658#include"stdio.h"intrf(intx);voidmain(){inti,sum=0;for(i=l;i<=10000;i++)sum=sum+rf(i); 判斷求和,嘿嘿,因?yàn)橄旅娣祷氐闹稻褪莤所以就可以直接用函數(shù)相加printf(,'%d,',sum);)intrf(intx){intj,sum=0;for(j=l;j<x;j++)if(x%j==0)判斷求和,所有公約數(shù)之和就是從1開始就到比i小一的數(shù)之和就是了sum+=j;if(sum==x)return(x); 判斷是就返回x不然返回〇elsereturn(O);)20、ノ?數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每ー項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7…下列程序先給出數(shù)列的第一項(xiàng)(1)、第二項(xiàng)(2)、第三項(xiàng)(1),再逐步計(jì)算其它項(xiàng)并保存在數(shù)組a中,最后求出該數(shù)列的第25項(xiàng)。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!)*/答案:1323525#include<conio.h>#include<stdio.h>#defineN30voidmain()longa[N];intk;clrscr();a[0]=1;a[l]=2; a[2]=l;for(k=3;k<=24;k++) 因?yàn)橹皇菑末栭_始的,要注意了哦并且他要求的是求前25項(xiàng),也就是數(shù)組中的第24項(xiàng)。后面也注意一下就不會(huì)有錯(cuò)了。一般這樣的題多是這些方面出了問(wèn)題a[k]=a[k-l]+a[k-2]+a[k-3];printf(M%ld\n',,a[k-l]);}21、/?求區(qū)間[200,3000]中所有回文數(shù)的和,回文數(shù)是正讀與反讀都是ー樣的數(shù),如525,1551。?ノ答案:87970#include<stdio.h>inthws(longn)(longx=n,t=0,k;while(x>0)k=x%10;t=t*10+k;x=x/10;)if()return1;t=x;因?yàn)閠就是從個(gè)位數(shù)開始計(jì)數(shù)的,注意用筆寫一下那上面的程序過(guò)程,ー步ー步的寫運(yùn)算結(jié)果elsereturn0;)voidmain()(longk,s=0;inthws(longn);for(k=200;k<=3000;k++)if() 判斷是不是會(huì)問(wèn)字?jǐn)?shù),也就是調(diào)用前面定義好了的函數(shù)hws(k)==1s=s+k;printf(H\n%ldn,s);)22、ノ?下面的程序是求表達(dá)式的值:s=l+l/3+(l*2)/(3*5)+(l*2*3)/(3*5*7)+...+(1*2*3*...*n)/(3*5*7*...(2*n+l))請(qǐng)將程序補(bǔ)充完整,并給出當(dāng)n=25時(shí),程序的運(yùn)行結(jié)果(按四舍五入保留10位小數(shù))。?ノ答案:1.5707963267#include<stdio.h>doublefun(intn)(doubles=1.0,t=1.0;intk;doublertn=1.0;for(k=l;k<=n;k++)(t=t*k;s=s*(2*k+l);rtn=rtn+rtn*t/s;此處;求以前的并加上以后ー項(xiàng)的后ー項(xiàng)就是rtn*t/s;就是了)returnrtn;)voidmain()(doublesum; sum=fun(25); 此處調(diào)用函數(shù),并放到sum中以備后面調(diào)用;printf(*'\n%.101f,',sum);}23、已知:Sn=2/l+3/2+4/3+…+(n+l)/n,求Sn不超過(guò)50的最大值(按四舍五入的方式精確到小數(shù)點(diǎn)后第三位)。答案:49.395#include"stdio.h"floatsum(intn);voidmain(){floatsn=0.0;floati=l; 這一行你用int定義時(shí)在后面求的(i+l)/i時(shí)后面就會(huì)變成整形。也就是總是1?所以在這里要定義成float形while(sn<49) 判斷這里的個(gè)數(shù)時(shí),就要考慮是用50,還是49,要考慮清楚,你可以用小一些的數(shù)計(jì)算以下。{sn=sn+(i+l)/i;i++;)printf(H%f\tn,sn);getch();}24>vf-MY=X/l!-XA3/3!+XA5/5!-XA7/7!+前20項(xiàng)的值(已知:X=2)o要求:按四舍五入的方式精確到小數(shù)點(diǎn)后第二位。答案:0.91#include<stdio.h>#include<math.h>floatjiec(intn);main(){inti;floatj,s=0,a,b,c;clrscr();scanf(u%du,&i);for(j=l;j<=i;j++){b=pow(2.0,2*j-l); 要注意乘法運(yùn)算中間一定要用?號(hào);此處要用指數(shù)函數(shù);c=b/jiec(j);s=s+c;}printf(n\t%0.2f\nH,s);printf(npressanytoback:\nn);getch();}floatjiec(intn) 求函數(shù)的階乘{(lán)floatsum=l;inti;for(i=l;i<=n;i++)sum=sum*i;return(sum);)25、若某正整數(shù)平方等于某兩個(gè)正整數(shù)平方之和,稱該正整數(shù)為弦數(shù)。例:3A2+4A2=5A2,則5為弦數(shù),求[131,200]之間最小的弦數(shù)。答案:135#include<stdio.h>#include<math.h>main(){floatij,k;clrscr();for(i=131;i<=200;i++)for(j=l;j<200;j++)for(k=j;k<200;k++)if(pow(j,2)+pow(k,2)==pow(i,2))這里用指數(shù)函數(shù)你自己看著那頭文件到哪里去看這函數(shù)是怎么調(diào)用的,格式是什么{printf(M%fn,i);getch();return;在函數(shù)中間用retrun是返回操作系統(tǒng);而retrun前面用getch就是只要找到滿足條件} 的就停下來(lái)等待輸入一個(gè)字;然后向后運(yùn)行;返回操作系統(tǒng);同時(shí)循環(huán)結(jié)束;)26、已知X,Y,Z為三個(gè)正整數(shù),且XA2+YA2+ZA2=25A2,求X+Y+Z的最大值。答案:43#include<stdio.h>#include<math.h>main(){intij,k,a,b,c,d,e=l;for(i=l;i<=25;i++)for(j=l;j<=25;j++)for(k=l;k<=25;k++){a=pow(i,2); b=pow(j,2);c=pow(k,2);d=i+j+k;if(a+b+c==pow(25,2)&&d>e) 條件滿足時(shí)就把大的記下來(lái),如果不滿足就繼續(xù)做,直到循環(huán)結(jié)束;記下大的數(shù)字;e=d;}printf(**%d,,,e);getch();)27、猴吃桃:有一天小猴子摘下了若干個(gè)桃子,當(dāng)即吃掉ー半,還覺得不過(guò)癮,又多吃了一個(gè)。第二天接著吃了剩下的桃子中的一半,仍不過(guò)癮,又多吃了一個(gè)。以后每天都是吃尚存桃子的一半零一個(gè)。到第10天早上小猴子再去吃桃子時(shí),看到只剩下ー個(gè)桃子了。問(wèn)小猴子第一天共摘下了多少個(gè)桃子。答案:1534#include<stdio.h>main(){intiJ,k,n=0;for(i=l;i<=50;i++)for(j=i;j<=50;j++)for(k=j;k<=50;k++) 因?yàn)椴荒苤貜?fù)所以看k>j>i;if(i*i+j*j==k*k){n+=l;}printf(,*%d,,,n);getch();)28、求[1,50]之間的所有整數(shù)能構(gòu)成直角三角形的三邊的組數(shù)。例如:3*3+4*4=5*5,它們構(gòu)成直角三角形,所以{3,4,5}作為ー組,但{4,3,5}視為跟{3,4,5}相同的ー組。答案:20#include<stdio.h>main(){intiJ,k,n=0;clrscr();for(i=l;i<=50;i++)for(j=i;j<=50;j++)三次循環(huán)且不能重復(fù),就后ー個(gè)就得要比前一個(gè)大或者等于他;for(k=j;k<=50;k++)if(i*i+j*j==k*k){n+=l;}printf(n%d",n);getch();)29、15元錢換成1元、2元、5元的票面,問(wèn)有多少種不同的兌換方法?輸出所有的兌換方法。 答案:18種#include<stdio.h>main(){intij,k,n=O;for(i=0;i<=15;i++)for(j=0;j<8;j++)for(k=0;k<=3;k++)if((i+2*j+5*k)==15) 這幾個(gè)題的類型多一樣你只要看懂了一個(gè)就都能看懂的;n++;printf(H%dn,n);getch();)30、用迭代法求x等于a開平方的正數(shù)值。迭代公式為:xn+l=l/(2*(xn+a/xn)),要求直到前后兩次求出的x的差的絕對(duì)值小于10-5為止。A的值從鍵盤輸入。31、求最大的水仙花數(shù),所謂水仙花數(shù),指的是ー個(gè)三位數(shù),其各個(gè)數(shù)字的立方之和等于該數(shù)。 答案:407#include<stdio.h>main(){inti,k,n=0,a[3];for(i=100;i<1000;i++){k=i;a[0]=k%10; a[2]=k/100;此處分別為求的三位數(shù)的個(gè)、十、百位數(shù)k=i/10;a[l]=k%10;if(a[0]*a[0]*a[0]+a[l]*a[l]*a[l]+a[2]*a[2]*a[2]==i)n=i;} 此處為滿足條件的i就賦給n,也就是你儲(chǔ)存的總是滿足條件的最大值printf(,,\t%d\n,',n);getch();)32、一球從100米的髙度自由落下,每次落地后反跳回原髙度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多髙?答案:299.609375 0.097656#include<stdio.h>main(){inti;floatb=0,a[10];for(i=0;i<ll;i++)if(i==0){a[i]=100.0;b=b+100;} 當(dāng)i=0是就是第一給數(shù)就是100elseif(i>0&&i<10){a[i]=a[i-l]/2;b+=2*a[i];}與a【10】分開是為了對(duì)b做磊加最后再求b[10]elsea[i]=a[i-l]/2;printf(nall=%fa[10]=%f',b,a[10]);getch();}33、編寫程序,完成如下功能,輸入8個(gè)float類型的實(shí)數(shù),分別求最大值和最小值,保留三位小數(shù)輸出最大值和最小值。#include<stdio.h>#include<conio.h>main(){floata[10],min,max;inti;clrscr();for(i=0;i<10;i++)scanf(H%f",&a[i]);min=max=a[0]; 此處先把最大最小值附ー個(gè)值for(i=l;i<10;i++){if(min>a[i])min=a[i];if(max<a[i])max=a[i];)printf(u\tmax=%0.3f\tmin=%0.3f\nK,max,min); 控制格式輸出在第三章里面有哦不知道就自己去看getch();}34、編寫程序輸出如下字符圖形:@@@@@@@@@@@@@@@@@@@@@???@@@#include<stdio.h>main(){intij;for(i=ll;i>0;i-){for(j=i;j>0;j-)printfC,@つ;到這個(gè)地方就做完內(nèi)層循環(huán)之后再換行在外層循環(huán)中做printf(,,\nn);}getch();)35、計(jì)算:s=f(-30)+f(-29)+......+f(-l)+f(O)+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<0o(按四舍五入保留6位小數(shù))答案:65.223018#include<stdio.h>floatf(floatx);main(){floati,b=0;for(i=-30;i<31;i++)b+=f(i); 做循環(huán)求值這個(gè)你肯定會(huì)了嘿嘿加油哦printf(n%0.6fn,b);getch();}floatf(floatx){floata;if(x<0) 分類求函數(shù)值a=(x-l)/(x-2);elseif(x==0llx==2)a=0;els
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教版(2024)九年級(jí)歷史上冊(cè)月考試卷含答案
- 2025年湘教版高三歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年湘教版選修3歷史上冊(cè)階段測(cè)試試卷含答案
- 2025年浙教新版八年級(jí)地理上冊(cè)階段測(cè)試試卷含答案
- 2025年蘇科新版選擇性必修3生物下冊(cè)階段測(cè)試試卷
- 2025年統(tǒng)編版2024高一數(shù)學(xué)下冊(cè)月考試卷
- 2025年華東師大版九年級(jí)地理下冊(cè)月考試卷含答案
- 2025年浙教新版七年級(jí)生物下冊(cè)階段測(cè)試試卷含答案
- 2025年湘教新版選擇性必修3語(yǔ)文下冊(cè)階段測(cè)試試卷
- 2025年湘師大新版九年級(jí)歷史下冊(cè)月考試卷
- 中央2025年國(guó)務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫(kù)附帶答案詳解
- 2024年09月北京中信銀行北京分行社會(huì)招考(917)筆試歷年參考題庫(kù)附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 2024年公司領(lǐng)導(dǎo)在新年動(dòng)員會(huì)上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專題匯報(bào)
- 介入手術(shù)室感染控制管理
- 2024北京初三(上)期末英語(yǔ)匯編:材料作文
- 2024年大型風(fēng)力發(fā)電項(xiàng)目EPC總承包合同
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
評(píng)論
0/150
提交評(píng)論