c语言上机试题 1.docx

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

c语言上机试题 1.docx

《c语言上机试题 1.docx》由会员分享,可在线阅读,更多相关《c语言上机试题 1.docx(16页珍藏版)》请在冰点文库上搜索。

c语言上机试题 1.docx

c语言上机试题1

1整型、实型

1.1实型四舍五入

请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。

例如:

实型数为,则函数返回;实型数为,则函数返回。

注意:

部分源程序存在文件文件中。

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

#include<>

intNONO(void);

floatfun(floath){

}

intmain(void){

floata;

printf("Entera:

");

scanf("%f",&a);

printf("Theoriginaldatais:

");

printf("%f\n\n",a);

printf("Theresult:

%f\n",fun(a));

NONO();

return1;

}

intNONO(void){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

inti;

floata;

FILE*rf,*wf;

rf=fopen("./05/","r");

wf=fopen("./05/","w");

for(i=0;i<20;i++){

fscanf(rf,"%f",&a);

fprintf(wf,"%f\n",fun(a));

}

fclose(rf);

fclose(wf);

return1;

}

 

答案1:

longi=h*1000;

if(i%10<5)

return(i/10)/;

else

return(i/10+1)/;

答案2:

longtemp=a*1000,temp2;

temp2=temp/10;

temp=temp%10;

floatresult;44/","r");

wf=fopen("./44/","w");

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

}

答案:

longi1=(a%10)*1000;

printf("aa=%d,bb=%d",b%10,b/10);

longi2=(b%10)*100;

longi3=a/10*10;

longi4=b/10;

//returna%10*1000+b%10*100+a/10*10+b/10;

returni1+i2+i3+i4;

1.2数学公式

#include<>

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

fun(intm){

doubley=0,d;

inti;

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

for(i=100;i

d=(double)i*(double)i;

y+=/d;

}

return(y);

}

main(){

intn=2000;

printf("\nTheresultis%lf\n",fun(n));

}

 

答案:

doublefun(intm){

for(i=100;i<=m;i+=100){

 

1.3数学公式

 

修正:

当k=1时,第一项为4/1*3

 

#include<>

#include<>

floatfun(intk){

}

main(){

printf("%f\n",fun(10));

}

答案1:

intn;

floats,w,p,q;

n=1;

s=;

while(n<=k){

w=*n;

p=w-;

q=w+;

s=s*w*w/p/q;n++;

}

returns;

改错:

inti;

floatsum=;

for(i=2;i<=k;i++){

sum*=(2*i*2*i)/((2*i+1)*(2*i-1));//注意数据类型

}

returnsum;

1.4最小公倍数

给定程序中函数fun的功能是:

求三个数的最小公倍数。

例如,给主函数中的变量x1、x2、x3分别输入15112,则输出结果应当是:

330。

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

注意:

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

#include<>

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

fun(intx,y,z){

intj,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************/

returni;

}

main(){

intx1,x2,x3,j;

printf("Inputx1x2x3:

");

scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("Theminimalcommonmultipleis:

%d\n",j);

}

 

答案:

intfun(intx,inty,intz){

returnj;

 

编程:

#include<>

//求三个数的最大数

intmax(intx,inty,intz){

}

//求三个数最小公倍数

intfun(intx,inty,intz){

}

main(){

intx1,x2,x3,j;

printf("Inputx1x2x3:

");

scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("Theminimalcommonmultipleis:

%d\n",j);

}

答案:

inttemp;

if(x>y)temp=x;

elsetemp=y;

if(temp>z)returntemp;

elsereturnz;

inttemp=max(x,y,z);

intresult=temp;

while

(1){

if(result%x==0&&result%y==0&&result%z==0)returnresult;

result=result+temp;

}

1.5n!

改错

给定程序中函数fun的功能是:

计算n!

例如,给n输入5,则输出。

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

注意:

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

#include<>

doublefun(intn){

doubleresult=;

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

ifn==0return;

while(n>1&&n<170)

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

result*=n--

returnresult;

}

main(){

intn;

printf("InputN:

");

scanf("%d",&n);

printf("\n\n%d!

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

}

答案:

if(n==0)return;

result*=n--;

1.6数学公式

 

#include<>

doublefun(intn){

}

main(){

intn=5;

printf("\nThevalueoffunctionis:

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

}

答案:

inta,b,c,k;

doubles;

s=;

a=2;

b=1;

for(k=1;k<=n;k++){

s=s+(double)a/b;

c=a;

a=a+b;

b=c;

}

returns;

1.7数列

已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。

给定程序中函数fun的功能是:

计算并输出该数列前n项的平方根之和。

n的值通过形参传入。

例如,当n=10时,程序的输出结果应为:

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

注意:

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

#include<>

#include<>

doublefun(intn){

}

main(){

intn;

printf("InputN=");

scanf("%d",&n);

printf("%f\n",fun(n));

}

答案:

doublesum,s0,s1,s2,s;

intk;

sum=;

if(n<=2)sum=;

s0=;

s1=;

s2=;

for(k=4;k<=n;k++){

s=s0+s1+s2;

sum+=sqrt(s);

s0=s1;

s1=s2;

s2=s;

}

returnsum;

1.8数学公式

 

#include<>

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

intfun(intn){

floatA=1;

inti;

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

for(i=2;i

returnA;

}

main(){

intn;

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("A%d=%f\n",n,fun(n));

}

答案:

floatfun(intn){

if(2<=n)return(1+fun(n-1));//递归

或:

for(i=2;i<=n;i++)A=(1+A);//另一种

1.9数学公式

给定程序中函数fun的功能是:

根据整型形参m的值,计算如下公式的值。

#include<>

doublefun(intm){

doubley=;

inti;

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

for(i=2;i

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

y-=1/(i*i);

return(y);

}

main(){

intn=5;

printf("\nTheresultis%lf\n",fun(n));

}

答案:

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

y-=(i*i);

1.10数学公式

 

#include<>

#include<>

doublefun(doubleeps){

doubles,t;

intn=1;

s=;

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

t=0;

while(t>eps){

s+=t;

t=t*n/(2*n+1);

n++;

}

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

return(s);

}

main(){

doublex;

printf("\nPleaseenteraprecision:

");

scanf("%lf",&x);

printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));

}

答案:

t=;

return(s*2);

1.11素数

给定程序中函数fun的功能是:

找出一个大于形参m且紧随m的素数,并作为函数值返回。

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

注意:

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

#include<>

intfun(intm){

inti,k;

for(i=m+1;;i++){

for(k=2;k

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

if(i%k!

=0)break;

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

if(k

}

}

voidmain(){

intn;

n=fun(20);

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

}

答案:

if(i%k==0)break;

if(k==i)return(i);

1.12整数处理

给定程序中函数fun的功能是:

从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如,当s中的数为:

7654321时,t中的数为:

642。

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

注意:

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

#include<>

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

//voidfun(longs,longt){

voidfun(longs,long*t){

longsl=10;

s/=10;

*t=s%10;

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

//while(s<0){

while(s>0){

s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main(){

longs,t;

printf("\nPleaseenters:

");

scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

1.13自然数

给定程序中函数fun的功能是:

计算小于形参k的最大的10个能被13或17整除的自然数之和。

k的值由主函数传入,若k的值为500,则函数值为4622。

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

注意:

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

#include<>

intfun(intk){

intm=0,mc=0,j;

while((k>=2)&&(mc<10)){

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

if((k%13=0)||(k%17=0)){

m=m+k;

mc++;

}

k--;

}

returnm;

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

_____

}

main(){

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

}

 

if(k%13==0||k%17==0){

//____

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

当前位置:首页 > 自然科学 > 物理

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

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