模拟题带答案终结版.docx
《模拟题带答案终结版.docx》由会员分享,可在线阅读,更多相关《模拟题带答案终结版.docx(21页珍藏版)》请在冰豆网上搜索。
模拟题带答案终结版
第一题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun其功能是:
根据整型形参m,计算如下
公式的值:
y=1/2!
+1/4!
+...+1/m!
(m是偶数)
------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********Program**********/
doubley=0.0;
inti,j;
doubles=1;
for(i=2;i<=m;i+=2)
{
for(j=i-1;j<=i;j++)
s=s*j;
y=y+1.0/s;
}
returny;
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
yzj();
}
yzj()
{
FILE*IN,*OUT;
intt;
floato;
intc;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
第二题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出矩阵第一行与第三行元素之和,
并在fun()函数中输出。
------------------------------------------------*/
#include"stdio.h"
main()
{
inti,j,s,a[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf("Sum=%d\n",s);
yzj();
}
intfun(inta[3][3])
{
/**********Program**********/
intsum;
inti,j;
sum=0;
for(i=0;i<3;i+=2)
for(j=0;j<3;j++)
sum=sum+a[i][j];
returnsum;
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intm;
intn;
inti[3][3];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(m=0;m<3;m++)
{
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
}
o=fun(i);
{
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
第三题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
若x、y为奇数,求x到y之间的奇数和;若x、y为偶
数,则求x到y之间的偶数和。
------------------------------------------------*/
#include"stdio.h"
main()
{
ints,i,j;
s=fun(1,1999)-fun(2,1998);
printf("s=%d\n",s);
yzj();
}
intfun(intx,inty)
{
/**********Program**********/
inti,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
returns;
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intn;
inti[2];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=fun(i[0],i[1]);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
第四题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include"stdio.h"
main()
{
inti,j,s,a[3][3];;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf("Sum=%d\n",s);
yzj();
}
intfun(inta[3][3])
{
/**********Program**********/
intsum;
inti,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
returnsum;
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intm;
intn;
inti[3][3];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(m=0;m<3;m++)
{
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
}
o=fun(i);
{
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
第五题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun用比较法对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
------------------------------------------------*/
#include"stdio.h"
intfun(intarray[],intn)
{
/**********Program**********/
intk,j,t;
for(k=0;kfor(j=k+1;jif(array[k]{
t=array[k];
array[k]=array[j];
array[j]=t;
}
/**********End**********/
}
main()
{
inta[10],i;
printf("请输入数组a中的十个数:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("由大到小的排序结果是:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
yzj();
}
yzj()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,"%d\n",i[n]);
}
fclose(IN);
fclose(OUT);
}
第六题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun其功能是:
根据整型形参m,计算如下
公式的值:
y=1+1/3+1/5+1/7+...+1/(2m+1)
例如:
若m=9,则应输出:
2.133256
------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********Program**********/
doubley=1;
inti;
for(i=1;i<=m;i++)
{y+=1.0/(2*i+1);}
return(y);
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
yzj();
}
yzj()
{
FILE*IN,*OUT;
ints,i;
intt;
floato;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
第七题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun求1!
+2!
+3!
+……+n!
的和,在main函
数中由键盘输入n值,并输出运算结果。
请编写fun
函数。
例如:
若n值为5,则结果为153。
------------------------------------------------*/
#include
floatfun(intn)
{
/**********Program**********/
inti;
floatf=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
returns;
/**********End**********/
}
main()
{
inti,n;
longintresult;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
yzj();
}
yzj()
{
FILE*IN,*OUT;
inti;
intiIN;
longintiOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
第八题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:
输入的数组为:
123
4156
12189
10112
求出的最大数为18,行坐标为2,列坐标为1。
------------------------------------------------*/
#defineN4
#defineM3
#include
intRow,Col;
main()
{
inta[N][M],i,j,max,row,col;
printf("inputaarray:
");
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;i{
for(j=0;jprintf("%d",a[i][j]);
printf("\n");
}
max=fun(a);
printf("max=%d,row=%d,col=%d",max,Row,Col);
yzj();
}
intfun(intarray[N][M])
{
/**********Program**********/
intmax,i,j;
max=array[0][0];
Row=0;
Col=0;
for(i=0;i{for(j=0;jif(max{max=array[i][j];
Row=i;
Col=j;}
}
return(max);
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intiIN[N][M],iOUT,i,j;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;ifor(j=0;jfscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d%d%d\n",iOUT,Row,Col);
fclose(IN);
fclose(OUT);
}