计算机编程大题答案.docx

上传人:b****8 文档编号:12765629 上传时间:2023-06-07 格式:DOCX 页数:17 大小:18.31KB
下载 相关 举报
计算机编程大题答案.docx_第1页
第1页 / 共17页
计算机编程大题答案.docx_第2页
第2页 / 共17页
计算机编程大题答案.docx_第3页
第3页 / 共17页
计算机编程大题答案.docx_第4页
第4页 / 共17页
计算机编程大题答案.docx_第5页
第5页 / 共17页
计算机编程大题答案.docx_第6页
第6页 / 共17页
计算机编程大题答案.docx_第7页
第7页 / 共17页
计算机编程大题答案.docx_第8页
第8页 / 共17页
计算机编程大题答案.docx_第9页
第9页 / 共17页
计算机编程大题答案.docx_第10页
第10页 / 共17页
计算机编程大题答案.docx_第11页
第11页 / 共17页
计算机编程大题答案.docx_第12页
第12页 / 共17页
计算机编程大题答案.docx_第13页
第13页 / 共17页
计算机编程大题答案.docx_第14页
第14页 / 共17页
计算机编程大题答案.docx_第15页
第15页 / 共17页
计算机编程大题答案.docx_第16页
第16页 / 共17页
计算机编程大题答案.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机编程大题答案.docx

《计算机编程大题答案.docx》由会员分享,可在线阅读,更多相关《计算机编程大题答案.docx(17页珍藏版)》请在冰点文库上搜索。

计算机编程大题答案.docx

计算机编程大题答案

改错题

1、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。

不得增行与减行,改正后使程序运行正确存盘即可。

改错题的源文件分为:

modi1.c,

下列给定程序中函数fun()的功能是计算1/n!

的值。

例如:

给n输入5,则输出0.008333。

请改正程序中的错误,使它能得到正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

/**********************found***********************/

intfun(intn)doublefun(intn)

{doubleresult=1.0;

if(n==0)

return1.0;

while(n>1&&n<170)

/**********************found***********************/

result*=n++;result*=n--;

result=1/result;

returnresult;

}

main()

{

intn;

printf("InputN:

");

scanf("%d",&n);

printf("\n1/%d!

=%lf\n",n,fun(n));

}

 

程序题

2、请编写函数fun(),其功能是:

将所有大于1,小于整数m的素数存入xx所指数组中,素数的个数通过k传回。

例如,输入25,则应输出23571113171923。

注意:

部分源程序已给出

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include

#include

voidfun(intm,int*k,intxx[])

{

inti,j,n,a=0;

for(i=2;i<=m;i++)

{

for(n=0,j=1;j<=i;j++)

if(i%j==0)

n++;

if(n==2)

{

xx[a]=i;

a++;

}

*k=a;

}

}

main()

{

FILE*wf;

intm,n,i,zz[100];

printf("\nPleaseenteranintegernumberbetween10and100:

");

scanf("%d",&n);

fun(n,&m,zz);

printf("\n\nThereare%dprimenumberslessthan%d:

",m,n);

for(n=0;n

printf("\n%4d",zz[n]);

/******************************/

wf=fopen("out.dat","w");

for(i=20;i<=30;i++)

{fun(i,&m,zz);

for(n=0;n

fprintf(wf,"%4d",zz[n]);

fprintf(wf,"%c",'\n');

}

fclose(wf);

/*****************************/

}

3、下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。

high由主函数传给fun()函数。

若high的值为100,则函数的值为1060。

请改正程序中的错误,使它能得到正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include

#include

#include

intfun(inthigh)

{

intsum=0,n=0,j,yes;

while(high>=2)

{

yes=1;

for(j=2;j<=high/2;j++)

/**********************found***********************/

ifhigh%j==0if(high%j)

{

yes=0;

break;

}

/**********************found***********************/

if(yes==0)if(yes==1)

{

sum+=high;

n++;

}

high--;

}

returnsum;

}

main()

{

printf("%d\n",fun(100));

}

4、请编写一个函数doublefun(intn),求s=1!

+2!

+...+n!

n通过键盘输入,大小n不超过20,如输入3,输出结果应为9,函数的返回值为所求和。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include

#include

doublefun(intn)

{inti,j,m,sum=0;

for(i=1;i<=n;i++)

{

for(m=1,j=1;j<=i;j++)

m*=j;

sum+=m;

}

return(sum);

 

}

main()

{

FILE*wf;

intn,i,k=0;

doubles,bb[10];

printf("请输入n:

\n");

scanf("%d",&n);

s=fun(n);

printf("和为:

%f",s);

printf("\n");

/******************************/

wf=fopen("out.dat","w");

for(i=1;i<=10;i++)

bb[k++]=fun(i);

for(k=0;k<10;k++)

fprintf(wf,"%f",bb[k]);

fclose(wf);

/*****************************/

}

5、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。

不得增行与减行,改正后使程序运行正确存盘即可。

改错题的源文件分为:

modi1.c,

下列给定程序中,函数fun()的功能是:

读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码降序排序后输出。

例如:

输入dafhc,则应输出hfdca。

请改正程序中的错误,使它能得到正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include

#include

/**********************found***********************/

voidfun(chart[]);删除;

{

charc;

inti,j;

for(i=0;i

for(j=i+1;j

if(t[i]

{

c=t[j];

/**********************found***********************/

t[j]=t[i++];t[j]=t[i];

t[i]=c;

}

}

main()

{

chars[81];

printf("\nPleaseenteracharacterstring:

");

gets(s);

printf("\n\nBeforesorting:

\n%s",s);

fun(s);

printf("\nAftersortingdecendingly:

\n%s",s);

}

6、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。

不得增行与减行,改正后使程序运行正确存盘即可。

改错题的源文件分为:

modi1.c,

第1题分值为:

10分,

给定程序的功能是:

计算s=1+(1+2)+(1+2+3)+...+(1+2+...+n),期中n通过键盘输入

请改正程序中的错误,使它能计算出正确的结果。

注意不得增行或删行,也不得更改程序的结构!

注意不得增行或删行,也不得更改程序的结构!

程序中有两处错误。

本题未指明错误是哪一行,需自己找。

#include"stdio.h"

main()

{

intn,i,j,f,s=0;

printf("请输入n:

\n");

scanf("%d",n);scanf("%d",&n)

for(i=1;i<=n;i++)

{

f=0f=0;

for(j=1;j<=i;j++)

f=f+j;

s=s+f;

}

printf("s=%d\n",s);

}

7、编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如:

n为1000时,函数值应为s=96.979379。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include

#include

#include

doublefun(intn)

{

inti,sum=0;

doublem;

for(i=1;i

if(i%55==0)

sum+=i;

m=sqrt(sum);

return(m);

}

main()

{

FILE*fp;

inti;

printf("s=%f\n",fun(1000));

fp=fopen("out.dat","w");

for(i=900;i<=1000;i++)

fprintf(fp,"%f",fun(i));

fclose(fp);

}

8.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。

二维数组中的数已在主函数中给出。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,否则得不到成绩后果自负,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include

#include

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{

inti,j,k=0;

for(i=0;i

{

for(j=0;j

{

if(tt[k][i]

k=j;

}

pp[i]=tt[k][i];

}

}

main()

{

FILE*wf;

intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};

intp[N],i,j,k;

printf("Theriginaldatais:

\n");

for(i=0;i

{

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:

\n");

for(k=0;k

printf("%4d",p[k]);

printf("\n");

wf=fopen("out.dat","w");

for(k=0;k

fprintf(wf,"%4d",p[k]);

fclose(wf);

}

10、请编写函数fun,其功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。

例如,当a=16,b=35,调用该函数后,c=5361。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include"stdio.h"

voidfun(inta,intb,long*c)

{

intx,y,z,k;

x=a%10;

y=a/10;

z=b%10;

k=b/10;

*c=1000*z+100*k+10*x+y;

}

}

main()

{

FILE*wf;

inta,b,i;

longc;

printf("Inputa,b;");

scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("Theresultis:

%ld\n",c);

wf=fopen("out.dat","w");

for(i=10;i<=90;i++)

{fun(i,100-i,&c);

fprintf(wf,"%ld",c);

}

fclose(wf);

}

11、请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:

将大于整数m且紧靠m的k个非素数存入所指的数组中。

例如,若输入15,5,则应输出16,18,20,21,22。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

voidfun(intm,intk,intxx[])

{

inti=0,j,n;

m=m+1;

while(i!

=k)

{

for(j=1,n=0;j<=m;j++)

if(m%j==0)

n++;

if(n>2)

{

xx[i]=m;

i++;

}

m++;

}

}

main()

{

FILE*wf;

intm,n,zz[1000];

printf("\nPleaseentertwointegers:

");

scanf("%d,%d",&m,&n);

fun(m,n,zz);

for(m=0;m

printf("%d",zz[m]);

printf("\n");

/******************************/

wf=fopen("out.dat","w");

fun(300,10,zz);

for(m=0;m<10;m++)

fprintf(wf,"%d",zz[m]);

fclose(wf);

/*****************************/

}

12、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。

不得增行与减行,改正后使程序运行正确存盘即可。

下列给定程序中,函数fun()的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include

#defineN100

intfun(int*s,intn)

{

inti,j,k,a,b,c;

j=0;

for(i=100;i

{

/**********************found***********************/

k=n;k=i;

a=k%10;

k/=10;

b=k%10;

c=k/10;

if(a==b+c)

/**********************found***********************/

s[j]=i;s[j++]=i;

}

returnj;

}

main()

{

inta[N],n,num=0,i;

do

{

printf("\nEntern(<=1000):

");

scanf("%d",&n);

}

while(n>1000);

num=fun(a,n);

printf("\n\nTheresult:

\n");

for(i=0;i

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

printf("\n\n");

}

13、请编写一个函数intfun(intn),求s=1+2+...+n,n通过键盘输入,大小n不超过1000,如输入100,输出结果应为5050,函数的返回值为所求和。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

intfun(intn)

{

 

intsum=0,i;

for(i=1;i<=n;i++)

sum+=i;

return(sum);

}

main()

{

FILE*wf;

intn,i,k=0;

ints,bb[10];

printf("请输入n:

\n");

scanf("%d",&n);

s=fun(n);

printf("和为:

%d",s);

printf("\n");

/******************************/

wf=fopen("out.dat","w");

for(i=101;i<=110;i++)

bb[k++]=fun(i);

for(k=0;k<10;k++)

fprintf(wf,"%d",bb[k]);

fclose(wf);

/*****************************/

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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