计算机三级网络最新南开100题2.docx
- 文档编号:8248218
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:37
- 大小:29.99KB
计算机三级网络最新南开100题2.docx
《计算机三级网络最新南开100题2.docx》由会员分享,可在线阅读,更多相关《计算机三级网络最新南开100题2.docx(37页珍藏版)》请在冰豆网上搜索。
计算机三级网络最新南开100题2
题目51:
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数均是素数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
-------------------------
voidjsVal()
{intI,thou,hun,ten,data,j;
intab,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;
ab=10*thou+ten;cd=10*data+hun;
if(isprime(ab)&&isprime(cd)&&ab!
=0&&cd!
=0)
{b[cnt]=a[I];cnt++;}
}
for(I=0;I for(j=I+1;j if(b[I] {data=b[I];b[I]=b[j];b[j]=data;} } 题目52: 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字),以及把十位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。 最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件PROG1.C文件中。 程序中已定义数组: a[200],b[200],已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 ------------------------- voidjsVal() {intI,thou,hun,ten,data,j; intab,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; ab=10*thou+data; cd=10*hun+ten; if(ab%2==1&&cd%2==1&&(ab%5==0||cd%5==0)&&ab! =0&&cd! =0) {b[cnt]=a[I];cnt++;} } for(I=0;I for(j=I+1;j if(b[I] {data=b[I];b[I]=b[j];b[j]=data;} } 题目53: 已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数SVALUE(),其功能是: 求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数WRITEDAT()把数组b中的数输出到OUT.DAT文件. 例如: 1239,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1. 8129,9-8-1-2<0,则该数不满足条件忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],已定义变量: cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 --------------------- voidjsValue() {intI,thou,hun,ten,data,j; 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(data-thou-hun-ten>0){b[cnt]=a[I];cnt++;} } for(I=0;I for(j=I+1;j if(b[I] {data=b[I];b[I]=b[j];b[j]=data;} } 题目54: 已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数SVALUE(),其功能是: 求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数CNT,再把所有满足条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数WRITEDAT()把数组b中的数输出到OUT.DAT文件. 例如: 7153,7+1=5+3,则该数满足条件存入数组bb中,且个数CNT=CNT+1. 8129,8+1<>2+9,则该数不满足条件忽略. 注意: 部分源程序已给出。 程序中已定义数组: a[300],已定义变量: cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 --------------------- voidjsValue() {intI,thou,hun,ten,data,j; 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==data+ten){b[cnt]=a[I];cnt++;} } for(I=0;I for(j=I+1;j if(b[I] {data=b[I];b[I]=b[j];b[j]=data;} } 题目55: 已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数SVALUE(),其功能是: 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT.DAT文件。 例如: 5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],b[300],已定义变量: cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 --------------------- voidjsValue() {intj,I,value; for(I=0;I<300;I++) if(isP(a[I])){b[cnt]=a[I];cnt++;} for(I=0;I for(j=I+1;j if(b[I]>b[j]) {value=b[I];b[I]=b[j];b[j]=value;} } 题目56: 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS5.DAT中。 替代关系: f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。 注意: 部分源程序已给出。 原始数据文件存放的格式是: 每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ------------------------------ voidencryptChar() {intI; char*pf; for(I=0;I {pf=xx[I]; while(*pf! =0) {if((*pf*11%256>='a'&&*pf*11%256<='z')||*pf*11%256<=32) {pf++;continue;} *pf=*pf*11%256; pf++;}} } 题目57: 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。 现要求按出圈次序,每10人一组,给出这n个人的顺序表。 请考生编制函数Josegh()实现此功能并调用函数WriteDat()把结果p输出到文件OUT.DAT中。 设n=100,s=1,m=10. (1)将1到n个人的序号存入一维数组p中; (2)若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置; (3)重复第 (2)步直至圈中只剩下p[1]为止。 部分源程序已给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。 ------------------- voidJosegh(void) {intI,j,k,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;} } 题目58: 对10个候选人进行选举,现有一个100条记录的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。 给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。 请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。 把结果yy输出到文件OUT.DAT中。 注意: 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 ---------------------- 类型: 选票问题。 voidCountRs(void) {intI,count,j; char*pf; for(I=0;I<10;I++) yy[I]=0; for(I=0;I<100;I++) {pf=xx[I];count=0; while(*pf) if(*pf=='1'){count++;pf++;} elsepf++; if(count>5) {pf=xx[I]; j=0; while(*pf) if(*pf=='1'){yy[j]+=1;j++;pf++;} elseif(*pf=='0'){pf++;j++;} } } } 题目59: 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab 最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件PROG1.C文件中。 程序中已定义数组: a[200],b[200],已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 ------------------------- voidjsVal() {intI,thou,hun,ten,data,j; intab,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; ab=10*thou+ten;cd=10*data+hun; if(((ab-cd)<0&&ab%2==1&&ab%5! =0)&&cd%2! =1&&ab! =0&&cd! =0) {b[cnt]=a[I];cnt++;} } for(I=0;I for(j=I+1;j if(b[I] {data=b[I];b[I]=b[j];b[j]=data;} } 题目60: 在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。 函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是: 要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行升序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ----------------------------------- intjsSort() {intI,cnt=0,j; Datach; for(I=0;I<200;I++) if(aa[I].x2>aa[I].x1+aa[I].x3) {bb[cnt]=aa[I];cnt++;} for(I=0;I for(j=I+1;j if(bb[I].x2+bb[I].x3 {ch=bb[I];bb[I]=bb[j];bb[j]=ch;} returncnt; } 题目61: 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。 其中: 金额=单价*数量计算得出。 函数ReadDat()是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按金额从小到大进行排列,若金额相等,则按产品代码从大到小进行排列.最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。 注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ---------------------------------- voidSortDat() {intI,j; PROxy; for(I=0;I<99;I++) for(j=I+1;j<100;j++) if(sell[I].je>sell[j].je) {xy=sell[I];sell[I]=sell[j];sell[j]=xy;} elseif(sell[I].je==sell[j].je) if(strcmp(sell[I].dm,sell[j].dm)<0) {xy=sell[I];sell[I]=sell[j];sell[j]=xy;} } 题目62: 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS2.DAT中。 替代关系: f(p)=p*13mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。 注意: 部分源程序已给出。 原始数据文件存放的格式是: 每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ------------------------------ voidencryptChar() {intI; char*pf; for(I=0;I {pf=xx[I]; while(*pf! =0) {if((*pf*13%256)/2*2==*pf||*pf*13%256<=32) {pf++;continue;} *pf=*pf*13%256; pf++;} } } 题目63: 下列程序的功能是: 把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后.请编写函数CHG(CHAR*S)实现程序要求,最后调用函数READWRITEDAT()把结果输出到OUT.DAT文件中. 例如: S字符串中原有内容为: Mn.123xyZ,则调用函数后,结果为: n.123xyZM. 注意: 部分源程序已给出。 请勿改动主函数main()和输出数据函数readwriteDat()的内容。 ----------------------- voidchg(char*s) {intI,strl; charch; strl=strlen(s); ch=*s; for(I=0;I *(s+I)=*(s+I+1); *(s+strl-1)=ch; } 题目64: 下列程序的功能是: 找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。 请编写函数countvalue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()和函数writeDAT()的内容。 -------------- 类型: 素数。 voidcountValue() {intI,count=0,xx[30]; intj,k,m; cnt=0; sum=0; for(I=1;I<=90;I++) if(isPrime(I)){xx[count]=I;count++;} for(I=0;I if(isPrime(xx[I]+4)&&isPrime(xx[I]+10)) {cnt++;sum+=xx[I];} } 题目65: 已知在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组xx中。 请编制函数calvalue(),其功能要求: 1、求出这文件中共有多少个正整数totnum;2、求出这些数中的各位数字之和是奇数的数的个数totcnt,以及满足此条件的这些数的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 ---------------------------- voidCalValue(void) {intI,thou,hun,ten,data; 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; if((thou+hun+ten+data)%2) {totCnt++;totPjz+=xx[I];}} totPjz/=totCnt; } 题目66: 下列程序的功能是: 计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之各,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。 请编写函数countvalue()实现程序的要求,最后调用函数writedat()把结果cnt和sum,输出到文件out11.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()和输出数据函数writedat()的内容。 ----
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 三级 网络 最新 南开 100