C语言中用户标识符的作用域和存储类
(总分:19.00,做题时间:90分钟)
一、{{B}}选择题{{/B}}(总题数:11,分数:11.00)
1.以下只有在使用时才为该类型变量分配内存的存储类说明是
(分数:1.00)
A.auto和static
B.auto和register √
&ister和static
&和register
解析:
2.以下程序的输出结果是______。 int f() { static int i=0; int s=1; s+=i;i++; return s; } main() { int i,a=0; for(i=0;i<5;i++)a+=f(): printf("%d/n",a); }
(分数:1.00)
A.20
B.24
C.25
D.15 √
解析:
3.以下叙述中正确的是______。
(分数:1.00)
A.局部变量说明为static存储类,其生存期将得到延长 √
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
解析:
4.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量使用的存储类别是______。
(分数:1.00)
&
&ister
C.auto
D.static √
解析:
5.以下程序运行后,输出结果是______。 int d=1; fun(int p) { int d=5; d+=p++; printf("%d",d); } main() { int a=3; fun(a); d+=a++; printf("%d/n",d); }
(分数:1.00)
A.84 √
B.99
C.95
D.44
解析:
6.以下说法不正确的为______。
(分数:1.00)
A.在不同函数中可以使用相同名字的变量
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效 √
解析:
7.有以下程序 int a=3; main() { int s=0; { int a=5;s+=a++;} s+=a++; printf("%d/n",s); } 程序运行后的输出结果是______。
(分数:1.00)
A.8 √
B.10
C.7
D.11
解析:
8.以下程序运行后,输出结果是______。 func (int a,int b) { static int m=0,i=2; 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); }
(分数:1.00)
A.8, 15
B.8, 16
C.8, 17 √
D.8, 8
解析:
9.以下叙述中不正确的是______。
字符串常量在内存中的存放位置由系统自动安排吗(分数:1.00)
A.函数中的自动变量可以赋初值,每调用一次,赋一次初值
B.在调用函数时,实参和对应形参在类型上只需赋值兼容
C.外部变量的隐含类别是自动存储类别 √
D.函数形参可以说明为register变量
解析:
10.以下程序的输出结果是______。 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)));}
(分数:1.00)
A.699
B.669
C.6 15 15 √
D.66 15
解析:
11.设有以下函数 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)); }
(分数:1.00)
A.7 8 9 √
B.7 9 11
C.7 10 13
D.7 7 7
解析:
二、{{B}}填空题{{/B}}(总题数:4,分数:8.00)
12.以下程序的输出结果是______。 void fun() { static int a=0; a+=2;printf("%d",a); } main() { int cc; for(cc=1;cc<4;cc++)fun(); printf("/n"); }
(分数:2.00)
填空项1:__________________ (正确答案:246)
解析:
13.以下程序的输出结果是______。 int a,b; void fun() { a=100;b=200; } main() { int a=5,b=7; fun(); printf("%d% d/n",a,b); }
(分数:2.00)
填空项1:__________________ (正确答案:57)
解析:
14.以下程序的输出的结果是______。 int x=3; main() { int i; for (i=1;i<x;i++) incre(); } incre() { staic int x=1; x*=x+1; printf("%d",x); }
(分数:2.00)
填空项1:__________________ (正确答案:26)
解析:
15.以下程序输出的最后一个值是______。 int ff(int n) { static int f=1; f=f*n; return f } main() { int i; for(i=1;i<=5;i++) printf("%d ",ff(i)); }
(分数:2.00)
填空项1:__________________ (正确答案:1 2 6 24 120)
解析:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论