《全国计算机等级考试三机机试纯答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
一、排序类1、找数排序(求四位数的个十百千位)22、字符串排序(英文文章操作)263、结构体排序(按产品代码金额排序)32二、统计类1、求值(四位正整数的个数及平均值)392、选票及方差473、精度计算544、素数判断58
1三、字符串类1,字符串替换(f(p)=p*11mod256)622、字符串移动及替换70四、杂项类76五、附加题86排序类题型一
2找数排序类第2套:编写函数jsvalueO,其功能是如果四位数的各位数字均是0或2或4或6或8,按从大到小的顺序排序存入数组b中。关键字找数排序各位数字均是偶数VoidjsValO
3{inti,j,t,k1,k2,k3,k4;for(i=0;i 4for(i=0;i 5关键字找数排序ab-cd>=0voidjsVal0{inti,j,t,k1,k2,k3,k4,ab,cd;for(i=0;i<200;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;ab=k4*10+k2;cd=k1*10+k3;if(ab-cd>=0&&ab-cd<=10&&ab%2!=0&&cd%2!=0&&k4!=0&&k1;=0)b[cnt++]=a[i];}for(i=0;i 6ab=k4*10+k2;cd=k1*10+k3;if(ab-cd>=10&&ab-cd<=20&&ab%2=0&&cd%2=0&&k4!=0&&k1!=0)b[cnt++]=a[i];)for(i=0;i 7第51套:ab:新十原千,新个原+,cd:新十原个,新个原百,如果两个二位数均是素数,同时两个新数的十位数字均不为零,则从大到小存入b中.关键字找数排序两个二位数均是素数voidjsVal0{inti,j,t,k1,k2,k3,k4,ab,cd;for(i=0;i<200;i++){k1=a[i]X10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000X10;ab=k4*1O+k2;cd=k1*10+k3;if(isprime(ab)&&isprime(cd)&&k4!=0&&k1!=0)b[cnt++]=a[i];)for(i=0;i 8for(j=0;j 9第53套:编制一函数jsVa10,其功能是:求千-百一十一个大于零的个数ent,并把这些四位数按从小到大的顺序存入数组b中.关键字找数排序千一百-十VoidjsValO{inti,j,t,k1,k2,k3,k4;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k4-k3-k2-k1>0)b[cnt++]=a[i];}for(i=0;i 10{inti,j,t,k1,k2,k3,k4;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k4+k3=k2+k1)b[cnt++]=a[i]:)for(i=0;i 11for(j=0;j 12if(b[i]>b[j]){t=b[i];b[i]=b[j];b[j]=t;}}第68套:200个数,编制一函数jsVaI(),其功能是:求各位上的数字均是奇数的个数ent,并把这些四位数按从大到小的顺序存入数组b中.关键字找数排序各位数字均是奇数VoidjsValO{inti,j,t,k1,k2,k3,k4;for(i=0;i<200;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k1%2!=0&&k2%2!=0&&k3%2!=0&&k4%2!=0)b[cnt++]=a[i];)for(i=0;i 13第69套:200个数,编制一函数jsVa10,其功能是:求千-百一十一个大于等于零且原四位数是奇数的个数ent,并把这些四位数按从小到大的顺序存入数组b中.关键字找数排序千一百-十一个>=0VoidjsValO{inti,j,t,k1,k2,k3,k4;for(i=0;i<200;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k4-k3-k2-k1>=0&&a[i]%2!=0)b[cnt++]=a[i];}for(i=0;i 14voidjsVal0{inti,j,t,k1,k2,k3,k4,ab,cd;for(i=0;i<200;i++){k1=a⑴%10;k2=a[i]/10X10;k3=a[i]/100%10:k4=a[i]/1000%10;ab=k1*10+k4;cd=k3*10+k2;if(ab%2=0&&cd%2=0&&(ab%9=0||cd%9=0)&&k1!=0&&k3!=0)b[cnt++]=a[i];)for(i=0;i 15for(i=0;i<200;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;ab=k1*10+k4;cd=k3*10+k2;if((ab%2!=0&&cd%2=01|ab%2=O&&cd%2!=0)&&(ab%17=01|cd%17=0)&&k1!=0&&k3!=0)b[cnt++]=a[i]:)for(i=0;i 16k3=a[i]/100%10:k4=a[i]/1000%10;if(k4+k2=k3+k1&&a[i]%2=0)b[cnt++]=a[i];for(i=0;i 17for(i=0;i 18为零,则从大到小存入b中.关键字找数排序ab必须是偶数且能被5voidjsVal0{inti,j,t,k1,k2,k3,k4,ab,cd;for(i=0;i<200;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;ab=k4*10+k2;cd=k1*10+k3;if(ab>cd&&ab%2=0&&ab%5=0&&cd%2!=0&&k4!=0&&k1!=0)b[cnt++]=a[i];}for(i=0;i 19k3=a[i]/100%10;k4=a[i]/1000%10;if(k4+k1=k3+k2&&a[i]%2!=0)b[cnt++]=a[i]:)for(i=0;i 20elseflag=1;if(f|ag=1&&a[i]%2!=0)b[cnt++]=a[i];]for(i=0;i 21for(i=0;i 22)第46套:依次从a中取出一个四位数,如果四位数连续大于该四位数以前的五个数且该数是奇数且该数必须能被7整除,则统计出满足此条件的个数,从大到小存入数组b.关键字找数排序连续大于以前且是奇数voidjsval0(inti,j.t.flag:for(i=5;i<200;i++){flag=1;for(j=1;j<=5;j++)if(a[i]<=a[i-j]){flag=O;break;}elseflag=1:if(flag=1&&a[i]%2!=0&&a[i]%7=0)b[cnt++]=a[i];)for(i=0;i 23后三位进行升序排列,排序后取前10个数存入数组bb中,如果后三位相等,则按原数降序排列.关键字找数排序后三位升原数降voidjsSort0{inti,j.t;for(i=0;i<200;i++)for(j=0;j<200;j++)if(aa[i]%1000 24{t=aa[i];aa[i]=aa[j];aa[j]=t;}for(i=0;i<10;i++)bb[i]=aa[i];for(i=0;i<10;i++)for(j=0;j<10;j++)if(bb[i]%1000=bb[j]%1000)if(bb[i] 25字符串排序第9套:请编写函jssortO,其功能是以行为单位对字符串的字符按其ASCII码从大到小排序,排序后仍存入数组XX中关键字字符串排序按行降序VoidSortcharDO{inti,a,b;chart;for(i=0;i 26{for(a=0;a 27)第43套:20行请编写函jssort0,其功能是以行为单位对字符串变量下标为奇数的字符按其ASCII码从小到大排序,排序后仍存入数组xx中关键字字符串排序下标奇数升序VoidSortcharDO{inti,a,b;chart;for(i=0;i<20;i++){for(a=1;a 28for(b=0;b 29第71套:20行请编写函jssort0,其功能是以行为单位对字符串按给定条件进行排序,排序后仍存入数组xx中条件:从字符串中间一分为二,左边降序,右边升序.关键字字符串排序左岸右升voidjsSort0{inti,a,b,n;chart;for(i=0;i<20;i++){n=(strlen(xx[i])+1)/2;for(a=0;a 30题型3结构体排序-31 31第7套:编写函数sortdat0,按产品代码从大到小排序,若产品代码相同,再按金额从大到小排序,结果存入sell数组中关键字结构体排序代码降金额降Voidsortdat0{intifj;PROt;for(i=0;i<100;i++)for(j=0;j<100;j4-»-)if(strcmp(seiI[i].dm,seiI[j].dm)>0){t=se11[i];seiI[i]=se11[j];selI[j]=t;Jelseif(strcmp(seiI[i].dm,seiI[j].dm)=0)if(seiI[i].je>selI[j].je){t=se11[i];selI[i]=selI[j];selI[j]=t;J)第12套:编写函数sortdatO,按产品名称从小到大排序,若产品名称相同,再按金额从小到大排序,结果存入sell数组中关键字结构体排序名称升金额升-32- 32Voidsortdat(){inti,j;PROt;for(i=0;i<100;i44-)for(j=O;j<1OO;j++)if(strcmp(seiI[i].me,seiI[j].mc)<0){t=se11[i];se11[i]=selI[j];selI[j]=t;Jelseif(strcmp(seiI[i].me,seiI[j].me)=0)if(seiI[i].je 33elseif(strcmp(se11[i].dm,se11[j].dm)=0)if(seiI[i].je>selI[j].je){t=se11[i];se11[i]=selI[j];selI)第31套:编写函数sortdatO,按金额从大到小排序,若金额相同,再按产品代码从大到小排序,结果存入sell数组中关键字结构体排序金额降代码降Voidsortdat0{intifj;PROt;for(i=0;i<100;i++)for(j=0;j<100;j4-»-)if(seiI[i].je>selI[j].je){t=se11⑴;seiI[i]=selI[j];selI[j]=t;}elseif(seiI[i].je=se11[j].je)if(strcmp(seiI[i].dm,seiI[j].dm)>0){t=se11⑴;seiI[i]=selI[j];selI[j]=t;JI第32套:编写函数sortdat0,按产品名称从大到-34- 34小排序,若产品名称相同,再按金额从小到大小排序,结果存入sell数组中关键字结构体排序名称降金额升Voidsortdat0{inti,j;PROt;for(i=0;i<100;i++)for(j=O;j<1OO;j++)if(strcmp(se11[i].me,se11[j].me)>0){t=selI[i];selI[i]=selI[j];selI[j]=t;|elseif(strcmp(se11[i].me,se11[j].mc)=0)if(se11[i].je 35elseif(strcmp(seiI[i].dm,seiI[j].dm)=0)if(seiI[i].je 36关键字结构体排序金额降代码升Voidsortdat0{inti,j;PROt;for(i=0;i<100;i++)for(j=O;j<1OO;j++)if(seiI[i].je>selI[j].je)(t=se11[i];se11[i]=selI[j];selI[j]=t;}elseif(seiI[i].je=selI[j].je)if(strcmp(seiI[i].dm,seiI[j].dm)<0){t=se11[i];se11[i]=selI[j];selI[j]=t;|}第61套:编写函数sortdat0,按金额从小到大排序,若金额相同,再按产品代码从大到小排序,结果存入sell数组中关键字结构体排序金额升代码降Voidsortdat0{inti,j;PROt;for(i=0;i<100;i++)for(j=0;j<100;j++)if(seiI[i].je 37dm)>0){t=se11[i];se11[i]=selI[j];selI)第99套:编写函数sortdatO,按金额从小到大排序,若金额相同,再按产品代码从小到大排序,结果存入sell数组中关键字结构体排序金额升代码升Voidsortdat0{intifj;PROt;for(i=0;i<100;i++)for(j=0;j<100;j4-»-)if(seiI[i].je 38for(i=0;i<200;i++)if((aa[i].x2)>(aa[i].x1+aa[i].x3))bb[cnt++]=aa[i];for(i=0;i 39if((aa[i].x1)>(aa[i].x2+aa[i].x3))bb[cnt++]=aa[i];for(i=0;i 40统计类题型1第26套:编写函数:calvalueO,功能是: 41⑴求出文件中共有多个正整数totNum;(2)求出这些 42数右移一位是偶数的个数totCnt;以及满足此条件的算术平均值totPjz.关键字求值若干个右移一位是偶数voidCaIVaIue(void)(inti=0,k;for(i=0;xx[i];i++){totNumH-;k=xx[i]»1;if(k%2=0){totCnt++;totPjz+=xx[i];})totPjz=totPjz/totCnt;)第40套:若干个数编写函数:calvalue。,功能是:(1)求出文件中共有多个正整数totNum;(2)求这些数各位数字之和是偶数的个数totCnt;以及满足此条件的算术平均值totPjz.关键字求值若干个各位之和是偶数voidCalValue(void){inti=0,k1,k2,k3,k4;doublesum=0;for(i=0;xx[i];i++){totNunW-f-;k1=xx[i]%10;k2=xx[i]/10%10;k3=xx[i]/100%10;k4=xx[i]/1000%10;-42- 43if((k1+k2+k3+k4)%2=0){totCnt++;sum+=xx[i];}totCnt+=(200-totNum);这点比较特殊,若是奇数就不写totPjz=sum/totCnt;第65套:若干个数编写函数:caIvaIue0,功能是:⑴求出文件中共有多个正整数totNum;(2)求这些数各位数字之和是奇数的个数totCnt;以及满足此条件的算术平均值totPjz.关键字求值若干个各位之和是奇数voidCaIVaIue(void){inti=0,k1,k2,k3,k4;doubIesum=0;for(i=0;xx[i];i++){totNum++;k1=xx[i]%10;k2=xx[i]/10%10;k3=xx[i]/100%10;k4=xx[i]/1000%10;if((k1+k2+k3+k4)%2!=0){totCnt++;sum*=xx[i];}-43- 44)totPjz=sum/totCnt;)第70套:第26套:编写函数:calvalue。,功能是:⑴求出文件中共有多个正整数totNum;(2)求出这些数右移一位是奇数的个数totCnt;以及满足此条件的算术平均值totPjz.关键字求值若干个右移一位是奇数voidCalValue(void){inti=0,k;for(i=0;xx[i]:i++){totNunW-t-;k=xx[i]»1;if(k%2!=0){totCnt++;totPjz+=xx[i];})totPjz=totPjz/totCnt;第23套:求N个实数的平均值aver及所有整数之和sumint与小数之和sumdec关键字求值若干个整数之和与小数之和voidCalValue(void){inti,cnt=0;doubIesum=0;for(i=0;xx[i];i++)-44- 45{stmt<-=xx[i];cnt++;sumint+=(long)xx[i];}aver=sum/cnt;sumdec=sum-sumint;)第49套:编写函数:jsvaleO,功能是:求出千臧百减十减个大于零的数的个数ent,再求出满足此条件的数的平均值Pjz1不满足此条件的数的平均值pjz2.关键字求值pjz1和pjz2千百一十一个voidjsValueO{inti,kl,k2,k3,k4;doublesum1=0,sum2=0;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k4-k3-k2-k1>0){cnt++;sum1+=a[i];}eIsesum2+=a[i];]pjz1=sum1/cnt;pjz2=sum2/(300-cnt);)第80套:300个数编写函数:jsvaleO,功能是:求 46出个减千减百减十大于零的数的个数ent,再求出满足此条件的数的平均值pjzl不满足此条件的数的平均值pjz2.关键字求值Pjz1和pjz2个-千-百-十voidjsValueO{inti,kl,k2,k3,k4;doublesum1=0,sum2=0;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k1-k4-k3-k2>0){cnt++;sum1+=a[i];}eIsesum2+=a[i];pjz1=sum1/cnt;pjz2=sum2/(3OO-cnt);)第81套:300个数编写函数:jsvaleO,功能是:求出千+百=++个的数的个数ent,再求出满足此条件的数的平均值pjzl不满足此条件的数的平均值pjz2. 47关键字求值pjz1和pjz2千+百=++个voidjsValueO{inti,k1,k2,k3,k4;doublesum1=0,sum2=0;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10%10;k3=a[i]/100%10;k4=a[i]/1000%10;if(k4+k3=k2+k1){cnt++;sum1+=a[i];}eIsesum2+=a[i];)pjz1=sum1/cnt;pjz2=sum2/(300-cnt);}第87套:300个数编写函数:jsvaleO,功能是:求出千+个二百+十的数的个数ent,再求出满足此条件的数的平均值pjz1不满足此条件的数的平均值Pjz2.关键字求值pjz1和pjz2千+个=百++voidjsValueO{inti,kl,k2,k3,k4;doublesum1=0,sum2=0;for(i=0;i<300;i++){k1=a[i]%10;k2=a[i]/10M10;-47- 48k3=a[i]/100%10;k4=a[i]/1000%10;if(k4+k1=k3+k2){cnt++;sum1+=a[i];}eIsesum2+=a[i];pjz1=sum1/cnt;pjz2=sum2/(300-cnt);)第82套:300个数编写函数:jsvaleO,功能是:求出所有这些数都是素数的个数ent,再求出满足此条件的数的平均值pjzl,以及不满足此条件的数的平均值pjz2.关键字求值Pjz1和pjz2素数voidjsValueO{inti,k1,k2,k3,k4;doublesum1=0,sum2=0;for(i=0;i<300;i++)if(isP(a[i]))注意P是大写(cnt++:sum1+=a[i]:JeIsesum2+=a[i];pjz1=sum1/cnt;pjz2=sum2/(300-cnt); 49题型2选票方差精度计算-49 50第39套:对10个候选人进行选举,编写函数counrtrsO统计每个人的选票数存入yy[O]至yy[9]数组中,全选或全不选视为无效票关键字选票全选或全不选voidCountRs(void)(inti,j,n:for(i=0;i<10;i++)yy[i]=0;for(i=0;i<100;i++){n=0;for(j=0;j<10;j++)if(xx[i][j]='V)n++;if(n!=0&&n!=10)for(j=0;j<10;j++)if(xx[i][j]='V)yy[j]++;1)第58套:对10个候选人进行选举,编写函数counrtrsO统计每个人的选票数存入yy[O]至yy[9]数组中,选票数小于等于5被视为无效票关键字选票小于等于5-50-voidCountRs(void){inti,j,n; 51for(i=0;i<10;i++)yy[i]=0;for(i=0;i<100;i++){n=0;for(j=O;j<1O;j++)if(xx[i][j]—1,)n++;if(n>5)for(j=O;j<1O;j++)if(xx[i][j]='1')yy[j]++;1}第84套:对10个候选人进行选举,编写函数counrtrsO统计每个人的选票数存入yy[0]至yy[9]数组中,选票数大于5人被视为无效票.关键字选票大于5voidCountRs(void){intfor(i=0;i<10;i++)-51-yy[i]=O;for(i=0;i<100;i++){n=0;for(j=O;j<1O;j++)if(xx[i][j]='1')n++;if(n<=5) 52for(j=O;j<1O;j++)if(xx[i][j]—V)yy[j]++;))第33套:编写函数Compute0,求奇数个数odd,偶数个数even,奇数平均值ave1,偶数平均值ave2,以及所有偶数的方差totfc关键字方差所有偶数的方差解答如下:注意如果在return1和fclose(fp)之间没有下面的语句要补充上for(i=0;i<100;i++){for(j=0;j<10;j++)fscanf(fp,w%d,",&xx[i*1O+j]);fscanf(fp," 53"):-52-if(feof(fp))break;)VoidCompute(void){inti,yy[1000];doublesum=0,sum1=0,sum2=0;for(i=0;i<1000;i++)if(xx[i]%2!=0){odd++;sum1+=xx[i];J 54eIse(yy[even++]=xx[i];sum2+=xx[i];}ave1=sum1/odd;ave2=sum2/even;for(i=0;i 55");if(feof(fp))break;JVoidCompute(void){inti,yy[1000];doublesum=0,sum1=0,sum2=0;for(i=0;i<1000;i44-)if(xx[i]%2!=0) 56{yy[odd++]=xx[i];sum1+=xx[i];)eIse{even++;sum2+=xx[i];}ave1=sum1/odd;ave2=sum2/even;for(i=0;i 57方差totfc关键字方差所有数的方差解答如下:注意如果在return1和fclose(fp)之间没有下面的语句要补充上for(i=0;i<100;i++){for(j=0;j<10;j++)fscanf(fp,^Xd,&xx[i*10+j]);fscanf(fp," 58");if(feof(fp))break;)VoidCompute(void){inti;doubIesum=0,sum1=0;for(i=0;i<1000;i++){sum+=xx[i];if(xx[i]%2!=0)odd++;elseeven++;}aver=sum/1000;for(i=0;i<1000;i++)sum1+=(xx[i]-aver)*(xx[i]-aver);totfc=sum1/1000; 59题型3精度计算第91套:要求将200个整数读至数组xx中,求出数组xx中的奇数个数cnt1和偶数个数cnt2以及数组下标为偶数的元素值的算术平均值pj(保留2位小数) 60注意定义部分要完整在floatpj;旁边加上floatsum=0;关键字精度计算下标为偶数的平均值cnt1=cnt2=0;for(i=0;i<200;i++){if(xx[i]%2!=0)cnt1++;elsecnt2++;if(i%2=0)sunH-=xx[i];}pj=sum/100;pj*=1OOO;pj=(long)((pj+5)/10);pj/=1OO;第92套:要求将200个整数读至数组xx中,求出最大数max及最大数的个数ent以及数组中能被3或7整除的数的算术平均值pj(保留2位小数)注意定义部分要完整在floatpj;旁边加上floatsum=0;在inti,j旁边补充定义intcntl;关键字精度计算最大数max-57-max=xx[0];cnt=cnt1=0; 61for(i=0;i<200;i++)if(max 62pj=sum/100;pj*=1000;pj=(long)((pj+5)/10);pj/=100;题型4素数-59-第1套:编写函数num,其功能是将大于m且紧靠m的k个素数存入数组xx中同13题关键字素数大于m的k个素数Voidnum(intm,intk,intxx[]){inti,j.flag,cnt=0;for(i=nrH;;i++){flag=1;for(j=2;j<=i-1;j++)if(i%j=O){flag=0;break;}elseflag=1; 63if(flag=1){xx[cnt++]=i;if(cnt=k)break;)))第34套:编写函数countValue()功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得的余数恰是百位数字的素数,计算输出上述-60- 64素数的个数ent及这些素数的和sum关键字素数个与十之和恰是百位voidcountVaIue0{inti,j,k1,k2,k3,flag;for(i=101;i<1000;i++){k1=i%10;k2=i/10%10;k3=i/100%10:flag=1;for(j=2;j<=i-1;j++)if(i%j=O){flag=0;break;}elsefIag=1;if(flag=1&&(k1+k2)%10=k3){cnt++;sunH-=i;}}}第64套:找出100以内含100满足I、1+4、1+10都是素数的个数ent以及和sum.关键字素数ii+4i+10VoidcountvaIue0{inti;for(i=2;i<=90;i++)注意i一定从2不能从1开始,因为最小的素数是2if(isPrime⑴&&isPrime(i+4)&&isPrime(i+10)){cnt++;sunr^=i;} 65}第66套:计算500—800区间内素数的个数ent,并按从大到小的顺序实现加减之和,即第1个素数-第2个素数+第3个素数-第4个素数……的和sum.关键字素数500至800之间voidcountVaIue(){inti,j,flag,m=1;for(i=800;i>=500;i—){flag=1;for(j=2;j<=i-1;j++)if(i%j=O){flag=0;break;}elseflag=1;if(flag=1){cnt++;sum+=i*m;字符串类题型1 66字符串替换第8套:.编写函数encryptcharO按替代关系f(p)=p*11n>od256,如果计算后f(p)值小于等于32或大于130,则字符不变,否则将f(p)对应的字符替代关键字字符串替换新小于等于32或大于130Voidencryptchar0{inti,j,k;for(i=0;i 67f(p)=p*11mod256,如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则字符不变,否则将f(p)对应的字符替代关键字字符串替换原是偶数或新小于等于32Voidencryptchar0{inti,j,k;for(i=0;i 68for(j=0;j 69关键字字符串替换新小于等于32或新是小写Voidencryptchar(){inti,j,k;for(i=0;i 70xx[i][j]=k;第95套:编写函数encryptcharO按替代关系f(p)=p*11mod256,如果f(p)小于等于32或f(p)对应的字符是大写字母,则字符不变,否则将f(p)对应的字符替代.关键字字符串替换新小于等于32或新是大写Voidencryptchar0(inti,j,k;for(i=0;i 71{inti,j,k;for(i=0;i 72第98套:编写函数encryptcharO按替代关系f(p)=p*17mod256,如果计算后f(p)值小于等于32或其ASCII码值为奇数,则字符不变,否则将f(p)对应的字符替代.关键字字符串替换新小于等于32或新是奇数Voidencryptchar0{inti,j,k;for(i=0;i 73字符串移动及替换第73套:把英文文章中以行为单位所所有小写改成它的上一个字母,如是a则改成z,大写不动,-70- 74其它字符不变.关键字字符串替换所有小写上一个voidConvertCharD(void){inti,j;for(i=0;i 75的所有字母改为该字母的下一个字母,如果是z,则改为a,如果是Z,则改为A,小写仍为小写,大写仍为大写,其它字符不变关键字字符串替换所有字母下一个voidchg(char*s){inti;for(i=0;i 76关键字字符串移动替换左移后小于等于32或大于100voidStrCharJL(void){inti,j;chark;for(i=0;i 77把字符串的第一个字符的ASCII值加第二字符的ASCII值得到第一个字符,第二个字符的ASCII值加第三个ASCII值得第二个字符,依次类推,最后一个字符的ASCII值加原第一个字符的ASCII值得最后一个字符,最后把处理的字符串逆转后存入数组XX中关键字字符串移动及替换第一个加第二个voidChA(void){inti,j,a,b;chart;for(i=0;i 78关键字字符串移动及替换最后右移4位加前一个字符voidCharConvAO{inti,j;chart,k;for(i=0;i 79{k=xx[i][j]»4;xx[i][j]+=k;}第19套:统计一个长度为2的子串在另一字符串的出现的次数.关键字杂项长度为2 80intfindStr(char*str,char*substr){inti,cnt=O;for(i=0;i 81关键字杂项迭代法floatcountVaIue(){floatx1,xO;x1=0.0;whiIe⑴{x0=x1;x1=cos(x0);if(fabs(x0-x1)<1e-6)returnx1;I)第22套:编写函数countvaIue()功能是求n以内不包括n同时能被3与7整除的所有自然数之和的平方根s并作为函数返回值关键字杂项同时能被3与7整除.doubIecountVaIue(intn){inti;doubles=0;for(i=1;i 82第24套:从100—999找既是完全平方数,又有两位数字相同,如400,121等从小到大存入数组b中关键字杂项完全平方数jsValue(intbb[]){inti,j,a,b,c,cnt=0;for(i=100;i<=999;i-H-){a=i%10;b=i/10%10;c=i/100%10;for(j=1;j 83第35套:编写函数jsValueO.某级数前两项A1=1,A2=1以后各项均有以下关系:An=An-2+2An-1功能是:要求依次对于整数M=100、1000、10000求出对应的n的值关键字杂项M=100100010000对应的n值voidjsValueO{intk[100]={1,1j,s=2,i;for(i=2;;i++){k[i]=k[i-2]+2*k[i-1];s+=k[i];if(s-k[i]<100&&s>=100)b[0]=i;if(s-k[i]<1000&&s>=1000)b[1]=i;if(s-k[i]<10000&&s>=10000){b[2]=i;break;))}第41套:计算出自然数SIX和NINE,它们满足的-80- 84条件是SIX+SIX+SIX=NINE+NINE的个数ent以及满足此条件所有的SIX和NINE的和sum,其中S,l,X,N,E都代表一个十进制数关键字杂项SIX+SIX+SIX=NINE+NINEvoidcountVaIue0{inta,b,i,ii,n,nn;for(a=100;a<=999;a++)for(b=1OOO;b<=9999;b++){i=a/10%10;ii=b/100%10;n=b/1000%10;nn=b/10%10:if(3*a=2*b&&i=ii&&n=nn){cnt++;sun0-=a+b;}}}第67套:编写函数jsvalue(),选出5000以下符合条件的自然数,如果干+百=十+个,且千与百之和等于个与千之差的10倍,统计满足条件的数的个数ent及和sum关键字杂项5000以下自然数VoidjsValO{inti,j,t,k1,k2,k3,k4;for(i=1000;i<5000;i++){k1=i%10;k2=i/10%10;k3=i/100%10; 85k4=i/1000%10; 86if(k4+k3=k2+k1&&(k4+k3)=10*(k1-k4)){cnt++;sum+=i;}}第79套:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数,结果从小到大的顺序放在数组a中,并通过形参n传递这个数的个数关键字杂项能被7或11整除但不能同时被7或11VoidcountVaIue(int*a,int*n)(inti,cnt=0;for(i=1;i<1000;i++)if(i%7=0&&i%11!=0||i%11=04&i%7!=0)a[cnt++]=i;*n=cnt;注意■-定要加*号)第90套:功能是:将一正整数序列{k1,k1,….k9}重新排列成一个新的序列,新序列中,比kl小的数都在k1的左边,比k1大的都在k1的右边,从k1向后扫描.关键字杂项排成一个新序列-82-jsValue(inta[10][9]) 87{inti,j,m[9],ent;for(i=0;i<10;i++){cnt=0;for(j=8;j>=0;j-)if(a[i][j]a[i][0])m[++cnt]=a[i][j];for(j=0;j<=8;j++)a[i][j]=m[j];]}第3套:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除关键字杂项类删除字母。voidStrOR(void){inti,j:chara[80],b[80]:for(i=0;i 88strcpy(b.&xx[i][j+1]);strcat(b,a);strcpy(xx[i],b);j=-1;J))第4套:编制函数,以读入文章的行为单位,以空格和标点符号为分隔符,对行中所有单词进行倒排,单词间仍以空格作为分隔符,之后把已处理的字符串仍按行重新存入字符串数组xx中。关键字杂项单词倒排voidStrOL(void){inti,j;charnews[21],Iine[80];for(i=0;i 89strcat(news,"");strcat(Iine,news);xx[i][j]=O;}strcatdine,xx[i]);strcpy(xx[i],line);))第57套:报数出圈关键字杂项报数出圈voidJosegh(void){inti,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)si=i;w=p[s1-1];for(j=s1;j 90第1套:统计'a,」z,26个英文字母在tt字符串中各出现的次数voident(char*tt,intpp[]){inti;for(i=0;i<26;i++)pp[i]=o;for(i=0;tt[i];i++)if(tt[i]>='a'&&tt[i]<='z')此句也可写成if(islower(tt[i]))pp[tt[i]-97]++;}第2套:下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数intnum(*charss,charc)实现程序要求,最后调用函数readwriteDatO把结果输出到文件out.dat中。(注:大小写字母有区别)例如,若输入字符串ss="123412132",c='1',则输出3。intnum(char*ss,charc){inti,cnt=0:for(i=0;i 91cnt++;returnent;第3套:下列程序的功能是:设A,B,C为三个不为零的正整数,计算并输出下列不定方程组解的个数ent以及满足此条件的所有A,B,C之和sum。不定方程组为:A+B+C=13A-C=5请编写函数countValue实现程序要求,最后调用函数writeDatO把结果ent和sum输出到文件out.dat中部分源程序存在文件progl.c中。#include 92成八进制数并把已转换的八进制数仍存放在字符串数组xx中,最后调用函数WriteDa")把结果输出到OCK.OUT文件中。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)注意:部分源程序存放在文件progl.c中。#include 93{s+=t*(xx[i][j]-55);t*=16;)if(xx[i][j]>='0'&&xx[i][j]<='9'){s+=t*(xx[i][j]-48);t*=16;})itoa(s,k,8);注:如是16转二,16转十,只需把itoa中的值换成2和10即可.strcpy(xx[i],k);])第5套:程序progl.c的功能是:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a数组中。找出成绩最高的学生记录(假定最高成绩是记录中唯一的),通过形参返回。请考生编写函数mmn(STUa[],STU*s)实现程序的要求,最后调用函数readwriteDATO把结果输出到文件bc6.out中。注意:部分源程序存在文件progl.c文件中。请勿改动主函数main。和输出数据函数readwriteDAT0的内容。#include 94voidreadwriteDAT0;typedefstructss{charnum[10];ints;)STU;voidmmm(STUa[],STU*s){inti,max=a[0].s;for(i=0;i 95{"NUM19",69),rNUU20M8),rNUM21”,80},{“NUM22",72L「NUM23”,42},(“NUM24",92},{"NUM25”,97}, 96{“NUM26”,23},{“NUM27”,78},{“NUM28”,56),fNUM29”,65),{"NUM30”,68},{"NUM31”,91},{"NUM32”,73},{"NUM33”,55],{"NUM34”,48],{"NUM35”,47},{"NUM36”,59),{“NUM37",92L{“NUM38”,71},{"NUM39”,65),{"NUH40”,48},{"NUM41”,61},{"NUM42”,63],{“NUM43”,58),CNUM44\68},rNUM45\77),{"NUM46”,89],{"NUM47”,75],{"NUM48”,70),{“NUM49”,69],{“NUM50”,76)),m;inti;systemCcIs");printf("**♦**Theoriginaldata***** 97");for(i=0;i 98",a[i].num,a[i].s);mmm(a,&m);printf("***♦*THERESULT***** 99");printf("Thetop:%s,%d 100”,m.num,m.s);readwriteDATO;}第6套:统计一篇英文文章中10个不区分大小写的-91- 101单词出现的频数分别存入整型数组yy[O]至yy[9]中.voidComWord(void){intifj,a,b,k,m;charnews[21];for(i=0;i 102{inti,j,k,a,b;for(i=0;i 103-93-if(isalpha(xx[i][j])){for(k=j+1;k<=strIen(xx[i]);k++)if(!isalpha(xx[i][k])){b=k;j=k;break;}for(m=0;m<10;nrH-)if(xx[i][b-1]=W0RD[m])yy[m]++;}1)第9套:分别按行删除空格、标点符号以及10个不区分大小写的英文单词(you,for,your,on,no,if,the,in,to,alI))余下的单词倒置后按顺序重新存入数组xx中.voidDelWord(void){inti,j,k,a,b,m,flag;chart,new2[21],news[21],Iine[80];for(i=0;i 104-94-{a=j;memset(news,0,21);memset(new2,0,21);for(k=j+1;k<=strlen(xx[i]);k++)if(!isalpha(xx[i][k])){b=k;j=k;break;}strncpy(news,&xx[i][a],b-a);strncpy(new2,&xx[i][a],b-a);strIwr(news);flag=1;forif(strcmp(news,WORD[m])=0){flag=O;break;Jelseflag=1;if(flag=1){for(a=0,b=strIen(new2)-1;a 105顺序重新存入数组XX中.voidDelWord(void){inti,j,k,a,b,ent;chart,news[21]yIine[80];for(i=0;i 106)第11套:请编制函数Encrypt0对这篇文章进行加密,加密算法是这样的:把所有英文字母改为它的前一个字母,如果字母是a,则改为z(大写同理),然后把每一个单词倒置(单词的位置不变),空格和标点符号不变。把已处理的字符串仍按行重新存入字符串数组XX中.voidEncrypt(void){inti,j,k,a,b,x,y;chart:for(i=0;i 107for(a=x,b=y-1;a1),这样进行加密:先从S2的第一个字符计数,当数到第key个字符时,把S1的第一个字符放在S2的这个位置;然后接着从S2的下一个字符计数,当再次数到第key个字符时,把S1的第二个字符放在S2的这个位置……,以此类推;当S2的计数位置超出了字符串的长度时,就回到S2的起始位置向后计数(实际上是把S2当成一个圆环);直到S1中的所有字符都存入S2中,请编制函数Decode()对这篇文章按行进行解密,然后把解密后的每一行都按原顺序仍存放在数组XX中.voidDecode(void){inti,j,k;charstr[80];for(i=0;i 108{memset(str,0,80);j=-1;这是本题的关键for(k=0;k 109存在文件OUT.DAT中。voidMakeX(void){inti,j,k[11]={1,1};floata[10],b[10].t;for(i=2;i<11;i++)k[i]=k[i-2]+2*k[i-1];for(i=0;i<10;i++){a[i]=(float)k[i]/k[i+1];b[i]=(float)k[i]/k[i+1];J这是本题的关键for(i=0;i<10;i++)for(j=0;j<10;j++)if(a[i] 110并把它保存在数组XX中,再把这前100项的和保存在整型变量count中.voidMakeX(void){inta,b,i;xx[0]=2;xx[1]=3;count=0;for(i=2;i<100;i++){a=xx[i-2];b=xx[i-1];if(a*b>=1&&a*b<=9)xx[i]=a*b;elseif(a*b>=10&&a*b<=99){xx[i]=a*b/10%10;xx[i+1]=a*b%10;i=i+1;J}for(i=0;i<100;i++)count+=xx[i];}第15套:在文件in.dat存放了10位选手参赛,6位评委给选手打分的数据。计算各位选手的得分规则是去掉一个最高分和一个最低分,最后得分是剩下分数的算术平均值。在下列程序中,函数readDat()是从文件in.dat中读取10位选手的评委打分数据并存入数组mark[10][6]中,要求编写函数jsValueO计算出每位选手的得分并依次存入数组score[10]中. 111jsValueO{inti,a,btjft;floatsum;for(i=0;i<10;i++){sum=0;for(a=0;a<6;a++)for(b=O;b<6;b++)if(mark[i][a] 112k4=b[i]/10%10;k3=b[i]%10;c[cnt++]=k2*1000+k4*100+k3*10+k1;for(i=0;Kent;i++)for(j=0;j 113for(i=0;i 114voidmainOcnt=0;for(i=0;i<200;i++)for(j=0;j<200;j++)if(xx[i]*xx[i]>xx[j]*xx[jj){t=xx[ij;xx[i]=xx[j];xx[j]=t;|for(i=1;i<200;i++)if(xx[i]!=xx[0]){max=xx[i];break;)for(i=0;i<200;i++){if(xx[i]=max){cnt++;sum1+=xx[i];}sunr>-=xx[i];)pj=(sum-sum1)/(200-cnt);pj*=1000;pj=(long)(pj+5)/10;pj/=100;}第20套最大...注意定义部分要完整Jointj.t;floatsum=0,sum1=0;voidmainOcnt=0;for(i=0;i<200;i++)for(j=0;j<200;j++)if(xx[i]>xx[j]){t=xx[i];xx[i]=xx[j];xx[j]=t;Jfor(i=1;i<200;i++)if(xx[i]!=xx[0]){max=xx[i];break;}-104- 115for(i=0;i<200;i++)(if(xx[i]=max){cnt++;sum1+=xx[i];}sum+=xx[i];)pj=(surrrsuml)/(200-cnt);pj*=1OOO;pj=(long)((pj+5)/1O);pj/=1OO;第21套最小.・・・注意定义部分要完整加intj,t;flostsum=0,sum1=0;voidmainOcnt=0;for(i=0;i<200;i++)for(j=O;j<2OO;j++)if(xx[i]>xx[j])(t=xx[i];xx[i]=xx[j];xx[j]=t;}for(i=198;i>=0;i-)if(xx[i]!=xx[199]){min=xx[i];break;}for(i=0;i<200;i++){if(xx[i]=min){cnt++;sum1+=xx[i];}sum+=xx[i];)pj=(sum-sum1)/(200-cnt);pjklOOO;pj=(long)(pj+5)/1O;pj/=100; 116★★全国计算机等级考试三级网络★★机试题库速查手册(内部资料) 117-108--109-
此文档下载收益归作者所有