C语言程序大学学习的程序均有.docx
- 文档编号:9553212
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:123
- 大小:36.36KB
C语言程序大学学习的程序均有.docx
《C语言程序大学学习的程序均有.docx》由会员分享,可在线阅读,更多相关《C语言程序大学学习的程序均有.docx(123页珍藏版)》请在冰豆网上搜索。
C语言程序大学学习的程序均有
一:
顺序结构
实验一顺序结构程序设计
4-1、求半径为10的圆面积。
#include"stdio.h"
main()
{
floatr,s;
printf("\nr:
");
scanf("%f",&r);
s=3.14*r*r;
printf("s=%.2f",s);
}
4-2、华氏温度和摄氏温度的转换(f=9/5*c+32)
[A]摄氏==>华氏
#include"stdio.h"
main()
{
floatc,h;
printf("\nHuaShi:
");
scanf("%f",&h);
c=(h-32)*5/9;
printf("SheShi:
%.2f",c);
}
[B]华氏==>摄氏
#include"stdio.h"
main()
{
floatc,f;
printf("\nHuaShi:
");
scanf("%f",&f);
c=(f-32)*5/9;
printf("SheShi:
%.2f",c);
}
4-3、已知并联电路的两个分电阻,求总电阻。
#include"stdio.h"
main()
{
floatr1,r2,r;
printf("\nr1,r2:
");
scanf("%f,%f",&r1,&r2);
r=r1*r2/(r1+r2);
printf("r=%.2f",r);
}
4-4、已知三角形两边及夹角的角度,求三角形的面积。
#include"stdio.h"
#include"math.h"
#definepi3.1415926
main()
{
floata,b,c,s;
printf("\na,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);
s=a*b*sin(c*pi/180)/2;
printf("s=%.2f",s);
}
4-5、输入一个百位整数,反序输出。
#include"stdio.h"
main()
{
intx,y,gw,sw,bw;
printf("\nx:
");
scanf("%d",&x);
bw=x/100;
sw=(x/10)%10;
gw=x%10;
y=gw*100+sw*10+bw;
printf("%d",y);
}
4-6、交换两个变量中的值。
[?
方法1?
]
#include"stdio.h"
main()
{
inta=1,b=2,t;
t=a;a=b;b=t;
printf("\na=%d,b=%d",a,b);
}
[?
方法2?
]
#include"stdio.h"
main()
{
inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("\na=%d,b=%d",a,b);
}
二:
选择结构
实验二选择结构程序设计
5-1、求半径为10的圆面积。
(if结构)
#include"stdio.h"
main()
{
floatr,s;
printf("\nr:
");
scanf("%f",&r);
if(r>0)
{
s=3.14*r*r;
printf("s=%.2f",s);
}
else
printf("rwrong!
");
}
5-2、已知三角形的三边,求其面积。
(if结构)
#include"stdio.h"
#include"math.h"
main()
{
floata,b,c,t,s;
printf("\na,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);
if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b)
{
t=(a+b+c)/2;
s=sqrt(t*(t-a)*(t-b)*(t-c));
printf("s=%.2f",s);
}
else
printf("wrong!
");
}
5-3、求并联电路的总电阻。
要求可以判断0或负电阻的错误。
#include"stdio.h"
main()
{
floatr1,r2,r;
printf("\nr1,r2:
");
scanf("%f,%f",&r1,&r2);
if(r1>0&&r2>0)
{
r=r1*r2/(r1+r2);
printf("r=%.2f",r);
}
else
if(r1<0||r2<0)
printf("-error");
else
printf("0error");
}
5-4、输入一个三位整数,反序输出。
(if结构)
#include"stdio.h"
main()
{
intx,y,gw,sw,bw;
printf("\nx:
");
scanf("%d",&x);
if(x>=100&&x<1000)
{
if(x%10!
=0)
{
bw=x/100;
sw=(x/10)%10;
gw=x%10;
y=gw*100+sw*10+bw;
printf("%d",y);
}
else
printf("wrong0");
}
else
printf("outrange!
");
}
5-5、求两个数的大数。
[?
方法1?
]
#include"stdio.h"
main()
{
inta,b,c;
printf("\na,b:
");
scanf("%d,%d",&a,&b);
if(a>b)
c=a;
else
c=b;
printf("c=%d",c);
}
[?
方法2?
]
#include"stdio.h"
main()
{
inta,b,c;
printf("\na,b:
");
scanf("%d,%d",&a,&b);
c=a;
if(b>a)
c=b;
printf("c=%d",c);
}
5-6、输入三个数,降序输出。
#include"stdio.h"
main()
{
inta,b,c,t;
printf("\na,b,c:
");
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(a if(b printf("%d,%d,%d",a,b,c); } 5-7、根据重量求运输费用(用三种方法)。 [? 方法1? ]并列单分支 #include"stdio.h" main() { floatw,p; printf("\nw: "); scanf("%f",&w); if(w<=0) printf("weighterror"); if(w>0&&w<=20) {p=2*w;printf("p=%f",p);} if(w>20) {p=2*20+(w-20)*3;printf("p=%f",p);} } [? 方法2? ]分支嵌套 #include"stdio.h" main() { floatw,p; printf("\nw: "); scanf("%f",&w); if(w<=0) printf("weighterror"); else { if(w<=20) p=2*w; else p=2*20+(w-20)*3; printf("p=%f",p); } } [? 方法3? ]阶梯分支 #include"stdio.h" main() { floatw,p; printf("\nw: "); scanf("%f",&w); if(w>20) { p=2*20+(w-20)*3; printf("p=%f",p); } elseif(w>0) { p=2*w; printf("p=%f",p); } else printf("weighterror"); } 5-8、将百分制转化为五分制。 #include"stdio.h" main() { floatfs,x; printf("\nfs: "); scanf("%f",&fs); if(fs>=0&&fs<=100) switch((int)(fs/10)) { case10: case9: printf("A");break; case8: printf("B");break; case7: printf("C");break; case6: printf("D");break; case5: case4: case3: case2: case1: case0: printf("E"); } else printf("Outrange"); } 5-9、输入一个日期,判别该日期为当年的第几天。 #include"stdio.h" main() { intyear,month,day,s; printf("\nyear,month,day: "); scanf("%d,%d,%d",&year,&month,&day); s=day; switch(month-1) { case11: s=s+30; case10: s=s+31; case9: s=s+30; case8: s=s+31; case7: s=s+31; case6: s=s+30; case5: s=s+31; case4: s=s+30; case3: s=s+31; case2: if((year%4==0&&year%100! =0)||year%400==0) s=s+29; else s=s+28; case1: s=s+31; } printf("\ns=%d",s); } 三: 循环结构 实验三、通项数列、图形、递推数列 1、求s=1+3+5+7+9+...+99的和。 ? 方法1: 通项法 #include"stdio.h" main() { inti,s; s=0; for(i=1;i<=50;i++) s=s+(2*i-1); printf("\ns=%d",s); } ? 方法2: 递推法 #include"stdio.h" main() { inti,s,t; s=0;t=1; for(i=1;i<=50;i++) { s=s+t; t=t+2; } printf("\ns=%d",s); } 2、求s=1-1/2+1/3-1/4+...,共50项的和。 ? 方法1: 通项法 #include"stdio.h" main() { inti; floats,fh; s=0;fh=1; for(i=1;i<=50;i++) { s=s+fh/i; fh=-fh; } printf("\ns=%f",s); } ? 方法2: 递推法 #include"stdio.h" main() { inti; floats,fh,t; s=0;fh=1;t=1; for(i=1;i<=50;i++) { s=s+fh/t; t=t+1; fh=-fh; } printf("\ns=%f",s); } 3、已知pi/4=1-1/3+1/5-1/7+...,当最后一项小于1E-6时求pi的近似值。 ? 方法1: 通项法 #include"stdio.h" main() { longinti; floatfh,s; i=1;s=0;fh=1; while(1.0/(2*i-1)>1e-6) { s=s+fh/(2*i-1); i++;fh=-fh; } printf("\npi=%f",4*s); } ? 方法2: 递推法 #include"stdio.h" main() { floatfh,s,t; s=0;t=1;fh=1; while(1/t>1e-6) { s=s+fh/t; t=t+2;fh=-fh; } printf("\npi=%f",4*s); } 4、求s=1+3+5+7+9+...,一直加到和大于2000时为止,求和在2000以内时的最大项。 ? 方法1: 通项法 #include"stdio.h" main() { ints,i; s=0;i=1; while(s<2000) { s=s+(2*i-1); i++; } printf("\n%d",2*(i-2)-1); } ? 方法2: 递推法 #include"stdio.h" main() { ints,t; s=0;t=1; while(s<2000) { s=s+t; t=t+2; } printf("\nt=%d",t-4); } 5、设计程序求s=1! +2! +3! +...+10! 的和。 ? 方法1: 通项法 #include"stdio.h" main() { inti,j;longs,t; s=0; for(i=1;i<=10;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t; } printf("\ns=%ld",s); } ? 方法2: 递推法 #include"stdio.h" main() { inti;longs,t; s=0;t=1; for(i=1;i<=10;i++) { t=t*i; s=s+t; } printf("\ns=%ld",s); } 6、求s=1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+...前20项和。 #include"stdio.h" main() { inti; floats,t,t1=1,t2=3; t=t1/t2;s=0; for(i=1;i<=20;i++) { s=s+t; t1=t1+1;t2=t2+2; t=t*t1/t2; } printf("\ns=%f",s); } 7、已知e=1+1/1! +1/2! +1/3! +...+1/n! (设有10项),求e的值。 #include"stdio.h" main() { inti;floats,t; s=1;t=1; for(i=1;i<=10;i++) { s=s+1/t; t=t*(i+1); } printf("\ns=%f",s); } 8、已知sin(x)=x-x^3/3! +x^5/5! -x^7/7! +...,求最后一项绝对值小于1e-6为止时的正弦值。 #include"stdio.h" #include"math.h" main() { inti; floats,x,t1,t2; printf("\nx: ");scanf("%f",&x); i=1;s=0;t1=x;t2=1; while(fabs(t1/t2)>=1E-6) { s=s+t1/t2; i++; t1=t1*x*x*(-1); t2=t2*(2*i-1)*(2*i-2); } printf("\ns=%f",s); } 9、求s=2+22+222+2222+22222+222222。 #include"stdio.h" main() { longs,t;inti; i=1;s=0;t=2; while(i<=6) { s=s+t; i++; t=t*10+2; } printf("\ns=%ld",s); } 10、求费波那契数列前20项的和,并输出该数列。 ? 方法1: 平移双项 #include"stdio.h" main() { inti,s,f1,f2; i=1;f1=f2=1;s=0; while(i<=10) { printf("\n%d\n%d",f1,f2); s=s+f1+f2; i++; f1=f1+f2; f2=f2+f1; } printf("\ns=%d",s); } ? 方法2: 平移单项 #include"stdio.h" main() { inti,s,t,f1,f2; f1=f2=1;s=0; for(i=1;i<=20;i++) { printf("\n%d",f1); s=s+f1; t=f1; f1=f2; f2=t+f1; } printf("\ns=%d",s); } 11、求s=2+3/2+5/3+8/5+13/8+21/13+…共20项的和。 #include"stdio.h" main() { inti,fz,fm; floats,t; s=0;fz=2;fm=1; for(i=1;i<=20;i++) { printf("\n%d/%d",fz,fm); s=s+(float)fz/fm; t=fm; fm=fz; fz=t+fm; } printf("\ns=%f",s); } 12、求小牛数列前18项和,并输出该数列。 ? 方法1: 平移三项 #include"stdio.h" main() { inti,f1,f2,f3,s; s=0;f1=f2=f3=1; for(i=1;i<=6;i++) { printf("\n%d\n%d\n%d",f1,f2,f3); s=s+f1+f2+f3; f1=f1+f3; f2=f1+f2; f3=f2+f3; } printf("\ns=%d",s); } ? 方法2: 平移双项 #include"stdio.h" main() { inti,f1,f2,f3,s,t; s=0;f1=f2=f3=1; for(i=1;i<=9;i++) { printf("\n%d\n%d",f1,f2); s=s+f1+f2; t=f2; f2=f1+f3; f1=f3; f3=t+f2; } printf("\ns=%d",s); } ? 方法3: 平移单项 #include"stdio.h" main() { inti,f1,f2,f3,s,t; s=0;f1=f2=f3=1; for(i=1;i<=18;i++) { printf("\n%d",f1); s=s+f1; t=f2; f2=f3; f3=f1+f2; f1=t; } printf("\ns=%d",s); } 13、在屏幕上输出由“*”号组成的n行正三角形。 * *** ***** ******* ********* *********** #include"stdio.h" main() { inti,j,n; printf("\nn=");scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n"); for(j=1;j<=(80-2*i-1)/2;j++)printf(""); for(j=1;j<=2*i-1;j++)printf("*"); } } 14、在屏幕上输出由“*”号组成的8行倒三角形。 *************** ** ** ** ** ** ** * #include"stdio.h" main() { inti,j,n; for(i=1;i<=8;i++) { printf("\n"); for(j=1;j<=10+i;j++)printf(""); for(j=1;j<=16-(2*i-1);j++) if(i==1||j==1||j==16-(2*i-1)) printf("*"); else printf(""); } } 15、输出下面的平行四边形数字阵 12345 23456 34567 45678 56789 #include"stdio.h" main() { inti,j; for(i=1;i<=5;i++) { printf("\n"); for(j=1;j<=2*i;j++)printf(""); for(j=i;j<=i+4;j++) printf("%2d",j); } } 16、输出下面的数字三角形。 1 23 345 4567 56789 #include"stdio.h" main() { inti,j; for(i=1;i<=5;i++) { printf("\n"); for(j=i;j<=2*i-1;j++) printf("%d",j); } } 17、输出下面的数字正三角形。 1 121 12321 1234321 123454321 ... 12345678987654321 #include"stdio.h" main() { inti,j; for(i=1;i<=9;i++) { printf("\n"); for(j=1;j<=10-i;j++)printf(""); for(j=1;j<=2*i-1;j++) if(j<=i) printf("%d",j); else printf("%d",2*i-j); } } 18、在屏幕正中输出n行的字母三角形。 A BC CDE DEFG EFGHI FGHIJK GHIJKLM #include main() { inti,k,m,n,j; printf("n="); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=40-i;j++)printf(""); for(j=1;j<=i;j++)printf("%2c",64+i-1+j); printf("\n"); } } 第6章循环程序设计 (2) 1、九九乘法表 main() { inti,j; for(i=1;i<=9;i++) { printf("\n"); for(j=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 大学 学习
![提示](https://static.bdocx.com/images/bang_tan.gif)