关于C语言编程问题.
5个回答
展开全部
静态局部变量属于静态存储方式,它具有以下特点:
(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
(2)允许对构造类静态局部量赋初值 例如数组,若未赋以初值,则由系统自动赋以0值。
(3)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以 看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的 值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成 意外的副作用,因此仍以采用局部静态变量为宜。
所以第二次调用的时候 函数func里面的m和i就和第一次不同
(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
(2)允许对构造类静态局部量赋初值 例如数组,若未赋以初值,则由系统自动赋以0值。
(3)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以 看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的 值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成 意外的副作用,因此仍以采用局部静态变量为宜。
所以第二次调用的时候 函数func里面的m和i就和第一次不同
展开全部
给你个提示:1、num/1000得到千位数,存入a[0];(num-a[0]*1000)/100得到百位存入a[1];(num-a[0]*1000-a[1]*100)/10得到十位数存入a[2];(num-a[0]*1000-a[1]*100-a[2]*10)得到个位数存入a[3],最后计算和存入a[4]
2、使用getchar()输入,就可以直接用putchar()输出。
2、使用getchar()输入,就可以直接用putchar()输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题:
#include<stdio.h>
void
main()
{int
m,a,b,c,d,sum;
printf("请输入一个4位数:");
scanf("%d",&m);
a=m/1000;
b=m/100%10;
c=m/10%10;
d=m%10;
sum=a+b+c+d;
printf("sum=%d",sum);
getch();
}
第二题:
#include<stdio.h>
#include<conio.h>
void
main()
{int
a;
printf("请输入一个字母的ASCII码值:\n");
scanf("%d",&a);
putchar(a);
}
#include<stdio.h>
void
main()
{int
m,a,b,c,d,sum;
printf("请输入一个4位数:");
scanf("%d",&m);
a=m/1000;
b=m/100%10;
c=m/10%10;
d=m%10;
sum=a+b+c+d;
printf("sum=%d",sum);
getch();
}
第二题:
#include<stdio.h>
#include<conio.h>
void
main()
{int
a;
printf("请输入一个字母的ASCII码值:\n");
scanf("%d",&a);
putchar(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int
main()
{
int
num;
scanf("%d",&num);
int
sum=0;
while(num>0)
{
sum+=num%10;
num/=10;
}
printf("sum=%d",sum);
return
0;
}
/*题目二*/
#include
<stdio.h>
int
main()
{
printf("输入一个字母的十进制ASCII如97,然后回车:\n");
int
n;
do
{
scanf("%d",&n);
putchar(n);/*输出到屏幕*/
putchar('\n');/*输出换行*/
}
while
(n!=13);
return
0;
}
int
main()
{
int
num;
scanf("%d",&num);
int
sum=0;
while(num>0)
{
sum+=num%10;
num/=10;
}
printf("sum=%d",sum);
return
0;
}
/*题目二*/
#include
<stdio.h>
int
main()
{
printf("输入一个字母的十进制ASCII如97,然后回车:\n");
int
n;
do
{
scanf("%d",&n);
putchar(n);/*输出到屏幕*/
putchar('\n');/*输出换行*/
}
while
(n!=13);
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int
main()
{
int
m,sum;
while(scanf("%d",&m)!=EOF)
{
sum=0;
while(m)
{
sum+=m%10;
m/=10;
}
printf("sum=%d\n",sum);
}
return
0;
}
我的程序不只是对4位数
对任意位数都是正确的
int
main()
{
int
m,sum;
while(scanf("%d",&m)!=EOF)
{
sum=0;
while(m)
{
sum+=m%10;
m/=10;
}
printf("sum=%d\n",sum);
}
return
0;
}
我的程序不只是对4位数
对任意位数都是正确的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询