- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章变量的存储类别 - Read
第七章 变量的存储类别
一、选择题
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++;
}
else
{
static int a=5; t += a++;
}
return t+a++;
}
void main()
{
int s=a, i;
for( i=0; i3; i++) s+=f(i);
printf(%d\n, s);
}
程序运行后的输出结果是______。
A)26 B)28 C)29 D)24
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 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
答案:C
8. 以下程序的正确运行结果是_____________。
#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,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 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
答案:C
11.有以下程序
#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
答案:C
12.以下只有在使用时才为该类型变量分配内存的存储类说明是 。
(A)auto和static (B)auto和r
文档评论(0)