C語言課程設(shè)計(jì)報(bào)告_第1頁
C語言課程設(shè)計(jì)報(bào)告_第2頁
C語言課程設(shè)計(jì)報(bào)告_第3頁
C語言課程設(shè)計(jì)報(bào)告_第4頁
C語言課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《C程序設(shè)計(jì)》課程設(shè)計(jì)第1章分支與循環(huán)1.1設(shè)計(jì)任務(wù)1.馬克思手稿中有一道數(shù)學(xué)題,有30人,其中有男人、女人和小孩,在一家飯館吃飯花了50先令,每個(gè)男人花了3先令,每個(gè)女人花了2先令,每個(gè)小孩花了1先令;問男人、女人和小孩各有幾人?2.A、B、C、D、E五人在某天夜里合伙捕魚,到第二天凌晨都疲憊不堪,于是各自睡覺。日上三竿,A第一個(gè)醒來,他將魚分成了5份,把多余的1條魚扔掉,拿走自己的一份。B第二個(gè)醒來,也將魚分成了5份,把把多余的1條魚扔掉,拿走自己的一份。C、D、E依次醒來按同樣的方法拿魚。問他們合伙至少補(bǔ)了多少條魚?1.1算法分析設(shè)男人、女人、小孩分別為x、y、z個(gè),依據(jù)題目能列出下列兩個(gè)方程:x+y+z=30;3*x+2*y+1*x=50;三個(gè)未知數(shù),只有兩個(gè)方程,故是個(gè)多解問題。可采用多重循環(huán)組合出各種可能的a、b、c的值。通過循環(huán)列出公雞、母雞和小雞可能的只數(shù),再對(duì)可能的只數(shù)進(jìn)行條件測(cè)試。50先令,全部由男人吃最多只能有16個(gè)男人,即男人的個(gè)數(shù)x的范圍是:x=0to1650先令,全部由女人吃最多只能有25個(gè)女人,即男人的個(gè)數(shù)x的范圍是:x=0to2550先令,全部由小孩吃最多只能有50個(gè)小孩,即男人的個(gè)數(shù)x的范圍是:x=0to50源程序代碼#include<stdio.h>intmain(){intx,y,z;for(x=0;x<=16;x++)for(y=0;y<=25;y++)for(z=0;z<=50;z++)if(x+y+z==30&&3*x+2*y+1*z==50)printf("男人的人數(shù):%d女人的人數(shù):%d小孩的人數(shù):%d\n",x,y,z);return0;}1.2算法分析要知道他們合伙補(bǔ)了多少魚,只需知道A醒來時(shí)看到多少條魚,所以要知道B醒來時(shí)看到多少條魚。。。。。。所以需知道E醒來時(shí)看到多少條魚,而題意是他們至少捕獲多少條魚,所以E醒來時(shí)一定是6條魚,而前一個(gè)醒來時(shí)的魚是后一個(gè)人醒來時(shí)的5倍還多一條。即:Age(n)=age(n-1)*5+1;age(1)=6;源程序代碼#include<stdio.h>inttiao(intn){ intc; if(n==1)c=6; elsec=tiao(n-1)*5+1; returnc;}intmain(){ printf("%d\n",tiao(5)); return0;}第2章數(shù)組與函數(shù)2.1設(shè)計(jì)任務(wù)1.有一個(gè)一維數(shù)組score[],內(nèi)存放10個(gè)學(xué)生的成績,要求編寫三個(gè)函數(shù)分別求學(xué)生的平均成績,求10個(gè)學(xué)生的最高分,求10個(gè)學(xué)生的最低分。2.編寫一個(gè)函數(shù),將輸入的一串字符中的小寫字母轉(zhuǎn)成大寫字母,并輸出所有的大寫字母。3.輸入10個(gè)學(xué)生姓名,按字典順序?qū)⑴旁谧钋懊娴膶W(xué)生姓名輸出,即在字符數(shù)組中求最小字符串。2.1源程序代碼#include<stdio.h>voidfunA(intscore[10]){inti,g,d,s=0;floatav; for(i=0;i<10;i++) s+=score[i]; av=s/10; g=score[0];for(i=1;i<10;i++)if(score[i]>g)g=score[i];d=score[0];for(i=1;i<10;i++)if(score[i]<d)d=score[i];printf("平均分:%6.1f最高分:%d最低分:%d\n",av,g,d);}intmain(){intscore[10]={91,91,93,94,95,96,97,98,99,100};funA(score);return0;}2.2源程序代碼#include<stdio.h>intmain(){charc;printf("請(qǐng)輸入一行字符:\n");while((c=getchar())!='\n'){ if(c>='a'&&c<='z') { c=c-32; printf("%c",c);}}printf("\n");return0;}2.2源程序代碼#include<stdio.h>#include<string.h>intmain(){ charst[20],cs[10][20]; inti,j; printf("請(qǐng)輸入學(xué)生的姓名:\n"); for(i=0;i<10;i++) gets(cs[i]); printf("\n"); strcpy(st,cs[0]); for(j=1;j<10;j++) if(strcmp(cs[j],st)<0) strcpy(st,cs[j]); puts(st); return0;}運(yùn)行結(jié)果

第3章指針和結(jié)構(gòu)體3.1設(shè)計(jì)任務(wù)1.編寫兩個(gè)排序函數(shù),要求一個(gè)函數(shù)完成從小到大排序,一個(gè)函數(shù)完成從大到小排序,并編寫主函數(shù)完成:(1)輸入n個(gè)數(shù)。(2)組織調(diào)用排序函數(shù)對(duì)n個(gè)數(shù)按從大到小輸出。(3)組織調(diào)用排序函數(shù)對(duì)n個(gè)數(shù)按從小到大輸出。2.輸入n個(gè)學(xué)生的學(xué)號(hào),性別,年齡和3個(gè)單科分?jǐn)?shù),分別輸出男生總分和女生總分。3.編寫一個(gè)函數(shù),這個(gè)函數(shù)的功能:求出n個(gè)學(xué)生成績的最高分,最低分,平均分及超過平均分的人數(shù)。并編寫主函數(shù)完成:(1)輸入n個(gè)學(xué)生的成績。(2)調(diào)用編寫函數(shù)進(jìn)行比較統(tǒng)計(jì)。(3)輸出統(tǒng)計(jì)結(jié)果。3.1源程序代碼#include<stdio.h>voidfunA(inta[10]){ inti,j,t; for(i=0;i<=8;i++)for(j=i+1;j<=9;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;};for(i=0;i<10;i++) printf("%d",a[i]);printf("\n");}voidfunB(inta[10]){ inti,j,t;for(i=0;i<=8;i++)for(j=i+1;j<=9;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;};for(i=0;i<10;i++) printf("%d",a[i]);printf("\n");}intmain(){ inti,a[10]; printf("請(qǐng)輸入10個(gè)數(shù)字:\n");for(i=0;i<10;i++)scanf("%d",&a[i]); funA(a); funB(a); return0;}3.2源程序代碼#include<stdio.h>#defineN3structstudent{ intnum; charsex; intage; floatscore[3];};intmain(){ structstudentstud[N]= {{110,'g',20,90,95,100}, {111,'b',20,99,99,99}, {112,'b',20,100,100,99}}; inti; floats1=0,s2=0; for(i=0;i<N;i++) if(stud[i].sex=='g')s1+=stud[i].score[0]+stud[i].score[2]+stud[i].score[3]; elses2+=stud[i].score[0]+stud[i].score[2]+stud[i].score[3]; printf("女生的總分:%6.1f\n男生的總分:%6.1f\n",s1,s2); return0;}3.3源程序代碼#include<stdio.h>voidfunA(inta[10]){ inti,n=0; intmax=a[0],min=a[0]; floats=0,av; for(i=1;i<10;i++) if(a[i]>max)max=a[i];for(i=1;i<10;i++)if(a[i]<min)min=a[i];for(i=0;i<10;i++)s+=a[i];av=s/10;for(i=0;i<10;i++)if(av<a[i])n++;printf("最高分:%d\n最低分:%d\n平均分:%6.1f\n超過平均分的人數(shù):%d\n",max,min,av,n);}intmain(){inti,a[10];printf("請(qǐng)輸入10個(gè)學(xué)生的成績:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);funA(a);return0;}

第4章綜合4.1設(shè)計(jì)任務(wù)運(yùn)用C語言開發(fā)一個(gè)“小學(xué)生算術(shù)四則運(yùn)算測(cè)試系統(tǒng)”。該系統(tǒng)是讓計(jì)算機(jī)充當(dāng)一位給小學(xué)生布置作業(yè)的算術(shù)老師,為學(xué)生出題并閱卷。該系統(tǒng)要求實(shí)現(xiàn)下列功能:(1)為小學(xué)生出題(分別進(jìn)行+,-,*,/等不同運(yùn)算)。(2)學(xué)生做題后,進(jìn)行評(píng)閱。學(xué)生每做一題后,評(píng)閱給出“答題正確,很好”或“答題錯(cuò)誤,重做”等信息。(3)加,減,乘,除運(yùn)算功能可以自由選擇實(shí)現(xiàn)。(4)運(yùn)算數(shù)值可控制在兩位數(shù)的四則運(yùn)算范圍內(nèi)。4.3源程序代碼#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){inti,a[8];floatd;srand(time(0));/*設(shè)置種子,并生成偽隨機(jī)序列*/for(i=0;i<8;i++)a[i]=rand()%20;/*得到[0,8]偽隨機(jī)數(shù)*/printf("\n");printf("第一道題:%d+%d=\n第二道題:%d-%d=\n第三道題:%d*%d=\n第四道題:%d/%d=\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6]*a[7],a[7]); printf("請(qǐng)輸入第一題的答案:");scanf("%f",&d);while(d!=a[0]+a[1]){printf("答題錯(cuò)誤,重做\n");printf("請(qǐng)輸入第一題的答案:\n");scanf("%f",&d);}printf("答題正確,很好\n");printf("請(qǐng)輸入第二題的答案:");scanf("%f",&d);while(d!=a[2]-a[3]){printf("答題錯(cuò)誤,重做\n");printf("請(qǐng)輸入第一題的答案:\n");scanf("%f",&d);}printf("答題正確,很好\n");printf("請(qǐng)輸入第三題的答案:");scanf("%f",&d);wh

溫馨提示

  • 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)論