计算机三级网络技术试题.docx
《计算机三级网络技术试题.docx》由会员分享,可在线阅读,更多相关《计算机三级网络技术试题.docx(19页珍藏版)》请在冰点文库上搜索。
计算机三级网络技术试题
请编制程序,要求:
将文件IN40.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,并计算数组xx下标为偶数的元素值的算术平均值pj(保留2位小数),结果cnt1、cnt2、pj输出到文件OUT40.DAT中。
voidmain()
{
intcnt1,cnt2,xx[N];
floatpj;
FILE*fw;
inti,k=0;
longj;
system("cls");
fw=fopen("OUT40.DAT","w");
read_dat(xx);
for(i=0,j=0,cnt1=0,cnt2=0;i{
if(xx[i]%2)
cnt1++;/*求出数组xx中奇数的个数cnt1*/
else
cnt2++;/*求出数组xx中偶数的个数cnt2*/
if(i%2==0)
{
j+=xx[i];/*计算数组xx下标为偶数的元素值的和*/
k++;
}
}
pj=(float)(j*100/k)/100;/*计算数组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);
}
请编制程序,要求:
将文件IN41.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,并计算数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),结果cnt1、cnt2、pj输出到文件OUT41.DAT中。
voidmain()
{
intcnt1,cnt2,xx[N];
floatpj;
FILE*fw;
inti,k=0;
longj=0;
cnt1=0;
cnt2=0;
system("cls");
fw=fopen("OUT41.DAT","w");
read_dat(xx);
for(i=0;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下标为奇数的元素值的算术平均值*/
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);
}
请编制程序,要求:
将文件IN42.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt,并计算数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数),结果max、cnt、pj输出到文件OUT42.DAT中。
voidmain()
{
inti,k,cnt,xx[N],max;
floatpj;
FILE*fw;
longj=0;
system("cls");
fw=fopen("OUT42.DAT","w");
read_dat(xx);
max=xx[0];
for(i=1,k=0;i{
if(xx[i]>max)
max=xx[i];/*找出数组xx中的最大元素*/
if(xx[i]%3==0||xx[i]%7==0)
{
j+=xx[i];/*计算数组xx中值能被3整除或能被7整除的数的和*/
k++;
}
}
for(i=0,cnt=0;iif(xx[i]==max)cnt++;/*统计数组xx中最大元素max的个数*/
pj=(float)(j*100/k)/100;
printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);
}
已知数据文件IN43.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:
如果4位数各位上的数字均是0、2、4、6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT43.DAT文件中。
voidjsVal()
{
intbb[4];
inti,j,k,flag=0;
for(i=0;i<200;i++)
{
bb[0]=a[i]/1000;/*求四位数的千位数字*/
bb[1]=a[i]%1000/100;/*求四位数的百位数字*/
bb[2]=a[i]%100/10;/*求四位数的十位数字*/
bb[3]=a[i]%10;/*求四位数的个位数字*/
for(j=0;j<4;j++)
{
if(bb[j]%2==0)/*如果各位上的数字均偶数*/
flag=1;/*则置标志位flag为1*/
else{flag=0;break;}/*否则置flag为0,退出循环*/
}
if(flag==1)/*将满足条件的数存入数组b中,并统计满足条件的个数cnt*/
{b[cnt]=a[i];cnt++;}
}
for(i=0;ifor(j=i+1;jif(b[i]
{k=b[i];b[i]=b[j];b[j]=k;}
}
已知数据文件IN44.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:
如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。
最后,调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT44.DAT文件中。
voidjsVal()
{
inti,qw,bw,sw,gw,t,j;
for(i=0;i<200;i++)
{
qw=a[i]/1000;/*求四位数的千位数字*/
bw=a[i]%1000/100;/*求四位数的百位数字*/
sw=a[i]%100/10;/*求四位数的十位数字*/
gw=a[i]%10;/*求四位数的个位数字*/
if(qw%2==1&&bw%2==1&&sw%2==1&&gw%2==1)
{b[cnt]=a[i];cnt++;}/*将满足条件的数存入数组b中,并统计满足条件的个数cnt*/
}
for(i=0;ifor(j=i+1;jif(b[i]
}
在文件IN45.DAT中有200个正整数,且每个数均在1000至9999之间。
函数readDat()的功能是读取这200个数存放到数组aa中。
请编制函数jsSort(),该函数的功能是:
要求按每个数的后三位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后三位相等的数,则对这些数按原始4位数据进行升序排列。
最后,调用函数writeDat()把结果bb输出到文件OUT45.DAT中。
例如:
处理前90125099601270258088
处理后50998088702560129012
voidjsSort()
{
inti,j,data;
for(i=0;i<199;i++)/*对数组中的四位数按后三位进行从大到小排序*/
for(j=i+1;j<200;j++)
{
if(aa[i]%1000{data=aa[i];aa[i]=aa[j];aa[j]=data;}
elseif(aa[i]%1000==aa[j]%1000)/*若后三位数相等*/
if(aa[i]>aa[j])/*则要按原四位数的值进行从小到大排序*/
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
}
for(i=0;i<10;i++)bb[i]=aa[i];/*将排序后的前10个数存入数组b中*/
}
在文件IN46.DAT中有200个正整数,且每个数均在1000至9999之间。
函数readDat()的功能是读取这200个数存放到数组aa中。
请编制函数jsSort(),其函数的功能是:
要求按每个数的后三位的大小进行升序排列,将排序后的前10个数依次存入数组b中,如果数组b中出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列。
最后,调用函数writeDat()把结果bb输出到文件OUT46.DAT中。
例:
处理前60125099901270258088
处理后90126012702580885099
voidjsSort()
{
inti,j,data;
for(i=0;i<199;i++)/*对数组中的四位数按后三位进行从小到大排序*/
for(j=i+1;j<200;j++)
{
if(aa[i]%1000>aa[j]%1000)/*比较每个数的后三位*/
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
elseif(aa[i]%1000==aa[j]%1000)/*若后三位数相等*/
if(aa[i]{data=aa[i];aa[i]=aa[j];aa[j]=data;}
}
for(i=0;i<10;i++)bb[i]=aa[i];/*将排序后的前10个数存入数组b中*/
}
下列程序的功能是:
将大于整数m且紧靠m的k个素数存入数组xx。
请编写函数num(intm,intk,intxx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件OUT47.DAT中。
例如:
若输入17,5,则应输出:
19,23,29,31,37。
voidnum(intm,intk,intxx[])
{
intData;
inthalf,i,n=0;
Data=m+1;
while(n{
half=Data/2;
for(i=2;i<=half;i++)
if(Data%i==0)break;
if(i>half){xx[n]=Data;n++;}
Data++;
}
}
下列程序的功能是:
找出所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也是在100以内)的个数cnt,以及这些整数之和sum。
请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT48.DAT中(数值1不是素数)。
voidcountValue()
{
inti,count=0,xx[30];
cnt=0;
sum=0;
for(i=2;i<90;i++)
if(isPrime(i))/*若该数为素数,则将它存入数组xx中,并统计其个数*/
{
xx[count]=i;
count++;
}
for(i=0;iif(isPrime(xx[i]+4)&&isPrime(xx[i]+10))
{
cnt++;/*统计满足条件的数的个数*/
sum+=xx[i];/*计算数组xx中满足条件的数的总和*/
}
}
下列程序的功能是:
计算500~800之间素数的个数cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数—第2个素数+第3个素数—第4个素数+第5个素数……的值sum。
请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT49.DAT中。
voidcountValue()
{
inti,j,yy[100];
for(i=500;i<800;i++)
{
for(j=2;j<=i/2;j++)
if(i%j==0)break;/*若该数不是素数,则退出此循环*/
if(j>=i/2)/*若该数是素数,则将该数存入数组yy中,并统计其个数*/
{
yy[cnt]=i;cnt++;
}
}
for(i=0,j=-1;i{
j=j*-1;
sum+=j*yy[i];
}
}
下面程序的功能是:
选取出100以上1000以下所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数CNT以及这些素数值的和sum。
请编写函数countvalue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT50.DAT中。
voidcountvalue()
{
inti,j,half,hun,ten,data;
for(i=101;i<1000;i++)
{
hun=i/100;
ten=i%100/10;
data=i%10;
if(hun==(ten+data)%10)
{
half=i/2;
for(j=2;jif(i%j==0)break;
if(j>=half){cnt++;sum+=i;}
}
}
}
下面程序的功能是:
在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组中;它既是完全平方数,又有两位数字相同,例如144、676等。
请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回,最后调用函数writeDat()把结果输出到文件OUT51.DAT中。
intjsvalue(intbb[])
{
inti,j,k=0;
inthun,ten,data;
for(i=100;i<=999;i++)
{
j=10;
while(j*j<=i)
{
if(i==j*j)
{
hun=i/100;
data=i-hun*100;
ten=data/10;
data=data-ten*10;
if(hun==ten||hun==data||ten==data)
{bb[k]=i;k++;}
}
j++;
}
}
returnk;
}
下面程序的功能是:
寻找并输出11至999之间的数m,它满足m、m2和m3均为回文数。
所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。
满足上述条件的数如m=11、m2=121、m3=1331皆为回文数。
请编制函数intjsvalue(longn)实现此功能,如果是回文数,则函数返回1,反之则返回0。
最后把结果输出到文件OUT52.DAT中。
intjsvalue(longn)
{
inti,strl,half;
charxy[20];
ltoa(n,xy,10);
strl=strlen(xy);
half=strl/2;
for(i=0;iif(xy[i]!
=xy[--strl])break;
if(i>=half)return1;
elsereturn0;
}
下面程序的功能是:
选出5000以下符合条件的自然数。
条件是:
千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。
计算并输出这些4位自然数的个数cnt及这些数的和sum。
请编写函数countValue()实现程序的要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT53.DAT中。
oidcountValue()
{
inti,qw,bw,sw,gw;
for(i=5000;i>=1000;i--)
{
qw=i/1000;/*求四位数的千位数字*/
bw=i%1000/100;/*求四位数的百位数字*/
sw=i%100/10;/*求四位数的十位数字*/
gw=i%10;/*求四位数的个位数字*/
if(qw+bw==sw+gw&&qw+bw==(gw-qw)*10)
{cnt++;sum+=i;}/*统计满足条件的数的个数并对其求和*/
}
}
已知在文件IN54.DAT中存有N个(个数<200)实数,函数ReadDat()读取这N个实数并存入数组xx中。
请编制函数Calvalue(),其功能要求:
(1)求出这N个实数的平均值aver;
(2)分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT54.DAT中。
voidCalvalue(void)
{
inti;
doublex,sum=0;
for(i=0;i{
sumint=sumint+(int)xx[i];
x=xx[i]-(int)xx[i];
sumdec=sumdec+x;
sum=sum+xx[i];
}
aver=sum/N;
}
已知在文件IN55.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数Calvalue(),其功能要求:
(1)求出文件中共有多少个正整数totNum;
(2)求出这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT55.DAT
voidCalvalue(void)
{
inti,thou,hun,ten,data;
intab;
floatsum=0;
for(i=0;i{
if(xx[i]>0)totNum++;/*求正整数的个数*/
elsebreak;
thou=xx[i]/1000;/*求四位数的千位数字*/
hun=xx[i]%1000/100;/*求四位数的百位数字*/
ten=xx[i]%100/10;/*求四位数的十位数字*/
data=xx[i]%10;/*求四位数的个位数字*/
ab=thou+hun+ten+data;
if(ab%2==0)
{totCnt++;sum=sum+xx[i];}/*统计各位数字之和是奇数的个数并累加求和*/
}
totPjz=sum/totCnt;/*求满足条件的数的平均值*/
}
已知在文件IN56.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求是:
(1)求出这个文件中共有多少个正整数totNum。
(2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz。
最后,调用函数WriteDat()把所有结果输出到文件OUT56.DAT中。
voidCalValue(void)
{
inti,thou,hun,ten,data,ab;
for(i=0;i{
if(!
xx[i])break;
if(xx[i]>0)totNum++;/*求正整数的个数*/
thou=xx[i]/1000;/*求四位数的千位数字*/
hun=xx[i]%1000/100;/*求四位数的百位数字*/
ten=xx[i]%100/10;/*求四位数的十位数字*/
data=xx[i]%10;/*求四位数的个位数字*/
ab=thou+hun+ten+data;
if(ab%2)
{totCnt++;totPjz+=xx[i];}/*统计各位数字之和是奇数的个数并累加求和*/
}
totPjz/=totCnt;/*求满足条件的数的平均值*/
}
已知在文件IN57.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求是:
(1)求出这个文件中共有多少个正整数totNum。
(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz。
最后调用函数WriteDat()把所有结果输出到文件OUT57.DAT中。
voidCalValue(void)
{
inti,data;
for(i=0;i{
if(!
xx[i])break;
if(xx[i]>0)totNum++;/*统计正整数的个数*/
data=xx[i]>>1;/*将数右移一位*/
if(data%2)/*如果产生的新数是奇数*/
{totCnt++;totPjz+=xx[i];}/*统计满足条件的数的个数并求和*/
}
totPjz/=totCnt;/*计算满足条件的数的平均值*/
}
已知在文件IN58.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数Calvalue(),其功能要求:
(1)求出这个文件中共有多少个正整数totnum;
(2)求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数WriteDat()把所求的结果输出到文件OUT58.DAT中。
voidCalvalue(void)
{
inti,data;
for(i=0;i{
if(!
xx[i])break;
if(xx[i]>0)totNum++;/*统计正整数的个数*/
data=xx[i