实验中的程序参考复习资料.docx

上传人:b****5 文档编号:5572234 上传时间:2022-12-27 格式:DOCX 页数:32 大小:35.22KB
下载 相关 举报
实验中的程序参考复习资料.docx_第1页
第1页 / 共32页
实验中的程序参考复习资料.docx_第2页
第2页 / 共32页
实验中的程序参考复习资料.docx_第3页
第3页 / 共32页
实验中的程序参考复习资料.docx_第4页
第4页 / 共32页
实验中的程序参考复习资料.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

实验中的程序参考复习资料.docx

《实验中的程序参考复习资料.docx》由会员分享,可在线阅读,更多相关《实验中的程序参考复习资料.docx(32页珍藏版)》请在冰豆网上搜索。

实验中的程序参考复习资料.docx

实验中的程序参考复习资料

实验三:

顺序结构程序设计

1.编写一个程序,输入一个字符,输出它的前后邻居

#include

voidmain()

{charc1;

printf(“Inputacharacter:

”);

c1=getchar();

putchar(c1-1);

putchar(‘\t’);

putchar(c1+1);

putchar(‘\n’);}

2.编写一个程序,求三角形的面积。

其中,a、b、c为三角形的三条边,s=(a+b+c)/2,面积为area=

#include

#include

voidmain()

{floata,b,c,s,area;

printf(“Inputa,b,c:

”);

scanf(“%f,%f,%f”,&a,&b,&c);

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“area=%f\n”,area);}

3.编写一个程序,求摄氏温度。

公式:

c=5*(f-32)/9

#include

voidmain()

{floatf,c;

printf(“Inputf:

”);

scanf(“%f”,&f);

c=5*(f-32)/9;

printf(“c=%f\n”,c);}

4.设计一个程序,输入正五边形的边长的长度a,按公式

计算该五边形外接圆的半径。

#include

#include

voidmain()

{floatr,a;

printf(“Inputa:

”);

scanf(“%f”,&a);

r=a*sqrt((10+2*sqrt(5))/5)/2;

printf(“r=%0.2f\n”,r);}

5.设计程序,输入空间中两点的坐标x1,y1,z1和x2,y2,z2计算两点之间的距离。

#include

#include

voidmain()

{floatx1,x2,y1,y2,z1,z2,d;

printf(“Inputx1,y1,z1,x2,y2,z2:

”);

scanf(“%f,%f,%f,%f,%f,%f”,&x1,&y1,&z1,&x2,&y2,&z2);

d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));

printf(“d=%f\n”,z);

}

6.编写一个C程序,输入一个3位整数,分别输出百位数、十位数和个位数。

#include

voidmain()

{intx,a,b,c;

printf(“Inputainteger:

”);

scanf(“%3d”,&x);

a=x/100;b=x/10%10;c=x%10;

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

实验四选择结构程序设计

1.编写程序输入四个整数,要求输出最小的一个。

#include

voidmain()

{inta,b,c,d,min;

printf(“Inputa,b,c,d:

”);

scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);

min=a;

if(min>b)min=b;

if(min>c)min=c;

if(min>d)min=d;

printf(“min=%d\n”,min);}

2.编写程序判断体重。

体指数(t)=体重(w)/身高2(h)其中,t<18时体重偏轻,18<=t<25时体重正常,25<=t<27时体重偏重,t>=27时为肥胖。

#include

voidmain()

{floatt,w,h;

printf(“Inputw,h:

”);

scanf(“%f,%f”,&w,&h);

t=w/(h*h);

if(t<18)printf(“taiqingle\n”);

elseif(t<25)printf(“zhengchang\n”);

elseif(t<27)printf(“pianzhong\n”);

elseprintf(“feipang\n”);}

3.分别用if…else…if语句和switch语句编写书P58⑸

#include

voidmain()

{floatdan_jia,zong_e,ze_kou;

intn;

printf(“Inputn:

”);

scanf(“%d”,&n);

if(n<1)printf(“Inputerror!

\n”);

elseif(n<=5)ze_kou=n-1;

elseif(n<=20)ze_kou=4+(n-5)*0.4;

elseif(n<=50)ze_kou=10+(n-20)*0.15;

elseif(n<=300)ze_kou=14.5+(n-50)*0.03;

elseze_kou=22;

dan_jia=10*ze_kou;

zong_e=dan_jia*n;

printf(“dan_jia=%f,zong_e=%f\n”,dan_jia,zong_e);}

#include

voidmain()

{floatdan_jia,zong_e,ze_kou;

intn,m;

printf(“Inputn:

”);

scanf(“%d”,&n);

m=(n-1)/5;

4.有一人过独木桥,到桥中间时看见前面有狼,后面有虎,底下是深深的河水。

编程写出此人的最后结局。

#include

voidmain()

{charchoice;

printf(“Inputyourchoice(aorborc)”);

scanf(“%c”,&choice);

if(choice==’a’)printf(“beilangchile\n”);

elseif(choice==’b’)printf(“beihuchile\n”);

elseif(choice==’c’)printf(“shuaisile\n”);

elseprintf(“Inputerror!

\n”);}

5.从键盘输入3个数,判断能否构成三角形,若能构成三角形,计算以这3个数为边长的三角形面积;否则,输出相应的提示信息。

#include

#include

voidmain()

{floata,b,c,s,area;

printf(“Inputa,b,c:

”);

scanf(“%f,%f,%f”,&a,&b,&c);

if(a+b>c&&b+c>a&&a+c>b)

{s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“area=%f\n”,area);

}

elseprintf(“bunenggouchengsanjiaoxin\n”);

}

6.编写一个程序,输入某学生成绩,若成绩在85分以上,则输出“VeryGood”,若成绩在60分到85分之间,则输出“Good”,若成绩低于60分,则输出“Bad”。

#include

voidmain()

{floatgrade;

printf(“Inputastudent’grade:

”);

scanf(“%f”,&grade);

if(grade<0||grade>100)printf(“Inputerror!

\n”);

elseif(grade<60)printf(“Bad\n”);

elseif(grade<85)printf(“Good\n”);

elseprintf(“VeryGood\n”);

}

7.编写程序,读入一个年份和月份,打印出该月有多少天。

#include

voidmain()

{intyear,month,days;

printf(“Inputyearandmonth:

”);

scanf(“%d,%d”,&year,&month);

if(year%4==0&&year%100!

=0||year%400==0)

days=29;

elsedays=28;

switch(month)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;break;

case4:

case6:

case9:

case11:

days=30;

}

printf(“days=%d\n”,days);}

实验五循环结构程序设计

1.请分别用while语句和do-while语句编程求的值。

#include

voidmain()

{floatsum=0;

intk=1;

while(k<=100)

{sum=sum+k;k++;}

k=1;

while(k<=10)

{sum=sum+1.0/k;k++;}

printf(“sum=%f\n”,sum);}

#include

voidmain()

{floatsum=0;

intk=1;

do

{sum=sum+k;k++;}while(k<=100);

k=1;

do

{sum=sum+1.0/k;k++;}while(k<=10);

printf(“sum=%f\n”,sum);}

2.请分别用while语句和do-while语句编程求12/(1+1)+22/(2+1)+32/(3+1)+…+n2/(n+1),n由键盘输入。

#include

voidmain()

{intn,i;

floatsum=0;

printf(“Inputn:

”);

scanf(“%d”,&n);

i=1;

while(i<=n)

{sum=sum+i*i/(i+1.0);i++;}

Printf(“sum=%f\n”,sum);}

#include

voidmain()

{intn,i;

floatsum=0;

printf(“Inputn:

”);

scanf(“%d”,&n);

i=1;

do

{sum=sum+i*i/(i+1.0);i++;}while(i<=n);

Printf(“sum=%f\n”,sum);}

3.输入一个字符串,将其中的空格和数字删除后输出。

#include

voidmain()

{charch;

While((ch=getchar())!

=’\n’)

if(!

(ch==‘’||ch>=‘0’&&ch<=‘9’))

putchar(ch);

putchar(‘\n’);}

4.编写程序求出满足不等式1+2+3+…+n<500的最大n值及总和。

#include

voidmain()

{intsum=0,n=0;

while(sum<500)

{n++;sum=sum+n;}

sum=sum-n;

n--;}

printf(“sum=%d,n=%d\n”,sum,n);}

5.编程实现求数列1/2,3/4,5/8,7/16…的所有大于等于0.000001的数据项之和,显示输出计算结果。

#include

voidmain()

{floatm,n,sum=0;

m=1;n=2;

while(m/n>=0.000001)

{sum=sum+m/n;m+=2;n*=2;}

printf(“sum=%f\n”,sum);}

6.编程找出1000以内的完数。

所谓完数是它等于它的因子之和。

如:

6=1+2+3。

#include

voidmain()

{intm,s,i;

for(m=2;m<1000;m++)

{s=0;

for(i=1;i

if(s==m)

{printf(“%d是一个完数。

它的因子是:

”,m);

for(i=1;i

if(m%i==0)printf(“%d”,i);

printf(“\n”);}

}}

实验六一维数组的使用

1.用筛法求100以内的素数。

#include

#defineN100

voidmain()

{intsushu[N]={0},k,n;

for(j=1;j

sushu[j]=j+1;

for(j=2;j

for(n=2;n<=sushu[j]/2;n++)

if(j%n==0)sushu[j]=0;

for(j=0;j

if(sushu[j]!

=0)

printf(“%3d”,sushu[j]);

printf(“\n”);}

2.编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出最高分和最低分。

#include

#include

#defineN100

voidmain()

{floatgrade[N],aver,stdev,max,min;

intm,k;

printf(“Inputm:

”);

scanf(“%d”,&m);

for(k=0;k

{printf(“Inputthe%d’sgrade:

”,k+1);

scanf(“%f”,&grade[k]);}

max=min=grade[0];aver=0;

for(k=0;k

{aver=aver+grade[k];

if(max

if(min>grade[k])min=grade[k];

}

aver=aver/m;stdev=0;

for(k=0;k

stdev=stdev+(grade[k]-aver)*(grade[k]-aver);

stdev=sqrt(stdev/m);

printf(“aver=%f,stdev=%f,max=%f,min=%f\n”,aver,stdev,max,min);}

3.编写一个程序,让计算机产生20个随机数,用选择法排序。

#include

#include

#defineN20

voidmain()

{inta[N],i,j,p,temp;

randomize();

for(i=0;i

a[i]=random(100);

printf(“Beforsorted:

”);

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);}

for(i=0;i

{p=i;

for(j=i+1;j

if(a[p]>a[j])p=j;

if(p!

=i)

{temp=a[p];a[p]=a[i];a[i]=temp;}

}

printf(“Aftersorted:

”);

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);}

4.根据上题的内容1,编一程序在数组中查找一个数。

要求:

⑴若有该数,则输出该数,否则输出找不到的信息;

⑵用顺序查找实现;

⑶用折半查找实现。

顺序查找:

#include

#include

#defineN20

voidmain()

{inta[N],i,j,p,temp,x,f;

randomize();

for(i=0;i

a[i]=random(100);

for(i=0;i

{p=i;

for(j=i+1;j

if(a[p]>a[j])p=j;

if(p!

=i)

{temp=a[p];a[p]=a[i];a[i]=temp;}

}

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

printf(“Inputyouwanttofind:

”);

scanf(“%d”,&x);f=0;

for(i=0;i

if(a[i]==x){f=1;break;}

if(f)printf(“Found!

Thenumberis:

%d\n”,x);

elseprintf(“Notfound.\n”);

}

折半查找:

#include

#include

#defineN20

voidmain()

{inta[N],i,j,p,temp;

intx,top,mid,bot,f;

randomize();

for(i=0;i

a[i]=random(100);

for(i=0;i

{p=i;

for(j=i+1;j

if(a[p]>a[j])p=j;

if(p!

=i)

{temp=a[p];a[p]=a[i];a[i]=temp;}

}

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

printf(“Inputyouwanttofind:

”);

scanf(“%d”,&x);

f=0;top=0;bot=N-1;

while(top

{mid=(top+bot)/2;

if(x==a[mid]){f=1;break;}

elseif(x

elsetop=mid+1;

}

if(f)printf(“Found!

Thenumberis:

%d\n”,x);

elseprintf(“Notfound.\n”);

}

5.根据实验内容3,编写一程序删除指定的一个数。

#include

#include

#defineN20

voidmain()

{inta[N],i,j,p,temp;

intx;

randomize();

for(i=0;i

a[i]=random(100);

for(i=0;i

{p=i;

for(j=i+1;j

if(a[p]>a[j])p=j;

if(p!

=i)

{temp=a[p];a[p]=a[i];a[i]=temp;}

}

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

printf(“Inputyouwanttodelete:

”);

scanf(“%d”,&x);

for(i=0;i

if(x==a[i])break;

for(;i

a[i]=a[i+1];

a[i]=0;

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

}

6.根据实验内容3,编写一程序插入一个指定的数,插入后,数组仍然有序。

#include

#include

#defineN20

voidmain()

{inta[N+1],i,j,p,temp;

intx,f;

randomize();

for(i=0;i

a[i]=random(100);

for(i=0;i

{p=i;

for(j=i+1;j

if(a[p]>a[j])p=j;

if(p!

=i)

{temp=a[p];a[p]=a[i];a[i]=temp;}

}

for(i=0;i

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

printf(“Inputyouwanttoinsert:

”);

scanf(“%d”,&x);

for(i=0;x

for(f=N;f>i;f--)

a[f]=a[f-1];

a[i]=x;

for(i=0;i<=N;i++)

{if(i%10==0)printf(“\n”);

printf(“%3d”,a[i]);}

printf(“\n”);

}

实验七二维数组的使用

1.找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。

也可能没有“鞍点”。

要求用随机函数生成数据。

#include

#include

#defineN5

voidmain()

{inta[N][N]={0},i,j,k,p,q;

randomize();

for(i=0;i

for(j=0;j

a[i][j]=random(100);

for(i=0;i

{p=0;

for(j=1;j

if(a[i][p]

q=0;

for(k=1;k

if(a[q][p]>a[k][p])q=k;

if(i==q)

printf(“a[%d][%d]=%d\n”,i,q,a[i][q]);

}}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1