第一篇:c語言課后習(xí)題
C語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告
學(xué)院
數(shù)學(xué)與信息技術(shù)
班級(jí)
學(xué)號(hào)
11130730
姓名
指導(dǎo)教師
實(shí)驗(yàn)1 簡單程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)熟悉C語言開發(fā)環(huán)境并掌握在該環(huán)境下如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。(2)通過運(yùn)行一個(gè)簡單的C程序過程,初步了解C程序的基本結(jié)構(gòu)及特點(diǎn)。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。
(2)輸入三個(gè)整數(shù),請(qǐng)把這三個(gè)數(shù)由小到大輸出。試編寫多種方法。(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)C程序是由一個(gè)個(gè)函數(shù)構(gòu)成,當(dāng)一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí),需要對(duì)被調(diào)函數(shù)作聲明。(2)用戶自定以的函數(shù)最好寫在一個(gè)頭文件中,在需要的地方用文件包含命令即可。
(3)system(“cls”)函數(shù)的作用是清屏,它的聲明在頭文件stdlib.h中。如果是在Linux操作系統(tǒng)的gcc環(huán)境下,清屏用system(”clear”)。
4. 常見錯(cuò)誤
(1)數(shù)據(jù)聲明或語句后面缺少分號(hào)。(2)對(duì)被調(diào)函數(shù)沒有聲明。
(3)沒有main函數(shù)或者有多個(gè)main函數(shù)。
5. 程序代碼
#include
t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;} printf(“%5.2f,%5.2f,%5.2fn”,a,b,c);} 6. 實(shí)驗(yàn)結(jié)果
7. 心得體會(huì)
剛開始學(xué)習(xí)C語言,有一些小問題,數(shù)據(jù)聲明時(shí),分號(hào)會(huì)忘記,語句后面缺少分號(hào)。而且n斜杠會(huì)寫反,有時(shí)會(huì)忘記聲明函數(shù)。
實(shí)驗(yàn)2 順序結(jié)構(gòu)程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型、實(shí)型變量。(2)掌握數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式控制符。(3)掌握算術(shù)運(yùn)算符和賦值運(yùn)算符。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。
(2)輸入圓半徑和圓柱高,求圓周長、圓面積、圓球表面積、圓球體積和圓柱體積。輸入輸出要有文字說明,輸出結(jié)果取小數(shù)點(diǎn)后2位。(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)用scanf和printf對(duì)數(shù)據(jù)進(jìn)行輸入輸出時(shí),不同的數(shù)據(jù)類型用不同的格式控制符。(2)scanf函數(shù)中的格式控制后面應(yīng)當(dāng)是變量地址,而不是變量名。
4. 常見錯(cuò)誤
(1)變量沒有定義,直接使用。
(2)企圖利用整數(shù)除以整數(shù)得到精確結(jié)果。例如1/4結(jié)果不是0.25而是0,1/4.0結(jié)果才是0.25。(3)printf和scanf函數(shù)中格式控制符的個(gè)數(shù)與變量或變量地址的個(gè)數(shù)不一致。(4)scanf函數(shù)的地址表列因該是變量地址,而不是變量名。
(5)scanf函數(shù)在格式控制字符串中除了格式說明以外還有其他字符時(shí),在輸入數(shù)據(jù)時(shí)(6)沒有在對(duì)應(yīng)的位置輸入與這些字符相同的字符。
5. 程序代碼
#include
s=r*r*p;//圓面積
sq=4*p*r*r;//圓球表面積
vq=4.0/3.0*p*r*r*r;//圓球體積
vz=p*r*r*h;//圓柱體積
printf(“圓周長為: l=%6.2fn”,l);printf(“圓面積為: s=%6.2fn”,s);printf(“圓球表面積為: sq=%6.2fn”,sq);printf(“圓球體積為: vq=%6.2fn”,vq);printf(“圓柱體積為: vz=%6.2fn”,vz);return 0;} 6. 實(shí)驗(yàn)結(jié)果
7. 心得體會(huì)
這邊是基礎(chǔ)的用scanf和printf對(duì)數(shù)據(jù)進(jìn)行輸入輸出,不同的數(shù)據(jù)類型用不同的格式控制符。有點(diǎn)小睇混淆。才剛開始,還是覺得挺簡單的。
實(shí)驗(yàn)3 選擇結(jié)構(gòu)程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)了解C語言表示邏輯變量的方法(2)學(xué)會(huì)正確使用關(guān)系運(yùn)算符和邏輯運(yùn)算符。(3)熟練掌握if語句和switch語句。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。(2)把百分制成績轉(zhuǎn)換成5級(jí)記分制,要求分別用if else 和switch語句。
90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E
(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)注意關(guān)系運(yùn)算符==和復(fù)制運(yùn)算符=的區(qū)別。(2)if和else的匹配原則。
(3)在switch語句中正確使用break。
4. 常見錯(cuò)誤
(1)賦值運(yùn)算符=和關(guān)系運(yùn)算符等號(hào)=搞混。(2)在if語句為復(fù)合語句時(shí),忘記寫{}。(3)if語句出現(xiàn)嵌套時(shí),沒正確配對(duì)。(4)switch語句中,沒正確使用break。
5. 程序代碼
#include
printf(“n輸入有誤,請(qǐng)重新輸入!”);
scanf(“%f”,&score);} switch((int)(score/10)){ case 10: case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5: case 4:
} case 3: case 2: case 1: case 0:grade='E';} printf(“成績是%5.1f,相應(yīng)的等級(jí)是%cn”,score,grade);return 0;6. 實(shí)驗(yàn)結(jié)果
7. 心得體會(huì)
賦值運(yùn)算符=和關(guān)系運(yùn)算符等號(hào)=搞混。在if語句為復(fù)合語句時(shí),忘記寫{}。if語句出現(xiàn)嵌套時(shí),沒正確配對(duì)。
實(shí)驗(yàn)4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)熟練掌握循環(huán)語句中的for語句、while語句和do while語句的使用方法,以及這三種循環(huán)語句之間的轉(zhuǎn)換方法。
(2)掌握編寫循環(huán)結(jié)構(gòu)程序的方法。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。
(2)通過鍵盤輸入任意兩個(gè)正整數(shù),求其最大公約數(shù)和最小公倍數(shù)。(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)方法。
(2)while和do while循環(huán)之間的轉(zhuǎn)換方法。
(3)getch函數(shù)從鍵盤接收一個(gè)字符,該函數(shù)被調(diào)用后程序會(huì)暫停,等待按任意鍵,再繼續(xù)執(zhí)行后續(xù)的語句,以便我們觀察中間結(jié)果。在VC++下需要包含conio.h頭文件,在Linux下需要包含頭文件curses.h。由于在Linux下getch函數(shù)還需要與其它函數(shù)配合使用才能達(dá)到上面所說的功能并且在編譯時(shí)還要指定鏈接所使用的庫文件,所以在Linux環(huán)境建議使用兩次調(diào)用getchar函數(shù)來替換getch函數(shù)。
4. 常見錯(cuò)誤
(1)循環(huán)體為復(fù)合語句時(shí),沒用{}括起來。
(2)在while()和for()后面添加分號(hào),使得循環(huán)體為空語句。(3)for括號(hào)里的分號(hào)和逗號(hào)用錯(cuò)。
(4)循環(huán)嵌套時(shí),內(nèi)循環(huán)的初始條件和循環(huán)體沒正確設(shè)計(jì)好。
5. 程序代碼
#include
printf(“最小公倍數(shù):%dn”,p);return 0;} 6. 實(shí)驗(yàn)結(jié)果
7. 心得體會(huì)
循環(huán)體為復(fù)合語句時(shí),沒用{}括起來。在while()和for()后面添加分號(hào),使得循環(huán)體為空語句。for括號(hào)里的分號(hào)和逗號(hào)用錯(cuò)。循環(huán)嵌套時(shí),內(nèi)循環(huán)的初始條件和循環(huán)體沒正確設(shè)計(jì)好。
實(shí)驗(yàn)5 數(shù)組的應(yīng)用
1.實(shí)驗(yàn)?zāi)康?/p>
(1)掌握一維數(shù)組和二維數(shù)組的定義和引用。(2)掌握字符數(shù)組和字符串函數(shù)的使用。(3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。(2)用選擇法對(duì)10個(gè)整數(shù)排序。(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)在循環(huán)中,數(shù)組元素的引用。
(2)起泡排序法、選擇排序法和插入排序法。
4. 常見錯(cuò)誤
(1)數(shù)組定義時(shí),沒規(guī)定數(shù)組長度或者長度為一變量。(2)循環(huán)中數(shù)組元素的下標(biāo)沒正確表示。
(3)起泡排序、選擇排序和插入排序算法沒理解透。
(4)起泡排序、選擇排序和插入排序中,循環(huán)的初始條件和終止條件出現(xiàn)錯(cuò)誤。(5)字符串的復(fù)制和比較直接使用賦值運(yùn)算符和關(guān)系運(yùn)算符。
5. 程序代碼
#include
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
} printf(“選擇排列:n”);for(i=0;i<10;i++)
printf(“%5d”,a[i]);printf(“n”);return 0;} 6. 實(shí)驗(yàn)結(jié)果
7. 心得體會(huì)
數(shù)組定義時(shí),沒規(guī)定數(shù)組長度或者長度為一變量。循環(huán)中數(shù)組元素的下標(biāo)沒正確表示。起泡排序、選擇排序和插入排序算法沒理解透。起泡排序、選擇排序和插入排序中,循環(huán)的初始條件和終止條件出現(xiàn)錯(cuò)誤。字符串的復(fù)制和比較直接使用賦值運(yùn)算符和關(guān)系運(yùn)算符。
實(shí)驗(yàn)6 函數(shù)的應(yīng)用
1.實(shí)驗(yàn)?zāi)康?/p>
(1)掌握函數(shù)的定義和調(diào)用方法。
(1)掌握函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系,以及“值傳遞”的方式。(1)掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。
(1)掌握全局變量和局部變量,動(dòng)態(tài)變量以及靜態(tài)變量的概念和使用方法。
2. 實(shí)驗(yàn)要求
(1)認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。
(2)寫一個(gè)函數(shù),用“起泡法”對(duì)輸入的10個(gè)字符按由小到大的順序排列,主函數(shù)通過調(diào)用它實(shí)現(xiàn)題目要求。
(3)上機(jī)運(yùn)行程序。
(4)保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。
3.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)
(1)函數(shù)的定義和調(diào)用方法。
(2)函數(shù)的實(shí)參數(shù)為數(shù)組時(shí),形參的形式以及實(shí)參和形參之間的數(shù)據(jù)傳遞方式。(3)函數(shù)的遞歸調(diào)用。
4. 常見錯(cuò)誤
(1)函數(shù)沒定義,就被調(diào)用。(2)函數(shù)定義了,又沒被調(diào)用。(3)定義函數(shù)時(shí),形參沒規(guī)定類型。(4)函數(shù)調(diào)用時(shí),實(shí)參前加類型。(5)被調(diào)函數(shù)沒有聲明
(6)嵌套調(diào)用和遞歸調(diào)用沒理解透,使用錯(cuò)誤。(7)全局變量和局部變量有效范圍沒能正確區(qū)分。
5. 程序代碼
#include