c语言func函数例题 c语言程序设计fun函数

求大神解答C语言题目

#include stdio.h

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的合江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

//商不能超过最大的long型数,小数部分最后一位四舍五入太难了,希望能给你参考 

void func(double m,double n,double k){

long mi,i,ki;

int s;

mi=(long)(m/n);

m=m-mi*n;

ki=(long)k;

printf("%lf/%lf=%ld.",m,n,mi);

for(i=1;i=ki;i++){

m=m*10;

s=(int)(m/n);

printf("%d",s);

m=m-s*n;

}

}

int main(){

double m,n,k;

printf("请输入三个正数:");

while(1){

scanf("%lf%lf%lf",m,n,k);

if (m0  n0  k0) break;

printf("不能有负数出现\n请重新输入三个正数:");

}

func(m,n,k);

}

C语言 func() 程序计算题

第五行输出,是6 11,21

第六行输出5,6,11

第七行输出8,21,42

你的fun函数没有声明或(放在主函数前面),是错误的

第六行a=5,b=6,毫无疑问,c经过fun函数加了10为11

第七行,第一次调用fun后a=6,c=11,b=21

因为static声明,值不丢失,第二次调用后变为8,21,42

请教一道简单的C语言题目,希望有中文解释

首先给出该程序的输出结果:48

func()函数中的m为静态变量,意味着m在程序开始时被初始化一次,并且在程序结束前一直存在。即不会在每次调用func()函数时,都会创建新的m。

第一次调用func(k),m的初始值为0,m+=4,m的值为4,输出结果为4.

func(k)运行结束后m并没有被销毁。

第二次调用func(k),m的值为4,m+=4,m的值为8,输出结果为8

c语言函数问题。高手指教

第一题的知识点是,逗号表达式,逗号表达式的值是最右边的那个值,这个要记住了。比如说,z=(2,3,4);z是被赋予4的。那又比如说,z=((2,3),4);z还是被赋予4的。顺便说一下,因为逗号运算符是C中优先级最低的一个,所以括号一定要写的。比如说z=2,3,4;这样的话z是被赋值为2,而3和4在编译的时候就会出现warnings,说它们没有no efforts。

所以说r=func ((x--,y++,x+y),z--);实际上是r=func ((6,7,13),8);即是r=func (13,8); 所以答案应该是21.

第二题的知识点是实参传递。我想说,如果这道题有正确的编译结果的话就是奇异的。因为,书上说得很明确,实参在进行函数调用的时候,必须有确定的值,这样才能把这些值传递给形参。所以这道题编译时不成功的,因为c的值不确定。并且,这里并没有return语句,所以就算c能够算出来也输出不了。(这是因为这里是传值,形参的改变时改变不了实参的。)如果要成功,我认为要这么写。#include stdio.h

int fun(int a,int b,int c)

{c=a*b;

return c;}

main()

{int c;

c=fun (2,3);printf("%d\n",c);

} 结果为6。

第三题,首先,主函数i=0时,i=0传递给子函数n,这时s=1.0不变;接着,主函数i=1时,i=1传递给子函数n,这时s=1.0+1.0+1.0/1=3.0;接着,主函数i=2时,i=2传递给子函数n,这时s=3.0+1.0+1.0/1+1.0/2=5.5,输出的时候输出%f,没有精度控制的话就默认保留6到7位数字。 结果是5.500000

第四题,嗯,我觉得你应该先自己想想,unsigned是无符号整数的意思,就是没有负数的。k*=num%10是k=k*(num%10),(num%10)是取余数的意思。do-while语句,while(num)num为0时候才跳出循环。首先,实参26传递过去,num为26,k=1*(26%10)=1*6=6;然后num=26/10=2.6,自动取2.(因为num为unsigned型);然后循环,继续,k=6*(2%10)=12;num=2/10=0.5,自动取0;这时候跳出循环,返回值为k=12,即是主函数显示12. 结果是12

c语言,求这一题详细解释

#include stdio.h

int main()

{

int k = 4, m = 1, p;

p = func (k, m);

printf("p = %d\n" , p);

p = func(k, m);

printf("p = %d\n" , p);

return 0;

}

int func(int a, int b)

{

static int m,i=2;

printf("m = %d, i = %d\n" , m, i);

i += m+1;

printf("i = %d," ,i);

m = i+a+b;

printf("m = %d\n" ,m);

return(m);

}

先说两件事

这两张图片治好了我的颈椎病

static int m, i=2;

 这里面m的值没有初始化, 这应该是不应该的, 我敢说题有问题

根据上面的打印, 可以看出我的编译器将m的初始值定为0

为了区别两个m, 下面将main()里面定义的m写为大写M

第一次func, 输入值a = k = 4, b = M = 1

i =  i + m + 1 = 2 + 0 + 1 = 3

m = i + a + b = 3 + 4 + 1 = 8

第一次func, 输入值a = k = 4, b = M = 1

i =  i + m + 1 = 3 + 8 + 1 = 12

m = i + a + b = 12 + 4 + 1 = 17

这题主要考的就是全局变量局部变量区别, 静态变量与非静态变量的区别

在func里面定义的m作用域就在func函数里面,

在main()函数里面出现相同的变量m作用域是在main()函数里, 有区别

static类型的静态变量有个特点, 就是只初始化一次

第一次调用func() 将m, i 的数值初始化了,

并且经过运算最总 m =8, i = 3

第二次调用func()的时候m, i的数值不再次初始化, 依然是以前的数值 8, 3

一道有关C语言函数的运行题#includefunc(int a,int b) {int c;c=a+b;return c;}main(){int x=6,

该函数参数传递属于值传递;

对于这个程序所谓值传递就是在func函数把x的地址上的值拷贝过去,函数只是对临时分配的栈中内容进行操作,此时x内存地址上的值是8,所以调用到func时就是8+8=16了;


分享名称:c语言func函数例题 c语言程序设计fun函数
网页URL:http://myzitong.com/article/doohhcj.html