首页 > 全部 > 二级C语言 > 国家二级C语言机试(函数和数组)模拟试卷21

国家二级C语言机试(函数和数组)模拟试卷21

本单篇文档共11025字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 4209人下载
价格: 2.00 原价:¥8.80
收藏

国家二级C语言机试(函数和数组)模拟试卷21

选择题

1.有以下程序

void fun2(char a,char b) main()

{printf(\\(B)

A. A B E F

B. C D E F

C. A B C D

D. C D A B

解析:在fun1()函数之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处到整个程序结束。在fun1()函数之内定义了两个变量a和b,并且分别初始化为字符’C’和’D’。在C语言中,若全局变量和某个函数中的局部变量同名,则在该函数中此全局变量被屏蔽,在该函数内访问的是局部变量,与同名的全局变量不发生任何关系。所以在主函数中,执行fun1()后,变量a、b的值分别等于’C’、’D’,打印输出CD,接着执行fun2(’E’,’F’)语句,变量a、b的值变为’E’、’F’并输出。

2.有以下程序

#include main(){int k=4,m=1,p;

fun(int a,int b){int static m=0,i=2; p=fun(k,m);

i=i+m+1; printf(\\(A)

A. 8,17

B. 7,16

C. 8,8

D. 7,17

解析:本题考查了静态变量以及局部变量的同名问题。主函数中调用fun函数两次,第一次调用fun(4,1),形参a和b接收以后,i值为3,m的值为8,调用结束返回8存放到p中并且输出p的值为8,除了静态变量m和i,变量a,b撤销。第二次调用fun(4,1),接收实参值以后,i为3+8+1,而m为12+4+1,即输出函数值17。

3.有以下程序

#include

func(int n) void main()

{static int num=1; {func(3);func(4);printf(\\(C)

A. 4 5

B. 3 5

C. 4 8

D. 3 4

解析:在函数func(int n)中定义了局部静态变量num,其初始值等于l,所以在主函数中执行func(3),输出4,此时静态变量num的值等于4,当退出函数func(3)时,其值不会丢失,所以当在执行func(4)时,输出8。

4.有以下程序

fun(int x,int y) main()

{static int m=0,i=2; {int j=l,m=1,k;

i+=m+1;m=i+x+y;return m; k=fun(j,m);printf(\\(B)

A. 5,5

B. 5,11

C. 11,11

D. 11,5

解析:子函数fun(int x,int y),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

5.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(D)

A. extern和register

B. auto和static

C. static和register

D. auto和register

解析:在C语言中,动态变量(auto)存储在内存中的动态存储区,在程序运行中,只有当调用变量所在的函数时,系统才临时给变量分配内存单元;全局变量(extern)一经定义,系统为其分配固定的内存单元;静态变量(static),编译系统为其分配固定的存储空间;寄存器变量(register)不保存在内存上,而是直接存储在CPU的寄存器中。

6.有以下程序

#include main(){int i,s=1:

int fun(){static int x=1; for(i=1;i<=3;i++)

x*=2; s*=fun();

return x;} printf(\\(D)

A. 0

B. 10

C. 30

D. 64

解析:本题考查了静态局部变量,该局部变量的值在函数调用结束后如果不消失而保留原值。函数fun的功能返回2的乘方,主函数fun函数调用3次,因此第一次s累乘2,第二次累乘4,第三次累乘8,即为2*4*8,值为64。

7.有以下程序

#include

int f(int n);

main(){int a=3,s; int f(int n){static int a=1;

s=f(a); n+=a++;

s=s+16(a); return n;

printf(\\(A)

A. 9

B. 8

C. 7

D. 10

解析:在主函数中第一次调用f(a)时,得到变量s的值等于4,在第二次调用f(a)时,在子函数f中由于变量a是一个局部静态变量,所以这次其值等于2,因而在主函数中第二次调用f(a)后,其返回值等于5,最后变量s的值等于9。

8.有以下程序

#include

int fun(){static int x=1; main(){int i,s=1;

x+=1; for(i=1;i<=5;i++)s+=fun();

return x;) printf(\\(B)

A. 11

B. 21

C. 6

D. 120

解析:这道试题主要考查了局部静态变量的应用。在函数fun()中定义了局部静态变量整型x,其初值等于1,在主函数中循环执行5次,第一次变量s的值等于3,变量x的值等于2,第二次变量s的值等于6,变量x的值等于3,第三次变量s的值等于10,变量x的值等于4,第四次变量s的值等于15,变量x的值等于5,第五次变量s的值等于21,变量x的值等于6。

9.有以下程序

int fun(int x[],int n) main()

{static int sum=0,i;{int a[]={1,2,3,4,5),b[]={6,7,8,9),s=0;

for(i=0;i<n;i++) sum+=x[i]; s=fun(a,5)+fun(b,4);printf(\\(C)

A. 50

B. 45

C. 60

D. 55

解析:在函数int fun(int x[],int n)的定义中,变量sum使用了static修饰符,这说明了变量sum为一个静态局部变量。由于在整个程序运行期问,静态局部变量在内存中的静态存储区中占据着永久的存储单元。即使退出函数之后,下次再进入该函数时,静态局部变量继续使用原来存储单元中原来的值。函数int fun(int x[],int n)的功能是求出数组x[]各个元素的和。所以在主函数中,调用函数Fun(a,5)后,变量sum=1+2+3+4+5=15.当再次调用F

本文档预览:3600字符,共11025字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(函数和数组)模拟试卷21

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号