c語言程序設計實驗報告新版多篇
c語言程序設計實驗報告 篇一
實驗名稱 計算出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語言,我會更加努力。
c語言程序設計實驗報告 篇二
一、實驗目的:
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語言學習,我會更加努力。
-
在援青幹部人才代表座談會上的講話
在援青幹部人才代表座談會上的講話(摘要)當前,X正處於歷史上最好的發展時期。這是政治優勢的呈現期,我們堅決落實總書記對X工作重要講話指示批示精神,深化對“三個最大”省情定位和“三個更加重要”戰略地位的認識,充分發揮中國特色社會主義制度優勢,用好對口支援和東...
-
中國古代寓言故事【多篇】
中國古代寓言故事篇一我最近讀了《中國古代寓言故事》,這本書中寫了許多小故事,每個小故事看似很短,很簡單,但都包含了一個個深刻的道理。記憶最深刻的有兩則故事:一、“刻舟求劍”講了一個楚國人坐船渡河,突然,楚國人的寶劍掉到水裏了,別人大叫道:“哎!你的寶劍掉了,還不...
-
經驗做法:黨建引領建強堡壘 夯實基礎助推治理新格局
經驗做法:黨建引領建強堡壘夯實基礎助推治理新格局近年來,街道堅持黨建引領,以夯實基礎、深化創新工作爲着力點,積極構建區域統籌、多方協同、以人爲本的網格化治理服務體系,打通基層治理的“神經末梢”。這種新型的治理模式不僅提升了社區管理的效率和效果,也更好地...
-
黨課講稿:堅定對中國經濟的自信
黨課講稿:堅定對中國經濟的自信2023年中央經濟工作會議強調,“我國經濟回升向好、長期向好的基本趨勢沒有變,要增強信心和底氣”,“唱響中國經濟光明論”。堅定對中國經濟的自信既要把在中國共產黨領導下取得的舉世矚目的經濟建設成就展現給世人,更要理直氣壯地迴應...