★ 68:
解法1:
int i,cnt=0;
for(i=0;i if(str[i]==*substr&&str[i+1]==*(substr+1)) cnt++; return cnt; 解法2: int cnt=0; while(*str) if(*str==*substr&&*(str+1)==*(substr+1)) { cnt++; str++;} else str++; return cnt; *************************************************************************** 第四部分 选票问题(掌握方法不难) 抽中率在3%左右 选票问题在整个题库中占比列比不大,题目考察形式不多,下面按照考试题型分别加以介绍。大家在各个类型中需要掌握答题规律和技巧。 8、 选票问题 int i,j,count; for(i=0;i<100;i++) { count=0; /*注意此处count必须在第一层循环后 考虑为什么?*/ for(j=0;j<10;j++) /*注意此处不能加大括号 考虑为什么?*/ if(xx[i][j]=='1') count++; if(count<=5) continue; else for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; } 78-79:选票问题 int i,j; } *************************************************************************** int count; for(i=0;i<10;i++) yy[i]=0; for(i=0;i<100;i++) count=0; for(j=0;j<10;j++) if(xx[i][j]=='1') count++; for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; { if(count!=0&&count!=10) 第五部分 其它特殊问题(相对难度加大) 抽中率在10%左右 题目形式没有具体规律,下面按照考试题型分别加以介绍。建议大家给这部分内容更多的复习时间。 9、 ★ 特殊题目,编程求特殊函数值(需要特殊对待,建议考试前必须看几遍) float x0,x1=0.0;,/*注意此处x1初值0.0*/ while(1) { x0=x1; x1=cos(x0); if(fabs(x0-x1)<1e-6) break; /*注意此处书写形式和绝对值函数*/ } return x1; /*注意此处不能丢掉*/ 10、 ★特殊题目,编程求特殊函数值(需要特殊对待,建议考试前必须看几遍) int i; *n=0;/*此处不能丢掉*/ for(i=1;i<=1000;i++) if((i%7==0 && i!=0)||(i%7!=0 && i==0)) { *a=i; /*保存符合条件的数*/ *n=*n+1; /*不能写成*n++*/ a++; } ★ 72: void jsValue(int a[10][9]) /*此处原题函数中需要定义变量*/ { int i,j,k,tmp,val; for(i=0;i<10;i++) { val=a[i][0]; for(j=0;j<9;j++) if(a[i][j] tmp=a[i][j]; for(k=j;k>0;k--) a[i][k]=a[i][k-1]; a[i][0]=tmp; } } } ★ 80: 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765?? fibonacci数列即斐波那契数列,它的特点是前面两个数的和等于后面的一个数。 int a1=0,a2=1,an; while(an<=t) { an=a1+a2; /*求下一个级数*/ a1=a2; /*将a2赋给a1*/ a2=an; /*将an赋给a2*/ } return an; 另一解法:建议大家使用 int i=0; int f[1000]; f[0]=0; f[1]=1; for(i=2; ;i++) { f[i]=f[i-2]+f[i-1]; if(f[i]>=t) break; } return f[i]; ★ 81:类斐波那契数列 int n=1; /*定义计数器变量*/ int a1=1,a2=1,an; int sum0,sum; /*用来存储级数的和的变量*/ sum0=a1+a2; /*计算前两项的级数和*/ while(1) /*无条件循环*/ { an=a1+a2*2; sum=sum0+an; a1=a2; a2=an; n++; if(sum0<100 && sum>=100) b[0]=n; if(sum0<1000 && sum>=1000) b[1]=n; /*则将n存入数组单元b[1]中*/ if(sum0<10000 && sum>=10000) { b[2]=n; break; }