第四章 函数
一、选择题
1.以下正确的函数原形说明语句是
Avoid fun (int x);                Bfloat fun (void y);   
Cdouble fun (x);                    Dint (char ch);
2.若函数的定义为:
fun (char ch)
{
}
那么该函数的返回值是
Avoid         Bchar         Cfloat         Dint
3.以下说法中正确的是
AC语言程序总是从第一个的函数开始执行
B.在C语言程序中, 要调用的函数必须在main()函数中定义
CC语言程序总是从main()函数开始执行
DC语言程序中的float型main()函数必须放在程序的开始部分
4.以下函数中,函数返回的正确写法是
Achar fun()                        Bint fun()
{                                {
…                                    …
return”abcde”                        return;
}                                }
Cvoid fun()                        Dvoid fun()
{                                {
…                                    …
return;                                return(5);
}                                }
5.如果一个函数没有返回值,那么该函数的类型是
Aint            Bfloat            Cchar            Dvoid
6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A.地址传递                               
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
7.一个函数的形式参数的作用域是
Amain()主函数                B.这个函数体
C.从定义处到文件尾            D.整个程序
8.在一个函数里不能说明
    A.全局变量                    B.静态变量
    C.局部变量                    D.静态局部变量
9.在函数main()外有变量定义语句static int i;,则变量i的作用域为
Amain()主函数                Bmain()函数所在文件
C.从定义处到文件尾            D.整个程序
10C语言中auto型变量是
A.存储在动态存储区中        B.存储在静态存储区中
C.存储在外存储器中            D.存储在计算机CPU的寄存器中
11.以下所列的各函数首部中,正确的是
Avoid play(var :integer,var b:integer)
Bvoid play(int a,b)
Cvoid play(int a,int b)
DSub play(a as integer,b as integer)
12.在C语言中,函数的隐含存储类别是
Aauto                        Bstatic       
Cextern                     D.无存储类别
13.在C语言中,形参必须是
    A. 常量        B. 变量        C. 数值            D. 表达式
*14.有以下函数
char fun(char *p)
{ return  p; }
该函数的返回值是
A.无确切的值                    B.形参p中存放的地址值
C.一个临时存储单元的地址        D.形参p自身的地址值
15.下列关于函数的说法中错误的是
A.任何函数(包括主函数main())都是由函数说明和函数体两部分组成。
B.根据函数是否需要参数,可将函数分为无参函数和有参函数两种。
C.调用有参函数时,调用函数将赋予这些参数实际的值。
D.将函数定义中的参数表称为实际参数表。
16.有参函数的返回值,是通过函数中的______语句来获得的。
    Areturn
    Bprintf
    Cscanf
    D.函数说明
17.以下关于形参和实参的说明中,错误的是
    A.实参和形参占用不同的内存单元,即使同名也互不影响。
B.实参在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。
C.实参对形参的数据传送是双向的。可以把实参的值传送给形参,也可以把形参的值反向地传送给实参。
D.形参变量只有在被调用时,才分配内存单元。
18.以下关于函数的递归调用说法中错误的是
A.在递归调用中,调用函数又是被调用函数,执行递归函数将反复调用其自身。
B.为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。
    C.每调用一次就进入新的一层。
    D.在递归调用中每一次调用该函数时,所使用的实参都相同。
19.以下关于变量的作用域的说法中,错误的是
int f1(int a)
    {  int  b, c
        ……
    }
main()
    {  int  m, n
}
A. b,c的作用域在f1的范围内
a的作用域为f1main函数
m,n作用域为main()函数
B. a,b,c作用域仅限于函数f1()
20C语言的函数
    A. 可以嵌套调用,不能递归调用            B. 可以嵌套定义
    C. 既可以嵌套调用,也可以递归调用        D. 不可以嵌套调用
二、阅读程序,写出运行后的输出结果
1main()
{    int k=4, m=1, n;
n=fun(k,m);
printf(“%d,”,n);
n=fun(k,m);
printf(“%d\n”,n);
    }
    int fun (int x,int y)
    (    static int m=0,j=2;
        j+=m+1;
        m=j+x+y;
        return(m);
    }
A8, 17             B8, 16             C8, 20             D8, 8
2    void incr()
    {    static int s=0;
        ++s;
        printf(“%d\n”,s);
    }
main()
{    incr();
incr();
incr();
}
A1            B    1            C    0            D    0
1                2                1                0
1                3                2                0
3int m=14,n=26;
    max(int x,int y)
{    int max;
max=x>y?x:y;
return(max);}
main()
{    int m=32;
printf("%d",max(m,n));
}
    A14            B26            C32            D.随机数
4        int  a,b
void fun()
{  a=100b=200}
main()
{  int a=5,b=7
fun()
printf("ddn"ab)
}
A10020            B57            C200100        D75
5fun(int p)
{      int k=1;
static t=2;
k=k+1;t=t+1;
return(p*k*t);
}
main()
{  int x=4;
fun(x);
printf("%d",fun(x));
}
    A24            B32            C16            D40

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。