本系列資料由"韜略宏智" 授權發布,任何網站不得轉載,否則追究法律責任。
1.填空題
下列給定程序中,函數fun()的功能是:計算函數F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。例如,當x的值為9,y的值為11,z的值為15時,函數值為-3.50。
試題程序:
#include
#include
#define FU(m,n)(m)/(n)
float fun(float a,float b,float c)
{【1】 value;
value=FU(a+b,a-b)+FU(c+b,c-b);
return(value);
}
main()
{ float x,y,z,sum;
printf("Input x y z:: ");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if(x==y【2】y==z){printf("Data error!\n ");}
sum=fun(x,y,z);
printf("The result is:%5.2f\n ",【3】);
}
【答案】
【1】float 【2】|| 【3】sum
【解析】
3.編程題
請編寫一個函數int fun(int*s,int t,int*k),用來求出數組的最大元素在數組中的下標并存放在k所指的存儲單元中。
例如,輸入如下整數:
876 675 896 101 301 401 980 431 451 777
則輸出結果為:6,980。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
void fun(int *s,int t,int *k)
{
}
main()
{
int a[10]={876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
【答案】
void fun(int*s,int t,int*k)
{
int i,max;
max=s[0];
for(i=0;i<t;i++)
if(s[i]>max)
{
max=s[i];
*k=i;
}
}
【考點】數組、for循環語句、查找算法和參數傳遞。
【解析】
void fun(int *s,int t,int *k)
{
int i,max; /*定義整型變量max,用于保存最大值*/
max=s[0]; /*把數組第一個元素的值賦給max作為比較初值*/
for(i=0;i<t;i++) /*循環遍歷整個數組*/
if(s[i]>max) /*尋找比當前max更大的數組元素*/
{
max=s[i];
*k=i; /*把最大元素的下標賦給k所指的內存*/
}
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |