- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机三级网络技术上机题电子版
1、已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函primeCal(),其功能是:求出这些四位数中素数的个数count,再出所有满足此条件的四位数的平均值Ave1以及不满足此条件的四位数Ave2。
int i;
for(i=0;i300;i++)
if(isP(a[i]))
{
Ave1+=a[i];
count++;
}
else
{
Ave2+=a[i];
}
Ave1=Ave1/count;
Ave2=Ave2/(300-count);
2、著名的约瑟夫问题:
设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人此人出圈,再从他的下一个人重新开始1到m报数,如此进行下去直到所有人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。请编写函数Josegh()实现此功能,设n=100,s=1,m=10.条件如下:
1、将1到n个人的序号存入一个数组p中
2、若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个人位置;
3、重复第2步直至圈中只剩下p[1]为止。
void Josegh(void)
{
int i, j, s1, w;
s1 = s;
for (i=1; i=n; i++)
p[i-1] = i;
for (i=n; i=2; i--)
{
s1 = (s1+m-1)%i;
if (s1 == 0)
s1 = i;
w = p[s1-1];
for (j=s1; j=i-1; j++)
p[j-1] = p[j];
p[i-1] = w;
}
}
现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,0表示此人未被选中,1则表示此人被选中。若一张选票人数大于5个人时被认为无效。给定函数Rdata()的功能是把选票数据读入到字符串数组string中。请编写CountRs()函数。其功能是实现:统计每个人的选票数并把得票数依次存入result[0]到result[9] ,把结果result输出到OUT.dat中。
void CountRs(void)
{
int i,count,j;
char *pf;
for(i=0;i10;i++)
result[i]=0;
for(i=0;i100;i++)
{
pf=string[i];
count=0;
while(*pf)
{
if(*pf==1)
count++;
pf++;
}
if(count=5)
for(j=0;j10;j++)
result[j]+=string[i][j]-0;
}
}
请编写一个函数findStr(),其功能是:统计一个长度为2的子字符串在另一个字符串中出现的次数。
文档评论(0)