for(i=n;i>p-1;i--){a[i+1].id=a[i].id;a[i+1].score=a[i].score;}
a[p].id=x0;a[p].score=x1;
}
main()
{structstudenta[10],clas1[20]={12,90,11,89,9,88,6,87,4,85},clas2[20]={22,92,21,89,29,86,26,84,24,75};
inti,t,j;floats;
for(i=0;i<10;i++)
{printf("%d\n",i+1);scanf("%d,%f",&a[i].id,&a[i].score);}
BubleSort(a,10);
j=1;
for(i=0;i<10;i=i+2)
{t=a[i].id;s=a[i].score;ins(clas1,4+j,t,s);j++;}
for(j=1,i=1;i<10;i=i+2)
{t=a[i].id;s=a[i].score;ins(clas2,4+j,t,s);j++;}
printf("Class1班:
");
for(i=0;i<10;i++)
{printf("%5d%10.2f;",clas1[i].id,clas1[i].score);if((i+1)%3==0)printf("\n");}
printf("\n\n");
printf("Class2班:
");
for(i=0;i<10;i++)
{printf("%5d%10.2f;",clas2[i].id,clas2[i].score);if((i+1)%3==0)printf("\n");}
printf("\n\n");getch();
}
5.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括B_4_1.C文件和B_4_1.EXE文件)保存到学号目录中。
功能说明:
编写程序,实现以下成绩处理功能(输出格式参见示例):
(1)输入10个成绩(整数类型,数组名记为a);
(2)计算并输出最高分(记为max)、最低分(记为min)与成绩中值(记为midd),其中成绩中值为最高分与最低分的平均值(保留一位小数输出);
(3)将midd及以上的成绩归为A档,midd以下的成绩归为B档,统计并输出A、B两档的人数。
运行示例:
输入:
88595074609975906870
输出:
Max=99,Min=50,Midd=74.5,A=4,B=6
#include"stdio.h"
voidinput(inta[],intn)
{
inti,x;
for(i=0;i{do{
printf("输入第%d个学生的成绩\n",i+1);
scanf("%d",&x);}while(x<0||x>100);
a[i]=x;
}
}
intg11(inta[],intn)
{
inti,x;
x=a[0];
for(i=0;i{
if(a[i]>x)x=a[i];
}
returnx;
}
intg12(inta[],intn)
{
inti,x;
x=a[0];
for(i=0;i{
if(a[i]}
returnx;
}
main()
{
ints[40],i,n,max,min,c=0;floatmidd;
printf("输入学生人数\n");
scanf("%d",&n);
input(s,n);
max=g11(s,n);
min=g12(s,n);
midd=(max+min)/2.0;
for(i=0;i{
if(s[i]>=midd)c++;
}
printf("Max=%d,Min=%d,Midd=%.1f,A=%d,B=%d\n",max,min,midd,c,n-c);
getch();
}
6.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括B_4_2.C文件和B_4_2.EXE文件)保存到学号目录中。
功能说明:
编写程序,通过以下步骤验证一个正整数是否符合特定的规则:
(1)输入一个4位的正整数n,将n分拆为a与b两部分:
a为n的高3位,b为n的最低位;
#include"stdio.h"
intf1()
{intn;
do{
printf("输入1个4位数\n");
scanf("%d",&n);
}while(n>9999||n<1000);
returnn;
}
voidf2(intn,inta[])
{
a[1]=n%10;
a[0]=(n-a[1])/10;
}
main()
{intx[2],t;
t=f1();f2(t,x);
printf("%d%d\n",x[0],x[1]);
}
(2)计算a的所有因子之和,记为s(当1≤i<a时,如果a是i的倍数,则i是a的因子);
#include"stdio.h"
intf1()
{intn;
do{
printf("输入1个4位数\n");
scanf("%d",&n);
}while(n>9999||n<1000);
returnn;
}
voidf2(intn,inta[])
{
a[1]=n%10;
a[0]=(n-a[1])/10;
}
intf3(intx)
{
inti,s=0;
for(i=1;iif(x%i==0)s=s+i;
returns;
}
main()
{intx[2],t;
t=f1();f2(t,x);
printf("%d%d\n",x[0],x[1]);
printf("s=%d\n",f3(x[0]));
}
(3)如果s的个位数等于b,则输出"Pass",否则输出"Fail";
#include"stdio.h"
intf1()
{intn;
do{
printf("输入1个4位数\n");
scanf("%d",&n);
}while(n>9999||n<1000);
returnn;
}
voidf2(intn,inta[])
{
a[1]=n%10;
a[0]=(n-a[1])/10;
}
intf3(intx,intb[])
{
inti,j=0,s=0;
for(i=1;iif(x%i==0){b[j++]=i;s=s+i;}
b[j]=-1;
returns;
}
voidf4(intx[],inta,intb,intc)
{inti=0;
printf("%d:
",a);
while(x[i]!
=-1)printf("%d+",x[i++]);
if(b%10==c)printf("\b=%d,Pass\n",b);
elseprintf("=\b%d,Fail\n",b);
}
main()
{intx[2],y[20],t;
t=f1();f2(t,x);
t=f3(x[0],y);
f4(y,x[0],t,x[1]);
}
(4)将a,b,s的值保存到文本文件"B42.TXT"中。
#include"stdio.h"
intf1()
{intn;
do{
printf("输入1个4位数\n");
scanf("%d",&n);
}while(n>9999||n<1000);
returnn;
}
voidf2(intn,inta[])
{
a[1]=n%10;
a[0]=(n-a[1])/10;
}
intf3(intx,intb[])
{
inti,j=0,s=0;
for(i=1;iif(x%i==0){b[j++]=i;s=s+i;}
b[j]=-1;
returns;
}
voidf4(intx[],inta,intb,intc)
{inti=0;
FILE*fp;
if((fp=fopen("B42.TXT","w"))==NULL)
{
printf("不能打开该文件,任意键退出");
getch();
exit
(1);
}
printf("%d:
",a);
while(x[i]!
=-1)printf("%d+",x[i++]);
if(b%10==c)printf("\b=%d,Pass\n",b);
elseprintf("\b=%d,Fail\n",b);
fprintf(fp,"%d%d%d",a,c,b);
fclose(fp);
}
main()
{intx[2],y[20],t;
t=f1();f2(t,x);
t=f3(x[0],y);
f4(y,x[0],t,x[1]);
getch();
}
输出格式参见以下示例。
运行示例:
输入:
1164
输出:
116:
1+2+4+29+58=94,Pass
运行后文件内容:
116494
说明:
输入数为1164(对应n),分拆为116(对应a)和4(对应b),116的因子为1、2、4、29和58,累加和为94(对应s),s的个位数等于b(4),输出"Pass",a,b,s保存在文件中。
7.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括C_4_1.C文件和C_4_1.EXE文件)保存到学号目录中。
功能说明:
编写程序,实现以下成绩处理功能(输出格式参见示例):
(1)输入10个成绩(浮点数类型,数组名记为a);
(2)计算并输出累加和(记为sum)与平均值(记为ave),均保留一位小数;
(3)将ave及以上的成绩归为A档,ave以下的成绩归为B档,统计并输出A、B两档的人数。
运行示例:
输入:
55.599.550.090.08859.5486078.066.5
输出:
Sum=695.0,Ave=69.5,A=4,B=6
#include"stdio.h"
voidinput(floata[],intn)
{
inti;floatx;
for(i=0;i{do{
printf("输入第%d个学生的成绩\n",i+1);
scanf("%f",&x);}while(x<0||x>100);
a[i]=x;
}
}
floatg11(floata[],intn)
{
inti;floatx=0;
for(i=0;ix=x+a[i];
returnx;
}
floatg12(floata[],intn)
{
inti;floatx=0;
for(i=0;ix=x+a[i];
returnx/n;
}
main()
{
floats[40],sum,ave;inti,n,c=0;
printf("输入学生人数\n");
scanf("%d",&n);
input(s,n);
sum=g11(s,n);
ave=g12(s,n);
for(i=0;i{
if(s[i]>=ave)c++;
}
printf("Sum=%.1f,Ave=%.1f,A=%d,B=%d\n",sum,ave,c,n-c);
getch();
}
8.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括F_4_2.C文件和F_4_2.EXE文件)保存到学号目录中。
功能说明:
编写程序,通过以下步骤验证一个正整数是否符合特定的规则:
(1)输入一个4位的正整数n,将n分拆成a与p,a为n的低两位,p为n的高2位;
(2)计算a的所有因子之和,记为s(当1≤i<a时,如果a是i的倍数,则i是a的因子);
(3)如果s与p之和等于99,则输出"Accept",否则输出"Refuse";
(4)将a,p,s的值保存到文本文件"G42.TXT"中。
输出格式参见以下示例。
运行示例1:
输入:
6758
输出:
58:
1+2+29=32,Accept
运行后文件内容:
586732
说明:
输入数的6758(对应n)分拆为58(对应a)和67(对应p),58的因子为1、2和29,其累加和为32(对应s),s和p的和等于99,输出"Accept"。
a,p,s的值保存到文件中。
#include"stdio.h"
intf1()
{intn;
do{
printf("输入1个4位数\n");
scanf("%d",&n);
}while(n>9999||n<1000);
returnn;
}
voidf2(intn,inta[])
{
a[0]=n/100;a[1]=n-a[0]*100;
}
intf3(intx,intb[])
{
inti,j=0,s=0;
for(i=1;iif(x%i==0){b[j++]=i;s=s+i;}
b[j]=-1;
returns;
}
voidf4(intx[],inta,intb,intc)
{inti=0;
FILE*fp;
if((fp=fopen("G42.TXT","w"))==NULL)
{
printf("不能打开该文件,任意键退出");
getch();
exit
(1);
}
printf("%d:
",a);
while(x[i]!
=-1)printf("%d+",x[i++]);
if(c+b==99)printf("\b=%d,Accept\n",b);
elseprintf("\b=%d,Refuse\n",b);
fprintf(fp,"%d%d%d",a,c,b);
fclose(fp);
}
main()
{intx[2],y[20],t;
t=f1();f2(t,x);
t=f3(x[1],y);
f4(y,x[1],t,x[0]);
getch();
}
9.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括G_4_1.C文件和G_4_1.EXE文件)保存到学号目录中。
功能说明:
编写程序,实现以下成绩处理功能(输出格式参见示例):
(1)输入学生数n和n个成绩(整数类型,数组名记为a,假设1≤n≤50);
(2)统计n个学生中及格(≥60分)人数及其平均成绩(保留一位小数);
(3)统计n个学生中不及格(<60分)人数及其平均成绩(保留一位小数)。
运行示例:
输入:
87099508853486078
输出:
Pass:
5,79.0Fail:
3,50.3
#include"stdio.h"
voidinput(inta[],intn)
{
inti,x;
for(i=0;i{do{
printf("输入第%d个学生的成绩\n",i+1);
scanf("%d",&x);}while(x<0||x>100);
a[i]=x;
}
}
voidg11(inta[],intn)
{
inti,x=0,sum=0;
for(i=0;iif(a[i]>=60){x++;sum=sum+a[i];}
printf("Pass:
%d,%.1f",x,(float)sum/x);
}
voidg12(inta[],intn)
{
inti,x=0,sum=0;
for(i=0;iif(a[i]<60){x++;sum=sum+a[i];}
printf("Fail:
%d,%.1f\n",x,(float)sum/x);
}
main()
{
ints[50],n;
do{
printf("输入学生人数\n");
scanf("%d",&n);
}while(n<1||n>50);
input(s,n);
g11(s,n);
g12(s,n);
getch();
}
10.编程题
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括H_4_2.C文件和H_4_2.EXE文件)保存到学号目录中。
功能说明:
编写程序,通过以下步骤验证一个正整数是否符合特定的规则:
(1)输入一