份二C上机编程题题目Word文档格式.docx
《份二C上机编程题题目Word文档格式.docx》由会员分享,可在线阅读,更多相关《份二C上机编程题题目Word文档格式.docx(59页珍藏版)》请在冰豆网上搜索。
F(n)=F(n-1)+F(n-2)
当t=1000时,函数值为:
1597。
doublefun(intn)
main()/*主函数*/
printf("
%f\n"
fun(1000));
第4题、
根据以下公式计算s,计算结果通过形指针sn传回;
s通过形参传入。
1111 (-1)^n
sn=──-──+──-──+ …… ────
1357 2n+1
若n的值为11时,输出的结果是:
S=0.764601N=11。
voidfun(float*sn,intn)
{intn=11;
floats;
fun(&
s,n);
S=%fN=%d\n"
s,n);
第5题、
编写函数fun,它的功能是计算:
s=(In
(1)+In
(2)+In(3)+……+In(m))^0.5,s作为函数值返回。
在C语言中可调用log(n)函数求In(n)。
log函数的引用说明是:
doublelog(doublex)。
例如,若m的值为:
20,fun函数值为:
6.506583。
doublefun(intm)
fun(20));
第6题、
编写函数fun,它的功能是计算下列数级和,和值由函数值返回。
x^2x^3x^n
s=1+x+──+──+……+──
2!
3!
n!
例如,当n=10,x=0.3时,函数值为1.349859。
doublefun(doublex,intn)
{printf("
fun(0.3,10));
第7题、
计算并输出下列级数和:
111
s=───+───+……+─────
1×
22×
3n×
(n+1)
例如,当n=10时,函数值为:
0.909091。
fun(10));
第8题、
请编写一个函数fun,它的功能是:
根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
π11×
21×
2×
3 1×
3×
41×
…×
n
─=1+─+──+────+─────+……+────────
233×
53×
5×
7 3×
7×
93×
(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。
doublefun(doubleeps)
main()
{doublex;
Inputeps:
"
);
scanf("
%lf"
&
x);
\neps=%lf,PI=%lf\n"
x,fun(x));
第9题、
请编写函数fun,其功能是:
计算并输出当x<
0.97时下列多项式的值,直到|S(n)-S(n-1)|<
0.000001为止。
S=1+0.5x+0.5(0.5-1)x2/2!
+……+0.5(0.5-1)(0.5-2)--------(0.5-n+1)xn/n!
例如,在主函数中从键盘给x输入0.21后,输出为:
s=1.100000。
doublefun(doublex)
{doublex,s;
Inputx:
"
);
s=fun(x);
s=%f\n"
s);
B类数学的最大与最小值(1-4)
第1题、
请编写一个函数fun,它的功能是:
找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
stdlib.h>
voidfun(inta[],intn,int*max,int*d)
{inti,x[20],max,index,n=10;
for(i=0;
i<
n;
i++){x[i]=rand()%50;
%4d"
x[i]);
\n"
fun(x,n,&
max,&
index);
Max=%5d,Index=%4d\n"
max,index);
请编写一个函数intfun(int*s,int*t,int*k),用来求出数组中值最大的元素在数组中的下标并存放在k所指的存储单元中,并且将最大值增添在数组的最后。
形参t所指存储单元中存放数组中数据的个数。
例如,数组中的数据如下:
876675896101301401980431451777
则输出最大值的下标为:
6,数组中的内容为:
876675896101301401980431451777980
#defineN80
voidfun(int*s,int*t,int*k)
}main()
{inta[N]={876,675,896,101,301,401,980,431,451,777},i,n,mi;
n=10;
\nTheoriginaldata:
for(i=0;
i<
n;
i++)printf("
a[i]);
fun(a,&
n,&
mi);
Theindexofmaxis:
%d\n"
mi);
Theresult:
请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{intt[M][N]={{22,45,56,30},
{19,33,45,38},
{20,22,66,40}};
intp[N],i,j,k;
Theoriginaldatais:
M;
i++){
for(j=0;
j<
N;
j++)
%6d"
t[i][j]);
fun(t,p);
\nTheresultis:
for(k=0;
k<
k++)printf("
p[k]);
第4题、
请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标,用k返回。
例如,输入如下整数:
876675896101301401980431451777
则输出结果为:
6,980
intfun(int*s,intt,int*k)
inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&
k);
%d,%d\n"
k,a[k]);
C类二维数组行列下标(1-6)
请编写函数fun,函数的功能是:
实现B=A+A'
,即把矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
例如,输入下面的矩阵:
其转置矩阵为:
|123||147|
|456||258|
|789||369|
程序输出:
|2610|
|61014|
|101418|
voidfun(inta[3][3],intb[3][3])
{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];
inti,j;
fun(a,t);
3;
for(j=0;
%7d"
程序定义了N×
N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N]),函数的功能是:
使数组右上半三角元素中的值乘以m。
若m的值为2,a数组中的值为
|197|
a=|238|,则返回主程序后a数组中的值应为
|456|
|21814|
|2616|
|4512|
#defineN5
intfun(inta[][N],intm)
{inta[N][N],m,i,j;
*****Thearray*****\n"
i++)
{for(j=0;
{a[i][j]=rand()%20;
a[i][j]);
dom=rand()%10;
while(m>
=3);
m=%4d\n"
m);
fun(a,m);
THERESULT\n"
j++)printf("
编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:
100200300
400500600
700800900
100400700
200500800
300600900
intfun(intarray[3][3])
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
array[i][j]);
fun(array);
Convertedarray:
{for(j=0;
程序定义了N×
N的二维数组,并在主函数中赋值。
请编写函数fun,函数的功能是:
求出数组周边元素的和。
|01279|
|19745|
a=|23831|
|45682|
|59141|
则返回主程序后s的值应为:
54。
doublefun(intw[][N])
{inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
doubles;
{printf("
s=fun(a);
*****THERESULT*****\n"
Thesumis:
%lf\n"
第5题、
将M行N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,二维数组中的数据为:
33333333
44444444
55555555
则一维数组中的内容应是:
333333334444444455555555。
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
{intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;
inta[100]={0},n=0;
Thematrix:
for(i=0;
i<
3;
i++)
{for(j=0;
j<
4;
j++)printf("
%3d"
w[i][j]);
fun(w,a,&
n,3,4);
TheAarray:
n;
i++)printf("
\n\n"
将M行N列的二维数组中的数据按列的顺序依次放到一维数组中。
334455334455334455334455。
voidfun(ints[][10],intb[],int*n,intmm,intnn)
/*以下代码仅供参考*/
inti,j,np=0;
/*np用作b数组下标*/
*n=np;
{intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;
inta[100]={0},n=0;
i<
4;
j++)printf("
w[i][j]);
fun(w,a,&
n,3,4);
D类素数(1-3)
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,若输入:
17,则应输出:
9和46891012141516。
voidfun(intm,int*k,intxx[])
intm,n,zz[100];
\nPleaseenteranintegernumberbetween10and100:
%d"
n);
fun(n,&
m,zz);
\n\nThereare%dnon-primenumberslessthan%d:
m,n);
for(n=0;
n<
m;
n++)
\n%4d\n"
zz[n]);
第2题、
将大于形参m且紧靠m的k个素数存入xx数组中。
voidfun(intm,intk,intxx[])
inti,j=1,t=m+1;
while(j<
=k)
{
/*以下完成判断素数,并存放到数组xx中*/
intm,xx[100],k,i;
scanf("
%d,%d"
m,&
k);
fun(m,k,xx);
for(i=0;
k;
xx[i]);
计算并输出3到n之间所有素数的平方根之和。
例如,在主函数中从键盘给n输入100后,
输出为:
sum=148.874270。
注意:
要求n的值大于2但不大于100。
{intn;
doublesum;
\n\nInputn:
sum=fun(n);
\n\nsum=%f\n\n"
sum);
E类数学其它(1-14)
函数fun的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12。
调用该函数后,c=5241。
voidfun(inta,intb,long*c)
{inta,b;
longc;
Inputa,b:
%d%d"
a,&
b);
fun(a,b,&
c);
Theresultis:
%ld\n"
c);
第2题、
(1)
请编写函数fun,它的功能是:
求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
#defineM200
intaa[1000];
voidfun(int*n)
{intn,k;
fun(&
k++)
if((k+1)%10==0)printf("
elseprintf("
%5d"
aa[k]);
第2题、
(2)
请编写一个函数fun,它的功能是,求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传送给m的值为50,则程序输出:
711142122283335424449
#defineM100
voidfun(