如题所述
我从结果讲起,
a=4,程序第一个定义语句里,a就定义且付初值为4,而且程序运行中没有发生变化
b=2,在void main()主函数里,定义b且初值为2
c=8,主函数将b和a的数值传递给func函数,在函数里c等于a和b的乘积,虽然一开始c等于1,很不幸,主函数调用func函数之后,c的数值就被覆盖了,c=a*b=8
p=9,主函数里p的初值为0,也很不幸,p=func(b,a),所以p的值就是func函数调用之后的结果数值,return(a+b+1)的值就是p的值,所以p=a+b+1=2+4+1=9
a=4,程序第一个定义语句里,a就定义且付初值为4,而且程序运行中没有发生变化
b=2,在void main()主函数里,定义b且初值为2
c=8,主函数将b和a的数值传递给func函数,在函数里c等于a和b的乘积,虽然一开始c等于1,很不幸,主函数调用func函数之后,c的数值就被覆盖了,c=a*b=8
p=9,主函数里p的初值为0,也很不幸,p=func(b,a),所以p的值就是func函数调用之后的结果数值,return(a+b+1)的值就是p的值,所以p=a+b+1=2+4+1=9
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-03-02
#include<stdio.h> //包含标准输入输出包
int c,a=4; //定义一个c,一个a;并给a赋值4 全局变量a,c
int func(int a,int b) //定义一个int型函数,调用时需传递两个整型参数,返回一个int数值
{
c = a*b; //把全局变量a*函数内变量b的结果赋值给全局变量c
b=b-1; //把函数内变量b-1赋值给函数内变量b
b++; //函数内变量b++
return(a+b+c); //返回a+b+c的值
}
void main()
{
int b=2,p=0,c=1; //定义局部变量b,p,c(局部变量c的声明会使全局变量的c在main函数内失效)
p=func(b,a); //调用func函数,传递b,a的值给函数对应位置变量,返回值赋值给p
printf("%d,%d,%d,%d\n",a,b,c,p); //输出a,b,c,p的值
int c,a=4; //定义一个c,一个a;并给a赋值4 全局变量a,c
int func(int a,int b) //定义一个int型函数,调用时需传递两个整型参数,返回一个int数值
{
c = a*b; //把全局变量a*函数内变量b的结果赋值给全局变量c
b=b-1; //把函数内变量b-1赋值给函数内变量b
b++; //函数内变量b++
return(a+b+c); //返回a+b+c的值
}
void main()
{
int b=2,p=0,c=1; //定义局部变量b,p,c(局部变量c的声明会使全局变量的c在main函数内失效)
p=func(b,a); //调用func函数,传递b,a的值给函数对应位置变量,返回值赋值给p
printf("%d,%d,%d,%d\n",a,b,c,p); //输出a,b,c,p的值
第2个回答 2016-03-02
这个题目没啥难得,主要考你函数参数按值传递是单向的。就是说func函数内随便怎么修改a和b的值,不会影响main函数中的a,b
然后c是全局变量,在func中修改了c在main函数中就是修改后的值了本回答被网友采纳
然后c是全局变量,在func中修改了c在main函数中就是修改后的值了本回答被网友采纳
第3个回答 2016-03-02
这道题语法有些问题, p*func(b, a)会报错