C語言實驗指導書.doc_第1頁
C語言實驗指導書.doc_第2頁
C語言實驗指導書.doc_第3頁
C語言實驗指導書.doc_第4頁
C語言實驗指導書.doc_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

C語言上機實驗指導實驗一 熟悉C語言程序開發(fā)環(huán)境 一 目的要求1 熟悉在所用的計算機系統(tǒng)上如何編輯、編譯、連接和運行一個C語言程序。2 掌握C語言的數(shù)據(jù)類型,熟悉如何定義一個整型、字符型、實型變量,以及對它們賦值的方法。3 學會使用C的有關算術運算符,以及包含這些運算符的表達式,特別是自加和自減運算符的使用。4 通過運行簡單的C語言程序,初步了解C語言程序的結構特點。二 實驗內(nèi)容1 調(diào)用編輯程序,輸入以下程序,并進行編譯和運行。熟悉所用的系統(tǒng)使用什么命令進行編譯和連接運行的。編譯和連接后所得到的目標程序的后綴是什么形式?main( )printf(“This is a c program.n”);2 從鍵盤依次輸入兩個整數(shù),計算并輸出這2個整數(shù)之差。 # include “stdio.h”main() float a,b,c; printf(“input a,b,:n”); scanf(“%d, %d,”,&a,&b); c=a-b; printf(“c=%dn”,c);具體要求: 在Turbo C或其他編譯環(huán)境編輯窗口輸入該程序,然后進行編譯連接。如果在編譯過程中有錯誤發(fā)生,則仔細檢查并修改程序,再進行編譯連接,直到?jīng)]有錯誤為止。 運行時按程序中要求的格式依次輸入下列2個數(shù):212,84 3輸入并運行以下程序,分析結果,體會自增自減運算符的特點,上機驗證; main( ) int i,j,m,n,u=0,v=0; i=8;j=10; m=+i;n=j+; u+=i-;n-=-j; printf(“i=%d,j=%d,m=%d,n=%d,u=%d,v=%dn”,i,j,m,n,u,v);4輸入并運行下面的程序。 main() int m,n; m=120; n=112; printf(“%dt%dn”,m,n); 要求:運行程序記下結果。 在程序的最后增加一句:printf(“%ct%cn”,m,n);再運行程序,并分析結果。 將第2行改為:char m,n;再運行程序,并觀察結果。 將第3行和第4行改為:m=x;n=p;再運行程序,并觀察結果。 將第3行和第4行改為:m=x;n=p;再運行程序,并觀察結果。如果產(chǎn)生了錯誤,說明是什么引起的? 再將第3行和第4行改為:m=280; /*用大于255的整數(shù)*/n=320;再運行程序,并觀察分析運行結果。實驗二 順序結構程序設計一 目的要求1 掌握數(shù)據(jù)的輸入輸出的方法,能正確使用有關格式轉換符;2 熟悉順序結構程序中語句的執(zhí)行過程。3 掌握順序結構程序的設計方法。二實驗內(nèi)容1編寫C程序,按下列公式計算并輸出S的值。其中a和b的值由鍵盤輸入。 源程序清單: main int a,b; float s; scanf (“%d,%d”,&a,&b); s=2.0*a*b/((a+b)*(a+b)); printf (“s=%fn”,s); 具體要求:輸入并調(diào)試上述源程序;對源程序進行編譯、連接;運行源程序并存盤(文件名自定);將scanf函數(shù)改為:scanf (“%d%d”,&a,&b)再編譯、連接、運行;寫出程序運行結果。輸入數(shù)據(jù)4,5輸入修改后數(shù)據(jù)4 54 5 運行結果運行結果原 因原 因2、編寫下列程序,并上機調(diào)試運行程序。(1)編程:設圓的半徑為r=1.5,求圓周長、圓面積與圓球的體積。要求用scanf函數(shù)輸入數(shù)據(jù),輸出計算結果。輸出時取小數(shù)點后兩位數(shù)據(jù)。(2)程:輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5/9(f-32)。(3)編程:用getchar函數(shù)讀入兩個字符,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。上機運行程序,比較用putchar和printf函數(shù)輸出字符的特點。實驗三 選擇結構程序設計 一 目的要求1 學會正確使用關系運算符和關系表達式;2 學會正確使用邏輯運算符和邏輯表達式;3 學會使用邏輯表達式和關系表達式等表達條件;4 熟練掌握if語句和switch語句;5 熟悉選擇結構程序中的語句執(zhí)行過程;并掌握選擇結構程序的設計方法;二 實驗內(nèi)容1、編寫程序,判斷從鍵盤上輸入的一個字符,并按下列要求輸出。(1)若該字符是數(shù)字,輸出字符串“0-9”;(2)若該字符是大寫字母,輸出字符串“A-Z”;(3)若該字符是小寫字母,輸出字符串“a-z”;(4)若該字符是其他字母,輸出字符串“!,,”。 部分源程序清單: main( ) char c; scanf(“%c”,&c) if(0=cc= 9) else if( ) printf(“A-Zn”); (a= cc= z) printf (“a-zn”); printf (“!,n”); 具體要求: 輸入、完善上述源程序,并調(diào)試; 對源程序進行編譯、連接; 運行源程序并存盤; 寫出程序運行結果(輸入四組數(shù)據(jù),分別對應四種情況)。輸入數(shù)據(jù)運行結果原 因2、編寫下列程序,并上機調(diào)試運行程序。(1)有一函數(shù) y= 用函數(shù)輸入的值(分別為小x1,1=x=10三種情況),求y值。(2)給出一個百分制成績,要求輸出成績等級A、B、C、D、E。90分以上為A, 8189分為B,7079分為C,6069分為D,60分以下為E。用switch 語句實現(xiàn)。(3)給一個不多于5位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為321,應輸出123。(4).編程:要求輸入a、b、c三個值,輸出其中最大者(5)輸入四個整數(shù),要求按大小順序輸出。實驗四 循環(huán)結構程序設計一、 目的要求1 熟悉用while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法;2 掌握在程序設計中用循環(huán)的方法實現(xiàn)各種算法;3 理解循環(huán)結構程序中語句的執(zhí)行過程;二、 實驗內(nèi)容1、編一個C程序,計算并輸出數(shù)列:1,3,5,2n-1,的前幾項之和,其中n由鍵盤輸入。要求分別用三種循環(huán)語句實現(xiàn)。 方法1:用for語句實現(xiàn)。 main( ) long s, n, k, i; scanf(“ ”,n); k=2*n-1; ; for(i=1;i=k; )s+=i; printf(“1+3+%ld=%ldn”,k,s); 方法2:用while語句實現(xiàn)。 main( ) long ,n,i=1; scanf(“%ld”,n); while( ) s+=i; ; printf(“1+3+%ld=%ldn”,2*n-1,s); 方法3:用do語句實現(xiàn)。 main( ) long s=0,n, ; scanf(“%ld”,n); do s+=i ; i=i+2; while( ); printf(“1+3+%ld=%ldn”,2*n-1,s); 具體要求: 輸入、完善上述源程序,并用熱鍵調(diào)試; 對源程序進行編譯、連接; 運行源程序并存盤; 寫出程序運行結果。方法1方法2方法3輸入數(shù)據(jù)運行結果2、編寫程序并上機調(diào)試運行:(1)輸入兩個正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。(2)求1!+2!+3!+20?。?)一球從100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?(4)打印出以下圖案。 * * * * * * *(5)猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想在吃時,見只剩下一個桃子了。求第一天共摘了多少個桃子。(6)打印九九乘法表。實驗五綜合運用三種基本結構進行程序設計一、目的要求1 進一步掌握選擇結構程序設計的方法和技巧。2 進一步掌握循環(huán)結構程序設計的方法和技巧。3 綜合運用三種基本結構進行程序設計。三、 實驗內(nèi)容編寫程序并上機調(diào)試運行:1 百馬百擔問題。有100匹馬,馱100擔,大馬馱3擔,中馬馱2擔,兩個小馬馱1擔。問大,中,小馬各多少?(程序應考慮適當減少重復次數(shù))2 輸入一行字符,分別統(tǒng)計其中的英文字母、空格、數(shù)字和其它字符的個數(shù)。3 打印出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如153是一水仙花數(shù)。4 將一個正整數(shù)分解成質(zhì)因數(shù)的乘積。例如:輸入90,打印902*3*3*5。5 利用循環(huán)語句編寫程序:對一個正整數(shù),將各位數(shù)字反序后的數(shù)輸出。例如原數(shù)是12345,則計算機輸出是54321;原數(shù)是987,則計算機輸出是789。6 一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數(shù)”。編程序找出1000之內(nèi)的所有完數(shù),并按下面格式輸出其因子:6its factors are 1,2,37實驗六 數(shù) 組一、 目的要求1 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;2 掌握字符數(shù)組和字符串函數(shù)的使用;3 掌握與數(shù)組有關的算法(特別是排序算法)。二、 實驗內(nèi)容1、從鍵盤輸入一個整數(shù)n(n10)和n個整數(shù),存入數(shù)組a中,先依次輸出各個數(shù)組元素的值,然后對數(shù)組a的所有元素值按從小到大的順序重新排列后,再依次輸出。 源程序清單: main( ) int a10,n,i,j: ; printf(“input n=”); scanf(“%d”,n); printf(“input array a0 a1a%d:n”,n-1); for(i=0;in;i+) scanf(“%d”, ); printf (“before sort:arrayn”); for(i=0;in;i+) printf (“%d”,ai); printf (“n”); for(i=0;i ;i+) min=i; for(j= ;jn;i+) if(ajamin) ; ax= ; ai=amin; =ax; printf (“after sort:arrayn”); for(i=0;in;i+) printf (“%d”,ai); printf (“n”); 具體要求: 輸入、完善并調(diào)試上述源程序; 對源程序進行編譯,連接,運行; 寫出程序運行結果(輸入三組數(shù)據(jù))。輸入整數(shù)n輸入n個整數(shù)輸出(排序前)輸出(排序后)2、編寫程序并上機調(diào)試運行:(1)用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入。(2)已有一個已排好序的數(shù)組,現(xiàn)輸入一個數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。(3)求一個3*3矩陣兩對角線元素之和。(4)打印出以下楊輝三角形(要求打印10行)。11 11 2 11 3 3 11 4 6 4 1 (5)將兩個字符串連接起來,不要用strcat函數(shù)。(6)*.找出一個二維數(shù)組的“鞍點”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點。實驗七、八 函數(shù)與預處理一、 目的要求1 掌握定義函數(shù)的方法;2 掌握函數(shù)實參與形參的對應關系,以及“值傳遞”的方式和數(shù)組名作為參數(shù)的傳遞方式;3 掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;4 掌握全局變量和局部變量、動態(tài)變量和靜態(tài)變量的概念和使用方法。5 理解宏的概念,掌握宏的定義。6 了解文件包含的概念,掌握其用法。二、 實驗內(nèi)容1、從鍵盤輸入10個數(shù)存入數(shù)組a中,調(diào)用fmax求數(shù)組中的最大值并輸出。 #include main() int a10,i,jmax; for(i=0;i10;+i) scanf(“%d”,&ai); fmax( ,10,jmax); printf(“%d”,jmax); fmax(int b,int t,int imax) int i; imax=b0; for(i=1,iimax) ; 具體要求: 輸入并完善源程序; 對源程序進行編譯、連接、運行; 寫出程序運行結果。2、編寫下列程序,并上機調(diào)試運行:(1)求方程 ax+bx+c=0 的根,用三個函數(shù)分別求當b-4ac大于0,等于0和小于0時的根,并輸出結果。從主函數(shù)輸入a、b、c的值。(2)寫一個判素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否為素數(shù)的信息。(3)編寫一函數(shù),由實參傳遞一個字符串,統(tǒng)計此字符串中字母、數(shù)字、空格和其它字符的個數(shù),在主函數(shù)中輸入字符串以及輸出上述的結果。(4)輸入10個學生5門課程的成績,分別用函數(shù)求:(1)每個學生平均分;(2)每門課的平均分;(5)用遞歸法求n階勒讓德多項式的值,遞歸公式為 (6)寫一函數(shù),輸入一個十六進制數(shù),輸出相應的十進制數(shù)。(7)定義一個帶參數(shù)的宏,使兩個參數(shù)的值互換,并寫出程序,輸入兩個數(shù)作為使用宏時的實參。輸出已交換后的兩個值。(8)輸入兩個整數(shù),求它們相除的余數(shù)。用帶參的宏來實現(xiàn),編程序。注:該實驗可用4學時。實驗九、十 指 針一、 目的要求1 掌握指針的概念,會定義和使用指針變量;2 掌握指針的運算;3 學會使用數(shù)組的指針和指向數(shù)組的指針變量;4 學會使用字符串的指針和指向字符串的指針變量;5 了解指向函數(shù)的指針變量;6 了解指向指針的指針的概念及其使用方法。二、 實驗內(nèi)容1、有如下程序。 #include main() char ch25=“1213”,“8421”,*p2; int i,j,s=0; for(i=0;i2;i+) pi= ; for(i=0;i0&pijS2,則輸出正值;如S1S2則輸出負值。兩個字符串S2、S2由main 函數(shù)輸入,strcmp函數(shù)的返回值也在main 函數(shù)輸出。(9)用指向指針的指針的方法對n個整數(shù)排序并輸出。要求將排序單獨寫成一個函數(shù)。n和整數(shù)在主函數(shù)中輸入。最后在主函數(shù)中輸出。注:該實驗可用4學時。實驗十一 結構體和共用體一、 目的要求1 掌握結構體類型變量的定義和使用;2 掌握結構體類型數(shù)組的概念和應用;3 掌握鏈表的概念,初步學會對鏈表進行操作;4 掌握共用體的概念與使用。二、 實驗內(nèi)容1、分析并驗證以下程序的結果。 #include struct student long num; char *name; float score; stu5= 930001,“Wang”,80.5, 930002,“Zhang”,79.6, 930003, “Li”,95.3, 930004, “Zhao”,84.5, 930005, “Huang”,91.2 ; void main(void) int i; struct student *sp; sp=stu; for(i=0;iscore=90.0) printf(“%10ld%10s%6.1fn”,sp-num,sp-name,sp-score); 具體要求: 輸入調(diào)試上述源程序,直到無錯誤為止; 對源程序進行編譯,連接,運行; 寫出程序運行結果。2、編程并上機調(diào)試運行。(1)有5個學生,每個學生的數(shù)據(jù)包括學號、姓名、三門課的成績,從鍵盤輸入 個學生數(shù)據(jù),要求打印出三門課總平均成績,以及最高分的學生數(shù)據(jù)(包括學號、姓名、三門課的成績、平均分數(shù))。 要求用一個input函數(shù)輸入5個學生數(shù)據(jù);用一個average函數(shù)求總平均分;max函數(shù)找出最高分學生數(shù)據(jù);總平均分和最高分的學生的數(shù)據(jù)都在住函數(shù)中輸出。(2)13個人圍成一圈,從第一個人開始順序報號1、2、3。凡報到“3”者退出圈子,找出最后留在圈子中的人原來的序號。(3)輸入和運行以下程序:union dataint I2;float a;long b;char c4;main( )union data u;scanf(“%d,%d”,&u.i0,&u.i1);printf(“i0=%d,i1=%dna=%fnb=%ldnc0=%c,c1=%c,c2=%c, c3=%cn”,u.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);輸入零個整數(shù)10000、20000給u.i0和u.i1。分析運行結果。然后將scanf語句改為: scanf(“%ld”,&u.b);輸入60000給b。分析運行結果。(4).建立一個鏈表,每個節(jié)點包括:學號、姓名、性別、年齡。輸入一個年齡,如果鏈表中的節(jié)點所包含的年齡等于此年齡,則將此節(jié)點刪去。實驗十二 位運算和文件一、 目的要求1 加深對二進制的認識;2 理解位運算的概念,掌握各種位運

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論