63.
以下叙述中正确的是______。
A、全局变量的作用域一定比局部变量的作用域范围大 B、静态(static)类别变量的生存期贯穿于整个程序的运行期间 C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 答案:B
知识点:局部变量及其作用域和生存期 64.
下面程序的输出是______。 fun3(int x) {
static int a=3; a+=x; return(a); } main() {
int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d\n",n); }
A、3 B、4 C、6 D、9 答案:C
知识点:局部变量及其作用域和生存期 65.以下叙述中正确的是______。
A、局部变量说明为static 存储类,其生存期将得到延长 B、全局变量说明为static 存储类,其作用域将被扩大 C、任何存储类的变量在未赋初值时,其值都是不确定的 D、形参可以使用的存储类说明符与局部变量完全相同 答案:A
知识点:局部变量及其作用域和生存期 66. 有以下程序 int fun(int x[],int n) {
static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]; return sum; } main() {
int a[]={1,2,3,4,5},b[]={6,7,8,9,},s=0; s=fun(a,5)+fun(b,4); printf("%d\n",s); A、45 B、50 C、60 D、55 答案:C
知识点:局部变量及其作用域和生存期 67.
以下程序执行后sum的值是______。 main() { int i,sum;
for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); }
A、15 B、14 C、不确定 D、0 答案:C
知识点:局部变量及其作用域和生存期 68.
以下程序的输出结果是______。 main() {
int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); }
func(int a,int b) {
static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
A、8,17 B、8,16 C、8,20 D、8,8 答案:A
知识点:局部变量及其作用域和生存期 69.
设有以下函数: f(int a) { int b=0; static int c=3; b++; c++;
return (a+b+c); }
如果在下面的程序中调用该函数,则输出结果是______。main() { int a=2,i;
for(i=0;i<3;i++) printf("%d\n",f(a));