改错题
1. 在给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序: #include<stdlib.h>
#include<stdio.h>
#include<conio.h>
float m[10];
//****found****
int proc(void)
{
int j;
printf("In subfunc after calling\n");
for(j=0;j<10;j++)
{
//****found****
printf("%f",m[j]%5);
}
}
void main()
{
int i;
printf("In main before calling\n");
for(i=0;i<10;i++)
{
m[i] =i+20;
printf("%f",m[i]);
}
proc();
printf("\nln main after calling\n");
for(i=0;i<10;i++)
printf("%f",m[1]/5);
}
【正确答案】(1)错误:int proc(void)
正确:void proc(void)
(2)错误:printf(”%f",m[j]%5);
正确:printf("%f",m[j]/5);
【答案解析】 由主函数中的函数调用可知,函数proc()没有返回值,因此,“int proc(void)”应改为“void proc(void)”。题目要求使数组中元素的值缩小到1/5,而不是对5取余,因此,“printf("%f",m[j]%5);”应改为“printf("%f",m[j]/5);”。