两道c语言题目

来源:百度知道 编辑:UC知道 时间:2024/05/11 18:09:40
几道c语言题目
1、下列程序的输出结果是:
#include<stdio.h>
f(int a)
{int b=0;
static int c=4;
a=c++;b++;
return(a);
}
main()
{int a=2,i,c;
for(i=0;i<2;i++)
c=f(a++);
printf("%d\n",c);
}
能详细说一下运行过程么?另外我不知道static是什么意思啊?多谢~!

2、下面程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请在程序空白处填入适当内容。
int n=0,c;
c=getchar();
while(c!='\n')
{if(_________)
n++;
}
我填写的是c>=97&&c<=122
答案的是c>='a'&&c<='z'
我知道答案的肯定对,我的正确么?

for循环共执行2次
static是静态的意思,
函数执行for(i=0;i<2;i++)
c=f(a++);
第一次是执行c=f(2);后a++,
此时f(int a)
第一次:
{int b=0;
static int c=4;//只执行一次
a=c++;b++;//a=4;b=1,c=5
return(a);
}
输出地4;
第二次:
f(int a)
{int b=0;
static int c=4;//不执行了所以c=5;
a=c++;b++;//a=5;b=1,c=6
return(a);
}
输出地5;
注:
1.静态变量寿命从第一次声明开始,直到程序结束是销毁。
2.a=c++;<=>下面:a=c;c++;
3.c=f(a++);中c的值就是f(int a)
返回值也就是其中f(int a)a的值
4.输出结果为:
4
5
二.
你的答案也都对的
//最佳答案呀呵呵

不给分,不告诉你。
另外你学习,这些东西在课本上都有啊。
你在这里提问完全没有任何意义。。

好好把课本读读吧

一题中,static就是说变量c执行后不会释放。仍然保留上次的值,for循环中第二次调用函数的时候,c的值保留上次c=5,输出的结果为4,5

1,5,static 说明是静态变量,不加的话,c的值永远是4
2,两个答案一回事 a的ascii值是0x61就是97

for循环共执行2次
static是静态的意思,
函数执行for(i=0;i<2;i++)
c=f(a++);
第一次是执行c=f(2);后a++,
此时f(int a)
第一次:
{int b=0;
static int c=4;//只执行一次
a=c++;b++;//a=4;b=1,c=5