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

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

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

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

选择题

1.关于子函数返回值的程序段中错误的是( )。

A

解析:C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)或先说明,再调用最后定义。在选项A中,调用的子函数在调用后面定义,所以不正确。在选项B、C中,被调用函数在主函数之前定义,再在主函数中调用,所以是正确的;在选项D中,在主函数中先对子函数float fun(int i,int j)进行了声明。然后进行调用。

2.关于子函数return语句的叙述中正确的是( )。(B)

A. 一个自定义函数中必须至少有一条return语句

B. 一个自定义函数中可以根据不同情况设置多条return语句

C. 定义成void类型的函数中可以有带返回值的return语句

D. 没有return语句的自定义函数执行结束时不能返回到调用处

解析:return语句主要用于返回函数的返回值。在一个自定义函数中,可以根据不同的情况设置多条return语句返回函数的值返回后面的语句不执行。

3.关于return语句的叙述中错误的是( )。(C)

A. 用户定义的函数中可以没有return语句

B. 用户定义的函数中若没有return语句,则应当定义函数为void类型

C. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

D. 函数的return语句中可以没有表达式

解析:C语言return语句返回,return语句的形式如下:return表达式;当程序执行到return语句时,程序的流程就返回到调用该函数的地方,并带回函数值。在同一函数内,可以根据需要,在多处出现return语句,在函数体的不同部位退出函数。无论函数体中有多少个return语句,return语句只可能执行一次,返回一个函数值。return语句中也可以不含有表达式,这时必须定义函数为。void类型,它的作用只是使流程返回到调用函数。并没有确定的函数值。函数体内可以没有return语句,这时也必须定义函数为void类型,程序的流程就一直执行到函数末尾的“}”,然后返回调用函数,也没有确定的函数值带回。

4.若函数f调用了函数g,函数g又调用了函数f,则以下说法中正确的是( )。(B)

A. 称为函数的调用

B. 称为函数的间接递归调用

C. 称为函数的循环调用

D. C语言中不允许这样的递归调用

解析:本题考查递归的概念,C语言中函数可以直接或间接调用自身,称为递归调用。本题中f调用g,然后g又调用f,即f间接调用了自身是递归调用。

5.若int fun(double x[10],int *n),则下面针对此函数的函数声明语句中正确的是( )。(C)

A. int fun(float,int);

B. int fun(float *x,int n);

C. int fun(double *,int *);

D. int fun(double x,int *n):

解析:C语言函数说明的一般形式为:类型名>函数名(参数类型1,参数类型2……)。因为函数int fun(double x[10],int*n)的第1个形式参数是一个双精度型的一维数组。第2个参数是一个整型指针,并返回一个整型值。一维数组的名字表示的是一维数组的地址。

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

int f(int x);

main(){int n=1,m;

m=f(f(f(n)));

printf(’’%d\n’’,m);}

int f(int x)

{return x*2;}(D)

A. 0

B. 1

C. 2

D. 8

解析:程序考查了函数的多层调用。对于m=f(f(f(n)));首先计算最内层的函数调用,执行f函数。得到返回值2,然后计算f(2),得到返回值为4,最后计算f(4),得到计算结果为8。

7.以下程序的输出结果是( )。

#include

inff(inx,inty)

{

return((y一x)*x);}

main()

{int a=0,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf(’’%d\n’’,d);}(C)

A. 7

B. 8

C. 9

D. 10

解析:本题考查函数的嵌套调用。首先计算f(a,b)与f(a,c),f(a,b)=(b—a)*a=3,f(a,c)=(c—a)*a=6,再计算f(3,6)=(6—3)*3=9。

8.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。(B)

A. 形参只是形式上的存在,不占用具体存储单元

B. 函数的形参和实参分别占用不同的存储单元

C. 同名的实参和形参占同一存储单元

D. 函数的实参和其对应的形参共占同一存储单元

解析:在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。在调用函数时,如果是值传递给形参分配临时存储单元,并将实参对应的值传递给形参,在被调用函数中对形参存储单元中的值进行运算,最后通过retum语句把函数值返回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。

9.以下程序的输出结果是( )。

#include

int f(int x)main()

{int y; {int z;

if(x==0‖x==1)return(3); z=f(3);printf(’’%d\n’’,z);

y=x*x一f(x一2); }

return y;}(C)

A. 4

B. 5

C. 6

D. 0

解析:主函数调用f()函数,将实参3传递给x,进行if条件语句的判断不成立,接着执行y=3*3一f(1),再执行f(1),而f(1)满足if条件语句,所以f(1)的值为3,代入y=3*3-f(1)=9—3=6。

10.执行程序时,给变量x输入10,则以下程序的输出结果是( )。

int fun(int n) main()

{ if(n==1)return 1; { int x;

else scanf(’’%dt’’,&x);x=fun(x);

return(n+fun(n—1)); prinff(’’%d\n’’,x);

} }(D)

A. 45

B. 50

C. 60

D. 55

解析:本题在函数int fun(int n)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量x时,递归调用的过程为fun(10)=10+fun(9)=10+9+fun(8)=10+9+8+fun(7)=…=10+9++8+7+6+5+4+3+2+1=55。

11.以下程序的输出结果是( )。

int f(int a[],int n) main()

{if(n>1) {int a[]:{8,2,9,1,3,6,4,7,5};

{int t;t=f(a,n-1); prin

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号