变量的存储类别题库

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章变量的存储类别

一、选择题

1.有以下程序

#include

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++;

}

void main()

{

int s=a, i;

for( i=0; i<3; i++) s+=f(i);

printf("%d\n", s);

}

程序运行后的输出结果是______。

)26 B)28 C)29 D)24 答案: C

2. 凡是函数中未指定存储类别的局部变量,其默认的存储类别是。A) auto B) register C) extern D) static

答案:A

3. 以下不正确的说法是。

A)在不同的函数中可以使用名称相同的变量

B)在函数内定义的变量只在本函数范围内有效

C)形式参数是局部变量

D)在函数内的复合语句中定义的变量在本函数范围内有效

答案:D

4. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。

A) auto B) register C) extern D) static

答案:D

5.如果在一个函数中的复合语句中定义了一个变量,则以下说法正确的是。A)在本函数范围内有效

B)在本程序范围内有效

C)只在复合语句中有效

D)非法变量

答案:C

6. 下列变量定义错误的是。

A) int x,y;

B) register static int a,b,c;

C) auto int x,y;

D) extern int A;

答案:B

7. 以下程序的正确运行结果是_____________。

#include

int m=1;

int n=5;

int min(int a,int b);

void main( )

{

int m=100,n=10,t;

t=min(m,n);

printf ("%d\n", t);

}

int min(int a,int b)

{

int c;

c=(a<=b)? a:b;

return(c);

}

A) 1 B) 5 C) 10 D) 0

答案:C

8. 以下程序的正确运行结果是_____________。

#include

void main( )

{

int m=1,n=2,t=3;

++m;

t+=++n;

{

int n=10,t;

t=n*2;

m+=t;

printf("%d,%d,%d\n",m,n,t);

}

printf("%d,%d,%d\n",m,n,t);

}

A) 22,11,5 B)22,10,20

18,5,6 22,3,6

C) 32,9,5 D) 16,21,6

10,10,20 22,3,9

答案:B

9.以下叙述中正确的是。

(A)全局变量的作用域一定比局部变量的作用域范围大

(B)静态(static)类别变量的生存期贯穿于整个程序的运行期间

(C)函数的形参都属于全局变量

(D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B

10.下面程序的输出是。

#include

int fun3 (int x)

{

static int a=3;

a+=x;

return(a);

}

void 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

11.有以下程序

#include

int f(int *a)

{

return(*a)++;

}

void main( )

{

int s=0;

{

int a=5;

s+=f(&a);

}

s+=f(&a);

printf("%d\n",s);

}

执行后输出结果是。

(A)10 (B)9 (C)7 (D)8

答案:C

12.以下只有在使用时才为该类型变量分配内存的存储类说明是。

(A)auto和static (B)auto和register

(C)register和static (D)extern和register 答案:B

13.下面叙述中正确的是。

A)全局变量的作用域一定比局部变量的作用域范围大

B)静态(static)类别变量的生存期贯穿于整个程序的运行期间

C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B

14.在C语言中,形参的缺省存储类型是。

A)auto B)register C)static D)extern

答案:A

15.下面程序运行后的输出结果是。

#include

int f()

{

static int i=0;

int s=1;

s+=i;i++;

return s;

}

相关文档
最新文档