程序设计与算法语言上机精彩试题abc - 副本 - 副本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档