甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次, 丙 每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参 提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时 炸响,只算一次响声,第一次响声是在第0秒。
例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include #define OK(i, t, n) ((___1___%t==0) && (i/t { int count, t , maxt=t1; if (maxt < t2) maxt = t2; if (maxt < t3) maxt = t3; if (maxt < t4) maxt = t4; count=1; /* 给count赋初值 */ for(t=1; t< maxt*(n-1); ___2___) { if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) ) count++; } return ___3___; } main() { int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n); printf("The sound : %d\n", r); } 解题思路: 第一处:根据定义的要求,所以应填:i。 第二处:for循环语句的增量,所以应填:t++。 第三处:返回统计次数,所以应填:count。 *************************************************** 给定程序MODI1.C中函数fun的功能是: 根据输入的三个边长(整型值), 判断能否构成三角形; 构成的是等边三角形, 还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2, 若能构成一般三角形函数返回1, 若不能构成三角形函数返回0。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include #include void fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c) return 3; else if(a==b||b==c||a==c) return 2; else retrun 1 } else return 0; } main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); } 解题思路: 第一处:函数有返回值,不能定义为void,所以应改为:int fun(int a,int b,int c)。 第二处:语句后缺少分号。 *************************************************** 请编写函数fun, 其功能是: 计算并输出3到n之间(含3和n)所有素数的平方根之和。 例如, 在主函数中从键盘给n输入100后,输出为: sum=148.874270。 注意: 要求n的值大于2但不大于100。 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include #include double fun(int n) { } main() { int n; double sum; printf("\n\nInput n: "); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); NONO(); } 解题思路: 本题是计算并输出3到n之间(含3和n)所有素数的平方根之和。 参考答案: double fun(int n) { int i,j=0; double s=0; for (i=3; i<=n; i++) { for (j=2; j if (i%j == 0) break; if (j == i) s=s+sqrt(i); } return s; } ※※※※※※※※※※※※※※※※※※※※※※※※※