二级C语言教程章节测试12.用户标识符的作用域和存储类
一、选择题:
(1)有以下程序
int a = 2;
int f(int n)
{ static int a = 3;
int t = 0;
if(n % 2){ static int a = 4;t++ = a++;}
else { static int a = 5;t++ = a++;}
return t+a++;
}
main()
{ int s = a,I;
for(I = 0;i printf("%d\n ",s);
}
程序运行后的输出结果是_ _ _ _ _
A) 26b) 28c) 29d) 24。
(2)下列说法正确的是_ _ _ _ _
a)局部变量被描述为静态存储数,其生存期会延长
B)全局变量被描述为静态存储类,其范围会扩大
C)当没有给任何存储类赋初始值时,其值是不确定的[
(3)有以下程序
int a = 2;
int f(int * A)
{ return(* A)++;}
main()
{ int s = 0;
{ int a = 5;
s+= f(& A);
}
s+= f(& A);
printf("%d\n ",s);
}
执行后的输出结果是_ _ _ _ _
a) 10b) 9c) 7d) 8。
(4)下列说法正确的是_ _ _ _ _
a)全局变量的作用域必须大于局部变量的作用域
B)静态类别变量的生存期贯穿整个程序
C)函数的形参属于自动全局变量
D)。
(5)有以下程序
int a = 3;
main()
{ int s = 0;
{ int a = 5;s++ = a++;}
s++ = a++;printf("%d\n ",s);
}
程序运行后的输出结果是_ _ _ _
a) 8b) 10c) 7d) 11。
(6)下面这个程序的输出结果是_ _ _ _ _
int f()
{ static int I = 0;
int s = 1;
s+= I;i++;
return s;
}
main()
{ int i,a = 0;
for(I = 0;i printf("%d\n ",a);
}
A) 20 B) 24 C) 25 D) 15
(7)在C语言中,形参的默认存储类是_ _ _ _
a)auto b)register C)static d)extern。
(8)以下程序的输出结果为_ _ _ _ _
int x = 3;
main()
{ int I;
for(I = 1;I }
ncre()
{ staic int x = 1;
x * = x+1;
printf(" %d ",x);
}
A) 3 3 B) 2 2 C) 2 6 D) 2 5
(9)它有以下函数:
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 }
A)7 B)7 C)7D)7
8 9 10 7
9 11 13 7
(10)下列程序的输出结果是_ _ _ _ _
int a,b;
void fun()
{ a = 100;b = 200}
main()
{ int a=5,b = 7;
fun();
printf("%d%d \n ",a,b);
}
A)100200 B)57C)200100d)75(11)以下存储类仅在使用时为这种类型的变量分配内存,它们是_ _ _ _ _
A)自动和静态B)自动和寄存器
(12)在c语言中,函数的隐含存储类别是_ _ _ _ _
a)auto b)static c)extern d)no存储类别。
(13)下面这个程序的输出结果是_ _ _ _ _
a)4b)6c)8d)10
int b = 2;
int func(int * a)
{ b+= * a;返回(b);}
main()
{ int a=2,RES = 2;
RES+= func(& a);
printf("%d \n ",RES);
}
(14)下列程序的输出结果是_ _ _ _ _
a)6 99b)6 69c)6 15 15d)6 6 15
int d = 1;
fun(int p)
{ static int d = 5;
d+= p;
printf("%d ",d);
return(d);
}
main()
{ int a = 3;printf("%d \n ",fun(a+fun(d)));}
(15)以下程序运行后,输出结果为_ _ _ _ _
a) 8,15b) 8,16c) 8,7d) 8,8
func (int a,int b)
{ static int m = 0
I+= m+1;
m = I+a+b;
return(m);
}
main()
{ int k = 4,m=1,p;
p=func(k,m);printf("%d ",p);
p=func(k,m);printf("%d\n ",p);
}
(16)以下程序运行后,输出结果为_ _ _ _
a)84b)99c)95d)44
int d = 1;
fun(int p)
{ int d = 5;
d++ = p++;
printf("%d,d);
}
main()
{ int a = 3;
乐趣(一);
d++ = a++;
printf("%d\n,d);
}
(17)下列说法不正确的是_ _ _ _ _ _ _ _
A)在C中,可以给函数中的自动变量一个初始值,每次调用时都给一个初始值。
B)在C中,调用函数时,只需要将实形参和对应的形参赋值为类型兼容即可。
C)在C中,外部变量的隐式类别是自动存储类别。
D)在C中,函数参数可以描述为寄存器变量。
(18)下列程序的输出是_ _ _ _ _
int w = 3;
main()
{ int w = 10;printf("%d\n ",fun(5)* w);}
fun(int k)
{ if(k = = 0)return w;
return(fun(k-1)* k);}
A)360 B)3600 C)1080 D)1200
(19)执行下面的程序后,输出结果是_ _ _ _ _
# include
f(int a)
{ int b = 0;静态c=3:
a=c+ +,b++;
return(a);}
main( )
{ int a=2,I,k;
for(I = 0;I〈2;I = ++〉k = f(a++);
printf("%d\n ",k);}
(20)执行以下程序后,输出结果为_ _ _ _ _
int d = 1;
fun(int q)
{ int d = 5;
d++ = p++;printf("%d "。d);}
main()
{ int a = 3;
乐趣(一);
d++ = a++;printf("%d\n ",d);}
A) 8 4 B) 9 6 C) 9 4 D) 8 5
(21)下面这个程序的输出是_ _ _ _
a)3b)4c)6d)9
fun 3(int x)
static int a = 3;
a+= x;
return(a);}
main()
{ int k=2,m=1,n;
n = fun 3(k);
n = fun 3(m);
printf("%d\n ",n);}
(22)下列程序的输出是_ _ _ _ _
a)1b)2c)7d)10
int m = 13;
int fun2(int x,int y)
{ int m = 3;
return(x * y-m);
}
main()
{ int a = 7,b = 5;
printf("%d\n ",fun2(a,b)/m);}
(23) 请读程序:
#include
void fun( int *s)
{ static int j=0;
do
s[j]+=s[j+1];
while(++j
0条评论