当前位置:首页 > 江苏省计算机等级考试(二级C语言)考点分析
}
str_count()函数算法分析:依次从s1中取与s2长度相同的字符串放入tmp字符串中,将s2与tmp进行比较,如果相等则(1)存下位置,计数器ct++;(2)开始位置后移i=i+j。
答案:strcmp(s2,tmp)==0 i=i+1 &count 六、递推法
分析:递推法最关键的是找到前后项的区别。即怎样由前一项得到后一项。 (1) 2004年秋填空题第15题(P53-15)
以下程序采用递推法计算 的值,即求 的值。其中x为键盘输入的一个任意的单精度实数。
#include
{ int i,sign=1; float x,s,t; scanf(“%f”,&x); s=_________; t=x;
for(i=1;i<=10; i++) { sign=-sign; t=t*sign*________; s+=t; }
printf(“s=%6.2f”,s); }
(2) 2005年春填空题第15题(P69-15) 以下程序的功能是:计算 的值。 #include
{term=0;
for(j=0; ________; j++) term+=i*pow(10,j); sum=sum+sign*________; sign=-sign; }
return sum; }
void main()
{ printf(“\\nThe sum= %f \\n”,f(6)); } 答案:j
(1) 2004年春填空题第14题(P39-14)
如果一个两位整数是质数,将组成它的两个数字交换位置后形成的整数仍为质数,则称这样的数为绝对质数。例如,13就是一个绝对质数。以下程序用于找出所有两位绝对质数。 #include
for(i=10;I<100;I++) if(a_prime(i)) printf(“%d”,i); }
答案:n/10+n*10 m[j]%k==0
(2) 2004年秋填空题第16题(P54-16)
定理:对于任意一个正整数都可以找到至少一串连续奇数,它们的和等于该正整
33
数的立方。例如,3=27=7+9+11,4=64=1+3+5+7+9+11+13+15。以下程序用[2,20]之间的所有正整数验证该定理。 #include
{ long n,i,k,j,p,sum; for(n=2; n<=20; n++) { k=n*n*n;
for(i=1; i { for(j=i,sum=0; __________; j+=2) sum+=j; if(sum==k) { printf(“\\n %ld*%ld*%ld = %ld= “,n,n,n,sum); for(p=i; p<__________; p+=2) printf(“%ld+”,p); printf(“%ld”,p); break; } } if(i>=k/2) printf(“\\n Error!”); } } 答案:sum (3) 2005年春填空题第16题(P69-16) 以下程序的功能是:寻找并输出11至999之间所有的整数m,满足条件m、m2、m3均为回文数(所谓回文数,是指其各位数字左右对称的整数。例如,121、12321都是回文数)。 #include j--; while(________) { if(a[i]==a[j]) i++,j--; else return 0; } return 1; } main() { long m; for(m=11; m<1000; m++) if(f(m)&&f(m*m)&&f(m*m*m)) printf(“m=%ld, m*m=%ld, m*m*m=%ld\\n”,m,m*m,m*m*m); } 分析:函数f()主要完成的功能是:判断n是否是回文数,如果是返回1,否则返回0。算法实现方式:将整数n的各位数字存放到整型数组a[10]中,再对数组下标为0的元素与最后一个元素进行对比,如果相同,再对比下标为1的元素与倒数第二个元素是否相等,依次类推,如果全部相同,则为回文数。 答案:n/10 i 八、静态变量/变量作用域 (1) 2004年春填空题第9题(P36-9) 以下程序运行时输出结果的第一行是______,第二行是______。 int c; void f1(int x, int *sum) { static int y; x++; y++; c=c+y; *sum=(x+y)/c; } main() { int a,b=100; for(a=0;a<2;a++) { f1(a,&b); printf(“%d%d%d \\n”,a,b,c); }
共分享92篇相关文档