第 16 頁:答案 |
【14】=s;}
解析: C語言中實參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實參指針變量的值,但可以改變實參指針變量所指變量的值。
(14)函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。
例如:m=12,n=8時,運行結(jié)果應該是495.000000。請在題目的空白處填寫適當?shù)某绦蛘Z句,將該程序補充完整。
#include
#include
float fun (int m, int n)
{ int i;
double p=1.0;
for(i=1;i<=m;i++)【15】;
for(i=1;i<=n;i++)【16】;
for(i=1;i<=m-n;i++)p=p/i;
return p;}
main ()
{ clrscr();
printf ("p=%f\n",fun (12,8));}
解析:本題中,欲求p的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實現(xiàn)。
(15)該程序運行的結(jié)果是【17】。
#include
#include
#define M 100
void fun(int m, int *a, int *n)
{ int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i==0)
a[j++]=i;
*n=j;}
main()
{ int aa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;kif((k+1) ==0)printf("\n");
else printf("M",aa[k]);
printf("\n");}
解析: 解答本題的關(guān)鍵是要讀懂程序,試題要找出能被7或11整除的所有整數(shù),注意數(shù)學中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“||”運算符,若要找能同時被7和11整除的所有整數(shù)則在if()中應用“&&”運算符。
當然,如果m的值輸入50,即表達式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:7 11 14 21 22 28 33 35 42 44 49。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |