求助大家有关C语言的问题

fact(int a)
{int b=0,static int c=1;
b++;c++;
return(a+b+c);}
for(i=0;i<4;i++)
printf("%d",fact(i));
此乃核心程序也,有些不重要的并没写,问下各位大神这题的结果与方法是什么

fact函数共调用四次,b是局部变量,c是静态变量,只在第一次进行初始化,所以执行过程如下:
第一次 fact(0),其中a=0,b=1,c=2,所以打印出3
第二次fact(1),其中a=1,b=1,c=3,所以打印出5
第三次fact(2),其小a=2,b=1,c=4,所以打印出7
第四次fact(3),其小a=3,b=1,c=5,所以打印出9
静态变量的定义只在第一次起作用
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-08
3579 注:是四个值
方法:for(i=0;i<4;i++)
printf("%d",fact(i));是调用fact函数四次,每次的值分别是0,1,2,3,将其分代入fact函数就行了,其中c是独立的,即每次代入时,b的初始值是0,c的初始值分别是1,2,3,4,最后就是每次调用函数时,将此次的a,b,c值加起来即可
第2个回答  2011-06-08
3 5 7 9

大学搞懂这8个C语言问题你也能进大厂
(An array of 10 pointers to integers)f)一个指向有10个整型数数组的指针( A pointerto an array of 10 integers) 6、关键字static的作用是什么? 在C语言中,关键字static有三个明显的作用: 第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程席运行结束以后才...

有关C语言的问题
!(x+y)+z-1&&y+z\/2 这个表达式中,!(X+Y)这个是相加后取反,结果为0或非0。1&&y是相与,结果为y或0。z\/2,是取整,结果为z除以2的商。总的来说,这些C语言表达式的理解关键在于遵循C语言的运算规则和优先级,同时注意变量的赋值和操作符的用法。

~有些关于C语言的问题
A是从main()函数开始执行,B中正好相反,main函数中没有可调用函数 D中C语言程序中的main()函数可以放在程序的任何部分 3、选出下列标识符中不是合法的标识符的是( )。A. hot_do B. cat1 C. _pri D. 2ab 选D 不能以数字作为变量开头 4、下列描述中不正确的是( )。A、字符型数组...

关于c语言的输入问题,请大家赐教了?
(3)这时不需要c = getchar ( );,用了也是添乱。(4)你原本的想法有道理,但是c语言早已经想到并做到了,它规定:输入数字时,所有空格(无论连续多少个),只起到分隔数字的作用,绝不会影响数字的读入。

计算机有关c语言的一些问题选择 各位大大 求帮忙~~~
第三题:c 理由:这个没什么解释的,记住就行了 第四题:a 理由:同上 第五题:b 理由:赋值运算符的左侧必须是变量,不能是表达式,故d错。%运算符的操作数必须是整型数据,故c错,在C语言中不存在:=运算符,故a错。第六题:c 理由:字符常量要用单撇号括起来 第七题:a c 理由:C中...

c语言相关的一个问题,希望大师不吝赐教!!!
产生这个问题的原因有很多,给你简单解释下吧 其实C语言对数组越界检查得并不严格,一般如果数组元素溢出只会给出警告而不会报错(这个是题外话了……)对于字符串,系统是会在后面自动加上“\\0”以表示字符串结束(因为后面会可能产生很多随机的值),而不同的编译器对程序段的处理也不太一样,我想你...

关于c语言程序设计的问题求大神帮忙!万分感谢!
(1)编辑(把程序代码输入,交给计算机)(2)编译(成目标程序文件.obj)编译是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码...

c语言相关的几个问题
1.没有。不会。除非人们不再用计算机编程。只要还在用计算机,就会有人用C语言编程的,虽然现在大部分人认为面向对象的JAVA或者其它的比C语言容易上手的,可是如果你学过了C语言,再去学其它的软件,就会发现有了C语言的基础,学什么都很简单的。但是如果你先学了其它的编程语言,再学C语言,发现C语言还是很基础的,它...

关于2级C语言的几个问题(详细解答一下,谢谢!)
char x='A'; 是定义一个变量x并赋值为字符A x=(x>'A'&&x<='Z')?(x+32):x; 这是个选择语句,括号里的x>'A'&&x<='Z'表示条件,意思就是在A到Z之间的字母,也就是所有大写字母,因为是 >'A'不是>=‘A',所以不包括A,当条件满足时就执行x=x+32,大写字母 +32就转换成小写...

关于C语言的问题?
C语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而c使用灵活,适应性强。所以,“n=i=2,++i,i++”这个式子中,n=i=2的结果是n=2,i=2;++i结果是n=2,i=3;++i结果是n=2,i=3;(前置++先加后用,后置++先用后加)又因为逗号表达式的值是最右边的那个...

相似回答
大家正在搜