C語(yǔ)言實(shí)習(xí)報(bào)告_第1頁(yè)
C語(yǔ)言實(shí)習(xí)報(bào)告_第2頁(yè)
C語(yǔ)言實(shí)習(xí)報(bào)告_第3頁(yè)
C語(yǔ)言實(shí)習(xí)報(bào)告_第4頁(yè)
C語(yǔ)言實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 設(shè)計(jì)報(bào)告一, 實(shí)驗(yàn)?zāi)康模和ㄟ^上機(jī)實(shí)習(xí),熟練掌握循環(huán)語(yǔ)句、選擇語(yǔ)句、指針以及結(jié)構(gòu)體的運(yùn)用技巧。在實(shí)習(xí)中通過實(shí)際操作,編寫程序,發(fā)現(xiàn)問題,最后解決問題,提升對(duì)c語(yǔ)言實(shí)用性的理解,在實(shí)踐中鞏固各知識(shí)點(diǎn)。C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn),上機(jī)實(shí)習(xí)可以幫助我們更好地理解這種結(jié)構(gòu)式的中級(jí)語(yǔ)言以及其各式各樣的數(shù)據(jù)類型和高效率的運(yùn)算程序,為我們進(jìn)一步學(xué)習(xí)C+打下堅(jiān)實(shí)基礎(chǔ)。同時(shí),在實(shí)習(xí)過程中,通過互相發(fā)現(xiàn)問題,共同解決問題,不僅鍛煉了我們的合作能力,而且也讓我們發(fā)現(xiàn)了一些自己的個(gè)人誤區(qū)以及其他人容易犯的錯(cuò)誤,從而在今后的學(xué)習(xí)中更加謹(jǐn)慎,達(dá)到事半功倍的效果;通過詢問老

2、師,也讓我們養(yǎng)成了不恥下問的好習(xí)慣,這將很有利于以后的學(xué)習(xí)。閑樂-一個(gè)人閑。不如大家一塊兒樂http:/www.xlw.cc二,總體設(shè)計(jì): 1,學(xué)生成績(jī)排名1,流程圖:I=0 再輸入一個(gè)學(xué)生的成績(jī)I<10?假?冒泡法排序ai a10-iI由0變到4進(jìn)行5次循環(huán)輸出a0到a10shu輸出a0到a9I由0變到8執(zhí)行9次循環(huán) 進(jìn)行9-I次比較 真 aj>aI+I假 aj aj+1賦值真?I=0 輸出I<11? 假? 結(jié)束 真? <通過冒泡法對(duì)數(shù)組進(jìn)行排序><測(cè)試時(shí)由于循環(huán)語(yǔ)句循環(huán)次數(shù)的錯(cuò)誤導(dǎo)致部分?jǐn)?shù)據(jù)沒有排序,修改FOR語(yǔ)言中的條件即可調(diào)試成功>2,程序:#

3、include<stdio.h>int main()int a11,i,j,t,b,c,temp1,temp2,temp3; /定義一個(gè)數(shù)組a11,用以存放學(xué)生的成績(jī)printf("從鍵盤輸入10個(gè)學(xué)生成績(jī):n");for(i=0;i<10;i+)scanf("%d",&ai); /輸入10個(gè)學(xué)生成績(jī)for(i=0;i<9;i+)for(j=0;j<9-i;j+)if(aj<aj+1)t=aj;aj=aj+1;aj+1=t; /采用冒泡法,將學(xué)生成績(jī)按照從高到低進(jìn)行排序 printf("10個(gè)學(xué)生成績(jī)

4、數(shù)組:n");for(i=0;i<10;i+)printf("%5d",ai); printf("n");printf("再輸入一個(gè)學(xué)生的成績(jī)n"); scanf("%d",&b); /再輸入一個(gè)學(xué)生的成績(jī) c=a9;if(b<c) /將此成績(jī)按照排序規(guī)律插入原學(xué)生成績(jī)數(shù)組a10=b;else for(i=0;i<10;i+) if(ai<b) temp1=ai;ai=b; for(j=i+1;j<11;j+) temp2=aj;aj=temp1;temp1=temp

5、2; break; printf("11個(gè)學(xué)生成績(jī)數(shù)組:n"); /輸入11個(gè)學(xué)生成績(jī) for(i=0;i<11;i+) printf("%5d",ai); printf("n"); for(i=0;i<5;i+) /排好序的成績(jī)單進(jìn)行反序存放temp3=ai;ai=a10-i;a10-i=temp3; printf("排好序的成績(jī)單進(jìn)行反序存放為:n"); for(i=0;i<11;i+) /輸出反序存放后的學(xué)生成績(jī)數(shù)組 printf("%5d",ai); printf(&q

6、uot;n"); return 0;3,運(yùn)行結(jié)果:2,根據(jù)條件進(jìn)行學(xué)生成績(jī)排名1,流程圖:I=0,i+輸入nSort1 sort2I=0,i+I<10?假?I<n輸出a0到a9I由0變到8執(zhí)行9次循環(huán) 進(jìn)行9-I次比較 真 aj>aI+I假 aj aj+1賦值真?賦值I由0變到n-1執(zhí)行n次循環(huán) 進(jìn)行n-1-I次比較 真 aj>aI+I假 aj aj+1 輸出a0到an-1 Style=97賦值I<nI=0,i+輸入n Sort3假?Style=100假?真?真?I由0變到n-1執(zhí)行n次循環(huán) 進(jìn)行n-1-I次比較 真 aj<aI+I假 aj aj+

7、1I由0變到n-1執(zhí)行n次循環(huán) 進(jìn)行n-1-I次比較 真 aj>aI+I假 aj aj+1輸入a or d輸出a0到an-12,程序: #include<stdio.h>void sort1(int a10) /定義函數(shù) int i,j,t;printf("輸入10個(gè)學(xué)生成績(jī):n"); for(i=0;i<10;i+)scanf("%d",&ai); /輸入n個(gè)學(xué)生成績(jī) for(i=0;i<10;i+) /冒泡法對(duì)n個(gè)數(shù)字排序for(j=0;j<9-i;j+)if(aj<aj+1)t=aj;aj=aj+1

8、;aj+1=t; printf("10個(gè)學(xué)生成績(jī)從高到低排名是:n"); for(i=0;i<10;i+) /輸出結(jié)果 printf("%5d",ai); printf("n"); void sort2(int a,int n) /定義函數(shù)int i,j,t; printf("請(qǐng)輸入學(xué)生個(gè)數(shù)n:n"); scanf("%d",&n); printf("輸入n個(gè)學(xué)生成績(jī):n"); for(i=0;i<n;i+)scanf("%d",&am

9、p;ai); for(i=0;i<n;i+) /冒泡法對(duì)n個(gè)數(shù)字排序for(j=0;j<n-i-1;j+)if(aj<aj+1)t=aj;aj=aj+1;aj+1=t; printf("n個(gè)學(xué)生成績(jī)從高到低排名是:n"); for(i=0;i<n;i+) /輸出結(jié)果 printf("%5d",ai); printf("n");void sort3(int a,int n, char style) char c; getchar(c); printf("請(qǐng)輸入style類型:a or dn")

10、;style=getchar();printf("請(qǐng)輸入學(xué)生個(gè)數(shù)n:n");scanf("%d",&n);printf("輸入n個(gè)學(xué)生成績(jī):n"); int i,j,t; for(i=0;i<n;i+)scanf("%d",&ai);if(style=97) printf("對(duì)n個(gè)數(shù)字升序排列為:n");for(i=0;i<n;i+) /冒泡法對(duì)n個(gè)數(shù)字升序排列 for(j=0;j<n-i-1;j+)if(aj>aj+1)t=aj;aj=aj+1;aj+1

11、=t; else if(style=100) printf("對(duì)n個(gè)數(shù)字降序排列為:n");for(i=0;i<n;i+) /冒泡法對(duì)n個(gè)數(shù)字降序排列 for(j=0;j<n-i-1;j+)if(aj<aj+1)t=aj;aj=aj+1;aj+1=t; printf("n個(gè)學(xué)生成績(jī)排名是:n"); for(i=0;i<n;i+) /輸出結(jié)果 printf("%5d",ai); printf("n");int main() /主函數(shù) printf("sort1:n"); /

12、調(diào)用sort1函數(shù) int a10;sort1(a);printf("sort2:n"); /調(diào)用sort2函數(shù)int a30000,n;sort2(a,n);printf("sort3:n"); /調(diào)用sort3函數(shù) int a30000,n;char style;sort3(a,n,style);return 0;<這個(gè)程序中輸入字符時(shí)由于前面的程序的干擾,第一個(gè)輸入字符語(yǔ)句會(huì)直接跳過,所以要另加一個(gè)空白的輸入字符的語(yǔ)言,從而使程序中輸入字符的語(yǔ)句能夠正常運(yùn)行><由于數(shù)組的長(zhǎng)度必須要定義,而且不能用變量定義,鑒于要進(jìn)行比較的數(shù)據(jù)量n

13、是一個(gè)整形的數(shù),定義數(shù)組為一個(gè)較長(zhǎng)數(shù)組即可>3,運(yùn)行結(jié)果: 3,用指針優(yōu)化學(xué)生成績(jī)排名1, 流程圖:Sort copy main 2,程序:#include<stdio.h>#include<string.h>void sort(int *p) /定義函數(shù)sort /將成績(jī)數(shù)組按照從高到低進(jìn)行排序,要求用函數(shù)實(shí)現(xiàn)int i,j,t;for(i=0;i<9;i+)for(j=0;j<9-i;j+)if(*(p+j)<*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;void copy(char *a,char

14、*b) /定義函數(shù)copy for(;*a!='0'a+,b+) / 復(fù)制該字符串,用函數(shù)實(shí)現(xiàn) *b=*a;*b='0'int main()int i,j,t,stu10,*p; / 定義一個(gè)數(shù)組stu10存放10個(gè)學(xué)生的成績(jī) p=stu;printf("請(qǐng)輸入10個(gè)數(shù)據(jù):n"); for(i=0;i<10;i+) /從鍵盤輸入數(shù)據(jù),用指針實(shí)現(xiàn)scanf("%d",p+i);printf("數(shù)組stu10的內(nèi)容為:n");for(i=0;i<10;i+) /將數(shù)組stu10的內(nèi)容輸出到屏幕上

15、,用指針實(shí)現(xiàn)printf("%5d",*(p+i);printf("n");for(i=0;i<9;i+) /將成績(jī)數(shù)組按照從高到低進(jìn)行排序,用指針實(shí)現(xiàn)for(j=0;j<9-i;j+)if(*(p+j)<*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;printf("成績(jī)數(shù)組按照從高到低進(jìn)行排序?yàn)椋簄"); p=stu; for(i=0;i<10;i+)printf("%5d",*(p+i);printf("n");p=stu;s

16、ort(p); /調(diào)用函數(shù)sortprintf("第三步內(nèi)容放在函數(shù)中實(shí)現(xiàn)為:n"); for(i=0;i<10;i+)printf("%5d",*(p+i);printf("n");printf("采用指針方法,輸入字符串student score: n");char *a="student score"char b14;copy(a,b); /調(diào)用函數(shù)copyprintf("%sn",b);return 0;<指針的傳遞是雙向的,在賦值中有多種方法,比如說對(duì)數(shù)

17、組直接賦值,或者直接對(duì)指針變量進(jìn)行賦值><復(fù)制該字符串,用函數(shù)實(shí)現(xiàn)時(shí)是用循環(huán)語(yǔ)句把一個(gè)字符串的每一個(gè)字符賦值給另一個(gè)字符串>3, 運(yùn)行結(jié)果:4,學(xué)生成績(jī)單制作1, 流程圖: Return 0 <結(jié)構(gòu)體語(yǔ)言具有簡(jiǎn)潔,方便,模塊化的特點(diǎn),在初始化及輸出過程中要注意輸入輸出方式><在輸入字符串的時(shí)候,輸入語(yǔ)句中不應(yīng)有&>2, 程序:#include<stdio.h>StructStudent /定義結(jié)構(gòu)體char number10;char name10;int score3;float average;student10;int mai

18、n()int i,j,t;for(i=0;i<10;i+) /初始化結(jié)構(gòu)體printf("n輸入student%d成績(jī):n",i+1);printf("number:");scanf("%s",studenti.number);printf("name:"); /存放10個(gè)學(xué)生的學(xué)號(hào),姓名,三門課的成績(jī)scanf("%s",);for(j=0;j<3;j+)printf("score %d:",j+1);scanf("%d&qu

19、ot;,&studenti.scorej);studenti.average=(studenti.score0+studenti.score1+studenti.score2)/3.0;printf("average:%f",studenti.average); printf("n"); printf("輸出數(shù)學(xué)成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī):n"); /輸出單門課成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī)int max=0,max_math=0,max_chinese=0,max_english=0,ma

20、x_average=0,max_i=0; for(i=0;i<10;i+)if(max_math<studenti.score0)max_math=studenti.score0;max_i=i; printf("number=%s,name=%s,max_math=%dn",studentmax_i.number,studentmax_,studentmax_i.score0); printf("輸出中文成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī):n");for(i=0;i<10;i+)if(max_chinese&l

21、t;studenti.score1)max_chinese=studenti.score1;max_i=i; printf("number=%s,name=%s,max_chinese=%dn",studentmax_i.number,studentmax_,studentmax_i.score1); printf("輸出中文成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī):n");for(i=0;i<10;i+)if(max_english<studenti.score2)max_english=studenti.score0;max_i=i; printf("number=%s,name=%s,max_english=%dn",studentmax_i.number,studentmax_,studentmax_i.score2); pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論