当前位置:文档之家› 变量的存储类别题库共25页word资料

变量的存储类别题库共25页word资料

第七章变量的存储类别一、选择题1.有以下程序#include <stdio.h>int a=2;int f(int n)static int a=3;int t=0;if(n%2)static int a=4; t += a++;elsestatic 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);程序运行后的输出结果是______。

A)26 B)28 C)29 D)24答案: C2. 凡是函数中未指定存储类别的局部变量,其默认的存储类别是。

A) auto B) register C) extern D) static答案:A3. 以下不正确的说法是。

A)在不同的函数中可以使用名称相同的变量B)在函数内定义的变量只在本函数范围内有效C)形式参数是局部变量D)在函数内的复合语句中定义的变量在本函数范围内有效答案:D4. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。

A) auto B) register C) extern D) static答案:D5.如果在一个函数中的复合语句中定义了一个变量,则以下说法正确的是。

A)在本函数范围内有效B)在本程序范围内有效C)只在复合语句中有效D)非法变量答案:C6. 下列变量定义错误的是。

A) int x,y;B) register static int a,b,c;C) auto int x,y;D) extern int A;答案:B7. 以下程序的正确运行结果是_____________。

#include <stdio.h>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答案:C8. 以下程序的正确运行结果是_____________。

#include <stdio.h>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,2018,5,6 22,3,6C) 32,9,5 D) 16,21,610,10,20 22,3,9答案:B9.以下叙述中正确的是。

(A)全局变量的作用域一定比局部变量的作用域范围大(B)静态(static)类别变量的生存期贯穿于整个程序的运行期间(C)函数的形参都属于全局变量(D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B10.下面程序的输出是。

#include <stdio.h>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答案:C11.有以下程序#include <stdio.h>int a=2;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答案:C12.以下只有在使用时才为该类型变量分配内存的存储类说明是。

(A)auto和static (B)auto和register(C)register和static (D)extern和register 答案:B13.下面叙述中正确的是。

A)全局变量的作用域一定比局部变量的作用域范围大B)静态(static)类别变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值答案:B14.在C语言中,形参的缺省存储类型是。

A)auto B)register C)static D)extern答案:A15.下面程序运行后的输出结果是。

#include <stdio.h>int f()static int i=0;int s=1;s+=i;i++;return s;void main( )int i,a=0;for(i=0;i<5;i++)a+=f( );printf("%d\n",a);A)20 B)24 C)25 D)15答案:D16. 以下程序:#include <stdio.h>void main( )int i=1,j=3;printf("%d,",i++);int i=0;i+=j*2;printf("%d,%d,", i ,j);printf("%d,%d\n", i ,j);其输出结果是A)1,6,3,1,3 B)1,6,3,2,3 C)1,6,3,6,3 D)1,7,3,2,3答案:B)17. 以下程序:#include <stdio.h>void fun (int *s)static int j=0;dos[j]+=s[j+1];while (++j<2);void main( )int k, a[10]={1,2,3,4,5};for (k=1;k<3;k++) fun(a);for(k=0;k<5;k++) printf("%d",a[k]);其输出结果是A)34756 B)23445 C)35745 D)12345答案:C)18. 以下程序的输出结果是。

#include <stdio.h>int a=1;int fun(int k)static int a=5;a+=k; printf("%d ",a);return(a);void main( )int b=3;printf("%d\n",fun(b+fun(a)));(A)6 9 9 (B)6 6 9 (C)6 15 15 (D)6 6 15答案:C19. 下列程序的输出结果为。

#include <stdio.h>int c=6;void test(int *x, int y)*x=3* (*x);y=*x+y;c=y%(*x);printf ("x=%d,y=%d,c=%d\n",*x,y,c);void main ( )int a=1,b=4;test(&a,b);printf ("a=%d,b=%d,c=%d\n",a,b,c);(A)x=1,y=7,c=3 (B)x=3,y=7,c=1a=3,b=4,c=1 a=4,b=3,c=1(C)x=3,y=7,c=1 (D)x=3,y=4,c=1a=3,b=4,c=1 a=3,b=7,c=1答案:C20. 以下程序的运行结果是。

#include <stdio.h>int d=1;void fun (int p)int d=5;d+=p++;printf ("%d ",d);void main ( )int a=3;fun(a);d+=a++;printf ("%d\n",d);A)5 3 B)8 4 C)5 8 D)5 4答案:B二、填空题1.只有在函数内才能使用的变量称为_【_1_】_变量。

答案:【1】内部或局部2.主函数也_【_1_】_使用其它函数中定义的局部变量。

答案:【1】不能3.不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。

此说法正确吗?_【_1_】_。

答案:【1】正确4.在所有函数之外定义的变量称为_【_1_】_变量。

答案:【1】外部或全局5.设全局变量的作用是:增加了_【_1_】_间数据联系的渠道。

答案:【1】函数6.全局变量可以为其它函数所共用,它的有效范围为:从_【_1_】_的位置开始到文件结束。

答案:【1】定义7.建议不在必要时不要使用全局变量,因为它使函数的_【_1_】_降低了。

答案:【1】通用性或可靠性8.外部变量的定义只能有_【_1_】_次,而外部变量的说明可以有_【_2_】_次。

答案:【1】一;【2】多9.对外部变量的初始化只能在_【_1_】_时进行。

答案:【1】定义10.如果在局部变量的作用范围内与外部变量同名,则_【_1_】_变量不起作用。

答案:【1】外部11.从变量的_【_1_】_(即从空间)角度来分,可以分为全局变量和局部变量。

答案:【1】作用域12.从变量值存在的时间(即_【_1_】_)角度来分,可以分为静态存储变量和动态存储变量。

答案:【1】生存期13.在C语言中每一个变量和函数有两个属性:_【_1_】_和数据的存储类别。

答案:【1】数据类型14.存储类别指的是数据在_【_1_】_中的存储方法。

答案:【1】内存15.在C语言中,存储方法分为两大类:静态存储类和动态存储类,具体包含四种:自动的、_【_1_】_、静态的、_【_2_】_。

前两种属于动态存储类,后两种属于静态存储类。

答案:【1】寄存器的;【2】外部的16.静态存储是整个程序运行时间都存在,而动态存储则是在调用函数时临时分配单元。

所以,形式参数属于_【_1_】_存储类。

答案:【1】动态17.自动变量、寄存器变量、形式参数都属于局部变量,在离开函数时,其值_【_1_】_,而静态局部变量在离开函数时,其值_【_2_】_。

答案:【1】就消失;【2】仍保留18.如果需要保留函数上一次调用结束时的值,或变量初始化后只被引用而不改变其值,则这时采用_【_1_】_变量比较方便,以免每次调用时重新赋值。

答案:【1】静态19.如不必要,不要多用静态局部变量。

不仅长期占用内存不释放,浪费空间,而且当调用次数多时往往弄不清其当前值是什么,降低了程序的_【_1_】_。

相关主题