全国计算机等级考试三级网络技术南开上机100题
网络技术三级考试

printf("满足条件的数
注意:部分源程序
}
=%d\n", cnt) ;
存在文件 prog1.c 中。
for(i=0;i<cnt-1;i++)
for(i = 0 ; i < cnt ; i++)
程序中已定义数组:
printf("%d ", b[i]) ;
a[200],b[200],已定义变量: for(j=i+1;j<cnt;j++)
{
data++;}
{ for(j=2;j<i;j++) if(i%j==0)
break; if(i==j)
{ xx[s++]=i; k--;} }
} main() { int m,n,zz[100];
ห้องสมุดไป่ตู้
int m,n,zz[100],i; FILE *in,*out;
} ★题 目 2( 无 忧 id 143
函数 ReadDat( )实现从 yu have the crrect rec
文件 IN.DAT 中读取一篇英
for(j=strlen(xx[i])-1;j>=0;j-原始数据文件存放
)
文文章存入到字符串数组 的格式是:每行的宽度均小
{ k=0;
xx 中;请编制函数 StrOR( ),于 80 个字符,含标点符号和
fclose(in);
fclose(wf);
jsValue(m,n,zz);
fclose(out);
}
}
无忧 id 14 题(无 isP()函 for(m=0;m<n;m++)printf("%
全国计算机等级考试三级网络技术上机考试南开100题分类的序号和题型

全国计算机等级考试三级网络技术上机考试南开100题分类的序号和题型素数: 1 34 55 64 66 821: 将大于整数m且紧靠m的k个素数存入数组xx传回34:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数55:求出300个四位数是素数的个数,并从小到大进行排序64:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数以及这些I之和66:计算500-800内素数的个数,按从大到小顺序计算其间隔加、减之和82:求出300个四位数是素数的个数,再求出所有满足此条件的四位数平均值pjz1以及不满足此条件的四位数平均值pjz2结构体操作: 7 13 38 12 32 42 31 47 61 99 60 757: 按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列13:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列38:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列12:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列32:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列42:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列31:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列47:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列61:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列99:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列60:有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第二个数大于第一个数加第三个数的之和,存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列75:有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第一个数大于第二个数加第三个数的和,存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列if(aa[i].x1>(aa[i].x2+aa[i].x3)) bb[cnt++]=aa[i];if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) { xy=bb[i]; bb[i]=bb[j]; bb[j]=xy;}字符替换与移位: 8 36 56 62 98 95 96 18 37 97 10 73 11 63 16 100 74 178: f(p)值小于等于32或大于130,则该字符不变36:f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变56:f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变62:f(p)值小于等于32或其ASCII值是偶数,则该字符不变98:f(p)值小于等于32或其ASCII值是奇数,则该字符不变95:f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变96:f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变18:原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变137:原字符是大写字母或计算后f(p)值小于等于32,则该字符不变97:原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变10:把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a73:把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z11:把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a (指针)63:把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后(指针) 16:把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值74:把字符串中所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符100:把字符串中的最后一个字符的ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符17:第一个字符加第二个字符=新字符,最后逆排序strrev(xx[i]);字符串位置倒置: 33:把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放字符串单词倒置: 44:对行中以空格或标点符号为分隔的所有单词进行倒排.最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中字符串左右排序交换: 44 50 7144:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上50:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上71:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序,如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上字符串排序: 9 88 439: 对字符按从大到小的顺序进行排序88:对字符按从小到大的顺序进行排序43:对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序2单词个数统计: 1919:统计一个长度为2的子字符串在另一个字符串中出现的次数Fibonacci数列: 2020: 求Fibonacci数列中大于t的最小的一个数while(fn<=t) {...} return fn; 迭代方法求方程: 21 do{...}while(fabs(x0-x1)>=0.000001);平方根: 2222: 求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s return sqrt(s);实数运算: 2323: 求出N个实数的平均值aver,以及实数的整数部分之和sumint以及小数部分之和sumdec完全平方数: 2424: 100至999中寻找符合条件的整数并依次从小到大存入数组中,它既是完全平方数,又是两位数字相同for(j=10;j*j<=i;j++) if(i==j*j&&(bw==sw||sw==gw||gw==bw)) bb[cnt++]=i; return cnt;回文数: 25 ltoa(n,xy,10);25: 寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数整数排序: 2 5 6 14 30 45 46 902: 把四位数各位上均是0或2或4或6或8的数从大到小的顺序存入数组b中5: 按每个数的后三位的大小进行升序排列,如果后三位的数值相等,按原先的数值进行降序排列6: 降序升序14: 如果该四位数连续大于该四位数以后的五个数且该数是奇数,把这些四位数按从小到大的顺序存入数组b中for(j=i+1;j<=i+5;j++)if(a[i]>a[j]&&a[i]%2) flag=1; else {flag=0;break;}30:小于偶数,从小到大45: 大于该四位数以前偶数, 从大到小46: 大于奇数,且该数必须能被7整除,把这些四位数按从大到小的顺序存入数组b中for(j=i-5;j<i;j++) if(a[i]>a[j]&&a[i]%2&&a[i]%7==0) flag=1; else {flag=0;break;}90: 将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列.新序列中,比K1小的数都在K1的前面,比K1大的数都在K1的后面3整数统计运算: 26 70 40 65 91 94 92 7926: 求出正整数totNum个数以及这些数右移1位后产生的新数是偶数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz70: 求出正整数totNum个数以及这些数右移1位后产生的新数是奇数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz40: 求出正整数totNum个数以及这些数各位数字之和是偶数的数的个数totCnt 和满足此条件的这些数的算术平均值totPjz65: 求出正整数totNum个数以及这些数各位数字之和是奇数的数的个数totCnt 和满足此条件的这些数的算术平均值totPjz91: 200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组下标为偶数的元素值的算术平均值pj(保留2位小数)94: 200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx中值为偶数的算术平均值pj(保留2位小数)92: 200个整数,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)79: 求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数(指针)if(i%7==0&&i%11||i%7&&i%11==0) a[(*n)++]=i;整数各位数字运算: 68 15 78 69 85 77 89 27 53 48 54 49 80 81 87 6768: 200个四位数,如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中if(thou&&thou%2&&hun%2&&ten%2&&data%2)15:200个四位数,若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中78:200个四位数,若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中69:200个四位数,把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(thou-hun-ten-data>=0&&a[i]%2) b[cnt++]=a[i];85:200个四位数,把一个四位数的个位数字上的值减去千位数字上的值再减去百位数字上的值最后减去十位数字上的值,如果得出的值大于等于零且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(data-thou-hun-ten>=0&&a[i]%2==0) b[cnt++]=a[i];477:200个四位数,把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((thou+ten==hun+data)&&a[i]%2==0) b[cnt++]=a[i];89:200个四位数,把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((qw+gw)==(sw+bw)&&a[i]%2) b[cnt++]=a[i];27:300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序53:300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序48:300个四位数,求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b 的四位数按从小到大的顺序进行排序54:300个四位数,求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b 的四位数按从大到小的顺序进行排序49:300个四位数,求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz280:300个四位数,求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz281:300个四位数,求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz287:300个四位数,求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz267:5000以内,千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字5与百位数字之和等于个位数字与千位数字之差的10倍.计算并输出这些四位自然数的个数cnt以及这些数的和sum整数各位打散组合运算: 28 29 51 52 72 76 59 8628:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10) 29:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!=0&&gw!=0) 51:200个四位数,把千位数字和十位数字重新组成一个新的十位数,以及把个位数字和百位数字组成另一个新的十位数,如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt52:200个四位数,把千位数字和个位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab%2&&cd%2&&(ab%5==0||cd%5==0)&&ab>=10&&cd>=10)72:200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab%9==0||cd%9==0)&&ab%2==0&&cd%2==0&&hun!=0&&data!=0) 76:200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的cnt6if((ab%2!=cd%2)&&((ab%17==0||cd%17==0)&&ab>=10&&cd>=10))59:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab<cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab>=10&&cd>=10) 86:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>0&&(ab%2!=1&&ab%5==0)&&cd%2==1&&ab>=10&&cd>=10)方差运算: 33 83 9333: 计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值83: 计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值93: 分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值for(i=0;i<MAX;i++) totfc+=(xx[i]-aver)*(xx[i]-aver);totfc/=MAX;级数运算: 3535: Sn<M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中选票: 39 58 8439: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票58: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票84: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票SIX/NINE: 4141: 计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE 的个数cnt以及满足此条件所有的SIX与NINE的和SUM7。
三级网络上机南开100题标准答案61-80(绝对没错)

{
int i, data;
for (i=0; i<MAXNUM; i++)
{
if (!xx[i])
break;
if (xx[i] > 0)
totNum++;
data = xx[i]>>1;
if (data%2)
{
totCnt++;
totPjz += xx[i];
half++;
for (j=half; j<strl-1; j++)
for (k=j+1; k<strl; k++)
if (xx[i][j] > xx[i][k])
{
ch = xx[i][j];
xx[i][j] = xx[i][k];
xx[i][k] = ch;
}
}
}
题目72:
int i, thou, hun, ten, data, j;
int ab, cd;
for (i=0; i<200; i++)
{
thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
if (data==0 || hun==0)
if(isPrime(i) && isPrime(i+4) && isPrime(i+10))
全国计算机等级考试三级网络技术上机考试南开一百题之选票

题目39(选票问题)内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。
制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。
voidCountRs(void){ inti,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count==0||count==10) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++; }}题目58现有一个10个人100行的选票数据文件IN.DA T,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。
编制函数CountRs()voidCountRs(void){ inti,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count<=5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++; }}题目84:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。
制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。
voidCountRs(void){ inti,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count>5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;}}。
三级网络南开100题

全国计算机等级考试三级网络技术南开上机100题几点说明:1、题目标题号前用“☆”显示的是2005年4月份本人根据各大论坛考生聩的题号集中而来,题号前加“★”为2005年9月上机考试题,其中难免有题型相同而题号增加的现象,此类标明,仅供参考。
2、每种题目,只用一种解题方法,兰色部分为解题答案,此种方法本人觉得容易理解,不易出错,适合初学者。
3、特别说明:所有解法,本人均上机验证通过。
4、个别南开题如57、100题,题目与原书有所不同,是按实际考试的题目所来,并对今年在实际上机中出现的考题,用红色部分表示实际上机题中的注明事项。
☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];clrscr();printf("\nPlease enter two integers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
9月计算机等级考试三级网络技术上机100题库南开一百题最权威版本新思路自己整理,9月考试必中无遗漏

题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}题目2已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a 中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。
例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,计算平均值pjz2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】void jsValue(){int i;for(i=0;i<300;i++)if(isP(a[i])){ pjz1+=a[i]; cnt++; }else pjz2+=a[i];pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);}************************************************************************题目3下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。
全国计算机等级考试三级网络技术南开上机100题

题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。
请编写函数num(int m,int k,int xx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
标准答案*/{int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;} }题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。
最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal() /*标准答案*/{int bb[4];int I,j,k,flag;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;else{flag=0;break;}}if (flag==1){ b[cnt]=a[I];cnt++;} }for(I=0;I for(j=I+1;j if (b[I] {k=b[I];b[I]=b[j];b[j]=k;}}题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中. void StrOR(void) /*标准答案*/{int I,j,k,index,strl;char ch;for(I=0;I {strl=strlen(xx[I]);index=strl;for(j=0;j if(xx[I][j]=='o'){for(k=j;kxx[I][k]=xx[I][k+1];xx[I][strl-1]= ' ';index=j;}for(j=strl-1;j>=index;j--){ch=xx[I][strl-1];for(k=strl-1;k>0;k--)xx[I][k]=xx[I][k-1];xx[I][0]=ch;}}}题目4:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数StrOL( ), 其函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。
三级网络(南开一百题)

全国计算机等级考试三级网络技术南开100题目录整数排序题 (5)☆题目1(整数排序题) (5)☆题目2 正整数排序 (5)★☆题目3(整数统计排序题) (6)☆题目4(整数统计排序题) (6)题目5(整数运算排序题) (7)★题目6(整数各位统计排序题) (7)题目7(整数统计排序题) (8)★题目8(整数排序题) (8)★题目9(整数各位数字运算排序题) (9)题目10(整数各位数运算排序题) (9)★☆题目11 (整数各位数运算及排序题) (10)整数统计运算题 (10)★☆题目12整数统计运算题) (10)☆题目13(整数统计运算题) (11)☆题目14(整数统计运算题) (11)题目15(整数统计运算题) (12)题目16(整数统计运算题) (12)题目17(整数统计运算题) (13)☆题目18(整数统计运算题) (13)题目19(整数统计运算题) (13)题目20(整数各位数字运算题) (14)☆题目21(整数各位数字运算题) (14)题目22(整数各位数字运算题) (15)☆题目23(整数各位数字运算题) (15)题目24(整数各位数字运算题) (16)☆题目25(整数各位数字统计运算题) (16)★☆题目26(整数各位运算题) (16)题目27(整数各位数运算题) (17)☆题目28(整数各位数运算题) (17)☆题目29(整数各位运算统计题) (18)☆题目30 (19)题目31 (19)整数各位打散组合运算题 (20)★☆题目32(整数各位打散组合运算题) (20)☆题目33(整数各位打散组合运算题) (20)★☆题目34(整数各位打散组合运算题) (21)题目35(整数各位打散组合运算题) (21)★题目36(整数各位打散组合运算题题) (22)题目37(整数各位打散组合运算题) (23)★题目38(整数各位打散组合运算题) (23)题目39(整数各位打散组合运算题) (24)素数题 (24)★☆题目42(素数题) (25)★题目43(素数题) (26)★题目44(素数题) (27)★题目45(数字运算题) (27)★题目46(数字统计排序题) (28)☆题目47(数字统计排序题) (28)字符型题 (29)题目48字符型题 (29)★题目49(字符处理——倒序输出) (30)★题目50(字符排序题) (30)★☆题目51(替换字符题) (31)☆题目52(亲朋字符替换题) (31)字符串处理题 (32)★☆题目53(字符串排序题) (32)☆题目54(字符串字母移位题) (33)★☆题目55(字符串左右排序交换题) (33)题目56(字符串左右排序交换题) (34)★题目57(字符串移位题) (34)题目58(字符串排序题) (35)★题目59(字符串左右排序题) (35)★题目60(字符ASCII值移位替换题) (36)方差运算题 (37)★☆题目61(方差运算题) (37)☆题目62(方差运算题) (37)☆题目63(方差运算题) (38)☆题目64(整数各位数运算题) (39)★题目65(字符替换题) (39)★☆题目66(字符替换题) (40)★题目67(字符替换题) (40)题目68(字符替换题) (40)题目69(字符替换题) (41)☆题目70(字符替换题) (41)★题目71(字符替换题) (42)☆题目72(字符替换题) (42)☆题目73(字符替换题) (43)★题目74(字符替换题) (43)★题目75(字符替题) (43)★☆题目76(字符替换题) (44)☆题目77(结构体操作题) (44)★☆题目78(结构体运算题题) (45)题目79(结构体运算题) (45)★☆题目80(结构体运算题) (45)☆题目81(结构体运算题) (46)题目82(结构体运算题) (46)★题目85(结构体运算题) (47)题目86(结构体排列题) (48)选票问题 (48)题目87(选票问题) (48)★☆题目88(选票问题) (49)☆题目89(选票问题) (49)★☆题目90(级数运算题) (50)其他问题 (50)☆题目91(单词个数统计题) (50)★题目92(Fibonacci数列题) (51)☆题目93(迭代方法求方程题) (51)★题目94(平方根问题) (52)题目95 (实数运算题) (53)题目96(完全平方数问题) (54)★题目97 (回文数问题) (54)★题目98(出圈题) (55)☆题目99(SIX/NINE问题) (55)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
全国计算机等级考试三级网络技术南开上机100题(8190)

全国计算机等级考试三级网络技术南开上机100题(81-85)2007年08月03日星期五 00:16 A.M.☆题目81(整数各位数运算题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。
8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。
部分源程序存在文件prog1.c中。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include <stdio.h>int a[300],cnt=0;double pjz1=0.0,pjz2=0.0;jsValue(){int i,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000; hun=a[i]%1000/100;ten=a[i]%100/10; data=a[i]%10;if(thou+hun==ten+data) {cnt++;pjz1+=a[i];}else {n++;pjz2+=a[i];}}if(cnt==0) pjz1=0;else pjz1/=cnt;if(n==0) pjz2=0;else pjz2/=n;}main(){int i;readDat();jsValue();writeDat();printf("cnt=%d\n满足条件的平均值pzj1=%7.2f\n不满足条件的平均值pzj2=%7.2f\n",cnt,pjz1,pjz2);}readDat(){FILE *fp;int i;fp=fopen("in.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}writeDat(){FILE *fp;int i;fp=fopen("out.dat","w");fprintf(fp,"%d\n%7.2f\n%7.2f\n",cnt,pjz1,pjz2);fclose(fp);}********************************************************************* ***★题目82(素数题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输出到out.dat文件。
全国计算机等级考试三级网络技术南开上机100题2

全国计算机等级考试三级网络技术南开上机100题21: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp 所指的数组中。
计算机等级考试三级网络技术上机南开百题

10个人100行的选票★☆题目39。
对10个候选人进行选举,全选或不选均为无效的选票.void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count==0||count==10) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;}}★☆题目58。
对10个候选人进行选举,若一张选票人数小于等于5个人时被认为无效的选票。
void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count<=5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;}}★题目84。
对10个候选人进行选举,若一张选票人数大于5个人时认为无效的选票. void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1') count++;if(count>5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;} 200个正整数★☆题目5。
在文件in.dat中有200个正整数, 1000至9999之间。
按原先的数值进行降序排列。
void jsSort(){int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++)if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j]) {data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}题目6 。
全国计算机等级考试三级上机题库(南开100题)

if (b[I]<b[j])
{k=b[I];b[I]=b[j];b[j]=k;}
}
题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。 例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------
类型:素数。
void num(int m,int k,int xx[]) /*标准答案*/
{int data=m+1;
int half,n=0,I;
while(1)
{half=data/2;for(I=2;I<=half;I++)
if(data%I==0)break;
if(I>half)
{xx[n]=data;n++;}
if(n>=k)break;
data++;
} }
题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
南开计算机等级考试上机100题(三级)

南开计算机等级考试上机100题(三级)1. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
部分源程序已给出,原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include#include#include#includeunsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){ int i,j;char *p;for(i=0;i='a'&&xx[j]='0'&&p='A'&&p='0'&&xx[j]='A'&&xx[j] ='a'&&p130);else xx[j]=p; } }11.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
全国计算机等级考试三级网络技术上机题库(南开100题宝典最新版)

2013全国计算机等级考试三级网络技术上机试题库【南开100题最新版】Content整数排序题 (4)☆题目1(整数排序题) (4)☆题目2 正整数排序 (4)★☆题目3(整数统计排序题) (5)☆题目4(整数统计排序题) (5)题目5(整数运算排序题) (6)★题目6(整数各位统计排序题) (6)题目7(整数统计排序题) (7)★题目8(整数排序题) (7)★题目9(整数各位数字运算排序题) (8)题目10(整数各位数运算排序题) (8)★☆题目11 (整数各位数运算及排序题) (9)整数统计运算题 (9)★☆题目12整数统计运算题) (9)☆题目13(整数统计运算题) (10)☆题目14(整数统计运算题) (10)题目15(整数统计运算题) (11)题目16(整数统计运算题) (11)题目17(整数统计运算题) (12)☆题目18(整数统计运算题) (12)题目19(整数统计运算题) (12)题目20(整数各位数字运算题) (13)☆题目21(整数各位数字运算题) (13)题目22(整数各位数字运算题) (14)☆题目23(整数各位数字运算题) (14)题目24(整数各位数字运算题) (15)☆题目25(整数各位数字统计运算题) (15)★☆题目26(整数各位运算题) (15)题目27(整数各位数运算题) (16)☆题目28(整数各位数运算题) (16)☆题目29(整数各位运算统计题) (17)☆题目30 (18)题目31 (18)整数各位打散组合运算题 (19)★☆题目32(整数各位打散组合运算题) (19)☆题目33(整数各位打散组合运算题) (19)★☆题目34(整数各位打散组合运算题) (20)题目35(整数各位打散组合运算题) (20)★题目36(整数各位打散组合运算题题) (21)题目39(整数各位打散组合运算题) (23)素数题 (23)题目40(素数题) (23)题目41(素数统计排序题) (24)★☆题目42(素数题) (24)★题目43(素数题) (25)★题目44(素数题) (26)★题目45(数字运算题) (26)★题目46(数字统计排序题) (27)☆题目47(数字统计排序题) (27)字符型题 (28)题目48字符型题 (28)★题目49(字符处理——倒序输出) (29)★题目50(字符排序题) (29)★☆题目51(替换字符题) (30)☆题目52(亲朋字符替换题) (30)字符串处理题 (31)★☆题目53(字符串排序题) (31)☆题目54(字符串字母移位题) (32)★☆题目55(字符串左右排序交换题) (32)题目56(字符串左右排序交换题) (33)★题目57(字符串移位题) (33)题目58(字符串排序题) (34)★题目59(字符串左右排序题) (34)★题目60(字符ASCII值移位替换题) (35)方差运算题 (36)★☆题目61(方差运算题) (36)☆题目62(方差运算题) (36)☆题目63(方差运算题) (37)☆题目64(整数各位数运算题) (38)★题目65(字符替换题) (38)★☆题目66(字符替换题) (39)★题目67(字符替换题) (39)题目68(字符替换题) (39)题目69(字符替换题) (40)☆题目70(字符替换题) (40)★题目71(字符替换题) (41)☆题目72(字符替换题) (41)☆题目73(字符替换题) (42)★题目74(字符替换题) (42)★题目75(字符替题) (42)★☆题目76(字符替换题) (43)☆题目77(结构体操作题) (43)★☆题目78(结构体运算题题) (44)☆题目81(结构体运算题) (45)题目82(结构体运算题) (45)题目83 结构体运算题 (45)题目84(结构体运算题) (46)★题目85(结构体运算题) (46)题目86(结构体排列题) (47)选票问题 (47)题目87(选票问题) (47)★☆题目88(选票问题) (48)☆题目89(选票问题) (48)★☆题目90(级数运算题) (49)其他问题 (49)☆题目91(单词个数统计题) (49)★题目92(Fibonacci数列题) (50)☆题目93(迭代方法求方程题) (50)★题目94(平方根问题) (51)题目95 (实数运算题) (52)题目96(完全平方数问题) (53)★题目97 (回文数问题) (53)★题目98(出圈题) (54)☆题目99(SIX/NINE问题) (54)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试三级网络技术南开上机100题几点说明:1、题目标题号前用“☆”显示的是2005年4月份本人根据各大论坛考生聩的题号集中而来,题号前加“★”为2005年9月上机考试题,其中难免有题型相同而题号增加的现象,此类标明,仅供参考。
2、每种题目,只用一种解题方法,加粗部分为解题答案,此种方法本人觉得容易理解,不易出错,适合初学者。
3、特别说明:所有解法,本人均上机验证通过。
4、个别南开题如57、100题,题目与原书有所不同,是按实际考试的题目所来,并对今年在实际上机中出现的考题,用红色部分表示实际上机题中的注明事项。
☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的容。
#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];clrscr();printf("\nPlease enter two integers:"); scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的容。
#include <stdio.h>#define MAX 200int a[MAX], b[MAX],t = 0 ;void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){ qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10;if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}void readDat(){int i ;FILE *fp ;fp = fopen("in.dat", "r") ;for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;fclose(fp) ;}void main(){int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n",t) ;for(i = 0 ; i <t ; i++) printf("%d ", b[i]) ;printf("\n") ;writeDat() ;}writeDat(){FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n",t) ;for(i = 0 ; i <t ; i++) fprintf(fp, "%d\n", b[i]) ;fclose(fp) ;}★题目3函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串容移到该串的右边存放,然后把小写字母o删除,余下的字符串容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的容。
#include <stdio.h>#include <string.h>#include <conio.h>char xx[50][80] ;int maxline = 0 ; /* 文章的总行数 */int ReadDat(void) ;void WriteDat(void) ;void StrOR(void){int i,righto,j,s,k;char tem[80];for(i=0;i<maxline;i++)for(j=strlen(xx[i])-1;j>=0;j--){ k=0;memset(tem,0,80);if(xx[i][j]=='o'){righto=j;for(s=righto+1;s<strlen(xx[i]);s++) tem[k++]=xx[i][s];for(s=0;s<righto;s++)if(xx[i][s]!='o')tem[k++]=xx[i][s];strcpy(xx[i],tem);}else continue;}}void main(){clrscr() ;if(ReadDat()) {printf("数据文件IN.DAT不能打开!\n\007") ;return ;}StrOR() ;WriteDat() ;}int ReadDat(void){FILE *fp ;int i = 0 ;char *p ;if((fp = fopen("IN.DAT", "r")) == NULL) return 1 ; while(fgets(xx[i], 80, fp) != NULL) {p = strchr(xx[i], '\n') ;if(p) *p = 0 ;i++ ;}maxline = i ;fclose(fp) ;return 0 ;}void WriteDat(void){FILE *fp ;int i ;clrscr() ;fp = fopen("OUT5.DAT", "w") ;for(i = 0 ; i < maxline ; i++) {printf("%s\n", xx[i]) ;fprintf(fp, "%s\n", xx[i]) ;}fclose(fp) ;}★题目4函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。
最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。
例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的容。
#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void StrOL(void){ int i,j,k,s,m,strl;char str[80];for(i=0;i<maxline;i++){ strl=strlen(xx[i]);memset(str,0,80);s=k=0;for(j=strl-1;j>=0;j--){ if(isalpha(xx[i][j])) k++;else { for(m=1;m<=k;m++)str[s++]=xx[i][j+m];k=0;}if(!isalpha(xx[i][j])) str[s++]=' ';}for(m=1;m<=k;m++)str[s++]=xx[i][j+m];str[s]='\0';strcpy(xx[i],str); }}void main(){clrscr();if(ReadDat()){printf("数据文件IN.DAT不能打开!\n\007"); return;}StrOL();WriteDat();}int ReadDat(void){FILE *fp;int i=0;char *p;if((fp=fopen("IN.DAT","r"))==NULL) return 1; while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],'\n');if(p)*p=0;i++;}maxline=i;fclose(fp);return 0;}void WriteDat(void){FILE *fp;int i;clrscr();fp=fopen("OUT6.DAT","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}***************************************************************************** **☆题目5(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。