二级C上机习题1(1)【参考答案】
(1) 1 (2) 2*i (3) (-1)
【考点分析】
本题考查:变量赋初值操作;for循环语句;累加运算。
【解题思路】
填空1:由fun函数整体结构可以看出k的作用是赋值,并累加各项前边的正负号,由于第一项是正的,因此赋给k的值为1。
填空2:此空下一行的表达式k*(2*i-1)*(2*i+1)/(t*t)累加的通向,k为正负号,由题目中公式可知t=2*i。
填空3:由于通向前边的正负号每次都要发生变化,因此k=k*(-1)。
(2) 【参考答案】
(1)k++;
(2)if(m==k)
【考点分析】
本题考查:C语言中的语法格式,每个语句后面要以";"结尾;if语句条件表达式,区别条件表达式中==和=的区别。
【解题思路】
函数fun的功能是判断m是否为素数:m从2开始作为除数,并对m取余,若不存在一个数使得余数为0,则m为素数,程序的错误在于if(m=k)语句中的逻辑表达式写成了赋值语句。
(3) 【参考答案】
void fun(int a[],int n, int *max, int *d)
{
int i;
*max=a[0];
*d=0;
for(i=0;i<n;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/
if(*max<a[i])
{*max=a[i];*d=i;}
}
【考点分析】
本题考查:查找一维数组中的最大值及其下标,使用循环判断结构实现。指针变量的应用。
【解题思路】
要查找最大值及其下标需要定义两个变量,该程序直接使用形参max和d,由于它们都是指针变量,所以在引用它所指向的变量时要对它进行指针运算。循环语句用来遍历数组元素,条件语句用来判断该数组元素是否最大。
【解题宝典】
该程序考查求最大值,需要掌握以下语句:
for(i=0;i<n;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/
if(*max<a[i])
{*max=a[i];*d=i;}