第一篇:大一C語(yǔ)言上機(jī)實(shí)驗(yàn)報(bào)告
C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告
姓名: 班級(jí): 學(xué)號(hào):
實(shí)驗(yàn)內(nèi)容:
編寫(xiě)一個(gè)程序,從鍵盤(pán)輸入任意一個(gè)五位數(shù),把這個(gè)數(shù)值分解為單個(gè)數(shù)字,然后打印出每一個(gè)數(shù)字(每個(gè)數(shù)字之間用三個(gè)空格分開(kāi))。例如用戶(hù)輸入了42339,屏幕輸出結(jié)果為:
【提示】巧妙使用 / 和 % 兩種運(yùn)算符。源代碼: #include
long int num,a,b,c,d,e;
scanf(“%ld”,&num);a=num/10000;b=num%10000/1000;c=num%1000/100;d=num%100/10;e=num%10;printf(“%ld
%ld
%ld
%ld
%ldn”,a,b,c,d,e);}
運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
已知三角形三邊a,b,c,計(jì)算三角形的面積。
注:三角形面積公式為area=[s(s-a)(s-b)(s-c)]的1/2次冪
S=1/2*(a+b+c)源代碼: #include
} scanf(“%lf%lf%lf”,&a,&b,&c);s=(a+b+c)/2;if(a>0 && b>0 && c>0){ area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%lfn”,area);} else printf(“輸入錯(cuò)誤,三角形邊長(zhǎng)不能為負(fù)數(shù)或0n”);運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
輸入圓的半徑,計(jì)算出圓的周長(zhǎng)和面積 源代碼: #include
double r,z,area,pi=3.14159;scanf(“%lf”,&r);if(r>0)
{
z=2*pi*r;area=pow(r,2)*pi;printf(“圓面積為%lf周長(zhǎng)為%lfn”,area,z);return 0;
} } else printf(“輸如錯(cuò)誤,圓的半徑不能為負(fù)數(shù)或0n”);運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
? 體型判斷。按“體指數(shù)”對(duì)肥胖程度進(jìn)行劃分:
體指數(shù)t = 體重w /(身高h(yuǎn))2
(w 單位為公斤,h單位為米)
– 當(dāng)t < 18時(shí),為低體重;
– 當(dāng)t介于18和25之間時(shí),為正常體重; – 當(dāng)t介于25和27之間時(shí),為超重體重; – 當(dāng)t >= 27時(shí),為肥胖。
? 編程從鍵盤(pán)輸入你的身高h(yuǎn)和體重w,根據(jù)給定公式計(jì)算體指數(shù)t,然后判斷你的體重屬于何種類(lèi)型。? 用3種方法編程:
– 算法1:用不帶else子句的if語(yǔ)句編程
– 算法2:用在if子句中嵌入if 語(yǔ)句的形式編程
– 算法3:用在else子句中嵌入if 語(yǔ)句的形式編程
算法1:源代碼: #include
float w,h;double t;scanf(“%f%f”,&h,&w);if(w<=0 || h<=0){
printf(“輸入錯(cuò)誤,身高體重不能為負(fù)數(shù)或0n”);} {
t=w/pow(h,2);
if(t<18){ printf(“低體重n”);
goto loop;
goto loop;
} if(t>=18 && t<25)
{
} if(t>=25 && t<27){
printf(“超重體重n”);
goto loop;} if(t>=27){ printf(“正常體重n”);goto loop;
printf(“肥胖n”);
} }
loop:return 0;} 運(yùn)行結(jié)果:
算法2:源代碼: #include
#include
float w,h;double t;scanf(“%f%f”,&h,&w);if(w<=0 || h<=0){
printf(“輸入錯(cuò)誤,身高體重不能為負(fù)數(shù)或0n”);} { t=w/pow(h,2);if(t<25){
if(t>=18){
} printf(“正常體重n”);goto loop;goto loop;
printf(“低體重n”);}
if(t>=25){
if(t<27){
} printf(“超重體重n”);goto loop;
printf(“肥胖n”);} }
loop:return 0;} 運(yùn)行結(jié)果:
算法3:源代碼: #include
float w,h;double t;scanf(“%f%f”,&h,&w);if(w<=0 || h<=0)printf(“輸入錯(cuò)誤,身高體重不能為負(fù)數(shù)或0n”);else {
} t=w/pow(h,2);if(t<18)printf(“低體重n”);else {
} if(t>=18 && t<25)printf(“正常體重n”);else {
}
if(t>=25 && t<27)
printf(“超重體重n”);else printf(“肥胖n”);return 0;} 運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
編寫(xiě)一個(gè)程序,計(jì)算-32768~+32767之間任意整數(shù)(由鍵盤(pán)輸入)中各位奇數(shù)的平方和。源代碼: #include
} int a,b=0,c=0,i;scanf(“%d”,&a);for(i=0;i<5;i++){ if(a%2!=0){
} a/=10;} printf(“%dn”,b);return 0;c=a%10;b=b+c*c;
運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
設(shè)有一四位數(shù)abcd=(ab+cd)2,編寫(xiě)一個(gè)程序,求a、b、c、d。源代碼: #include
for(num=1000;num<=9999;num++){
a=num/1000;
} 運(yùn)行結(jié)果:
} return 0;b=num%1000/100;c=num%100/10;d=num%10;if(num==pow((10*a+b+10*c+d),2))printf(“a=%db=%dc=%dd=%dn”,a,b,c,d);
實(shí)驗(yàn)內(nèi)容: 雞兔問(wèn)題:雞兔共30只,腳共有90個(gè)。編寫(xiě)一個(gè)程序,求雞、兔各多少只。源代碼: #include
} 運(yùn)行結(jié)果: int x,y;for(x=0;x<=45;x++){
} return 0;for(y=0;y<=22;y++)if(x+y==30 && 2*x+4*y==90)printf(“雞有%d只,兔有%d只n”,x,y);
實(shí)驗(yàn)內(nèi)容:
編寫(xiě)一個(gè)程序,求S值(n由鍵盤(pán)輸入):
(程序檢驗(yàn)參考:
x=6.66,n=8時(shí),s=40.955;x=6.66,n=15時(shí),s=-1.511 源代碼: #include
#include
double jiecheng(int);
double s=0,x=6.66;
} double jiecheng(int x){
} double f;if(x==0||x==1)f=1;int n,i;scanf(“%d”,&n);for(i=1;i<=n;i++){ } printf(“%.3fn”,s);return 0;s=s+pow(-1,i)*pow(x,i)/jiecheng(i);else f=jiecheng(x-1)*x;return f;
運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
編寫(xiě)一個(gè)程序,求前 n 項(xiàng)之和S值,其中 n≥1,x ≠ 0。(n由鍵盤(pán)輸入):
2x
5x
13x
S = ── ── +
──-── +...2x
5x
13x(程序檢驗(yàn)參考:x=6.66,n=8時(shí),s=-16.492;x=6.66,n=15時(shí),s=-28.469)源代碼: #include
int a=1,b=2,n,i,t=0;
double s=0,x;
scanf(“%lf%d”,&x,&n);
if(n>=1)
{
for(i=1;i<=n;i++)
{ if(i%2)
{
s+=pow(-1,i+1)*a/(b*x);
t=a;
a=b;
b=t+b;
}
else
{
s+=pow(-1,i+1)*a*x/b;
t=a;
a=b;
b=t+b;
}
}
printf(“%fn”,s);
} return 0;}
運(yùn)行結(jié)果:
x3x5x7x9x??????,3!5!7!9!
實(shí)驗(yàn)內(nèi)容:
利用泰勒級(jí)數(shù)sin(x)≈
計(jì)算sin(x)的值。要求最后一項(xiàng)的絕對(duì)值小于10-5,并統(tǒng)計(jì)出此時(shí)累加了多少項(xiàng)。
(程序檢驗(yàn)參考:x=6時(shí),sin(x)=-0.279415,count=13)源代碼: #include
double s=0,x;
int i,count=0;scanf(“%lf”,&x);for(i=1;;i+=2){
} s+=pow(-1,count)*pow(x,i)/jiecheng(i);count+=1;if(fabs((pow(x,i)/jiecheng(i)))
} printf(“sin(x)=%f count=%dn”,s,count);return 0;double jiecheng(int i){
} 運(yùn)行結(jié)果: double f;if(i==0||i==1)f=1;else f=jiecheng(i-1)*i;return f;
實(shí)驗(yàn)內(nèi)容:
三色球問(wèn)題。若一個(gè)口袋中放有12個(gè)球,其中有3個(gè)紅色的,3個(gè)白色的,6個(gè)黑色的,從中任取8個(gè)球,問(wèn)共有多少種不同的顏色搭配? 源代碼: #include
int i,j,k,way=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
for(k=0;k<=6;k++)
{
if(i+j+k==8)
way=way+1;
}
}
}
printf(“way=%dn”,way);
return 0;} 運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:編程打印以下圖案
****** ****** ****** ******
源代碼: #include
int i,j;for(j=1;j<=4;j++){
for(i=1;i<=4-j;i++)
} { printf(“ ”);} printf(“******n”);
return 0;} 運(yùn)行結(jié)果:
* *** ***** *******
源代碼: #include
int i,j;for(j=1;j<=4;j++)
{
for(i=1;i<=2*j-1;i++)
} printf(“*”);printf(“n”);return 0;} 運(yùn)行結(jié)果:
*
* * * * * * * * * * * * * * * * * * * *
* * * * 源代碼: #include
int i,j,m,n;for(j=1;j<=7;j++){
if(i<5)
{ } else { m=j-4;n=(15-2*j);m=4-j;n=2*j-1;
}
for(i=1;i<=m;i++)
printf(“ ”);
for(i=1;i<=n;i++)printf(“*”);
printf(“n”);} return 0;} 運(yùn)行結(jié)果:
實(shí)驗(yàn)內(nèi)容:
輸出下三角形乘法九九表--------1 2 3 4 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 源代碼: #include
9n”);
for(j=1;j<=i;j++)
{
printf(“ %d ”,k=i*j);
}
printf(“n”);} return 0;}
運(yùn)行結(jié)果:
第二篇:c語(yǔ)言上機(jī)實(shí)驗(yàn)報(bào)告
C語(yǔ)言上機(jī)實(shí)驗(yàn)報(bào)告
2160500146 計(jì)算機(jī)66馬俊松
在本學(xué)期,共進(jìn)行了大約五次上機(jī),完成了數(shù)十道編程題,現(xiàn)將在完成作業(yè)過(guò)程中所遇到的問(wèn)題以及解決過(guò)程進(jìn)行如下幾點(diǎn)總結(jié),并提出幾點(diǎn)建議。
1.在剛開(kāi)始那幾次做編程作業(yè)時(shí),經(jīng)常因?yàn)橹皇禽敵鰰r(shí)的格式不符合moodle上的要求而的零分,因而不斷修改,浪費(fèi)大量時(shí)間,希望今后moodle網(wǎng)站能在這一點(diǎn)上做出改進(jìn)(如果過(guò)程正確而只是輸出格式錯(cuò)誤,可以不必給零分)。比如下面幾個(gè)題:
2.在做6.1題(找出一句話中最長(zhǎng)的子字符串)的過(guò)程中,因?yàn)樽址麛?shù)組的知識(shí)未掌握牢固,在以下幾個(gè)方面卡了比較久:
①:字符串在輸入時(shí),若用scanf(”%s”,a),則只會(huì)得到第一個(gè)單詞;若用for(i=1;i<=n;i++)scanf(“%c”,a[i]),則循環(huán)會(huì)一直持續(xù)知道輸入n個(gè)字符;若希望將整句話輸入,應(yīng)用gets(a);
②:將”n”,”