c程序设计实验参考答案
编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
case 7: ch='C'; break;
case 6: ch='D'; break;
default: ch='E';
}
printf("\nthe student scort:%c",ch);
四.写程序
1、编程求 的和(精确到小数点后两位)。
main( )
{float i;
i=1.0/2+1.0/3+1.0/4;
printf("%7.2f",i);
}
2、鸡兔同笼。总头数head=60,总脚数feet=160。编程求鸡、兔各多少只。
main( )
{int h=60,f=160;
int r,c;
#include"stdio.h"
main()
{
int score;
char grade;
printf("\nplease input a student score:");
scanf("%f",&score);
if(score>100||score<0)
printf("\ninput error!");
错误在4行应改为:else if (x>-1&&x<=3) y=2*x;
3、错误在5行应改为:{ if (x>0) y=x+3;}
4、错误在1--6行应改为:{ int x ,y ,w;
scanf("%d" ,&x);
w=x>=0;
switch(w)
{ case 1: y=2; break;
case 0: y=-2; break;
2、-2
3、a1=1 a2=1
b1=0 b2=1
4、x=2
5、输入1答案
1
2
3
4
输入3答案
3
4
二.1、ch>=’A’&&ch<=’Z ’ ch=ch-32
2、a+b>c&& c+b>a&& c+a >b a= =b&&b= =c a= =b||b= =c ||a= =c
三.
2、错误在行应改为:if (x>3&&x<=9) y=x*(x+2);
第7行改为sum=sum+(i+1)*(i+1)*k;
第9行改为printf("sum is :%ld\n",sum);没有变化
四.1、
main()
{float sn=80,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{sn=sn+2*hn;
hn=hn/2;
}
printf("%fm,%fm\n",sn,hn);
七.写程序
1、编写程序输出用6颗星构成的等边三角形。
main()
{
printf(" * \n");
printf(" * * \n");
printf("* * *\n");
}
2、编写程序求25和5两个整数的和与差。
main()
{
int a,b,c,d;
a=10;
b=20;
c=35;
d=(a+b+c)/3;
r=(f-2*h)/2;
c=h-r;
printf("\n%d,%d",c,r);
}
3、输入圆半径(5),输出圆的面积。
main( )
{floatr;
scanf(“%f”,&r);
s=3.14159*r*r;
printf("\n%d",s);
}
实பைடு நூலகம்三参考答案:
一.1、2.4 * x - 1 / 2=23.500000
(2)当detax>1时,不进入循环
不会只循环一次
当detax=1时,循环2次
当detax=0时,进入死循环
为了能知道程序循环次数,应在程序第15行后加语句printf("\n%d",i-1);
(3)
(4)死循环
(5)没变化
四.main()
{int day,x,y;
day=9;
y=1;
while(day>0)
{x=(y+1/)2;
y=x;
day--;
}
printf(“totall=%d\n”,x);
}
实验七参考答案:
一.1、1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
2、k=2
3、m=3
二.
1、for( k = 0;k<=100;k++) 10*k+20*i+50*j==100
2、m=n; m=m/10;
2、4行n=int(f+20)%3;改为n=(int)(f+20)%3;
3、正确。输入数字字符:5
5对应的数字为:53
四.写程序
1、设j=6,求表达式–(j++)-3的值和此时j的值。
#include<stdio.h>
main( )
{int j=6;
int i;
i=-(j++)-3;
printf("i=%d,j=%d",i,j);
若i=20,j=3,则内外循环各1次
若i=20,j=2,则外循环1次,内循环2次
若i=19,j=3,则外循环2次,内循环1次
若i=2,j=1,则外循环19次,内循环3次
若i=1,j=2,则外循环20次,内循环2次
若i=0,j=1,则外循环21次,内循环3次
(2)外循环20次,内循环3次
(4)第3行改为for(i=1;i<=20;i++)
较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
源程序如下:
#define N 10
#include"stdio.h"
main()
{
int a[N],i,j,temp;
printf("please input %d numbers\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("the array after sort:\n");
else
{ if(score>=90)
grade='A';
else
{ if(score>=80)
grade='B';
else
{if(score>=70)
grade='C';
else
{ if(score>=60)
grade='D';
else grade='E';
}
}
}
printf("\nthe student grade:%c",grade);