if(score==100)
temp=9; else
temp=score/10; switch(temp)
{ case 9: grade=‘A’;break; case 8: grade=‘B’;break;
case 7: grade=‘C’;break; case 6: grade=‘D’;break; default: grade=‘E’; }
printf(“Score is %d,the grade is %c.\\n”,score,grade);
}
2、#include
printf(“各种驮法如下:\\n”); for(m=1;m<=100;m++)
for(n=1;n<=100-m;n++) { k=100-m-n;
if(k%2==0&&m*3+n*2+k/2==100)
{ printf(“大马=匹;中马=匹;小马=匹.\\n”,m,n,k); sum++;
} }
printf(“共有%d种驮法.\\n”,sum);
}
3、#include
int letter=0,space=0,digit=0,other=0; printf(“请输入一行字符:\\n”); while((c=getchar( ))!=‘\\n’)
{ if(c>=‘a’&&c<=‘z’||c>=‘A’&&c<=‘Z’)
letter++;
else if(c==‘ ’) space++;
else if(c>=‘0’&&c<=‘9’)
digit++; else
other++;
}
printf(“字母数=%d,空格数=%d\\n”,letter,space); printf(“数字数=%d,其他字符数=%d\\n”,digit,other);
}
4、#include
for(i=0;i<=3;i++)
{ for(j=0;j<=2-i;j++) printf(“ ”);
for(k=0;k<=2*i;k++) printf(“*”); printf(“\\n”); }
for(i=0;i<=2;i++)
{ for(j=0;j<=i;j++) printf(“ ”);
for(k=0;k<=4-2*i;k++) printf(“*”); printf(“\\n”); } }
实验六 函数程序设计(4学时)
一、实验方式:一人一机 二、实验目的:
1、掌握C语言中函数的三要素:函数定义、函数调用和函数说明。 2、掌握通过参数在函数间传递数据的方法。
3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。 三、实验内容:
说明:前四题为必做题目,后两题为选做题目。
1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。(实验指导书P130)
2、输入整数n,输出高度为n的等边三角形。当n=5时的等边三角形如下:(实验指导书P134) * *** ***** *******
*********
3、输入并运行以下程序,分析运行结果。 #include
void main( )
{ int a=4,b=5,c; c=plus(a,b);
printf(“a+b=%d\\n”,c); }
plus(int x,int y) { int z; z=x+y;
return (z); }
4、求500以内的所有亲密数对。若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。(实验指导书P136) 5、输入并运行以下程序,分析运行结果。 #include
{ static int d=5;
d+=p;
printf(“%d ”,d); return (d); }
void main( ) { int a=3;
printf(“%d ”,fun(a+fun(d))); }
6、设计一个函数,输出整数n的所有素数因子。(书P157) 四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include
float area(float a,float b,float c) { float s,p,area; s=(a+b+c)/2;
p=s*(s-a)*(s-b)*(s-c); area=sqrt(p); return (area); }
void main( )
“%f%f%f”,&x,&y,&z);
“area=%f\\n”,ts);
} else
printf(“data error!\\n”);
2、#include
for(i=0;i { for(j=0;j<=n-i;j++) putchar(‘ ’); /* for(j=0;j<=2*i;j++) putchar(‘*’); /* putchar(‘\\n’); } } void main( ) { int n; printf(“Please enter n:”); scanf(“%d”,&n); printf(“\\n”); trangle(n); } 3、a+b=9 4、#include { if(m%f==0) sum=sum+f; 打印每一行的空格*/ 打印每一行的*号*/ { float x,y,z,ts; scanf( if(x>0&&y>0&&z>0&&x+y>z&&y+z>x&&x+z>y) { ts=area(x,y,z); printf( } f++; } return sum; } void main( ) { int m=3,n,k; while(m<=500) { n=facsum(m); k=facsum(n); if(m==k&&m<=n) printf(“%d,%d\\n”,m,n); m++; } } 5、6 15 15 6、#include for(i=2;i<=n/2;i++) if(n%i==0) { flag=0; retun flag; } return flag; } void factor(int n) { int i; i=2; while(i<=n) { if((n%i==0)&&prime(i)) { printf(“%d ”,i); n=n/i; continue; } i++; } } void main( ) { int num;