三级培训真题分析新 很好留用课件_第1页
三级培训真题分析新 很好留用课件_第2页
三级培训真题分析新 很好留用课件_第3页
三级培训真题分析新 很好留用课件_第4页
三级培训真题分析新 很好留用课件_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:邹显春E-Mail:zouxc@C语言基础部分主讲:邹显春E-Mail:zouxc@C1一、历年试题剖析序号知识点覆盖抽中率1按照结构体成员筛选并排序10%2字符串替换、改写、排序、移动24%一、历年试题剖析序号知识点覆盖抽中率1按照结构体成员筛选并排2序号知识点覆盖抽中率3数位分解—筛选或重组后统计、排序求平均25%4初等数学—素数、统计个数、平均、方差、整除问题19%序号知识点覆盖抽中率3数位分解—筛选或重组后统计、排序求平均3序号知识点覆盖抽中率5遍历统计、移动或倒排3%6选票问题4%7排序—相邻大小筛选统计后、后3位、数组排序8%8其他经典问题8%序号知识点覆盖抽中率5遍历统计、移动或倒排3%6选票问题4%4二、准确完成三级上机题的方法与策略:1.快速读懂题的内涵—5分钟之内2.快速阅读给定的程序内涵---5-10分钟4.分析所做工作的算法—20分钟之内3.明确自己要做的工作---1分钟之内二、准确完成三级上机题的方法与策略:1.快速读懂题的内涵—55准确完成三级上机题的方法与策略:5.编码、编辑、编译、连接、执行、调试---20-30分钟调试方法单步调试设置断点准确完成三级上机题的方法与策略:5.编码、编辑、编译、连接、6以未来教育培训为主线以题型为主线以未来教育培训为主线以题型为主线71按照结构体成员筛选并排序10%解决的两个关键技巧1.结构体变量的访问2.排序算法(要求掌握选择排序算法)第1-10套1按照结构体成员筛选并排序10%解决的两个关键技巧1.结构体8第1套第1套9voidSortDat(){inti,j;PROtemp; for(i=0;i<MAX-1;i++) for(j=i+1;j<MAX;j++) if(strcmp(sell[i].mc,sell[j].mc)>0) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; } elseif(strcmp(sell[i].mc,sell[j].mc)==0) if(sell[i].je>sell[j].je) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; }}voidSortDat()10第2套第2套11voidSortDat(){inti,j;PROtemp;for(i=0;i<MAX-1;i++) for(j=i+1;j<MAX;j++) if(sell[i].je<sell[j].je) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; } elseif(sell[i].je==sell[j].je) if(strcmp(sell[i].dm,sell[j].dm)<0) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; }}voidSortDat()12第1套第1套132数的分解—按数筛选统计并排序12%(11-22套)解决的关键技巧1.数的分离3.排序算法(要求掌握选择排序算法)2.筛选出满足条件的数并统计2数的分解12%(11-22套)解决的关键技巧1.数的分离314温馨提示:数的分离方法:(1)当整数n(如有4位)的位数确定时,可分别定义个位、十位、百位、千位,利用运算%和/实现。温馨提示:15个位i1=n%10;十位i2=n%100/10;百位i3=n%1000/100;千位i4=n/1000;个位i1=n%10;16(2)当整数n(如有4位)的位数不确定时,通常利用循环结构实现,但必须使用运算%和/。i=0;while(n>0){a[i++]=n%10;//下标为0的元素存放n的最低位,i最终的值为n的位数n=n/10;}(2)当整数n(如有4位)的位数不确定时,通常利用循环结构实17第11套第11套18#include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue(){

}voidmain(){inti;readDat();jsValue();writeDat();printf("cnt=%d\n",cnt);for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}voidreadDat(){FILE*fp;inti;fp=fopen("IN.DAT","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d,\n",b[i]);fclose(fp);}#include<stdio.h>voidreadDat19voidjsValue(){inti1,i2,i3,i4;inti,j,temp;for(i=0;i<300;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 if(i1+i4==i2+i3) b[cnt++]=a[i];//n为满足条件的数是个数 } for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]>b[j]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码voidjsValue()自己完成代码20序号知识点覆盖抽中率3数位分解—筛选求平均4%(23-26套)解决的关键技巧1.数的分离2.求平均值—先求和,再求平均值序号知识点覆盖抽中率3数位分解—筛选求平均4%(23-26套21第23套第23套22#include<stdio.h>inta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;voidreadDat();voidwriteDat();voidjsValue(){

}voidmain(){readDat();jsValue();writeDat();printf("cnt=%d\n满足条件的平均值pjz1=%7.2lf\n不满足条件的平均值pjz2=%7.2lf\n",cnt,pjz1,pjz2);}voidreadDat(){FILE*fp;inti;fp=fopen("in.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidwriteDat(){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%7.2lf\n%7.2lf\n",cnt,pjz1,pjz2);fclose(fp);}#include<stdio.h>voidreadDat(23voidjsValue(){inti1,i2,i3,i4;inti,cnt2=0;for(i=0;i<300;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 if(i3+i4==i2+i1) {pjz1+=a[i];//满足条件的数求和 cnt++; } else {pjz2+=a[i];//不满足条件的数求和 cnt2++; } }pjz1/=cnt;//满足条件的数平均值pjz2/=cnt2;//满足条件的数平均值}自己完成代码voidjsValue()自己完成代码24序号知识点覆盖抽中率4数位分解—重组后再筛选并排序9%(27-35套)解决的关键技巧1.数的分离3.排序2.注意重组规则序号知识点覆盖抽中率4数位分解—重组后再筛选并排序9%(2725第27套第27套26#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal(){}voidreadDat(){inti;FILE*fp;fp=fopen("IN.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}#include<stdio.h>voidmain()27自己完成代码voidjsVal(){inti1,i2,i3,i4;intab,cd,i,j,temp;for(i=0;i<200;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 ab=i4*10+i2;//重组新数ab cd=i1*10+i3;//重组新数cd if((ab-cd)>=0&&(ab-cd)<=10&&ab%2!=0&&cd%2!=0&&i1!=0&&i4!=0) b[cnt++]=a[i]; } for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码28序号知识点覆盖抽中率6根据相邻大小筛选统计并排序4%(36-39套)序号知识点覆盖抽中率6根据相邻大小筛选统计并排序4%(36-29第36套第36套30#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidreadDat();voidwriteDat();voidjsVal(){}voidreadDat(){inti;FILE*fp;fp=fopen("IN.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}#include<stdio.h>voidmain()31voidjsVal(){inti,j,temp;intflag;for(i=0;i<MAX-1;i++) {flag=1;

for(j=i+1;j<=i+5;j++)//a[i]小于之后的连续5个数 if(a[i]>=a[j]) {flag=0;break;} if(flag==1&&a[i]%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]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码voidjsVal()自己完成代码326根据后3位排序2%(40-41套)解决的关键技巧1.数的后三位分离2.排序6根据后3位排序2%(40-41套)解决的关键技巧1.数的后33第40套第40套34#include<string.h>#include<stdlib.h>intaa[200],bb[10];voidreadDat();voidwriteDat();voidjsSort(){}voidmain(){readDat();jsSort();writeDat();}voidreadDat(){FILE*in;inti;in=fopen("IN.DAT","r");for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);fclose(in);}voidwriteDat(){FILE*out;inti;out=fopen("OUT.DAT","w");system("CLS");for(i=0;i<10;i++){printf("i=%d,%d\n",i+1,bb[i]);fprintf(out,"%d\n",bb[i]);}fclose(out);}#include<string.h>voidwrite35voidjsSort(){inti,j,temp; for(i=0;i<199;i++) for(j=i+1;j<200;j++) if(aa[i]%1000<aa[j]%1000) {temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } if(aa[i]%1000==aa[j]%1000) if(aa[i]>aa[i]) {temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } for(i=0;i<10;i++) bb[i]=aa[i];}自己完成部分voidjsSort()自己完成部分36序号知识点覆盖抽中率7数组排序2%(42-43套)序号知识点覆盖抽中率7数组排序2%(42-43套)37第42套第42套38#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstruct{intx1,x2,x3;}Data;Dataaa[200],bb[200];voidreadDat();voidwriteDat();intjsSort(){

}voidmain(){intcount;readDat();count=jsSort();/*返回满足条件的个数*/writeDat(count);}#include<stdio.h>39voidreadDat(){FILE*in;inti;in=fopen("IN.DAT","r");for(i=0;i<200;i++)fscanf(in,"%d%d%d",&aa[i].x1,&aa[i].x2,&aa[i].x3);fclose(in);}voidwriteDat(intcount){FILE*out;inti;out=fopen("OUT.DAT","w");system("CLS");for(i=0;i<count;i++){printf("%d,%d,%d第二个数+第三个数=%d\n",bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x2+bb[i].x3);fprintf(out,"%d,%5d,%d\n",bb[i].x1,bb[i].x2,bb[i].x3);}fclose(out);}voidreadDat()voidwriteDat(in40intjsSort(){inti,j,n=0;Datatemp;for(i=0;i<200;i++)

if((aa[i].x2)>(aa[i].x1+aa[i].x3)) bb[n++]=aa[i];

for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)

if((bb[i].x2+bb[i].x3)<(bb[j].x2+bb[j].x3)) {temp=bb[i]; bb[i]=bb[j]; bb[j]=temp; }

returnn;

}自己完成代码intjsSort()自己完成代码418迭代(递归)3%(44-46套)第44套8迭代(递归)3%(44-46套)第44套42#include<math.h>#include<stdio.h>#include<stdlib.h>voidwriteDAT();floatcountValue(){}voidmain(){system("CLS");printf("实根=%f\n",countValue());printf("%f\n",cos(countValue())-countValue());writeDAT();}voidwriteDAT(){FILE*wf;wf=fopen("out.dat","w");fprintf(wf,"%f\n",countValue());fclose(wf);}floatcountValue(){floatx0,x1=0.0; do {x0=x1; x1=cos(x0); }while(fabs(x0-x1)>=0.000001);returnx1;}自己完成代码#include<math.h>floatcountVal43第45套第45套44#include<stdio.h>voidwriteDat();voidmain(){intn;n=1000;printf("n=%d,f=%d\n",n,jsValue(n));writeDat();}voidwriteDat(){FILE*out;ints;out=fopen("OUT.DAT","w");s=jsValue(1000);printf("%d",s);fprintf(out,"%d\n",s);fclose(out);}intjsValue(intt){longf1=0,f2=1,f;f=f1+f2;while(f<=t){f1=f2;f2=f;f=f1+f2;}returnf;}#include<stdio.h>intjsValue(45第46套第46套46a1a2S=a1+a2s2=a2+s=2*a2+a111231235a1=1,a2=1;While(1){s=a1+a2;s1=s;//保持相邻数的前一个数s2=a2+s;n++;if(s1<100&&s2>=100)b[0]=n;if(s1<1000&&s2>=1000)b[1]=n;if(s1<10000&&s2>=10000){b[2]=n;break;}s1=s2;a1=a2;a2=s;s=s2;a1a2S=a1+a2s2=a2+s=2*a2+a1112347#include<stdio.h>intb[3];voidwriteDat();voidmain(){jsValue();printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]);writeDat();}voidwriteDat(){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]);fclose(fp);}#include<stdio.h>48voidjsValue(){inta1=1,a2=1,s,n=3;longs1,s2;while(1) {s=a1+a2; s1=s;//保持相邻数的前一个数 s2=a2+s; n++; if(s1<100&&s2>=100)b[0]=n; if(s1<1000&&s2>=1000)b[1]=n; if(s1<10000&&s2>=10000) {b[2]=n;break; }s1=s2;a1=a2;a2=s;s=s2; }}三级培训真题分析新很好留用499初等数学—计算素数6%(47-52套)flag=1;//判断j是否是素数 for(i=2;i<=j-1;i++) if(j%i==0) {flag=0;break;} if(flag==1){xx[n]=j;n++;}//将素数放在xx中解决的关键技巧如何判断素数?9初等数学—计算素数6%(47-52套)flag=1;//判50完整代码见备注第49套完整代码见备注第49套51#include<conio.h>#include<stdio.h>voidreadwriteDat();main()//主函数模块{ intm,n,xx[1000]; printf("\nPleaseentertwointegers:"); scanf("%d%d",&m,&n);//若输入数据为175 num(m,n,xx);//将n个素数放在数组xx中 for(m=0;m<n;m++)//测试---输出数组xx中的n个素数 printf("%d",xx[m]); printf("\n"); readwriteDat();}#include<conio.h>52voidreadwriteDat(){ intm,n,xx[1000],i; FILE*rf,*wf; rf=fopen(“in.dat”,“r”);//in.dat为初始数据175 wf=fopen(“out.dat”,“w”);//存放结果 for(i=0;i<10;i++) { fscanf(rf,"%d%d",&m,&n);//从in.dat中读数据175 num(m,n,xx); for(m=0;m<n;m++) fprintf(wf,"%d",xx[m]);”);//把结果1923293137输出到out.dat文件 fprintf(wf,"\n"); } fclose(rf); fclose(wf);}voidreadwriteDat()53自己做的工作—找大于整数m且靠近m的k个素数存放在数组中voidnum(intm,intk,intxx[]){}intn=0,j,flag,i;//n计素数的个数,j为大于m的整数j=m+1;//大于m的整数while(n<k)//找k个素数{

flag=1;//判断j是否是素数 for(i=2;i<=j-1;i++) if(j%i==0) {flag=0;break;} if(flag==1){xx[n]=j;n++;}//将素数放在xx中 j++;}自己做的工作—找大于整数m且靠近m的k个素数存放在数组中vo5410初等数学—统计个数、求平均值7%(53-59套)10初等数学—统计个数、求平均值7%(53-59套)55第54套第54套56第57套第57套5710初等数学—求平均值、方差%(60-62套)10初等数学—求平均值、方差%(60-62套)58第62套第62套5912整除问题3%(63-65套)12整除问题3%(63-65套)60第65套第65套61#include<conio.h>#include<math.h>#include<stdio.h>doublecountValue(intn){}voidprogReadWrite(){ FILE*fp,*wf; inti,n; floats; fp=fopen("in.dat","r"); if(fp==NULL) { printf("数据文件in.dat不存在!"); return; } wf=fopen("out.dat","w"); for(i=0;i<10;i++) { fscanf(fp,"%d,",&n); s=(float)countValue(n); fprintf(wf,"%f\n",s); } fclose(fp); fclose(wf);}main(){printf("1000以内符合条件的自然数之和的平方根=%f\n",countValue(1000)); progReadWrite();}#include<conio.h>voidprogRea6213字符串替代3%(66-75套)13字符串替代3%(66-75套)6314字符串改写3%(76-78套)14字符串改写3%(76-78套)6415字符串排序6%(79-84套)包括若干字符串排序、某个字符串中的字符排序或按照要求排序15字符串排序6%(79-84套)包括若干字符串排序、某个字6516字符串移动5%(85-89套)16字符串移动5%(85-89套)66序号知识点覆盖抽中率17遍历统计、移动或倒排3%(90-92套)序号知识点覆盖抽中率17遍历统计、移动或倒排3%(90-9267第90套第90套68#include<stdio.h>#include<string.h>#include<conio.h>charxx[50][80];intmaxline=0; /*文章的总行数*/intReadDat(void);voidWriteDat(void);voidStrOR(void){}voidmain(){ if(ReadDat()) { printf("数据文件IN.DAT不能打开!\n\007"); return; } StrOR(); WriteDat();}#include<stdio.h>69intReadDat(void){FILE*fp; inti=0; char*p; if((fp=fopen("IN.DAT","r"))==NULL) return1; while(fgets(xx[i],80,fp)!=NULL) {p=strchr(xx[i],'\n'); if(p) *p=0; i++; } maxline=i; fclose(fp); return0;}voidWriteDat(void){FILE*fp; inti; fp=fopen("OUT.DAT","w"); for(i=0;i<maxline;i++) { printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp);}intReadDat(void)voidWriteDat70youhavethecorrectrecord.p2p1p2用‘\0’替换youhavethecorrectrecord.p71y\0uhavethecorrectrecord.p1p2p2y\0uhavethecorrectrecord.yp1p2strcat(p2,p1); p2++;y\0uhavethecorrectrecord.72y\0uhavethecorrectrecord.yp1p2p1=p2;//让p1、p2指向移动后字符串p1重复上述过程即可处理完字符串,通过下列操作,重新复制给xx[i]y\0uhavethecorrectrecord.73voidStrOR(void){inti;char*p1,*p2;for(i=0;i<maxline;i++){p1=p2=xx[i];while(*p2)//处理第i个字符串 if(*p2=='o') {*p2='\0'; p2++;strcat(p2,p1); p1=p2;//让p1、p2指向移动后字符串 } else p2++;strcpy(&xx[i][0],p1);//将处理后的字符串重新赋给xx数组}

}完成部分voidStrOR(void)完成部分74第92套第92套75youhavethecorrectrecord.youhavethecorrectrecord.76voidStrOL(void){inti,j,k;chart[80],t1[80]; for(i=0;i<maxline;i++) {j=k=strlen(xx[i])-1; t[0]=t1[0]='\0'; while(1)//找第i个字符串中的所有单词 {while(isalpha(xx[i][j]==0)&&j>=0)//找第i个字符串中的的倒数第1个单词 k=--j;//记下每个单词的第1个字母字符 while(isalpha(xx[i][j])&&j>=0) j--;//找到下一个单词的倒数第1个字母字符 memcpy(t1,&xx[i][j+1],k-j);//将xx[i]中的每个单词暂存放在t1中 t1[k-j]='\0';//将当前单词变为字符串 strcat(t,t1);//将当前的单词字符串连接在新串t中 strcat(t,"");//将新的字符串t(每个单词之间加一个空格)中的单词加一个空格 if(j<0)//当前字符串处理完毕 break; } strcpy(xx[i],t);//将处理后的字符串重新放在xx[i]中 }}voidStrOL(void)7718选票问题3%(93-95套)18选票问题3%(93-95套)7819出圈问题1%(96套)19出圈问题1%(96套)79演讲完毕,谢谢观看!演讲完毕,谢谢观看!80主讲:邹显春E-Mail:zouxc@C语言基础部分主讲:邹显春E-Mail:zouxc@C81一、历年试题剖析序号知识点覆盖抽中率1按照结构体成员筛选并排序10%2字符串替换、改写、排序、移动24%一、历年试题剖析序号知识点覆盖抽中率1按照结构体成员筛选并排82序号知识点覆盖抽中率3数位分解—筛选或重组后统计、排序求平均25%4初等数学—素数、统计个数、平均、方差、整除问题19%序号知识点覆盖抽中率3数位分解—筛选或重组后统计、排序求平均83序号知识点覆盖抽中率5遍历统计、移动或倒排3%6选票问题4%7排序—相邻大小筛选统计后、后3位、数组排序8%8其他经典问题8%序号知识点覆盖抽中率5遍历统计、移动或倒排3%6选票问题4%84二、准确完成三级上机题的方法与策略:1.快速读懂题的内涵—5分钟之内2.快速阅读给定的程序内涵---5-10分钟4.分析所做工作的算法—20分钟之内3.明确自己要做的工作---1分钟之内二、准确完成三级上机题的方法与策略:1.快速读懂题的内涵—585准确完成三级上机题的方法与策略:5.编码、编辑、编译、连接、执行、调试---20-30分钟调试方法单步调试设置断点准确完成三级上机题的方法与策略:5.编码、编辑、编译、连接、86以未来教育培训为主线以题型为主线以未来教育培训为主线以题型为主线871按照结构体成员筛选并排序10%解决的两个关键技巧1.结构体变量的访问2.排序算法(要求掌握选择排序算法)第1-10套1按照结构体成员筛选并排序10%解决的两个关键技巧1.结构体88第1套第1套89voidSortDat(){inti,j;PROtemp; for(i=0;i<MAX-1;i++) for(j=i+1;j<MAX;j++) if(strcmp(sell[i].mc,sell[j].mc)>0) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; } elseif(strcmp(sell[i].mc,sell[j].mc)==0) if(sell[i].je>sell[j].je) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; }}voidSortDat()90第2套第2套91voidSortDat(){inti,j;PROtemp;for(i=0;i<MAX-1;i++) for(j=i+1;j<MAX;j++) if(sell[i].je<sell[j].je) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; } elseif(sell[i].je==sell[j].je) if(strcmp(sell[i].dm,sell[j].dm)<0) {temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; }}voidSortDat()92第1套第1套932数的分解—按数筛选统计并排序12%(11-22套)解决的关键技巧1.数的分离3.排序算法(要求掌握选择排序算法)2.筛选出满足条件的数并统计2数的分解12%(11-22套)解决的关键技巧1.数的分离394温馨提示:数的分离方法:(1)当整数n(如有4位)的位数确定时,可分别定义个位、十位、百位、千位,利用运算%和/实现。温馨提示:95个位i1=n%10;十位i2=n%100/10;百位i3=n%1000/100;千位i4=n/1000;个位i1=n%10;96(2)当整数n(如有4位)的位数不确定时,通常利用循环结构实现,但必须使用运算%和/。i=0;while(n>0){a[i++]=n%10;//下标为0的元素存放n的最低位,i最终的值为n的位数n=n/10;}(2)当整数n(如有4位)的位数不确定时,通常利用循环结构实97第11套第11套98#include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue(){

}voidmain(){inti;readDat();jsValue();writeDat();printf("cnt=%d\n",cnt);for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}voidreadDat(){FILE*fp;inti;fp=fopen("IN.DAT","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d,\n",b[i]);fclose(fp);}#include<stdio.h>voidreadDat99voidjsValue(){inti1,i2,i3,i4;inti,j,temp;for(i=0;i<300;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 if(i1+i4==i2+i3) b[cnt++]=a[i];//n为满足条件的数是个数 } for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]>b[j]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码voidjsValue()自己完成代码100序号知识点覆盖抽中率3数位分解—筛选求平均4%(23-26套)解决的关键技巧1.数的分离2.求平均值—先求和,再求平均值序号知识点覆盖抽中率3数位分解—筛选求平均4%(23-26套101第23套第23套102#include<stdio.h>inta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;voidreadDat();voidwriteDat();voidjsValue(){

}voidmain(){readDat();jsValue();writeDat();printf("cnt=%d\n满足条件的平均值pjz1=%7.2lf\n不满足条件的平均值pjz2=%7.2lf\n",cnt,pjz1,pjz2);}voidreadDat(){FILE*fp;inti;fp=fopen("in.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidwriteDat(){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%7.2lf\n%7.2lf\n",cnt,pjz1,pjz2);fclose(fp);}#include<stdio.h>voidreadDat(103voidjsValue(){inti1,i2,i3,i4;inti,cnt2=0;for(i=0;i<300;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 if(i3+i4==i2+i1) {pjz1+=a[i];//满足条件的数求和 cnt++; } else {pjz2+=a[i];//不满足条件的数求和 cnt2++; } }pjz1/=cnt;//满足条件的数平均值pjz2/=cnt2;//满足条件的数平均值}自己完成代码voidjsValue()自己完成代码104序号知识点覆盖抽中率4数位分解—重组后再筛选并排序9%(27-35套)解决的关键技巧1.数的分离3.排序2.注意重组规则序号知识点覆盖抽中率4数位分解—重组后再筛选并排序9%(27105第27套第27套106#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidwriteDat();voidjsVal(){}voidreadDat(){inti;FILE*fp;fp=fopen("IN.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}#include<stdio.h>voidmain()107自己完成代码voidjsVal(){inti1,i2,i3,i4;intab,cd,i,j,temp;for(i=0;i<200;i++) { i1=a[i]%10;//个位 i2=a[i]%100/10;//十位 i3=a[i]%1000/100;//百位 i4=a[i]/1000;//千位 ab=i4*10+i2;//重组新数ab cd=i1*10+i3;//重组新数cd if((ab-cd)>=0&&(ab-cd)<=10&&ab%2!=0&&cd%2!=0&&i1!=0&&i4!=0) b[cnt++]=a[i]; } for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码108序号知识点覆盖抽中率6根据相邻大小筛选统计并排序4%(36-39套)序号知识点覆盖抽中率6根据相邻大小筛选统计并排序4%(36-109第36套第36套110#include<stdio.h>#defineMAX200inta[MAX],b[MAX],cnt=0;voidreadDat();voidwriteDat();voidjsVal(){}voidreadDat(){inti;FILE*fp;fp=fopen("IN.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}voidmain(){inti;readDat();jsVal();printf("满足条件的数=%d\n",cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}voidwriteDat(){FILE*fp;inti;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}#include<stdio.h>voidmain()111voidjsVal(){inti,j,temp;intflag;for(i=0;i<MAX-1;i++) {flag=1;

for(j=i+1;j<=i+5;j++)//a[i]小于之后的连续5个数 if(a[i]>=a[j]) {flag=0;break;} if(flag==1&&a[i]%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]) {temp=b[i]; b[i]=b[j]; b[j]=temp; }}自己完成代码voidjsVal()自己完成代码1126根据后3位排序2%(40-41套)解决的关键技巧1.数的后三位分离2.排序6根据后3位排序2%(40-41套)解决的关键技巧1.数的后113第40套第40套114#include<string.h>#include<stdlib.h>intaa[200],bb[10];voidreadDat();voidwriteDat();voidjsSort(){}voidmain(){readDat();jsSort();writeDat();}voidreadDat(){FILE*in;inti;in=fopen("IN.DAT","r");for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);fclose(in);}voidwriteDat(){FILE*out;inti;out=fopen("OUT.DAT","w");system("CLS");for(i=0;i<10;i++){printf("i=%d,%d\n",i+1,bb[i]);fprintf(out,"%d\n",bb[i]);}fclose(out);}#include<string.h>voidwrite115voidjsSort(){inti,j,temp; for(i=0;i<199;i++) for(j=i+1;j<200;j++) if(aa[i]%1000<aa[j]%1000) {temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } if(aa[i]%1000==aa[j]%1000) if(aa[i]>aa[i]) {temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } for(i=0;i<10;i++) bb[i]=aa[i];}自己完成部分voidjsSort()自己完成部分116序号知识点覆盖抽中率7数组排序2%(42-43套)序号知识点覆盖抽中率7数组排序2%(42-43套)117第42套第42套118#include<stdio.h>#include<string.h>#include<stdlib.h>typedefstruct{intx1,x2,x3;}Data;Dataaa[200],bb[200];voidreadDat();voidwriteDat();intjsSort(){

}voidmain(){intcount;readDat();count=jsSort();/*返回满足条件的个数*/writeDat(count);}#include<stdio.h>119voidreadDat(){FILE*in;inti;in=fopen("IN.DAT","r");for(i=0;i<200;i++)fscanf(in,"%d%d%d",&aa[i].x1,&aa[i].x2,&aa[i].x3);fclose(in);}voidwriteDat(intcount){FILE*out;inti;out=fopen("OUT.DAT","w");system("CLS");for(i=0;i<count;i++){printf("%d,%d,%d第二个数+第三个数=%d\n",bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x2+bb[i].x3);fprintf(out,"%d,%5d,%d\n",bb[i].x1,bb[i].x2,bb[i].x3);}fclose(out);}voidreadDat()voidwriteDat(in120intjsSort(){inti,j,n=0;Datatemp;for(i=0;i<200;i++)

if((aa[i].x2)>(aa[i].x1+aa[i].x3)) bb[n++]=aa[i];

for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)

if((bb[i].x2+bb[i].x3)<(bb[j].x2+bb[j].x3)) {temp=bb[i]; bb[i]=bb[j]; bb[j]=temp; }

returnn;

}自己完成代码intjsSort()自己完成代码1218迭代(递归)3%(44-46套)第44套8迭代(递归)3%(44-46套)第44套122#include<math.h>#include<stdio.h>#include<stdlib.h>voidwriteDAT();floatcountValue(){}voidmain(){system("CLS");printf("实根=%f\n",countValue());printf("%f\n",cos(countValue())-countValue());writeDAT();}voidwriteDAT(){FILE*wf;wf=fopen("out.dat","w");fprintf(wf,"%f\n",countValue());fclose(wf);}floatcountValue(){floatx0,x1=0.0; do {x0=x1; x1=cos(x0); }while(fabs(x0-x1)>=0.000001);returnx1;}自己完成代码#include<math.h>floatcountVal123第45套第45套124#include<stdio.h>voidwriteDat();voidmain(){intn;n=1000;printf("n=%d,f=%d\n",n,jsValue(n));writeDat();}voidwriteDat(){FILE*out;ints;out=fopen("OUT.DAT","w");s=jsValue(1000);printf("%d",s);fprintf(out,"%d\n",s);fclose(out);}intjsValue(intt){longf1=0,f2=1,f;f=f1+f2;while(f<=t){f1=f2;f2=f;f=f1+f2;}returnf;}#include<stdio.h>intjsValue(125第46套第46套126a1a2S=a1+a2s2=a2+s=2*a2+a111231235a1=1,a2=1;While(1){s=a1+a2;s1=s;//保持相邻数的前一个数s2=a2+s;n++;if(s1<100&&s2>=100)b[0]=n;if(s1<1000&&s2>=1000)b[1]=n;if(s1<10000&&s2>=10000){b[2]=n;break;}s1=s2;a1=a2;a2=s;s=s2;a1a2S=a1+a2s2=a2+s=2*a2+a11123127#include<stdio.h>intb[3];voidwriteDat();voidmain(){jsValue();printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]);writeDat();}voidwriteDat(){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]);fclose(fp);}#include<stdio.h>128voidjsValue(){inta1=1,a2=1,s,n=3;longs1,s2;while(1) {s=a1+a2; s1=s;//保持相邻数的前一个数 s2=a2+s; n++; if(s1<100&&s2>=100)b[0]=n; if(s1<1000&&s2>=1000)b[1]=n; if(s1<10000&&s2>=10000) {b[2]=n;break; }s1=s2;a1=a2;a2=s;s=s2; }}三级培训真题分析新很好留用1299初等数学—计算素数6%(47-52套)flag=1;//判断j是否是素数 for(i=2;i<=j-1;i++) if(j%i==0) {flag=0;break;} if(flag==1){xx[n]=j;n++;}//将素数放在xx中解决的关键技巧如何判断素数?9初等数学—计算素数6%(47-52套)flag=1;//判130完整代码见备注第49套完整代码见备注第49套131#include<conio.h>#include<stdio.h>voidreadwriteDat();main()//主函数模块{ intm,n,xx[1000]; printf("\nPleaseentertwointegers:"); scanf("%d%d",&m,&n);//若输入数据为175 num(m,n,xx);//将n个素数放在数组xx中 for(m=0;m<n;m++)//测试---输出数组xx中的n个素数 printf("%d",xx[m]); printf("\n"); readwriteDat();}#include<conio.h>132voidreadwriteDat(){ intm,n,xx[1000],i; FILE*rf,*wf; rf=fopen(“in.dat”,“r”);//in.dat为初始数据175 wf=fopen(“out.dat”,“w”);//存放结果 for(i=0;i<10;i++) { fscanf(rf,"%d%d",&m,&n);//从in.dat中读数据175 num(m,n,xx); for(m=0;m<n;m++) fprintf(wf,"%d",xx[m]);”);//把结果1923293137输出到out.dat文件 fprintf(wf,"\n"); } fclose(rf); fclose(wf);}voidreadwriteDat()133自己做的工作—找大于整数m且靠近m的k个素数存放在数组中voidnum(intm,intk,intxx[]){}intn=0,j,flag,i;//n计素数的个数,j为大于m的整数j=m+1;//大于m的整数while(n<k)//找k个素数{

flag=1;//判断j是否是素数 for(i=2;i<=j-1;i++) if(j%i==0) {flag=0;break;} if(flag==1){xx[n]=j;n++;}//将素数放在xx中 j++;}自己做的工作—找大于整数m且靠近m的k个素数存放在数组中vo13410初等数学—统计个数、求平均值7%(53-59套)10初等数学—统计个数、求平均值7%(53-59套)135第54套第54套136第57套第57套13710初等数学—求平均值、方差%(60-62套)10初等数学—求平均值、方差%(60-62套)138第62套第62套13912整除问题3%(63-65套)12整除问题3%(63-65套)140第65套第65套141#include<conio.h>#include<math.h>#include<stdio.h>doublecountValue(intn){}v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论