本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
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所指的内存*/
}
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |