c语言上机基本题Word下载.docx
《c语言上机基本题Word下载.docx》由会员分享,可在线阅读,更多相关《c语言上机基本题Word下载.docx(24页珍藏版)》请在冰点文库上搜索。
scanf("
%d"
&
n);
s=fun(n);
\n\ns=%f\n"
,s);
2-2
下列给定程序中,函数fun()的功能是:
根据整型形参m的值,计算如下公式的值。
t=1-1/(2×
2)-1/(3×
3)-…-1/(m×
m)
请改正函数fun()中的错误,使它能得出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构。
stdlib.h>
conio.h>
doublefun(intm)
{doubley=1.0;
intI;
/*************found**************/
for(I=2;
I<
=m;
I++)
y-=1.0/(I*I);
return(y);
voidmain()
{intn=5;
system("
CLS"
\nTheresultis%1f\n"
fun(n));
3-2
下列给定程序中,fun函数的功能是:
根据形参m,计算下列公式的值。
t=1+1/2+1/3+1/4+…+1/m
例如,若输入5,则应输出2.283333。
请改正程序中的错误,使它能计算出正确的结果。
doublet=1.0;
I++)
t+=1.0/I;
returnt;
{intm;
\nPleaseenter1integer
number:
"
scanf("
m);
fun(m));
3-3
编写函数fun,函数的功能是:
根据以下公式计算s,计算结果作为函数值返回;
n通过形参传入。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
例如:
若n的值为11时,函数的值为1.833333。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
string.h>
floatfun(intn)
{floatsum=0.0,t=0.0;
for(i=1;
=n;
i++)
{t+=i;
sum+=1.0/t;
return(sum);
intn;
floats;
\nPleaseenterN:
s=fun(n);
Theresultis:
%f\n"
s);
4-1
填空题
给定程序的功能是:
计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。
SN=2/1+3/2+4/3+…+(N+1)/N
例如,若q的值为50.0,则函数值为50.416687。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
doublefun(doubleq)
n=2;
s=2.0;
while(s<
q)
s=s+(double)(n+1)/n;
n++;
n=%d\n"
n);
returns;
%f\n"
fun(50));
4-2
改错题
下列给定的程序中,函数fun的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
K的值由主函数传入,若k的值为500,则函数的值为4622。
请改正程序中的错误,使它能得出正确的结果。
intfun(intk)
{intm=0,mc=0,j;
while((k>
=2)&
&
(mc<
10))
{
if((k%13=0)||(k%17=0))
{m=m+k;
mc++;
k--;
returnm;
{system("
%d\n"
fun(500));
4-3
设计题
编写函数fun,它的功能是:
根据以下公式求p的值,结果由函数值带回。
m与n为两个正数且要求m>
n。
P=m!
/(n!
(m-n)!
),例如:
m=12,n=8时,运行结果为495.000000。
floatfun(intm,intn)
{
p=%f\n"
fun(12,8));
5-1
请补充函数fun,该函数的功能求能是:
整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。
例如当x=20时,依次输出:
20 10 4 2。
voidfun(intk,intbb[])
intj=0;
for(【1】;
=k;
if(【2】)
bb[j++]=I;
}
\n\n"
for(I=【3】;
I>
=0;
I--)
%d"
bb[I]);
intk=1;
intbb[100];
system("
\nPleaseinputX="
k);
fun(k,bb);
5-2
下列给定程序中,函数fun的功能是:
根据整型形参m,计算如下公式的值。
y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)
例如,若m中的值为5,则应输出:
1.463611。
doubley=1.0;
/********found********/
for(i=2;
i<
m;
y+=1/(i*i);
return(y);
intn=5;
\nTheresultis%1f\n"
fun(n));
5-3
利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=cos(Xn)
迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,把x1的值赋给x0;
(3)x1=cos(x0),求出一个新的xl;
(4)若x0-x1,的绝对值小于0.000001,则执行步骤(5),否则执行步骤
(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出结果Root=0.739085。
请勿改动main函数和其他函数中的任何内容,仪在函数fun的花括号中填入所编写的若干语句。
math.h>
floatfun()
floatf=fun();
Root=%f\n"
f);
7-1
请补充函数fun,该函数的功能是:
求不超过给定自然数的所有偶数之和。
intfun(intx)
inti,s;
s=_【1】;
for(i=2;
【2】;
i+=2)
s+=i;
returns;
do
\nPleaseenternaturalnumbersn:
}while(n<
=0);
\n不超过给定自然数%d的各偶数之和为%d\n"
n,fun(n));
7-2
下列给定程序中函数fun的功能是:
计算n!
。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
doubleresult=1.0;
/********found*******/
ifn==0
return1.0;
while(n>
1&
n<
170)
result=n--;
returnresult;
main()
InputN:
,&
\n\n%d!
=%lf\n\n"
7-3
请编一个函数floatfun(doubleh),函数的功能是:
对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。
若h值为8.32433,则函数返回8.32;
若h值为8.32533,则函数返回8.33。
floatfun(floath)
floata;
Entera:
scanf("
%f"
a);
Theoriginaldatais:
%f\n\n"
a);
Theresult:
%f\n"
fun(a));
8-1
求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。
当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:
avg=15.030000。
doublefun(doublex[10])
longt;
doubleavg=0.0;
doublesum=0.0;
for(I=0;
10;
【1】;
avg=sum/10;
avg=【2】;
t=【3】;
avg=(double)t/100;
returnavg;
doubleavg,x[10]=
{15.6,19.9,16.7,15.2,
18.3,12.1,15.5,11.0,10.0,16.0};
inti;
\nTheoriginaldatais:
\n"
for(i=0;
printf("
%6.1f"
x[i]);
avg=fun(x);
average=%f\n\n"
avg);
8-2
计算正整数num各位上的数字之积。
例如,若输入252,则输出应该是20。
若输入202,则输出应该是0。
longfun(longnum)
longk;
do
k*=num%10;
num\=10;
}while(num);
return(k);
longn;
\pleaseenteranumber:
%ld"
\n%ld\n"
,fun(n));
8-3
请编写一个函数fun,它的功能是:
根据以下公式求π的值(要求满足精度0.005,即某项小于0.005时停止迭代)。
π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1))
程序运行后,如果输入精度0.0005,则程序输出3.14…。
doublefun(doubleeps)
doublex;
Inputeps:
%lf"
x);
\neps=%1f,PI=%1f\n"
x,fun
(x));
9-1
请补允函数fun,该函数的功能是:
计算并输出下列多项式的值。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+50)
例如,若主函数从键盘给n输入50后,则输出为S=1.960784。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填若干表达式或语句。
【1】fun(intn)
inti,j;
doublesum=0.0,t;
for(i=1;
t=0.0;
for(j=1;
j<
=i;
j++)
t+=【2】;
sum+=【3】;
returnsum;
main()
doubles;
printf("
s=fun(n);
printf("
\n\ns=%f\n\n"
9-2
将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如当s中的数为87653142时,t中的数为7531。
请改正函数fun中的错误,使它能得出正确的结果。
voidfun(longs,long*t)
{intd;
longs1=1;
t=0;
while(s>
0)
{d=s%10;
if(d%2==0)
{*t=d*s1+*t;
s1*=10;
s/=10;
{longs,t;
\nPleaseenters:
s);
fun(s,&
t);
Theresultis:
%ld\n"
t);
10-1
请补充main函数,该函数的功能是:
求n!
例如7!
=5040。
请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。
intI,n;
longf=1;
Inputn:
【1】);
for(【2】;
【3】;
%d!
n,f);
10-2
计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
#defineN80
intfun(char*s,char*t)
char*p,*r;
n=0;
p=&
s[0];
*r=t;
while(*p)
if(*r==*p)
r++;
if(*r=='
\0'
)
/*******found*******/
____填空____
p++;
returnn;
chara[N],b[N];
intm;
\nPleaseenterstringa:
gets(a);
\nPleaseentersUbstringb:
gets(b);
m=fun(a,b);
m=printf("
\nTheresultis:
m=%d\n"
,m);
10-3
请编写函数fun,它的功能是:
求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3。
#defineM81
int