第1个回答 2008-04-23
#include <stdio.h>
int fun(int x,int y)
{
int m=3; //局部变量
return x*y-m; //这里的m是本函数fun()的局部变量,其值为3
//x=5,y=7,m=3,所以x*y-m=32
}
int m=13; //全局变量
void main()
{
int fun(int x,int y);
int a=7,b=5;
printf("%d\n",fun(a,b)/m); //这里m是全局变量,其值是13
//fun(a,b)=32,m=13,所以,最后输出2(取整了)
}
#include <stdio.h>
viod main()
{
int a[]={1,3,5},s=1,j,*p=a;
for(j=0;j<3;j++)
s*=*(p+j); //*(p+j)相当于p[j]=a[j],这句相当于s=s*a[i]
//循环3次,所以结果是s=1*1*3*5=15
printf("s=%d\n",s);
}本回答被提问者采纳
第2个回答 2008-04-23
第一题 应该是考察局部变量与全局变量的
fun(a,b)/m
其中m是全局变量值为13
fun(a,b)如下
int fun(int x,int y) 把a赋给x=7,b赋给y=5,然后计算
{ int m=3; //局部变量覆盖了全局变量m,所以在这个函数里m的值为3,外部变量不受影响.
return x*y-m; //这里是返回值 7*5-3=32;
所以main()函数里fun(a,b)/m就等于32/13 由于都是int类型,忽略小数
最后的值为2
第二题是对数组a中的元素求积的运算。
s=s*(*(p+j))这里的p的运算与a[i]的效果是一样的,所以就是1*1*3*5
最后输出结果
第4个回答 2019-01-05
#include<stdio.h>
double
k1(int
n){//1/k!(前n项和)
double
sum=0;//和
if(n>0){
double
s=1;//
1/k
for(int
i=1;i<=n;i++){
s*=(1.0/i);
sum+=s;
}
}
return
sum;
}
double
k2(int
n){//k^2(前n项和)
double
sum=0;
if(n>0){
for(int
i=1;i<=n;i++){
sum+=i*i;
}
return
sum;
}else{
return
0;
}
}
double
k3(int
n){//1/k(前n项的和)
double
sum=0;
if(n>0){
for(int
i=1;i<=n;i++){
sum+=1.0/i;
}
return
sum;
}else{
return
0;
}
}
void
main(){
printf("1/k!(前100项和)+k^2(前36项和)+1/k(前30项的和)为:%f\n",
k1(100)+k2(36)+k3(30));
}