- 0
- 0
- 约8.67万字
- 约 26页
- 2016-09-15 发布于江苏
- 举报
2012年3月三级网络上机预测题(背诵).doc
1、程序设计题
将文件IN.DAT中的200个整数读至数组xx中。请编制jsValue()函数,要求:求出数组xx中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。结果cnt1,cnt2,pj输出到OUT.DAT中。
注意:部分源程序存在文件PROG1.C文件中。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数read_dat()和输出函数writeDat()的内容。
【试题程序】
#include stdio.h
#define N 200
int cnt1,cnt2,xx[N];
float pj; /* 平均值 */
void writeDat();
void jsValue()
{
}
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen(in.dat,r);
for(i=0;i20;i++){
for(j=0;j10;j++){
fscanf(fp,%d,,xx[i*10+j]);
printf(%d ,xx[i*10+j]);
}
printf(\n);
}
fclose(fp);
}
void main()
{
read_dat(xx);
jsValue();
printf(\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n,cnt1,cnt2,pj);
writeDat();
}
void writeDat()
{
FILE *fw;
fw=fopen(out.dat,w);
fprintf(fw,%d\n%d\n%6.2f\n,cnt1,cnt2,pj);
fclose(fw);
}
【解题思路】本题要求统计数组中奇数和偶数的个数并求下标为偶数的元素值的平均值。依照题意,应该依次取得每个已知数,按奇偶数统计个数,若是奇数则计数器变量cnt1加1,否则cnt2加1,同时下标为偶数的参与计算平均值pj。
【参考答案】
void jsValue()
{ int i; /* 定义变量 */
for(i=0;iN;i++) /* 统计求和 */
{ if(xx[i]%2==1) cnt1++;
else cnt2++;
if(i%2==0) pj+=xx[i];
}
pj/=(N/2); /* 求平均值 */
}
2、程序设计题
已知文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件。
例如: 5591是素数,则该数满足条件,参加计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,参加计算平均值pjz2。
注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
【试题程序】
#include stdio.h
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;
void writeDat();
void readDat();
int isP(int m)
{
int i;
for(i=2;im;i++)
if(m%i==0) return 0;
return 1;
}
void jsValue()
{
}
main()
{
readDat();
jsValue();
writeDat();
printf(cnt=%d\n满足条件的平均值pzj1=%7.2lf\n不满足条件的平均值pzj2=%7.2lf\n,cnt,pjz1,pjz2);
}
void readDat()
{
FILE *fp;
int i;
fp=fopen(in.dat,r);
for(i=
原创力文档

文档评论(0)