计算机编程大题答案
- 格式:doc
- 大小:54.00 KB
- 文档页数:11
改错题1、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:modi1.c,下列给定程序中函数fun()的功能是计算1/n!的值。
例如:给n输入5,则输出0.008333。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include <stdio.h>#include <conio.h>/**********************found***********************/int fun(int n) double fun(int n){ double result =1.0;if(n==0)return 1.0;while(n>1 && n <170)/**********************found***********************/result *=n++; result*=n--;result=1/result;return result;}main(){int n;printf("Input N:");scanf("%d",&n);printf("\n1/%d!=%lf\n",n,fun(n));}程序题2、请编写函数fun(),其功能是:将所有大于1,小于整数m的素数存入xx所指数组中,素数的个数通过k传回。
例如,输入25,则应输出2 3 5 7 11 13 17 19 23。
注意:部分源程序已给出请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
此题的源文件在考生目录下,文件名为: prog1.c#include<conio.h>#include<stdio.h>void fun(int m, int *k, int xx[]){int i,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;int m, n,i,zz[100];printf("\nPlease enter an integer number between 10 and 100: ");scanf("%d",&n);fun(n,&m,zz);printf("\n\nThere are %d prime numbers less than %d: ",m,n);for(n=0;n<m;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<m;n++)fprintf(wf,"%4d",zz[n]);fprintf(wf,"%c",'\n');}fclose(wf);/*****************************/}3、下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。
high 由主函数传给fun()函数。
若high的值为100,则函数的值为1060。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <conio.h>#include <stdio.h>#include <math.h>int fun(int high){int sum=0,n=0, j, yes;while(high>=2){yes = 1;for(j=2; j<=high/2; j++)/**********************found***********************/if high%j==0 if(high%j){yes=0;break;}/**********************found***********************/if(yes==0) if(yes==1){sum+=high;n++;}high--;}return sum;}main(){printf("%d\n",fun(100));}4、请编写一个函数double fun(int n),求s=1!+2!+...+n!, n通过键盘输入,大小n不超过20,如输入3,输出结果应为9,函数的返回值为所求和。
注意:部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
此题的源文件在考生目录下,文件名为: prog1.c#include <conio.h>#include <stdio.h>double fun(int n){ int i,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;int n,i,k=0;double s,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 <conio.h>#include <stdio.h>/**********************found***********************/void fun(char t[]); 删除;{char c;for(i=0;i<strlen(t)-1;i++)for(j=i+1;j<strlen(t);j++)if(t[i]<t[j]){c= t[j];/**********************found***********************/t[j]=t[i++]; t[j]=t[i];t[i]=c;}}main(){char s[81];printf("\nPlease enter a character string :");gets(s);printf("\n\nBefore sorting :\n %s",s);fun(s);printf("\nAfter sorting decendingly:\n %s",s);}6、本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:modi1.c,第1题分值为:10分,给定程序的功能是:计算s=1+(1+2)+(1+2+3)+...+(1+2+...+n),期中n通过键盘输入请改正程序中的错误,使它能计算出正确的结果。
注意不得增行或删行,也不得更改程序的结构!注意不得增行或删行,也不得更改程序的结构! 程序中有两处错误。
本题未指明错误是哪一行,需自己找。
#include "stdio.h"main(){int n,i,j,f,s=0;printf("请输入n:\n");scanf("%d",n); scanf("%d",&n)for(i=1;i<=n;i++){f=0 f=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 <conio.h>#include <math.h>#include <stdio.h>double fun(int n){int i,sum=0;double m;for(i=1;i<n;i++)if(i%55==0)sum+=i;m=sqrt(sum);return(m);}main(){FILE *fp;int i;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.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。