




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言編程題精選1、 編程實(shí)現(xiàn)對(duì)鍵盤輸入的英文名句子進(jìn)行加密。用加密方法為,當(dāng)內(nèi)容為英文字母時(shí)其在26字母中的其后三個(gè)字母代替該字母,若為其它字符時(shí)不變。2、 編程實(shí)現(xiàn)將任意的十進(jìn)制整數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)(R在2-16之間)。 3、 從鍵盤輸入一指定金額(以元為單位,如345.78),然后顯示支付該金額的各種面額人民幣數(shù)量,要求顯示100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各多少?gòu)垺?(輸出面額最大值:比如345.78=100*3+10*4+5*1+0.5*1+0.1*2+0.01*8)4、 隨機(jī)產(chǎn)生20個(gè)10,50的正整數(shù)存放到數(shù)組中,并求數(shù)組中的所有元素最大值、最小值、
2、平均值及各元素之和。 5、 編程在一個(gè)已知的字符串中查找最長(zhǎng)單詞,假定字符串中只含字母和空格,空格用來分隔不同單詞。6、 模擬n個(gè)人參加選舉的過程,并輸出選舉結(jié)果:假設(shè)候選人有四人,分別用A、B、C、D表示,當(dāng)選某候選人時(shí)直接輸入其編號(hào)(編號(hào)由計(jì)算機(jī)隨機(jī)產(chǎn)生),若輸入的不是A、B、C、D則視為無效票,選舉結(jié)束后按得票數(shù)從高到低輸出候選人編號(hào)和所得票數(shù)。 7、任何一個(gè)自然數(shù)m的立方均可寫成m個(gè)連續(xù)奇數(shù)之和。例如: 13=1 23=3+5 33=7+9+11 43=13+15+17+19 編程實(shí)現(xiàn):輸入一自然數(shù)n,求組成n3的n個(gè)連續(xù)奇數(shù)。 8、 知abc+cba=1333,其中a,b,c均為一位
3、數(shù),編程求出滿足條件的a,b,c所有組合。9、編制一個(gè)完成兩個(gè)數(shù)的四則運(yùn)算程序。如:用戶輸入34+56則輸出結(jié)果90.00。要求運(yùn)算結(jié)果保留兩位小數(shù),用戶輸入時(shí)一次將兩個(gè)數(shù)和操作符輸入。 10、輸入一個(gè)五位以內(nèi)的正整數(shù),(1)判斷它是一個(gè)幾位數(shù);(2)請(qǐng)按序輸出其各位數(shù)字;(3)逆序輸出其各位數(shù)字。 如輸入:56439,輸出:5位數(shù) 5,6,4,3,9 9,3,4,6,5 11、編寫子函數(shù):(1)用冒泡法將一個(gè)數(shù)組排成升序的函數(shù)-SUB1;(2)在升序數(shù)組中插入一個(gè)數(shù),并且保持該數(shù)組仍為升序數(shù)組的函數(shù)-SUB2。 主函數(shù):輸入任意10個(gè)正整數(shù)給數(shù)組;調(diào)用SUB1對(duì)數(shù)組進(jìn)行排序;從鍵盤輸入一個(gè)正
4、整數(shù),調(diào)用SUB2將其插入該數(shù)組。 12、編寫函數(shù):(1)用選擇法將數(shù)組排成降序的函數(shù)-SUB1;(2)用折半查找法查找某數(shù)是否在給定的數(shù)組當(dāng)中的函數(shù)-SUB2。 主函數(shù):輸入任意10個(gè)正整數(shù)給數(shù)組,調(diào)用SUB1對(duì)數(shù)組進(jìn)行排序,從鍵盤輸入一個(gè)正整數(shù),調(diào)用SUB2在數(shù)組中進(jìn)行查找,找到后輸出“OK”,沒有找到則輸出“NO FOUND!”。 13、編寫一個(gè)程序,輸入兩個(gè)包含5個(gè)元素的數(shù)組,先將兩個(gè)數(shù)組升序排列,然后將這兩個(gè)數(shù)組合并成一個(gè)升序數(shù)組。 14、耶穌有13個(gè)門徒,其中有一個(gè)就是出賣耶穌的叛徒,請(qǐng)用排除法找出這位叛徒:13人圍坐一圈,從第一個(gè)開始報(bào)號(hào):1,2,3,1,2,3,凡是報(bào)到“3”就
5、退出圈子,最后留在圈內(nèi)的人就是出賣耶穌的叛徒,請(qǐng)找出它原來的序號(hào)。 15、按如下圖形打印楊輝三角形的前10行。其特點(diǎn)是兩個(gè)腰上的數(shù)都為1,其它位置上的每一個(gè)數(shù)是它上一行相鄰兩個(gè)整數(shù)之和。 11 11 2 11 3 3 11 4 6 4 1 16、某班有5個(gè)學(xué)生,三門課。分別編寫3個(gè)函數(shù)實(shí)現(xiàn)以下要求: (1) 求各門課的平均分; (2) 找出有兩門以上不及格的學(xué)生,并輸出其學(xué)號(hào)和不及格課程的成績(jī); (3) 找出三門課平均成績(jī)?cè)?5-90分的學(xué)生,并輸出其學(xué)號(hào)和姓名 主程序輸入5個(gè)學(xué)生的成績(jī),然后調(diào)用上述函數(shù)輸出結(jié)果。17、編寫一人個(gè)求X的Y次冪的遞歸函數(shù),X為double型,y為int型,要求從
6、主函數(shù)輸入x,y的值,調(diào)用函數(shù)求其冪。 18、打印魔方陣。 所謂魔方陣是指這樣的的方陣: 它的每一行、每一列和對(duì)角線之和均相等。 輸入n,要求打印由自然數(shù)1到n2的自然數(shù)構(gòu)成的魔方陣(n為奇數(shù))。 例如,當(dāng)n=3時(shí),魔方陣為: 8 1 6 3 5 7 4 9 2 魔方陣中各數(shù)排列規(guī)律為: 將“1”放在第一行的中間一列; 從“2”開始直到nn為止的各數(shù)依次按下列規(guī)則存放:每一個(gè)數(shù)存放的行比前一個(gè)數(shù)的行數(shù)減1,列數(shù)同樣加1; 如果上一數(shù)的行數(shù)為1,則下一個(gè)數(shù)的行數(shù)為n(最下一行),如在33 方陣中,1在第1行,則2應(yīng)放在第3行第3列。 當(dāng)上一個(gè)數(shù)的列數(shù)為n時(shí),下一個(gè)數(shù)的列數(shù)應(yīng)為1,行數(shù)減1。如2在
7、第3行第3列,3應(yīng)在第2行第1列。 如果按上面規(guī)則確定的位置上已有數(shù),或上一個(gè)數(shù)是第1行第n列時(shí),則把下一個(gè)數(shù)放在上一個(gè)數(shù)的下面。如按上面的規(guī)定,4應(yīng)放在第1行第2列,但該位置已被1占據(jù),所以4就放在3的下面。由于6是第1行第3列(即最后一列),故7放在6下面。19、找出一個(gè)二維數(shù)組中的“鞍點(diǎn)”,即該位置上的元素在該行中最大,在該列中最?。ㄒ部赡軟]有“鞍點(diǎn)”),打印出有關(guān)信息。20、馬克思在數(shù)學(xué)手稿中提出如下問題:有30個(gè)人(包括男人、女人和小孩)在一家飯店吃飯共花50先令,其中每個(gè)男人花3先令,每個(gè)女人花2先令,每個(gè)小孩花1先令,問男人、女人、小孩各有多少人?21、定義一個(gè)結(jié)構(gòu)體變量(包括年
8、、月、日),計(jì)算該日在本年中為第幾天?(注意考慮閏年問題),要求寫一個(gè)函數(shù)days,實(shí)現(xiàn)上面的計(jì)算。由主函數(shù)將年月日傳遞給days函數(shù),計(jì)算后將日子傳遞回主函數(shù)輸出。 22、建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡,輸入一個(gè)學(xué)號(hào),如果鏈表中的結(jié)點(diǎn)包括該學(xué)號(hào),則輸出該結(jié)點(diǎn)內(nèi)容后,并將其結(jié)點(diǎn)刪去。23、給定一個(gè)日期,求出該日為星期幾(已知2002-3-28為星期四)。24、用遞歸法將一個(gè)整數(shù)n轉(zhuǎn)換成字符串(例如輸入4679,應(yīng)輸出字符串“4679”),n為不確定數(shù),可以是位數(shù)不超過5,且數(shù)值在-3276832767之間和任意整數(shù)。 25、有一個(gè)字符串,包括n個(gè)字符。寫一個(gè)函數(shù),將此字符串
9、從第m個(gè)字符開始的全部字符復(fù)制成另一個(gè)字符串。要求在主函數(shù)輸入字符串及m值并輸出復(fù)制結(jié)果。26、在主函數(shù)中輸入6個(gè)字符串,用另一個(gè)函數(shù)對(duì)他們按從小到大的順序,然后在主函數(shù)中輸出這6個(gè)已經(jīng)排好序的字符串。要求使用指針數(shù)組進(jìn)行處理。27、編寫一個(gè)函數(shù)實(shí)現(xiàn)對(duì)兩個(gè)字符串的比較。不用使用C語言提供的標(biāo)準(zhǔn)函數(shù)strcmp。要求在主函數(shù)中輸入兩個(gè)字符串,并輸出比較的結(jié)果(相等的結(jié)果為0,不等時(shí)結(jié)果為第一個(gè)不相等字符的ASCII差值)。28、有一個(gè)unsigned long型整數(shù),先要分別將其前2個(gè)字節(jié)和后2個(gè)字節(jié)用為兩個(gè)unsigned int型整數(shù)輸出(設(shè)一個(gè)int型數(shù)據(jù)占2個(gè)字節(jié)),試編寫一函數(shù)part
10、ition實(shí)現(xiàn)上述要求。要求在主函數(shù)輸入該long型整數(shù),在函數(shù)partition中輸出結(jié)果。29、編一程序,能把從終端讀入的一個(gè)字符中的小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個(gè)磁盤文件“test”中保存(用字符!表示輸入字符串的結(jié)束)。 30、有五個(gè)人坐在一起,問第5個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人多少歲?他說比第3個(gè)人大2歲。問第3個(gè)人多少歲?他說比第3個(gè)人大2歲。問第2個(gè)人多少歲?他說比第1個(gè)人大2歲。最后問第1個(gè)人多少歲?他說是10歲。請(qǐng)問第5個(gè)人多大?(這是一個(gè)遞歸問題) 參考答案1、編程實(shí)現(xiàn)對(duì)鍵盤輸入的英文名句子進(jìn)行加密。用加密方法為,當(dāng)內(nèi)容為英文字母時(shí)其在26字母中
11、的其后三個(gè)字母代替該字母,若為其它字符時(shí)不變。#include main()char c; printf(please input a string:); while(c=getchar()!=n) if(c=A&c=a&c=X&c=x&c=z) c=(c+3)-26; printf(%c,c); printf(n); return 0; 2、編程實(shí)現(xiàn)將任意的十進(jìn)制整數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)(R在2-16之間)。#include #include void main() int n,R,i=0,a16=0; char str16=ABCDEF; clrscr();printf(please input
12、 an integer number:n); scanf(%d,&n); printf(please input R:n); scanf(%d,&R); if(n0) printf(%c,strai); getche(); 3、從鍵盤輸入一指定金額(以元為單位,如345.78),然后顯示支付該金額的各種面額人民幣數(shù)量,要求顯示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少?gòu)垺?#include main() int a1,a2,a3,a4,a5,a6,a7,a8,a9; float f; a1=a2=a3=a4=a5=a6=a7=a8=a9=0; printf(please
13、 input a float number:); scanf(%f,&f); while(f100.0) f=f-100.0; a1+; while(f50.0) f=f-50.0; a2+; while(f10.0) f=f-10.0; a3+; while(f5.0) f=f-5.0; a4+; while(f1.0) f=f-1.0; a5+; while(f0.5) f=f-0.5; a6+; while(f0.1) f=f-0.1; a7+; while(f0.05) f=f-0.05; a8+; while(f0.01) f=f-0.01; a9+; printf(a1=%d, a
14、2=%d, a3=%d, a4=%d, a5=%d, a6=%d, a7=%d, a8=%d, a9=%dn, a1,a2,a3,a4,a5,a6,a7,a8,a9); return 0; 4、隨機(jī)產(chǎn)生20個(gè)10,50的正整數(shù)存放到數(shù)組中,并求數(shù)組中的所有元素最大值、最小值、平均值及各元素之和。 #include#include void main() int a21,i,ran,max,min,sum,average; clrscr(); for (i=1;i=20;i+) while(ran=random(51)/10=0) /ensure ran between 20 and 50 ;
15、ai=ran; max=min=a1; / initialize here sum=0; for(i=1;i=20;i+) printf(a%d=%dn,i,ai); sum+=ai; if(maxai) min=ai; average=sum/20; printf(nsum=%d, max=%d, min=%d, average=%d n,sum,max,min,average); puts(nany key to exit!); getche(); 5、編程在一個(gè)已知的字符串中查找最長(zhǎng)單詞,假定字符串中只含字母和空格,空格用來分隔不同單詞。 #include #include void m
16、ain() char string80,*p; int i=0,max=0; clrscr(); printf(please input a string:n); gets(string); / printf(n%sn,string); p=string; while(*p!=0) if(*p= ) if(max=i) max=i; i=0; else i+; p+; if(max=i) max=i; printf(nmax_length of the string is: %d n,max); getche(); 7、 模擬n個(gè)人參加選舉的過程,并輸出選舉結(jié)果:假設(shè)候選人有四人,分別用A、B
17、、C、D表示,當(dāng)選某候選人時(shí)直接輸入其編號(hào)(編號(hào)由計(jì)算機(jī)隨機(jī)產(chǎn)生),若輸入的不是A、B、C、D則視為無效票,選舉結(jié)束后按得票數(shù)從高到低輸出候選人編號(hào)和所得票數(shù)。 #include #include #include #include void main() int i,n,A,B,C,D,abandon,ran; /abandon stand for the ones who abandon clrscr(); A=B=C=D=abandon=0; printf(Enter the number of persons:); scanf(%d,&n); /n persons to select
18、from candidate a,b,c and d. randomize(); for(i=1;i=B&A=C&A=D&A!=-1) printf(A=%d,A); A=-1; if(B=A&B=C&B=D&B!=-1) printf(B=%d,B); B=-1; if(C=A&C=B&C=D&C!=-1) printf(C=%d,C); C=-1; if(D=A&D=B&D=C&D!=-1) printf(D=%d,D); D=-1; printf(abandon=%d, nn,abandon); getch(); 7.任何一個(gè)自然數(shù)m的立方均可寫成m個(gè)連續(xù)奇數(shù)之和。例如: 13=1 23
19、=3+5 33=7+9+11 43=13+15+17+19 編程實(shí)現(xiàn):輸入一自然數(shù)n,求組成n3的n個(gè)連續(xù)奇數(shù)。 #include #include #include / void main() int i,j,n,sum,count; clrscr(); printf(n an integer here please:); scanf(%d,&n); printf(n); / i=(int)floor(sqrt(float)n); / if(i%2=0) / i+; i=1; / for(;i=n*n*n;i+=2) sum=0; count=0; for(j=i;j1) printf(%d
20、+,i); i+=2; for(;ij;i+=2) / printf(%d+,i); / printf(%d,i); getch(); 8、已知abc+cba=1333,其中a,b,c均為一位數(shù),編程求出滿足條件的a,b,c所有組合。 #include #include void main() int num,a,b,c; clrscr(); printf(Press any key to calculate!nn); getch(); for(num=101;num1000;num+) a=num/100; b=num%100/10; c=num%10; if(num+c*100+b*10+
21、a=1333) printf(n%d+%d=1333n,num,c*100+b*10+a); while(!kbhit() ; 8、 編制一個(gè)完成兩個(gè)數(shù)的四則運(yùn)算程序。如:用戶輸入34+56則輸出結(jié)果90.00。要求運(yùn)算結(jié)果保留兩位小數(shù),用戶輸入時(shí)一次將兩個(gè)數(shù)和操作符輸入。 #include #include void main() float num1,num2; char s; clrscr(); printf(Enter a statement please:); scanf(%f%c%f,&num1,&s,&num2); switch(s) case +:printf(%.2f%c%.
22、2f=%.2f,num1,s,num2,num1+num2);break; case -:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1-num2);break; case *:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1*num2);break; case /:printf(%.2f%c%.2f=%.2f,num1,s,num2,num1/num2);break; default: printf(Input Error!); getch(); 9、 輸入一個(gè)五位以內(nèi)的正整數(shù),(1)判斷它是一個(gè)幾位數(shù);(2)請(qǐng)按序輸出其各位數(shù)字
23、;(3)逆序輸出其各位數(shù)字。 如輸入:56439,輸出:5位數(shù) 5,6,4,3,9 9,3,4,6,5 #include #include long power(int n) int i; long result=1; for(i=1;i1) j=power(count); printf(%d, ,n/j); n=n%j; printf(%dn,n); n=num; while(tmpcount-1) / statement A printf(%d, ,n%10); n=n/10; printf(%dn,n); getch(); 10、 編寫子函數(shù):(1)用冒泡法將一個(gè)數(shù)組排成升序的函數(shù)-SU
24、B1;(2)在升序數(shù)組中插入一個(gè)數(shù),并且保持該數(shù)組仍為升序數(shù)組的函數(shù)-SUB2。 主函數(shù):輸入任意10個(gè)正整數(shù)給數(shù)組;調(diào)用SUB1對(duì)數(shù)組進(jìn)行排序;從鍵盤輸入一個(gè)正整數(shù),調(diào)用SUB2將其插入該數(shù)組。 #include #include void main() int i,k,a12=0; /a0 for no use void sub1(int b),sub2(int b,int k); clrscr(); printf(Please input 10 numbers:); for(i=1;i=10;i+) scanf(%d,&ai); getchar(); sub1(a); for(i=1;i
25、=10;i+) printf(na%d=%dn,i,ai); printf(nnplease input a number to be inserted into the array:); scanf(%d,&k); sub2(a,k); for(i=1;i=11;i+) printf(na%d=%dn,i,ai); puts(nAny key to exit!); getch(); void sub1(b) int b; int i,j,t; for (i=1;i10;i+) /the first one is always the smallest for(j=i;jbj) t=bi; b
26、i=bj; bj=t; void sub2(int b,int k) int i; for(i=10;i=1;i-) if(kbi) bi+1=bi; else bi+1=k; break; 11、 編寫函數(shù):(1)用選擇法將數(shù)組排成降序的函數(shù)-SUB1;(2)用折半查找法查找某數(shù)是否在給定的數(shù)組當(dāng)中的函數(shù)-SUB2。 主函數(shù):輸入任意10個(gè)正整數(shù)給數(shù)組,調(diào)用SUB1對(duì)數(shù)組進(jìn)行排序,從鍵盤輸入一個(gè)正整數(shù),調(diào)用SUB2在數(shù)組中進(jìn)行查找,找到后輸出“OK”,沒有找到則輸出“NO FOUND!”。 #include #include void main() int i,key,a11=0,sub1(
27、),sub2(); printf(please input 10 number: ); for(i=1;i=10;i+) scanf(%d,&ai); getchar(); sub1(a); for(i=0;i=10;i+) printf(a%d=%d ,i,ai); printf(n please input a key number: ); scanf(%d,&key); sub2(a,key,1,10); getch(); int sub1(int b) int t,i,j,post; for (i=1;i10;i+) post=i; for(j=i+1;jbj) post=j; if(
28、post!=i) t=bi; bi=bpost; bpost=t; return 0; int sub2(int c,int k,int n0,int n1) int i=n0,j=n1,m; m=(i+j)/2; while(i=j) if(kcm) i=m+1; if(k=cm) break; m=(i+j)/2; if(k=cm) printf(OK!n) ; else printf(NO FOUND!n); return 0; 12、 編寫一個(gè)程序,輸入兩個(gè)包含5個(gè)元素的數(shù)組,先將兩個(gè)數(shù)組升序排列,然后將這兩個(gè)數(shù)組合并成一個(gè)升序數(shù)組。 #include #include void ma
29、in() int i,j,k,a6=0,b6=0,c11=0,sub1(); clrscr(); printf(nplease input 5 int numbers to array1: ); for(i=1;i=5;i+) /a0 for no use scanf(%d,&ai); getchar(); sub1(a,5); printf(nplease input 5 int numbers to array2: ); for(i=1;i=5;i+) /b0 for no use scanf(%d,&bi); getchar(); sub1(b,5); printf(nthe sorte
30、d array a is:nn); for(i=1;i=5;i+) printf(a%d=%d ,i,ai); printf(n); printf(nthe sorted array b is:nn); for(i=1;i=5;i+) printf(b%d=%d ,i,bi); k=i=j=1; while(i=5&j=5) if(aibj) ck+=ai+; /c0 for no use else ck+=bj+; if(ij) /appending the rest ones in array a for(;i=5;i+) ck+=ai; else /appending the rest
31、ones in array b for(;j=5;j+) ck+=bj; printf(nn); printf(nthe merged array c is:nn); for(k=1;k=10;k+) if(k=6) printf(n); printf(c%d=%d ,k,ck); while(!kbhit(); int sub1(int b,int n) int t,i,j,post; for(i=1;in;i+) post=i; for(j=i+1;jbj) post=j; if(post!=i) j jt=bi; bi=bpost; bpost=t; return 0; 13、 耶穌有1
32、3個(gè)門徒,其中有一個(gè)就是出賣耶穌的叛徒,請(qǐng)用排除法找出這位叛徒:13人圍坐一圈,從第一個(gè)開始報(bào)號(hào):1,2,3,1,2,3,凡是報(bào)到“3”就退出圈子,最后留在圈內(nèi)的人就是出賣耶穌的叛徒,請(qǐng)找出它原來的序號(hào)。 /* / approach one #define N 13 #include #include struct person int number; /its order in the original circle int nextp; /record its next person ; struct person linkN+1; /link0 for no use void main(
33、) int i,count,next; /count for 12 persons,and /next for the person not out of circle yet clrscr(); for (i=1;i=N;i+) linki.number=i; /numbering each person if(i=N) linki.nextp=1; else linki.nextp=i+1; /numbering each next person printf(nThe sequence out of the circle is:n); for(next=1,count=1;countN;
34、count+) /count until 12 persons i=1; while (i!=3) /i counts 1,2,3 do /skip the ones whose numbers are zero next=linknext.nextp; while(linknext.number=0); /end of do i+; printf(%3d ,linknext.number); linknext.number=0; /indicate out of circle already do /start from the ones whose numbers are not zero
35、 next time next=linknext.nextp; while(linknext.number=0); printf(nnThe betrayer of them is:); for(i=1;i=N;i+) if(linki.number) printf(%3dn,linki.number); getch(); */ / approach two using cyclic list #define N 13 #define LEN sizeof(struct person) #include #include #include #include / struct person /p
36、ermit struct placed here/ / / int number; / struct person *next; / ; void main() int i,count; struct person /or permit struct placed here also/ int number; struct person *next; ; struct person *head,*p1,*p2; clrscr(); head=p2=NULL; for(i=1;inumber=i; if(head=NULL) head=p1; else p2-next=p1; p2=p1; p2
37、-next=head; printf(nthe sequence out of the circle is:n); for (count=1;countnext; i+; p2=head; printf(%3d ,p2-number); p1-next=head=p2-next; free(p2); printf(nThe betrayer of them is:n%3d,head-number); getch(); 15、按如下圖形打印楊輝三角形的前10行。其特點(diǎn)是兩個(gè)腰上的數(shù)都為1,其它位置上的每一個(gè)數(shù)是它上一行相鄰兩個(gè)整數(shù)之和。 12 12 2 12 3 3 12 4 6 4 1 #in
38、clude #include #define N 10 void main() int i,j,k,aNN; clrscr(); for(i=0;iN;i+) /initialize aNN ai0=1; aii=1; for(i=2;iN;i+) /calculate for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;iN;i+) /output for(k=0;k=3*(N-i);k+) printf( ); for(j=0;j=i;j+) printf(%6d,aij); printf(nn); getch(); 16、某班有5個(gè)學(xué)生,三門課。分別編寫3
39、個(gè)函數(shù)實(shí)現(xiàn)以下要求: (1) 求各門課的平均分; (2) 找出有兩門以上不及格的學(xué)生,并輸出其學(xué)號(hào)和不及格課程的成績(jī); (3) 找出三門課平均成績(jī)?cè)?5-90分的學(xué)生,并輸出其學(xué)號(hào)和姓名 主程序輸入5個(gè)學(xué)生的成績(jī),然后調(diào)用上述函數(shù)輸出結(jié)果。 #define SNUM 5 /*student number*/ #define CNUM 3 /*course number*/ #include #include /*disp student info*/ void DispScore(char num6,char name20,float scoreCNUM) int i,j; printf(nn
40、Student Info and Score:n); for(i=0;iSNUM;i+) printf(%s ,numi); printf(%s ,namei); for(j=0;jCNUM;j+) printf(%8.2f,scoreij); printf(nn); /*calculate all student average score*/ void CalAver(float scoreCNUM) float sum,aver; int i,j; for(i=0;iCNUM;i+) sum=0; for(j=0;jSNUM;j+) sum=sum+scoreji; aver=sum/S
41、NUM; printf(Average score of course %d is %8.2fn,i+1,aver); /*Find student: two courses no pass*/ void FindNoPass(char num6,float scoreCNUM) int i,j,n; printf(nTwo Course No Pass Students:n); for(i=0;iSNUM;i+) n=0; for(j=0;jCNUM;j+) if(scoreij=2) printf(%s ,numi); for(j=0;jCNUM;j+) if(scoreij60) pri
42、ntf(%8.2f,scoreij); printf(n); /*Find student: three courses 85-90*/ void FindGoodStud(char num6,char name20,float scoreCNUM) int i,j,n; printf(nScore of three courses between 85 and 90:n); for(i=0;iSNUM;i+) n=0; for(j=0;j=85&scoreij=90) n+; if(n=3) printf(%s %sn,numi,namei); /*input student info*/
43、void main() char numSNUM6,nameSNUM20; /array num refers to student number float scoreSNUMCNUM; /and its length is 6 int i,j; clrscr();printf(nPlease input student num and score:n); for(i=0;iSNUM;i+) printf(nnStudent%d number: ,i+1); scanf(%s,numi); printf(nStudent%d name: ,i+1); scanf(%s,namei); pri
44、ntf(nStudent%d three scores: ,i+1); for(j=0;jCNUM;j+) scanf(%f,&scoreij); DispScore(num,name,score); CalAver(score); FindNoPass(num,score); FindGoodStud(num,name,score); getch(); 17、編寫一人個(gè)求X的Y次冪的遞歸函數(shù),X為double型,y為int型,要求從主函數(shù)輸入x,y的值,調(diào)用函數(shù)求其冪。 #include #include double fact(double x,int y) if(y=1) return
45、x; else return x*fact(x,y-1); void main() double x; int y; clrscr(); printf(nPlease x,y:); scanf(%lf%d,&x,&y); printf(nxy=%.2lf,fact(x,y); getch(); 18、打印魔方陣。 所謂魔方陣是指這樣的的方陣: 它的每一行、每一列和對(duì)角線之和均相等。 輸入n,要求打印由自然數(shù)1到n2的自然數(shù)構(gòu)成的魔方陣(n為奇數(shù))。 例如,當(dāng)n=3時(shí),魔方陣為: 8 1 6 3 5 7 4 9 2 魔方陣中各數(shù)排列規(guī)律為: 將“1”放在第一行的中間一列; 從“2”開始直到nn為止的各數(shù)依次按下列規(guī)則存放:每一個(gè)數(shù)存放的行比前一個(gè)數(shù)的行數(shù)減1,列數(shù)同樣加1; 如果上一數(shù)的行數(shù)為1,則下一個(gè)數(shù)的行數(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于平衡計(jì)分卡的華辰集團(tuán)零售部績(jī)效考核方案優(yōu)化研究
- 地鐵上蓋混凝土樓板結(jié)構(gòu)地鐵振動(dòng)響應(yīng)特性和傳播規(guī)律研究
- 學(xué)生外出教育主題活動(dòng)方案
- 小學(xué)生安全教育知識(shí)
- 產(chǎn)后媽媽健康管理
- 2025年北京市中考招生考試數(shù)學(xué)真題試卷(真題+答案)
- 預(yù)防火災(zāi)小學(xué)生課件
- 預(yù)防學(xué)生欺凌班會(huì)課件
- 預(yù)防兒童殘疾課件
- 生理衛(wèi)生健康課件
- 護(hù)理核心制度考試試卷(附答案)
- 尾礦工安全培訓(xùn)
- 西安高新區(qū)管委會(huì)招聘筆試真題2024
- 2025年中國(guó)工商銀行招聘筆試備考題庫(帶答案詳解)
- 研發(fā)項(xiàng)目工時(shí)管理制度
- 浮選藥劑安全管理制度
- 會(huì)陰水腫硫酸鎂濕敷專題報(bào)告
- 技術(shù)異化的解放路徑-洞察及研究
- 2025年連云港市中考語文試卷真題(含標(biāo)準(zhǔn)答案)
- 2025年學(xué)校校長(zhǎng)公開選拔筆試試題及參考答案校長(zhǎng)招聘考試筆試真題
- T/CGMA 033002-2020壓縮空氣站節(jié)能設(shè)計(jì)指南
評(píng)論
0/150
提交評(píng)論