3、les=0.0,s1=0.0;for(i=1;i<=n;i++){s1=s1+pow(i,0.5);/*求每一项*/s=s+s1;/*按公式求出s*/}returns;}【考点分析】本题考查:变量数据类型及初始化;pow()函数的使用,其功能是计算x的y次方;for循环语句完成每一项的值以及累加计算。【解题思路】我们先用数学的思路读懂该程序,并用1个字符表示"()"内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5(它还是1),第2项相当于第1项的值加上20.5,第3项相当于第2项的值加上30.5
4、,…,依此类推。函数pow(x,y)的功能是求出x的y次方,该函数已在库函数中定义(即可直接使用)。程序中用s来表示总的结果,每1次循环加1次s1,即加1项。33(1)1(2)s*i或i*s(3)0(4)s+fun(k)(1)错误:inti,j,k,sum;正确:inti,j=0,k,sum;(2)错误:if(sum%4=2)正确:if(sum%4==2)(3)错误:returnj;正确:returnj++;【参考答案】intfun(intn){ints=0,i;for(i=2;i<=n-1;i++)/*将n
5、减1累加*/if(n%i==0)s+=i;returns;}【考点分析】本题考查:变量数据类型,求和时变量如何初始化;所有因子的判定方法,if语句结合求余运算;return返回语句。【解题思路】函数fun的功能是计算输出给定整数n的所有因子之和。本题比较简单,(1)遍历从2到n-1的所有整数;(2)用条件语句找出能被n整除的所有整数,并累加求和;(3)返回值。34(1)&n(2)t*i(3)s+t(1)错误:fun(intk)正确:doublefun(intk)(2)错误:returns正确:returns;【参考答案】do
6、ublefun(intn){inti;doublesum=0.0;for(i=1;i<=n;i++)if(i%5==0
7、
8、i%9==0)sum+=1.0/i;returnsum;}【考点分析】本题考查:变量数据类型及初始化;if语句,for循环语句。【解题思路】本题是一道简单的计算题,首先确定了n的范围,然后确定判断条件。只要判断条件正确,这道题就可以轻松解决。35(1)<=(2)n++或n+=1或n=n+1(3)returns或return(s)(1)错误:缺{正确:加{【参考答案】voidfun(int*a,int*n)
9、{inti,j=0;for(i=1;i<=1000;i++)/*求1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,并放入数组a中*/if((i%7==0
10、
11、i%11==0)&&i%77!=0)a[j++]=i;*n=j;/*传回满足条件的数的个数*/}【考点分析】本题考查:if语句,但是又不能同时被7和11整除的数,在这里充分理解"逻辑与"和"逻辑或"的区别;for循环语句,循环变量用来控制取值范围。【解题思路】注意本题题目应是找出能被7或11整除,但不能同时被7和11整除的所有整数。同时被7和11整除的
12、整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数,所以可得出程序中的if()语句。注意:(i%7==0
13、
14、i%11==0)两边必须要有小括号。36(1)n==0(2)n==1(3)fun(n-1)+fun(n-2)(1)错误:intfun(intn)正确:float