2022年C語言編程題及答案_第1頁
2022年C語言編程題及答案_第2頁
2022年C語言編程題及答案_第3頁
2022年C語言編程題及答案_第4頁
2022年C語言編程題及答案_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C 語 言 編 程 題 及 答 案C語言編程題1(* )求分?jǐn)?shù)序列: 1/2,2/3,3/5,5/8,8/13,13/21. 前 20 項(xiàng)的和;main float i=1,j=2,t=0,s,n,m; forn=1;n=0;i- printf%c,ci; 3 ( * ) 已 知 abc+cba=1333, 其 中 518+815=1333, a 、 b 、 c 均 為 一 位 數(shù) , 例 如 : 617+716=1333, 試編程求出符合這一規(guī)律的 a、b、c,并輸出結(jié)果; main int a,b,c,x,y; fora=1;a=9;a+ forb=0;b=9;b+ forc=1;cc&a

2、+cb&b+ca printfarea=%f,area; else 1 printfno; 5( *)編程求出1.+2.+3.+ +8.+9.+10.的值并輸出;程序 1: main int i,j; double p=1, sum=0; fori=1;i=10;i+ forj=1;j=i;j+ p=p*i; sum=sum+p;p=1.0; printfsum=%f,sum; 程序 2: float facn int n; float f; if n0 printfn0,error.; else ifn=0|n=1 f=1; else f=facn-1*n; returnf; main in

3、t h,s=0,n; forn=1;n=4;n+ h=facn; s=s+h; printfs=1.+2.+.+10.=%dn,s; 程序 3: main int i; double p=1, sum=0; fori=1;i=10;i+ p=p*i; sum=sum+p; printfsum=%f,sum; 2 6( *)從鍵盤輸入兩個(gè)整數(shù),輸出其和,差,積,商;7( * )輸入如干個(gè)自然數(shù),對(duì)奇數(shù)從大到小排序,對(duì)偶數(shù)從小到大排序,輸出兩種結(jié) 果; maxjiint a,int n int i,j,k,t; fori=0;in-1;i+ k=i; forj=i+1;jn;j+ ifakaj k

4、=j; if k.=i t=ak;ak=aj;aj=t; #define N 10 main int cN,i,j; fori=0;i=0;i- ifci%2=0 printf%5d,ci; printfn; fori=0;iN;i+ ifci%2.=0 printf%5d,ci; 8( *)求出 0999 之間的全部“ 水仙花數(shù)” 并輸出;“ 水仙花數(shù)” 是指一個(gè)三位數(shù),其各位數(shù)字的立方和確好等于該數(shù)本身,如;程序 1: main int i,j,k,a; fori=1;i=9;i+ forj=0;j=9;j+ fork=0;k=9;k+ 15315 3 ,就 153 是一個(gè)“ 水仙花數(shù)”

5、;ifi*i*i+j*j*j+k*k*k=100*i+10*j+k printf%d%d%dn,i,j,k; 程序: main int m,i,j,k,a; form=101;i=999;m+ i=m/100; j=m-m*100/10; 3 k=m%10; ifi*i*i+j*j*j+k*k*k=m printf%dn,m; 9( *)試編程:判定輸入的正整數(shù)是否既是5,又是7 的整數(shù)倍數(shù);如是就輸出yes ;否 就輸出 no;10* 已有函數(shù)調(diào)用語句c=adda,b;請(qǐng)編寫aad 函數(shù),運(yùn)算兩個(gè)實(shí)數(shù)a 和 b 的和,并返回和值;11( * )有人想將手中一張面值100 元的人民幣換成5 元

6、、 1 元、 0.5 元面值的零錢100張,以上三種面值的零錢至少有一張,問共有幾種換法;請(qǐng)編程實(shí)現(xiàn);程序 1: main int i,j,k,n=0; fori=1;i19;i+ forj=1;j95;j+ fork=1;k94;k+ if5*i+j+0.5*k=100&i+j+k=100 printf%d,%d,%dn,i,j,k;n+; printf%d,n; 12* 求 Sn=a+aa+aaa+aaaa+aaaaa 的前 5 項(xiàng)之和,其中 2+22+222+2222+22222 程序 1: main int i, a,n; long sum=0, b=1,c=1; scanf%d,%d

7、,&a,&n; fori=1;i=n;i+ a 是一個(gè)數(shù)字,例如:sum+=a*c; b*=10;c+=b; printf%ld,sum; 程序 3:main long int sn=0,k=a; int a,i,j; scanf%d,&a; 程序 2:main long int sn=0,k=0; int a,i,j; fori=1;i=5;i+ k=10*k+a; sn=sn+k; printf%ldn,sn; scanf%d,&a; fori=1;i=5;i+ forj=1;j=i;j+ k=10*k+a; 4 sn=sn+k; k=0; printf%ldn,sn; 13( * )編程

8、輸出如下圖形(不能僅用printf語句): * * * * * * * * * * * * * * * * * * * * * * * * * main int i,k,j; fori=0;i=4;i+ forj=0;j4-i;j+ printf ; fork=0;k=2*i;k+ printf*; printfn; 14( * )用近似公式求自然對(duì)數(shù)的底e 的值;1 e1+1.+ + + 2!1 3!#includemath.h main float i,j,e,p=1.0,sum=0.0; fori=1;i10 ;i+ forj=1;j=i;j+ p=p*j; sum=sum+1.0/p;

9、 p=1.0; e=i+sum; printf%fn,e; 15( * )請(qǐng)編程,用 scanf 函數(shù)輸入三個(gè)字符,對(duì)這三個(gè)字符各加一個(gè)整數(shù) 1 后,用 putchar 函數(shù)輸出,且每輸出一個(gè)字符換一行;16( * )請(qǐng)編程,用scanf函數(shù)輸入三個(gè)整數(shù),輸出其中不大不小的那個(gè)數(shù),輸出寬度為五位; int findmidint i,int j,int k int n; 5 ifij n=i;i=j;j=n; ifik n=j; else n=k; returnn;main int i,j,k,n; scanf%d%d%d,&i,&j,&k; n=findmidi,j,k; printf%dn,

10、n; 17( * )編程實(shí)現(xiàn)輸出全部1100 之間能被 9 整除余 2 的數(shù);18( * )編寫一程序?qū)崿F(xiàn)如下功能:輸入 1、2、3、4、5、 6、7(分別對(duì)應(yīng)星期一至星期日)中的任何一個(gè)數(shù),便能輸出與之對(duì)應(yīng)的英文名稱;如輸入 main char day; scanf%c,&day; swithday case 1:printf mondayn;break; case 2:printftuesdayn; break; case 3:printfwednsdayn; break; case 4:printfthursdayn; braek; case 5:printf fridayn; brea

11、k; case 6:printfsaturdayn; break; case 7:printfsundayn; break; defult: printferrorn; 1,就輸出 Monday;19* 編一程序,對(duì)于給定的一個(gè)百分制成果,輸出相應(yīng)的D5 分制成果;設(shè):90 分以上為A, 8089 分為B, 7079 分為C, 6069 分為, 60 分以下為E;(用switch語句實(shí)現(xiàn)); main int s,score; scanf%d,&score; s=score/10; switchs case 10:printfAn;break; case 9:printfAn;break; c

12、ase 8:printfBn;break; case 7:printfCn;break; case 6:printfDn;break; case 5: case 4: case 3: case 2: case 1:printfEn;break; default:printferror; 20( * )試編程:判定輸入的正整數(shù)是否既是5,又是7 的整數(shù)倍數(shù);如是就輸出yes ;否就輸出no;21( * )一個(gè)數(shù)假如卻好等于它的因子之和,這個(gè)數(shù)就稱為“ 完數(shù)” ;例如,6 的因子為 1、2、3,而 6=1+2+3,因此 6 是“ 完數(shù)” ;編程序找出100 之內(nèi)的全部完數(shù),并按以下格式輸出其因子:

13、main int m,i,s; form=2;m1000;m+ s=0; fori=1; im ;i+ ifm%i=0 s=s+i; if m=s 6 its factors are 1,2,3 printf%3d its factors are ,m; fori=1;im;i+ ifm%i=0 printf%4d,i; printfn; 22( * )輸入 5 對(duì)整數(shù),請(qǐng)輸出每對(duì)數(shù)中較大者 main int i,j,a52; fori=0;i=4;i+ forj=0;j=1;j+ scanf%d,&aij; fori=0;iai0 printf%4dn,ai1; else printf%4d

14、n,ai0; 6 23( * )編程將一個(gè) 3x3 矩陣轉(zhuǎn)置 行列互換 后輸出; main int i,j, a33,b33; fori=0;i=2;i+ forj=0;j=2;j+ scanf%d,&aij; fori=0;i=2;i+ forj=0;j=2;j+ print“ %5d” ,aij; bji=aij; printfn; forj=0;j=2;j+ fori=0;i=2;i+ printf%5d,bij; printf“ n ” ; 24* 求一個(gè)一維數(shù)組的最大值,最小值和平均值(主函數(shù)調(diào)用并輸出);程序 1:float maxint n,float a int i; floa

15、t max; max=a0; fori=0;in;i+ ifmaxai max=ai; returnmax; float minint n,float a 程序 2:main void make; int a10,i; extern int max,min; extern float aver; fori=0;i10;i+ scanf%d,&ai; makea,10; printfmax=%d,min=%d,aver=%.2f,max,min, aver; int max,min; float aver; int i; float min; min=a0; fori=0;iai min=ai;

16、 returnmin; float averint n,float a int i; float sum=0,aver; 7 fori=0;in;i+ sum=sum+ai; aver=sum/n; returnaver; #includemath.h main int i; float m,n,a5,c; fori=0;i5;i+ scanf%f,&ai; m=max5,a; n=min5,a; c=aver5,a; printf%5f%5f%5fn,m,n,c; 25( * )編寫函數(shù),求一個(gè)不超過五位的十進(jìn)制整數(shù)各位數(shù)值的和;(如:輸入 2634,輸出 15) #includemath.

17、h main int i,a5,m,n=0; scanf%d,&m; fori=0;i=4;i+ ai=m%10; n=n+ai; m=m-ai*10; printf%5d,ai; printfn; printf%d,n; 26( * )編程求出一個(gè) 3x3 矩陣的最大和最小元素及其下標(biāo); main int i,j,max,min,a33,m1,n1,m2,n2; fori=0;i=2;i+ forj=0;j=2;j+ scanf%d,&aij; min=max=a00; 8 fori=0;i=2;i+ forj=0;jmax max=aij;m1=I;n1=j; else ifaijmin

18、min=aij;m2=i;n2=j; printfmax=%d,%3d,%3d,min=%d,%3d,%3d,max,m1,n1,min,m2,n2; 27( * )有一個(gè)字符串,包含n 個(gè)字符,編寫一個(gè)函數(shù),將此字符串中從第m 個(gè)字符開頭的全部字符復(fù)制成另一個(gè)字符串; main char chs230=0,chs130=this is my first C program; int i,j,m; scanf%d,&m; fori=m,j=0;i30;i+,j+ chs2j=chs1i; chs229=0; printf%s,chs2; 28( * )求一個(gè) 3x3 矩陣的對(duì)角線元素之和; m

19、ain int i,j,sum1=0,sum2=0,a33; fori=0;i=2;i+ forj=0;j=2;j+ scanf%d,&aij; fori=0;i=2;i+ forj=0;j=2;j+ ifi=j sum1+=aij; ifi+j=2 sum2+=aij; printf%5d%5d,sum1,sum2; 29( * )從鍵盤輸入兩個(gè)整數(shù),輸出其最大公約數(shù)和最小公倍數(shù);程序 1: main int a,b,t,p,r; scanf%d,%d,&a,&b; ifab t=a;a=b;b=t; p=a*b; whileb.=0 r=a%b;a=b;b=r; printf“ %5d%5

20、d” ,a,p/a; 9 main int a,b,m,n,i,t; scanf“ %d%d” ,&a,&b; ifabt=a;a=b;b=t; m=a;n=b; fori=1;i=n;i+ ifm%i=0&n%i=0 printf%5dn,i;break; printf%5d,a*b/i; 30( * )一個(gè)已按從小到大的次序排序的數(shù)組,有9 個(gè)元素 , 從終端輸入第10 個(gè)數(shù) , 要求按原先排序的規(guī)律將它插入數(shù)組中;(該數(shù)比第一個(gè)數(shù)大,比第九個(gè)數(shù)?。?#define N 10 main int b,i,n,aN=1,5,7,11,15,19,23,28,31; scanf%d,&b; fo

21、ri=0;ib n=i;break; fori=N-2;i=n;i- ai+1=ai; an=b; fori=0;iN;i+ printf%5d,ai; 31( * )請(qǐng)編寫程序,輸出以下?lián)P輝三角形 1 要求輸出 10 行 ; 1 1 1 2 1 1 3 3 1 1 4 6 4 1 : # define M 10 # define N 10 main int aMN,i,j; fori=0;iM;i+ forj=0;j=i;j+ ifj=0|j=i aij=1; else aij=ai-1j-1+ai-1j; fori=0;iM;i+ forj=0;j=i;j+ printf%4d,aij;

22、printfn; 32( * )從鍵盤輸入少于50 個(gè)的整數(shù),其值在0 和 4 之間(包括0 和 4),用 -1 作為輸入 終止標(biāo)志,統(tǒng)計(jì)每個(gè)整數(shù)的個(gè)數(shù);請(qǐng)編程實(shí)現(xiàn);33*從鍵盤輸入兩個(gè)字符串a(chǎn) 和 b,要求不用庫函數(shù)strcat把串 b 的前五個(gè)字符連接到串 a 中;假如 b 的長度小于5,就把 b 的全部元素都連接到a 中,請(qǐng)編程實(shí)現(xiàn); main char a50,b10,*p1,*p2; int i,j; scanf “ %s%s” ,a,b; n=strlena; forp1=a+n,p2=b;p1=a+n+4;p1+,p2+ *p1 =*p2; *p1=if*p2= =0 break

23、;0;printf“ %s” ,a;34( * )編寫函數(shù),在一個(gè)一維數(shù)組中查找指定值,如找到就返回該數(shù)值的下標(biāo),否 就返回 -1 ;要求用指針變量傳遞數(shù)組首地址; main float a10=1,2,3,4,5,6,7,8,9,10; float b; int i; scanf%f,&b; fori=0;i=10 printf-1; printfn; 35( * )寫一程序,要求用戶在鍵盤上輸入一個(gè)整數(shù),并把每位數(shù)字轉(zhuǎn)換為英文;例 如:輸入 1024 時(shí),輸出 One Zero Two Four main long int n; int m,i=0,c10; scanf%ld,&n; do

24、 m=n%10; i+; ci=m; printf%5d%5d%5dn,i,m,ci; while n/=100; whilei=1 i-; switchci+1 case 0: printfzero;printf ;break; case 1: printfone;printf ; break; case 2: printftwo;printf ; break; case 3: printfthree;printf ;break; case 4: printffour;printf ;break; case 5: printffive;printf ;break; case 6: print

25、fsix;printf ; break; case 7: printfseven;printf ; break; case 8: printfeight;printf ; break; case 9: printfnine;printf ; break; default:printfno; 36( * )A 數(shù)組中有8 個(gè)元素,從第6 個(gè)元素開頭將數(shù)組后三個(gè)元素移到數(shù)組開頭;例如:A 數(shù)組元素為: 2 6 9 8 5 3 7 4 移動(dòng)后數(shù)組變?yōu)椋? 7 4 2 6 9 8 5 #define N 8 main int a8=2,6,9,8,5,3,7,4; int i, j,t; fori=0

26、;i8;i+ printf%5d,ai; printfn; forj=0;j=0;i- ai+1=ai; a0=t; fori=0;i8;i+ printf%5d,ai; 37( * )按如下格式打印輸出乘法口訣表: 1 1=1 1 2=2 2 2=4 1 9=9 2 9=18 3 9=27 9 9=81 38( * )請(qǐng)將 n 個(gè)整數(shù)按升序重新放在原數(shù)組中,操作時(shí)不得另開創(chuàng)數(shù)組;39( * )輸入如干同學(xué)一門功課的成果,統(tǒng)計(jì)各分?jǐn)?shù)段的人數(shù);凡不及格(60 分以 下)都由一個(gè)計(jì)數(shù)器來統(tǒng)計(jì),其它以 10 分作為一個(gè)數(shù)段,100 分作為一個(gè)分?jǐn)?shù)段; main int a10; int i,j,t,

27、p; fori=0;i10;i+ scanf%d,&ai; fori=0;i9;i+ p=i; forj=i+1;jajp=j; ifp.=j t=ai;ai=ap;ap=t; fori=0;i10;i+ printf%5d,ai; 40( * ) 編寫函數(shù),給定一個(gè)數(shù),刪除數(shù)組中與之相等的元素,返回值為刪除后數(shù)組中的元素個(gè)數(shù); main float a10,t; int s,b6=0,i; fori=0;i10;i+ scanf%f,&ai; i=0; whilei10 s=intai/10; i+; switchs case 10:b0+; break; case 9:b1+; break

28、; case 8:b2+; break; case 7:b3+; break; case 6:b4+;break; case 5: case 4: case 3: case 2: case 1: case 0: b5+; break; fori=0;i=5;i+ printf%2d,bi; 41. ( * )輸入一個(gè)整數(shù),判定它能否被 能同時(shí)被 3、5、7 整除;3、5、7 整除,并輸出以下信息之一:能被其中兩個(gè)數(shù)(說明哪兩個(gè)數(shù))整除;只能被其中一個(gè)整除(說明哪個(gè)數(shù));不能被 3、 5、7 任何一個(gè)整除;42( * )有 10 個(gè)數(shù)已按由小到大的次序存放在一個(gè)整型數(shù)組中,從鍵盤輸入一個(gè)數(shù),找出

29、該數(shù)是數(shù)組中的第幾個(gè)元數(shù),假如該數(shù)不在數(shù)組中,就打印出“ 無此數(shù)” ; main int a10= 2,4,6,8,10,12,14,16,18,20; int i,t,j,m; fori=0;i10;i+ printf“ %5d” ,ai;printfn” ;scanf “ %d” ,&m; fori=0;i=10 printf“ no” ; 43( * )給出年、月、日,運(yùn)算出該日是該年的第幾天;44( * )求 3 至 50 之間全部素?cái)?shù)之和,用子函數(shù)判定是否為素?cái)?shù); #include main int m,k,i,s=0; for m=3;m50;m+ k=sqrtm; fori=2;

30、i=k+1 s=s+m ; printf%5dn,s; 45( * )不用 strcpy 函數(shù),實(shí)現(xiàn)兩個(gè)字符串的復(fù)制 形參用指針變量 ;46( * )從鍵盤輸入 10 個(gè)數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,最大的數(shù)與最終一 個(gè)數(shù)對(duì)換,實(shí)現(xiàn)從小到大的排序;(用指針實(shí)現(xiàn))47( * )編制程序;在主函數(shù)中輸入a、b、 c 三個(gè)數(shù),在子函數(shù)中用指針法將a、 b、c 排序(最大數(shù)放在a 變量中,最小數(shù)放在c 變量著),在主函數(shù)中輸出;48( * ) 輸入三個(gè)字符串,按由小到大的次序輸出;(用字符指針實(shí)現(xiàn));49( * ) 請(qǐng)編程,從鍵盤輸入6 名同學(xué)的5 門成果,分別統(tǒng)計(jì)每個(gè)同學(xué)的平均成績(jī);(在主函數(shù)中輸入輸出,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論