用户标识符的作用域和存储类.docx

上传人:b****5 文档编号:5790044 上传时间:2023-01-01 格式:DOCX 页数:10 大小:17.20KB
下载 相关 举报
用户标识符的作用域和存储类.docx_第1页
第1页 / 共10页
用户标识符的作用域和存储类.docx_第2页
第2页 / 共10页
用户标识符的作用域和存储类.docx_第3页
第3页 / 共10页
用户标识符的作用域和存储类.docx_第4页
第4页 / 共10页
用户标识符的作用域和存储类.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

用户标识符的作用域和存储类.docx

《用户标识符的作用域和存储类.docx》由会员分享,可在线阅读,更多相关《用户标识符的作用域和存储类.docx(10页珍藏版)》请在冰豆网上搜索。

用户标识符的作用域和存储类.docx

用户标识符的作用域和存储类

第十三部分:

用户标识符的作用域和存储类

一、选择题:

(1)有以下程序

inta=2;

intf(intn)

{staticinta=3;

intt=0;

if(n%2){staticinta=4;t+=a++;}

else{staticinta=5;t+=a++;}

returnt+a++;

}

main()

{ints=a,i;

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

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

}

程序运行后的输出结果是

 A)26

 B)28

 C)29

 D)24

(2)以下叙述中正确的是

 A)局部变量说明为static存储数,其生存期将得到延长

 B)全局变量说明为static存储类,其作用域将被扩大

 C)任何存储类的变量在未赋初值时,其值都是不确定的

 D)形参可以使用的存储类说明符与局部变量完全相同

(3)有以下程序

inta=2;

intf(int*A)

{return(*A)++;}

main()

{ints=0;

{inta=5;

s+=f(&A);

}

s+=f(&A);

printf(“%d\n”,s);

}

执行后输出结果是

 A)10

 B)9

 C)7

 D)8

(4)以下叙述中正确的是

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

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

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

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

(5)有以下程序

inta=3;

main()

{ints=0;

{inta=5;s+=a++;}

s+=a++;printf(“%d\n”,s);

}

程序运行后的输出结果是

 A)8

 B)10

 C)7

 D)11

(6)以下程序的输出结果是

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;

}

main()

{inti,a=0;

for(i=0;i<5;i++)a+=f();

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

}

 A)20

 B)24

 C)25

 D)15

(7)在C语言中,形参的缺省存储类是

 A)auto

 B)register

 C)static

 D)extern

(8)以下程序的输出的结果是

intx=3;

main()

{inti;

for(i=1;i

}

ncre()

{staicintx=1;

x*=x+1;

printf("%d",x);

}

 A)33

 B)22

 C)26

 D)25

(9)设有以下函数:

f(inta)

{intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是

main()

{inta=2,i;

for(i=0;i<3;i++)printf(“%d\n”,f(a));

}

 A)7B)7C)7D)7

89107

911137

(10)以下程序的输出结果是

inta,b;

voidfun()

{a=100;b=200;}

main()

{inta=5,b=7;

fun();

printf(“%d%d\n”,a,b);

}

 A)100200

 B)57

 C)200100

 D)75

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

 A)auto和static

 B)auto和register

 C)register和static

 D)extern和register

(12)在C语言中,函数的隐含存储类别是

 A)auto

 B)static

 C)extern

 D)无存储类别

(13)下列程序的输出结果是

A)4B)6C)8D)10

intb=2;

intfunc(int*a)

{b+=*a;return(b);}

main()

{inta=2,res=2;

res+=func(&a);

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

}

(14)以下程序的输出结果是

 A)699

 B)669

 C)61515

 D)6615

intd=1;

fun(intp)

{staticintd=5;

d+=p;

printf("%d",d);

return(d);

}

main()

{inta=3;printf("%d\n",fun(a+fun(d)));}

(15)以下程序运行后,输出结果是

 A)8,15

 B)8,16

 C)8,17

 D)8,8

func(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

(16)以下程序运行后,输出结果是

 A)84

 B)99

 C)95

 D)44

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf("%d,d);

}

main()

{inta=3;

fun(a);

d+=a++;

printf("%d\n,d);

}

(17)以下叙述中不正确的是

 A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

 B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

 C)在C中,外部变量的隐含类别是自动存储类别。

 D)在C中,函数形参可以说明为register变量。

(18)下面程序的输出是

intw=3;

main()

{intw=10;printf("%d\n",fun(5)*w);}

fun(intk)

{if(k==0)returnw;

return(fun(k-1)*k);}

 A)360

 B)3600

 C)1080

 D)1200

(19)下列程序执行后输出的结果是

#include

f(inta)

{intb=0;staticc=3:

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

for(i=0;i〈2;i=++〉k=f(a++);

printf("%d\n",k);}

(20)下列程序执行后输出的结果是

intd=1;

fun(intq)

{intd=5;

d+=p++;printf("%d".d);}

main()

{inta=3;

fun(a);

d+=a++;printf("%d\n",d);}

 A)84

 B)96

 C)94

 D)85

(21)下面程序的输出是

 A)3

 B)4

 C)6

 D)9

fun3(intx)

staticinta=3;

a+=x;

return(a);}

main()

{intk=2,m=1,n;

n=fun3(k);

n=fun3(m);

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

(22)下面程序的输出是

 A)1

 B)2

 C)7

 D)10

intm=13;

intfun2(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun2(a,b)/m);}

(23)请读程序:

#include

voidfun(int*s)

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

{intk,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)35743

 D)12345

(24)以下程序的输出结果是

#include

main()

{intk=4,m=1,p;

p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;m=i+a+b;return(m);}

 A)8,17

 B)8,16

 C)8,20

 D)8,8

二、填空题:

(1)以下程序运行后的输出结果是【1】

fun(inta)

{

intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{

inti,a=5;

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

printf("%d%d",i,fun(a));

printf("\n");

}

(2)以下程序运行后的输出结果是【2】

inta=5;

fun(intb)

{staticinta=10;

a+=b++;

printf("%d",a);

}

main()

{intc=20;

fun(c);

a+=c++;

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

}

(3)以下程序输出的最后一个值是【3】。

intff(intn)

{staticintf=l;

f=f*n;

returnf;

}

main()

{inti;

for(I=1;I<=5;I++printf(“%d\n”,ff(i));

}

(4)以下程序的输出结果是[4]。

voidfun()

{staticinta=0;

a+=2;printf(“%d”,a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun()

printf(“\n”);

}

(5)以下程序的运行结果是[5]

#include

main()

{intk=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

func(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

returnm;

}

(6)以下程序的输出结果是【6】。

#include

intfun(intx,inty)

{staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm

}

main()

{intj=4,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j,m);printf("%d\n",k);

}

(7)下面程序的输出是【7】。

#defineMAX5

inta[MAX],k;

main()

{fun1();fun3();fun2();fun3();

printf("\n");}

fun1()

{for(k=0;k

fun2()

{inta[MAX],k;

for(k=0;k<5;k++)a[k]=k;}

fun3()

{intk;

for(k=0;k

}

(8)阅读下列程序:

#include

#defineMAX_COUNT4

voidfun();

main()

{intcount;

for(count=1;count<=MAX_COUNT;count++)fun();

}

voidfun()

{staticinti;

i+=2;printf("%d",i);

}

上述程序的输出结果是【8】。

答案:

一、选择题:

01)C 02)A 03)C 04)B 05)A

06)D 07)A 08)C 09)A 10)B

11)B 12)C 13)B 14)C 15)C

16)A 17)C 18)B 19)D 20)A

21)C 22)B 23)C 24)A

二、填空题:

(1)010111212

(2)3025

(3)120

(4)246

(5)8,17

(6)8,17

(7)o246802468

(8)2468

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1