c語言程式設計實驗報告

c語言程式設計實驗報告

  一、報告的特點

  1、內容的彙報性:一切報告都是下級向上級機關或業務主管部門彙報工作,讓上級機關掌握基本情況並及時對自己的工作進行指導,所以,彙報性是“報告”的一個大特點。

  2、語言的陳述性:因為報告具有彙報性,是向上級講述做了什麼工作,或工作是怎樣做的,有什麼情況、經驗、體會,存在什麼問題,今後有什麼打算,對領導有什麼意見、建議,所以行文上一般都使用敘述方法,即陳述其事,而不是像請示那樣採用祈使、請求等法。

  3、行文的單向性:報告是下級機關向上級機關行文,是為上級機關進行宏觀領導提供依據,一般不需要受文機關的批覆,屬於單向行文。

  4、成文的事後性:多數報告都是在事情做完或發生後,向上級機關作出彙報,是事後或事中行文。

  5、雙向的溝通性:報告雖不需批覆,卻是下級機關以此取得上級機關的支援指導的橋樑;同時上級機關也能透過報告獲得資訊,瞭解下情,報告成為上級機關決策指導和協調工作的依據。

  二、c語言程式設計實驗報告

  在現實生活中,報告的用途越來越大,報告根據用途的不同也有著不同的型別。你知道怎樣寫報告才能寫的好嗎?以下是小編整理的c語言程式設計實驗報告,僅供參考,大家一起來看看吧。

  c語言程式設計實驗報告1

  一、實驗目的:

  1、掌握C語言的`資料型別和變數的宣告。

  2、掌握不同型別資料之間賦值的規律。

  3、掌握C語言的運算子和表示式的使用。

  4、熟悉C程式的編輯、編譯、連線和執行的過程。

  二、實驗內容:

  ①輸人程式: #includevoid main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }

  ②執行此程式並分析結果

  按習題4. 8要求編寫程式 題目為: 設圓半徑r=l. 5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。 用scanf輸人資料,輸出計算結果口輸出時要有文字說明,取小數點後兩位數字。

  程式:

  三、實驗步驟:

  ①輸人程式:

  #include

  void main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }

  ②執行此程式並分析結果。

  預計結果:

  a=61,b=62

  c1=a,c2=b

  d=``3.56,e=`-6.87

  f=````3157.890121,g=```````0.123456

  m=50000,n=-60000

  p=32768,q=40000(`代表空格)

  結果:

  g的輸出看來是四捨五入了。

  ③在此基礎上,將程式第9~14行改為:

  a=61;b=62;

  c1=a;c2=b;

  f=3157.890121;g=0.123456789;

  d=f;e=g;

  p=a=m=50000;q=b=n=-60000;

  執行程式,分析結果。

  p=a=m=50000;q=b=n=-60000;這兩條語句將p、a、m的值和q、b、n的值都重新賦了相應的新值。除m、n外都是整型、無符號整型或字元型,因此輸出會按資料型別強制擷取,因此得到的值會不盡相同,但可以從理論上做出推測,但由於編譯系統的不同,真正得到的結果也可能不盡相同。

  ④改用scanf函式輸人資料而不用賦值語句,scanf函式如下:

  scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,%p,%q);

  輸入的資料如下:

  分析執行結果。

  (說明:lf和ld格式符分別用於輸人double型和long型資料)

  ⑤在④的基礎上將printf語句改為:

  printf("a=%d,b=%d c1=%c,c2=%c d=%15.6f,e=%15.6f ",a,b,c1,c2,d,e);

  printf("f=%f,g=%f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q);

  執行程式:

  ⑥將p、q改用%o格式符輸出。

  ⑦將scanf函式中的%1f和%ld改為%f和%d,執行程式並觀察分析結果。

  出現錯誤,提示為:浮點錯誤:超出範圍。程式異常中止。 (2)按習題4. 8要求編寫程式

  題目為:

  設圓半徑r=l. 5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。 用scanf輸人資料,輸出計算結果口輸出時要有文字說明,取小數點後兩位數字。 程式:

  #include

  void main()

  {

  float h,r,s,sq,vq,vz;

  float pi=3.1415926;

  printf("Please input the circinal r, and the cylindrical h:");

  scanf("%f,%f",&r,&h);

  l=2*pi*r;

  sq=4*pi*r*r;

  vq=4.0/3.0*pi*r*r*r;

  vz=pi*r*r*h;

  printf("circinal girth is: l=%6.2f ",l);

  printf("circinal area is: s=%6.2f ",s);

  printf("sphere surface area is: sq=%6.2f ",sq);

  printf("sphere cubage is: vq=%6.2f ",vq);

  printf("cylindrical cubage is: vz=%6.2f ",vz);

  }

  (3)程式設計序,用getchar函式讀人兩個字元給c1 ,c2,然後分別用putchar函式和printf輸出這兩個字元。 上機執行程式,比較用printf和putchar函式輸出字元的特點。 程式如下: #includevoid main() { char c1,c2; printf("Please input tow letters: "); c1=get); c2=get); printf("Putchar is: "); putc1); putc2); printf(" "); printf("Printf is: "); printf("%c %c ",c1,c2);

  }

  可見有putchar輸出的結果是一個字元一個字元順序輸出的。每個putchar函式只能輸出一個字元,且只能輸出字元,而printf可以輸出多個數據,且為任意類

  四、實驗心得(體會):

  透過本次C語言上機實驗,我對順序結構程式設計有了一定的瞭解。通過幾個例題,我對順序結構中scanf和printf語句的基本實用情況有了一定的理解。我相信這些都為後來的程式設計打下基礎。對C語言學習,我會更加努力。

  c語言程式設計實驗報告2

  實驗名稱 計算出1000以內10個最大素數之和

  實驗目的

  1、熟練掌握if、if…else、if…else if語句和witch語句格式及使用方法,掌握if語句中的巢狀關係和匹配原則,利用if語句和switch語句實現分支選擇結構。

  2、熟練掌握while語句、do…while語句和for語句格式及使用方法,掌握三種迴圈控制語句的迴圈過程以及迴圈結構的巢狀,利用迴圈語句實現迴圈結構。

  3、掌握簡單、常用的演算法,並在程式設計過程中體驗各種演算法的程式設計技巧。進一步學習除錯程式,掌握語法錯誤和邏輯錯誤的檢查方法。

  實驗內容

  計算並輸出1000以內最大的10個素數以及它們的和。

  要求:

  在程式內部加必要的註釋。

  由於偶數不是素數,可以不考慮對偶數的處理。

  雖然在1000以內的素數超過10個,但是要對1000以內不夠10個素數的情況進行處理。

  輸出形式為:素數1+素數2+素數3+…+素數10=總和值。

  演算法描述流程圖

  main函式:

  判斷素數:

  源程式

  #include

  #include

  int sushu(int n)/* 判斷素數的函式 */

  {

  int t,i;

  t=sqrt(n);

  for(i=2;i<=t;i++)

  if(n%i==0)/* 如果不是素數,返回 0 */

  return 0;

  return n;/* 如果是素數,返回該數 */

  }

  void main()

  {

  int i,j=0,n,m=0,a[1000],x;

  /*clrscr();*/

  printf("please input a number form 1 to 1000:");

  scanf("%d",&x);

  if(x==2)/* x=2時的處理 */

  printf("%dn",x);

  else if(x<=1) /* x在1~1000範圍外時的處理 */

  printf("error!n");

  else

  {

  if(x%2==0)/* x為偶數時,把x變為奇數 */

  x--;

  for(i=x;i>1;i-=2)/* x為奇數時,做函式計算 */

  {

  n=sushu(i); /* 做判斷素數的函式呼叫 */

  if(n!=0)/* 對素數的處理 */

  {

  a[j]=n;/* 把素數由大至小存入陣列a[ ]中 */

  j++;

  if(j<11)

  m+=n; /* 統計前10個素數之和 */

  }

  }

  if(j<10)/* 當素數個數小於10個時,結果輸出 */

  {

  for(i=0;i

  {

  n=a[i];

  printf("%d",n);

  printf("+");

  }

  printf("2=");

  printf("%dn",m+2);

  }

  else for(i=0;i<10;i++)/* 當素數個數大於等於10個時,結果輸出 */

  {

  n=a[i];

  printf("%d",n);

  if(i<9)

  printf("+");

  else

  {

  printf("=");

  printf("%dn",m);

  }

  }

  }

  }

  測試資料

  分別輸入1000、100、10測試。

  執行結果

  出現問題及解決方法

  當素數個數小於10時的處理不夠完善,考慮不夠周全。把“+2”的處理做的太勉強。

  程式過大,不夠精簡,無用文字太多。

  學習耐心與細心不足,如scanf(“%d”,&n);中的“&”經常忘記。

  程式設計思想不夠發散,例如如何判斷素數,只能想出2種方式(其中1種為參考教科書上內容);在今後學習中應更多的動腦,綜合運用所學。

  基本功不夠,如清屏clrscr()等函式用的不好,有時同樣的問題多次犯,給實驗課老師帶來很大的麻煩。這說明我的知識不夠廣,有很多有用但不做考試要求的書中內容沒有學好,認識程度不夠深刻。就算以後c語言這門課程結束後,也應多看相關東西,多上機練習,才能真正從本質上提高自己。

  物理實驗報告 ·化學實驗報告 ·生物實驗報告 ·實驗報告格式 ·實驗報告模板

  知識不夠廣泛,如vc++6.0等程式,自己試了好一陣也不會用;說明我電腦水平還是不夠,自學能力不夠。已會的東西掌握的還是不夠好。

  實驗心得

  透過本次c語言上機實驗,我對這個介於人類與非人類之間

  的計算機程式語言有了一定的體驗。其間開心過、鬱悶過、無奈過、彷徨過……隨著實驗的勝利成功與實驗報告的勝利完成,有點微微的自豪感使人難忘。感謝高克寧老師的高標準、嚴要求,感謝實驗課上小老師們的耐心指點,也感謝我在實驗中經歷過的點點滴滴……伴隨著學習的深入,我發現高深的東西還有很多很多,等待著我自己去挖掘。對c語言,我會更加努力。

最近訪問