程序设计与算法语言上机试题abc - 副本 - 副本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、10个人的成绩存放在score数组中,编写函数fun,求出平均分,并作为函数值返回,且输出不及格人数。
#include
float fun (int a[10])
{
int i,aver,sum=0;
for(i=0;i<10;i++)
sum=sum+a[i];
aver=sum/10;
return aver;
}
void main()
{
int i,j=0,a[10]={10,20,30,40,50,60,70,80,90,100};
float aver;
for(i=0;i<10;i++)
if(a[i]<60)
j++;
aver=fun (a);
printf("10个人的成绩平均分为:%5.2f\n",aver);
printf("\n");
printf("不及格人数:%d\n",j);
}
2、求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有整数,并将他们放在指定的数组a中。
#include
void main()
{
int i,n,a[500];
n = fun(a);
for(i = 0; i < n; i++)
printf("%8d",a[i]);
}
int fun (int a[])
{
int i = 7, j = 0;
for(; i <= 100; i++)
if ((i % 7 == 0 || i % 11 == 0)&&( !(i % 7== 0 && i % 11 == 0) ) )
a[j++] = i;
return j ;}
3、求方程
2=
+
+c
bx
ax的解。
#include
#include
void main()
{
float a,b,c,d,x1,x2,m,n;
printf("请输入方程的3个系数,a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("该方程\n");
if(fabs(a)<=1e-6)
{
if(fabs(b)<=1e-6)
{
if(fabs(c)<=1e-6)
printf("有无穷多个解\n");
else
printf("无解\n");
}
else printf("有一个根:%8.4f\n",-c/b);
}
else
{
d=b*b-4*a*c;
if(fabs(d)<=1e-6)
printf("有两个相等的实根:%8.4f\n",-b/(2*a));
else
if(d>1e-6)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("有两个不等的实根:%8.4f和%8.4f\n",x1,x2);
}
else
{
m=-b/(2*a);
n=sqrt(-d)/(2*a);
printf("有两个复根:\n");
printf("%8.4f+%8.4fi\n",m,n);
printf("%8.4f-%8.4fi\n",m,n);
}
}
}
4、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E,90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。要求:当输入分数为负值,或大于100时,通知用户“输入数据错误,重新输入”。
#include
void main()
{
float x;
char y;
printf("输入学生成绩:x=");
scanf("%f",&x);
while(x>100||x<0)
{
printf("输入错误,请重新输入学生成绩:x=");
scanf("%f",&x);
}
if(x>=90)
y='A';
else
if(x>=80)
y='B';
else
if(x>=70)
y='C';
else
if(x>=60)
y='D';
else
y='E';
printf("\n学生的等级为:y=%c\n",y);
}
5、求数组中最大元素在数组中的下标并存放在指针k所指的储存单元中。
# include
void fun(int *s, int t , int *k)
{
int i ,max;
max=s[0];
for (i=0;i if (s[i]>max) { max=s[i]; *k=i; } void main( ) { int a[10]={876,675,896,101,301,401,980,431,451,777}, k ; fun(a,10, &k); printf("最大值在a中的位置为:i=%d\n最大值为:%d\n", k, a[k]); } 6、编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n 通过形参传入。S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+4+……+n)。 #include float fun(int n) { int i; float s=1.0,t=1.0; for(i=2;i<=n;i++) { t=t+i; s=s+1/t; } return s; } void main() { float y; int n; printf("输入n的值:\n"); scanf("%d",&n); y=fun(n); printf("y=%f\n",y); } 7、定义了7×7的二维数组,并在主函数中自动赋值。编写函数 fun(int a[][7]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 #include int fun(int a[][7]) { int i,j; for(i=0;i<7;i++) for(j=0;j<7;j++) { if(i>j)