二级C语言教程章节测试12.docx
- 文档编号:13618211
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:11
- 大小:18.23KB
二级C语言教程章节测试12.docx
《二级C语言教程章节测试12.docx》由会员分享,可在线阅读,更多相关《二级C语言教程章节测试12.docx(11页珍藏版)》请在冰点文库上搜索。
二级C语言教程章节测试12
二级C语言教程章节测试12.用户标识符的作用域和存储类
一、选择题:
(1)有以下程序
int a=2;
intf(int n)
{staticint a=3;
int t=0;
if(n%2){staticint a=4; t+=a++; }
else {staticint a=5; t+=a++; }
return t+a++;
}
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
(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)以下程序的输出结果是______
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);
}
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() { staic int x=1; x*=x+1; printf(" %d",x); } A)3 3 B)2 2 C)2 6 D)2 5 (9)设有以下函数: f(int a) { int b=0; staticint c=3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______ main() { int a=2, i; for(i=0;i<3;i++) printf(“%d\n”,f(a)); } A)7 B) 7 C)7 D)7 8 9 10 7 9 11 13 7 (10)以下程序的输出结果是______ int a,b; voidfun() { a=100;b=200; } main() { int a=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)4 B)6 C)8 D)10 intb=2; intfunc(int*a) {b+=*a;return(b);} main() {inta=2,res=2; res+=func(&a); printf("%d\n",res); } (14)以下程序的输出结果是______ A)6 9 9 B)6 6 9 C)6 15 15 D)6 6 15 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))); } (15)以下程序运行后,输出结果是______ A)8,15 B)8,16 C)8,17 D)8,8 func(int a, int b) { staticint 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); } (16)以下程序运行后,输出结果是______ A)84 B)99 C)95 D)44 int d=1; fun(intp) { int d=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)8 4 B)9 6 C)9 4 D)8 5 (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(int a) { intb=0;static intc=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】 int a=5; fun(int b) { static int a=10; a+=b++; printf("%d",a); } main() { int c=20; fun(c); a+=c++; printf("%d\n",a); } (3)以下程序输出的最后一个值是【3】。 int ff(int n) { static int f=l; f=f*n; return f; } main() { int i; for(I=1;I<=5;I++ printf(“%d\n”,ff(i)); } (4)以下程序的输出结果是【4】 。 void fun() { static int a=0; a+=2; printf(“%d”,a); } main() { int cc; for(cc=1;cc<4;cc++)fun() printf(“\n”); } (5)以下程序的运行结果是 【5】 #include main() { int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); } func(int a,int b) { static intm=0,i=2; i+=m+1; m=i+a+b; returnm; } (6)以下程序的输出结果是【6】。 #include int fun(int x,int y) {static int m=0,i=2; i+=m+1; m=i+x+y; return m } main() {int j=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】 。 答案: 一、选择题: 1) C 2) A 3) C 4) B 5) A 6) D 7) A 8) C 9) 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 25) 26) 27) 28) 29) 30) 二、填空题: (1)0 10 1 11 2 12 (2)3025 (3)120 (4)246 (5)8,17 (6)8,17 (7)o246802468 (8)2468转贴于: 计算机等级考试_考试大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 教程 章节 测试 12