编程题解析.docx

上传人:b****1 文档编号:2220603 上传时间:2023-05-02 格式:DOCX 页数:23 大小:21.12KB
下载 相关 举报
编程题解析.docx_第1页
第1页 / 共23页
编程题解析.docx_第2页
第2页 / 共23页
编程题解析.docx_第3页
第3页 / 共23页
编程题解析.docx_第4页
第4页 / 共23页
编程题解析.docx_第5页
第5页 / 共23页
编程题解析.docx_第6页
第6页 / 共23页
编程题解析.docx_第7页
第7页 / 共23页
编程题解析.docx_第8页
第8页 / 共23页
编程题解析.docx_第9页
第9页 / 共23页
编程题解析.docx_第10页
第10页 / 共23页
编程题解析.docx_第11页
第11页 / 共23页
编程题解析.docx_第12页
第12页 / 共23页
编程题解析.docx_第13页
第13页 / 共23页
编程题解析.docx_第14页
第14页 / 共23页
编程题解析.docx_第15页
第15页 / 共23页
编程题解析.docx_第16页
第16页 / 共23页
编程题解析.docx_第17页
第17页 / 共23页
编程题解析.docx_第18页
第18页 / 共23页
编程题解析.docx_第19页
第19页 / 共23页
编程题解析.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

编程题解析.docx

《编程题解析.docx》由会员分享,可在线阅读,更多相关《编程题解析.docx(23页珍藏版)》请在冰点文库上搜索。

编程题解析.docx

编程题解析

1.编程题(D_5_1.C)

编程要求:

请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括D_5_1.C文件和D_5_1.exe文件)保存到学号目录中。

功能说明:

键盘输入5个整数,按由小到大的顺序排序后输出。

如输入:

10020-531

则输出:

-50102031

#include"stdio.h"

voidSelectSort(intv[],intn)

{inti,j,k,temp;

for(i=0;i

{intk=i;//k存放最小记录位置

for(j=i+1;j

{if(v[j]

if(k!

=i)//交换第i和第k个位置记录

{temp=v[i];v[i]=v[k];v[k]=temp;

}

}

}

main()

{

inta[10],i,n;

printf("inputnumberofdata\n");

scanf("%d",&n);

for(i=0;i

{

printf("input%ddata\n",i+1);

scanf("%d",&a[i]);

}

SelectSort(a,n);

for(i=0;i

printf("%5d",a[i]);

printf("\n");

getch();

}

2.编程题(D_5_2.C)

编程要求:

请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括D_5_2.C文件和D_5_2.exe文件)保存到学号目录中。

功能说明:

键盘输入正整数n,计算并输出

的值,输出结果保留6位小数。

如输入:

10

则输出:

0.645635

#include

voidmain()

{

inti=1,n;

doublef=1.0,s=0;

printf("inputitemnumber:

\n");

scanf("%d",&n);

do

{

s+=f/i++;

f=-f;

}while(i<=n);

printf("1-1/2+1/3-...+1/%d=%lf\n",n,s);

getch();

}

3.编程题(E_5_1.c)

编程要求:

请按题中的功能要求,编写程序并能得到正确结果。

将结果(包括E_5_1.c文件和E_5_1.exe文件)保存到学号目录中。

功能说明:

编写一个函数,将数组a中的n个数每5个相邻的元素为一组分别求和(假设求和结果不溢出),结果放到数组b中,最后一组如果不足5个也进行求和。

例如,若数字a的元素为4,8,3,3,0,5,2,9,7,8,4,3,2,1,8,4,3,2,则数组b的元素为18,31,18,9。

#include

fun(inta[],intb[],intn)

{

inti=0,j,s,c,k;k=n%5?

n/5+1:

n/5;

for(j=0;j

{s=c=0;

while(c<5){if(i==n)break;s=s+a[i++];c++;}

b[j]=s;

}

returnj;

}

main()

{

inta[20],b[10],i,n,k;

printf("inputnumberofarraya\n");

scanf("%d",&n);

for(i=0;i

{printf("input%ddata\n",i+1);scanf("%d",&a[i]);}

k=fun(a,b,n);

for(i=0;i

printf("%5d",b[i]);

printf("\n");getch();

}

4.编程题(E_5_2.c)

编程要求:

请按题中的功能要求,编写程序并能得到正确结果。

将结果(包括E_5_2.c文件和E_5_2.exe文件)保存到学号目录中。

功能说明:

某中学要对新入学的10名学生根据考试成绩分到插入到两个班(class1,class2)中,插入的方法是成绩第1名在class1班,第2名在class2班,第3名在class1班,第4名在class2班,依次类推,…,原来class1,class2学生是按成绩由高分到低分排列的。

请编写程序,输入这10个学生的编号和成绩,输出如下格式的分班情况:

Class1班:

编号成绩;编号成绩;…

Class2班:

编号成绩;编号成绩;…

#include

structstudent{

intid;

floatscore;

};

voidBubleSort(structstudentv[],intn)

{structstudenttemp;

inti,j;

for(i=1;i

{for(j=0;j

{if(v[j].score

{temp.id=v[j].id;

temp.score=v[j].score;

v[j].id=v[j+1].id;

v[j].score=v[j+1].score;

v[j+1].id=temp.id;

v[j+1].score=temp.score;

}

}//第i大的元素筛选结束

}

}

voidins(structstudenta[],intn,intx0,floatx1)

{intp=0,i;

while(x1

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;i

if(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;i

if(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;i

if(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;i

x=x+a[i];

returnx;

}

floatg12(floata[],intn)

{

inti;floatx=0;

for(i=0;i

x=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;i

if(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;i

if(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;i

if(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)输入一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2