考无忧小编为各位考生搜集整理了三级网络技术试题,希望可以为各位的备考锦上添花,雪中送炭!记得刷计算机等级考试题库哟!
请编制程序,要求:将文件IN99.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),结果cnt1,cnt2,pj输出到OUT99.DAT中。
部分程序、读函数read_dat(int xx[200])及输出格式已给出。
试题程序:
#include <stdlib.h>
#include <stdio.h>
#define N 200
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen("IN99.DAT","r");
for(i=0;i<20;i++)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d ",xx[i*10+j]);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int cnt1,cnt2,xx[N];
float pj;
FILE *fw;
system("CLS");
fw=fopen("out99.dat","w");
read_dat(xx);
printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);
fclose(fw);
}
【答案】
void main()
{
int cnt1,cnt2,xx[N];
float pj;
FILE *fw;
int i,k=0;
long j=0;
cnt1=0;
cnt2=0;
pj=0.0;
clrscr();
fw=fopen("out94.dat","w");
read_dat(xx);
for(i=0;i<N;i++)
{
if(xx[i]%2)
cnt1++; /*求出数组xx中奇数的个数cnt1*/
else
cnt2++; /*求出数组xx中偶数的个数cnt2*/
if(i%2==1)
{
j+=xx[i]; /*求数组xx下标为奇数的元素值的总和*/
k++;
}
}
pj=(float)(j*100/k)/100; /*求数组xx下标为奇数的元素值的算术平均值pj*/
printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);
fclose(fw);
}
【解析】本题中,首先通过一个for循环来逐个取数,分别统计其中的奇数和偶数的个数,并统计数组xx中下标为奇数的元素的总和,用来求平均值。本题要求对最后结果保留两位小数。在求平均值的式子中,运算符"/"在这里的含义是整除,而我们要保留小数,所以要使用强制类型转换将结果转换为浮点类型,这样就可以实现保留两位小数的目的。
考无忧小编为大家介绍一款实用的考无忧网校:计算机等级考试题库,涵盖了计算机等级各方面内容,同样所有习题交互式答题,有答案,有解析,相信会在您的备考道路上,助您一臂之力!以上的三级网络技术试题,也会助您考试成功的!
文章推荐:
2018年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯