文档库 最新最全的文档下载
当前位置:文档库 › 实验中的程序参考答案

实验中的程序参考答案

实验中的程序参考答案
实验中的程序参考答案

.

实验三:顺序结构程序设计

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

#include

void main()

{ char c1;

printf(“Input a character: ”);

c1=getchar();

putchar(c1-1);

putchar(‘\t’);

putchar(c1+1);

putchar(‘\n’); }

2.编写一个程序,求三角形的面积。其中,a、b、c为三角形的三条边,s=(a+b+c)/2,面积为area=

#include

#include

void main(){ float a,b,c,s,area;

printf(“Input a,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

void main()

{ float f,c;

printf(“Input f: ”);

scanf(“%f”,&f);

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

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

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

5

2

10

2

1+

=a

R

)

)(

)(

(c

s

b

s

a

s

s-

-

-

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

#include

#include

void main()

{ float r,a;

printf(“Input a: ”);

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

void main()

{ float x1,x2,y1,y2,z1,z2,d;

printf(“Input x1,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

void main()

{ int x, a, b, c;

printf(“Input a integer: ”);

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

void main()

{ int a,b,c,d,min;

printf(“Input a,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

void main(){ float t,w,h;

printf(“Input w,h: ”);

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

t=w/(h*h);

if(t<18) printf(“tai qing le\n”);

else if(t<25) printf(“zheng chang\n”);

else if(t<27) printf(“pian zhong\n”);

else printf(“fei pang\n”); }

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

void main()

{ float dan_jia,zong_e,ze_kou;

int n;

printf(“Input n: ”);

scanf(“%d”,&n);

if(n<1) printf(“Input error!\n”);

else if(n<=5) ze_kou=n-1;

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

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

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

else ze_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

void main()

{ float dan_jia,zong_e,ze_kou;

int n,m;

printf(“Input n: ”);

scanf(“%d”,&n);

m=(n-1)/5;

4.有一人过独木桥,到桥中间时看见前面有狼,后面有虎,底下是深深的河水。编程写出此人的最后结局。

#include

void main()

{ char choice;

printf(“Input your choice(a or b or c)”);

scanf(“%c”,&choice);

if(choice==’a’) printf(“bei lang chi le\n”);

else if(choice==’b’) printf(“bei hu chi le\n”);

else if(choice==’c’) printf(“shuai si le\n”);

else printf(“Input error!\n”); }

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

#include

#include

void main()

{ float a,b,c,s,area;

printf(“Input a,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);

}

else printf(“bu neng gou cheng san jiao xin\n”);

}

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

void main()

{ float grade;

printf(“Input a student’grade: ”);

scanf(“%f”,&grade);

if(grade<0 || grade>100) printf(“Input error!\n”); else if(grade<60) printf(“Bad\n”);

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

else printf(“Very Good\n”);

}

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

void main()

{ int year,month,days;

printf(“Input year and month: ”);

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

if(year%4==0 && year%100!=0 || year%400==0) days=29; else days=28; switch(month)

{ case 1:case 3:case 5: case 7: case 8: case 10: case 12: days=31;break;

case 4:case 6:case 9:case 11:days=30; }

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

实验五 循环结构程序设计 1.请分别用while 语句和do-while 语句编程求 的值。 #include void main() { float sum=0;

int k=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 void main() { float sum=0;

int k=1; do

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

∑∑

==+

10

1

100

11

k k k

k

{ 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

void main()

{ int n,i;

float sum=0;

printf(“Input n: ”);

scanf(“%d”,&n);

i=1;

while(i<=n)

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

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

#include void main()

{ int n,i;

float sum=0;

printf(“Input n: ”);

scanf(“%d”,&n);

i=1;

do

{ sum=sum+i*i/(i+1.0);i++; }while(i<=n); Printf(“sum=%f\n”,sum); }

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

void main()

{ char ch;

While((ch=getchar())!=’\n’)

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

putchar(ch);

putchar(‘\n’); }

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

#include

void main()

{ int sum=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

void main(){ float m,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

void main()

{ int m,s,i;

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

{ s=0;

for(i=1;i

if(s==m)

{ printf(“%d是一个完数。它的因子是:”,m);

相关文档