c语言上机试题1(数学计算)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
temp=temp%10;
float result;//被除数定义成float
if(temp>4)
result=temp2+1;
else
result=temp2;
return result/100;
1.2
#include <stdio.h>
#include <math.h>
double fun ( double eps) {
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
return 1;
}
int NONO(void) {/*请在此函数打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
float a ;
m=i*(i+1);
sum+=1/m;
}
return sum;
1.5
函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12。调用该函数后,c=5241。注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何容,仅在函数fun的花括号中填入你编写的若干语句。
m=2*n+1;
s1=n;
s2=m;
double temp=s1/s2,sum=0.0;
while(temp>=eps){
sum+=temp;
n+=1;
m+=2;
s1*=n;
s2*=m;
temp=s1/s2;
}
return (sum+1)*2;
1.3
#include <stdio.h>
float fun(int m, int n) {
printf("aa=%d,bb=%d",b%10,b/10);
long i2=(b%10)*100;
long i3=a/10*10;
long i4=b/10;
//return a%10*1000+b%10*100+a/10*10+b/10;
return i1+i2+i3+i4;
1.6
#include <stdio.h>
1
1.1
请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567,则函数返回1234.57;实型数为1234.564,则函数返回1234.56。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何容,仅在函数fun的花括号中填入你编写的若干语句。
fprintf(wf, "%f\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
return 1;
}
答案:
float result;
int x,y,z,o=1,p=1,q=1;
for(x=1;x<=m;x++){
o=o*x;
}
for(y=1;y<=n;y++){
p=p*y;
}
for(z=1;z<=m-n;z++){
q=q*z;
}
result=o/(p*q);
return result;
尝试建立一个专门求阶乘的函数。
1.4
#include <stdio.h>
double fun( int n ) {
}
int main(void) /*主函数*/ {
printf("%f\n", fun(10));
//NONO();
y += 1.0 / d ;
}
return (y);
}
main( ) {
int n = 2000 ;
printf( "\nThe result is %lf\n", fun ( n ) ) ;
}
答案:
double fun ( int m ) {
for( i = 100;i <=m;i += 100 ) {
int x1,x2,x3,j ;
printf("Input x1 x2 x3: ");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("The minimal common multiple is : %d\n",j);
while ( n <= k ) {
w = 2.0 * n;
p = w - 1.0;
q = w + 1.0;
s = s * w *w/p/q; n++;
}
return s;
改错:
int i;
float sum=1.0;
for(i=2;i<=k;i++){
sum*=(2*i * 2*i)/((2*i+1)*(2*i-1));//注意数据类型
return 1;
}
int NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
int i, n ;
double s ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
}
return sum;
1.8
给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
}
答案:
int fun(int x,int y,int z){
return j;
编程:
#include <stdio.h>
//求三个数的最大数
int max(int x,int y,int z){
}
//求三个数最小公倍数
int fun(int x, int y, int z ) {
}
main( ) {
/************found************/
fun(int x, y, z ) {
int j,t ,n ,m;
j = 1 ;
t=j%x;
m=j%y ;
n=j%z;
while(t!=0||m!=0||n!=0) {
j = j+1;
t=j%x;
m=j%y;
n=j%z;
}
/************found************/
#include <stdio.h>
void NONO(void);
longfun(int a, int b) {
}
int main(void) {
int a,b;
long c;
printf("Input a, bቤተ መጻሕፍቲ ባይዱ");
scanf("%d%d", &a, &b);
c=fun(a, b);
printf("The result is: %ld\n", c);
/************found************/
fun(int m){
double y = 0, d;
int i ;
/************found************/
for( i = 100;i < m;i += 100 ) {
d = (double)i * (double)i ;
}
main( ) {
double x;
printf("Input eps:") ;
scanf("%lf",&x);
printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
NONO ( ) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
fprintf(wf, "%lf\n", fun(x)) ;
}
fclose(fp) ;
fclose(wf) ;
}
答案1:
double i=1,a=1,b=1,c=1,s=0;
while(c>=eps) {
s+=c;
a*=i;
b*=2*i+1;
c=a/b;
i++;
}
return s*2;
答案2:
double n=1.0,m,s1,s2;
float s;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d,%d", &m, &n) ;
s = fun(m, n) ;
1.7
修正:
当k=1时,第一项为4/1*3
#include <stdio.h>
#include <math.h>
float fun(int k){
}
main ( ) {
printf("%f\n", fun (10));
}
答案1:
int n;
float s, w, p, q;
n = 1;
s = 1.0;
}
答案:
int temp;
if (x>y) temp=x;
else temp=y;
FILE *rf, *wf ;
rf = fopen("./05/in.dat","r") ;
wf = fopen("./05/out.dat","w") ;
for(i = 0 ; i < 20 ; i++) {
fscanf(rf, "%f", &a) ;
fprintf(wf, "%f\n", fun(a)) ;
#include <stdio.h>
int NONO(void);
float fun ( float h ) {
}
int main(void) {
float a;
printf ("Enter a: ");
scanf ( "%f", &a );
printf ( "The original data is : " );
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
答案:
long i1=(a%10)*1000;
}
int main(void) /*主函数*/ {
printf("P=%f\n", fun (12,8));
//NONO();
return 1;
}
int NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
int i, m, n ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%f\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
return 1;
}
答案:
int i;
double m,sum=0.0;
for(i=1;i<=n;i++){
FILE *fp, *wf ;
int i ;
double x ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%lf", &x) ;
return i;
}
main( ) {
int x1,x2,x3,j ;
printf("Input x1 x2 x3: ");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("The minimal common multiple is : %d\n",j);
NONO();
return 0;
}
void NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *rf, *wf ;
int i, a,b ;
long c ;
rf = fopen("./44/in.dat","r") ;
wf = fopen("./44/out.dat","w") ;
}
fclose(rf) ;
fclose(wf) ;
return 1;
}
答案1:
long i=h*1000;
if(i%10<5)
return (i/10)/100.0;
else
return (i/10+1)/100.0;
答案2:
long temp=a*1000,temp2;
temp2=temp/10;
float result;//被除数定义成float
if(temp>4)
result=temp2+1;
else
result=temp2;
return result/100;
1.2
#include <stdio.h>
#include <math.h>
double fun ( double eps) {
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
return 1;
}
int NONO(void) {/*请在此函数打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
float a ;
m=i*(i+1);
sum+=1/m;
}
return sum;
1.5
函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12。调用该函数后,c=5241。注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何容,仅在函数fun的花括号中填入你编写的若干语句。
m=2*n+1;
s1=n;
s2=m;
double temp=s1/s2,sum=0.0;
while(temp>=eps){
sum+=temp;
n+=1;
m+=2;
s1*=n;
s2*=m;
temp=s1/s2;
}
return (sum+1)*2;
1.3
#include <stdio.h>
float fun(int m, int n) {
printf("aa=%d,bb=%d",b%10,b/10);
long i2=(b%10)*100;
long i3=a/10*10;
long i4=b/10;
//return a%10*1000+b%10*100+a/10*10+b/10;
return i1+i2+i3+i4;
1.6
#include <stdio.h>
1
1.1
请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567,则函数返回1234.57;实型数为1234.564,则函数返回1234.56。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何容,仅在函数fun的花括号中填入你编写的若干语句。
fprintf(wf, "%f\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
return 1;
}
答案:
float result;
int x,y,z,o=1,p=1,q=1;
for(x=1;x<=m;x++){
o=o*x;
}
for(y=1;y<=n;y++){
p=p*y;
}
for(z=1;z<=m-n;z++){
q=q*z;
}
result=o/(p*q);
return result;
尝试建立一个专门求阶乘的函数。
1.4
#include <stdio.h>
double fun( int n ) {
}
int main(void) /*主函数*/ {
printf("%f\n", fun(10));
//NONO();
y += 1.0 / d ;
}
return (y);
}
main( ) {
int n = 2000 ;
printf( "\nThe result is %lf\n", fun ( n ) ) ;
}
答案:
double fun ( int m ) {
for( i = 100;i <=m;i += 100 ) {
int x1,x2,x3,j ;
printf("Input x1 x2 x3: ");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("The minimal common multiple is : %d\n",j);
while ( n <= k ) {
w = 2.0 * n;
p = w - 1.0;
q = w + 1.0;
s = s * w *w/p/q; n++;
}
return s;
改错:
int i;
float sum=1.0;
for(i=2;i<=k;i++){
sum*=(2*i * 2*i)/((2*i+1)*(2*i-1));//注意数据类型
return 1;
}
int NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
int i, n ;
double s ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
}
return sum;
1.8
给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
}
答案:
int fun(int x,int y,int z){
return j;
编程:
#include <stdio.h>
//求三个数的最大数
int max(int x,int y,int z){
}
//求三个数最小公倍数
int fun(int x, int y, int z ) {
}
main( ) {
/************found************/
fun(int x, y, z ) {
int j,t ,n ,m;
j = 1 ;
t=j%x;
m=j%y ;
n=j%z;
while(t!=0||m!=0||n!=0) {
j = j+1;
t=j%x;
m=j%y;
n=j%z;
}
/************found************/
#include <stdio.h>
void NONO(void);
longfun(int a, int b) {
}
int main(void) {
int a,b;
long c;
printf("Input a, bቤተ መጻሕፍቲ ባይዱ");
scanf("%d%d", &a, &b);
c=fun(a, b);
printf("The result is: %ld\n", c);
/************found************/
fun(int m){
double y = 0, d;
int i ;
/************found************/
for( i = 100;i < m;i += 100 ) {
d = (double)i * (double)i ;
}
main( ) {
double x;
printf("Input eps:") ;
scanf("%lf",&x);
printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
NONO ( ) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
fprintf(wf, "%lf\n", fun(x)) ;
}
fclose(fp) ;
fclose(wf) ;
}
答案1:
double i=1,a=1,b=1,c=1,s=0;
while(c>=eps) {
s+=c;
a*=i;
b*=2*i+1;
c=a/b;
i++;
}
return s*2;
答案2:
double n=1.0,m,s1,s2;
float s;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d,%d", &m, &n) ;
s = fun(m, n) ;
1.7
修正:
当k=1时,第一项为4/1*3
#include <stdio.h>
#include <math.h>
float fun(int k){
}
main ( ) {
printf("%f\n", fun (10));
}
答案1:
int n;
float s, w, p, q;
n = 1;
s = 1.0;
}
答案:
int temp;
if (x>y) temp=x;
else temp=y;
FILE *rf, *wf ;
rf = fopen("./05/in.dat","r") ;
wf = fopen("./05/out.dat","w") ;
for(i = 0 ; i < 20 ; i++) {
fscanf(rf, "%f", &a) ;
fprintf(wf, "%f\n", fun(a)) ;
#include <stdio.h>
int NONO(void);
float fun ( float h ) {
}
int main(void) {
float a;
printf ("Enter a: ");
scanf ( "%f", &a );
printf ( "The original data is : " );
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
答案:
long i1=(a%10)*1000;
}
int main(void) /*主函数*/ {
printf("P=%f\n", fun (12,8));
//NONO();
return 1;
}
int NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
int i, m, n ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%f\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
return 1;
}
答案:
int i;
double m,sum=0.0;
for(i=1;i<=n;i++){
FILE *fp, *wf ;
int i ;
double x ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%lf", &x) ;
return i;
}
main( ) {
int x1,x2,x3,j ;
printf("Input x1 x2 x3: ");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("The minimal common multiple is : %d\n",j);
NONO();
return 0;
}
void NONO (void) {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *rf, *wf ;
int i, a,b ;
long c ;
rf = fopen("./44/in.dat","r") ;
wf = fopen("./44/out.dat","w") ;
}
fclose(rf) ;
fclose(wf) ;
return 1;
}
答案1:
long i=h*1000;
if(i%10<5)
return (i/10)/100.0;
else
return (i/10+1)/100.0;
答案2:
long temp=a*1000,temp2;
temp2=temp/10;