使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是计算并输出k以内最大的10个能被13或 17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值

admin2023-02-27  43

问题 使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是计算并输出k以内最大的10个能被13或
17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。
    请改正程序中的错误,使它能得出正确的结果。
    注意:部分源程序在文件modil.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<stdlib.h>
4 int fun(inf k)
5 {int m=0,mc=0,j;
6  while((k>=2)&&(mc<10))
7  {
8  /*********found*********/
9    if((k%13=0)||(k%17=0))
10    {m=m+k;mC++;}
11    k --;
12  /*********found*********/
13    return m;
14  }
15  void main()
16  {system("CLS");
17 printf("%d\n",fun(500));
18  }

选项

答案(1)if((k%13==0)||(k%17==0)) (2)}return m;

解析 (1)c语言中,x能被y整除的表示方法是x%y==0,而不是题目中所表示的x%y=0。所以,if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))。
    (2)while循环缺少"}",此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来。如丢失"}"的错误信息是"Compound statement missing}in function fun"。  
转载请注明原文地址:https://jikaoti.com/ti/1noiFFFM
0

最新回复(0)