章 函数
8.1 选择题
8.1】以下正确的说法是   
    建立函数的目的之一是    A)提高程序的执行效率
                            B)提高程序的可读性
                            C)减少程序的篇幅
                            D)减少程序文件所占内存
8.2】以下正确的说法是   
A) 用户若需调用标准库函数,调用前必须重新定义
B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C) 系统根本不允许用户重新定义标准库函数
D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
8.3】以下正确的函数定义形式是   
A) double fun(int x,int y)
B) double fun(int x;int y)
C) double fun(int x,int y);
D) double fun(int x,y);
8.4】以下正确的函数形式是   
A) double fun(int x,int y)
{ z=x+y; return z; }
B) fun(int x,y)
{ int z; return z; }
C) fun(x,y)
{ int x,y; double z; z=x+y; return z; }
D) double fun(int x,int y)
{ double z; z=x+y; return z; }
8.5】以下正确的说法是   
    C语言中        A)实参和与其对应的形参各占用独立的存储单元
                    B)实参和与其对应的形参共占用一个存储单元
                    C)只有当实参和与其对应的形参同名时才共占用存储单元
                    D)形参是虚拟的,不占用存储单元
8.6】若调用一个函数,且此函数中没有return语句,则正确的说法是   
    该函数        A)没有返回值
                B)返回若干个系统默认值
                C)能返回一个用户所希望的函数值
                D)返回一个不确定的值
8.7】以下不正确的说法是   
    C语言规定        A)实参可以是常量、变量或表达式
                    B)形参可以是常量、变量或表达式
                    C)实参可以为任意类型
                    D)形参应与其对应的实参类型一致
8.8】以下正确的说法是   
A) 定义函数时,形参的类型说明可以放在函数体内
B) return后边的值不能为表达式
C) 如果函数值的类型与返回值类型不一致,以函数值类型为准
D) 如果形参与实参的类型不一致,以实参类型为准
8.9C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是   
A) 地址传递
B) 单向值传递
C) 由实参传给形参,再由形参传回给实参
D) 由用户指定传递方式
8.10】以下程序有语法性错误,有关错误原因的正确说法是   
    main()
    {
            int G=5,k;
            void prt_char();
           
            k=prt_char(G);
           
    }
A) 语句void prt_char();有错,它是函数调用语句,不能用void说明
B) 变量名不能使用大写字母
C) 函数说明和函数调用语句之间有矛盾
D) 函数名不能使用下划线
8.11C语言允许函数值类型缺省定义,此时该函数值隐含的类型是   
A) float
B) int
C) long
D) double
8.12C语言规定,函数返回值的类型是由   
A) return语句中的表达式类型所决定
B) 调用该函数时的主调函数类型所决定
C) 调用该函数时系统临时决定
D) 在定义该函数时所指定的函数类型所决定
8.13】下面函数调用语句含有实参的个数为   
    func((exp1,exp2),(exp3,exp4,exp5));
            A1        B2        C4        D5
8.14】以下错误的描述是   
    函数调用可以        A)出现在执行语句中
                        B)出现在一表达式中
                        C)做为一个函数的实参
                        D)做为一个函数的形参
8.15】以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
    #include <stdio.h>
    #include <math.h>
    main()
    {
            float x,y,z,sum;
            scanf(%f %f %f,&x,&y,&z);
            sum=f(1)+f(2);
            printf(sum=%f\n,sum);
    }
    float f(float a,float b)
    {
            float value;
            value=a/b;
            return(value);
    }
    1 Ax-y,x+y        Bx+y,x-y        Cz+y,z-y        Dz-y,z+y
    2 Ax-y,x+y        Bx+y,x-y        Cz+y,z-y        Dz-y,z+y
8.16】以下正确的描述是   
    C语言程序中    A)函数的定义可以嵌套,但函数的调用不可以嵌套
                        B)函数的定义不可以嵌套,但函数的调用可以嵌套
                        C)函数的定义和函数的调用均不可以嵌套
                        D)函数的定义和函数的调用均可以嵌套
8.17】以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空。
    sub(int k,int n)
    {
            int a1,a2;
            a2=1;
            a1=k-2;
            if((k%3==0&&a2==5)||(k%3==0&&a1==5))
            {
                printf(%d,k);
                n++;
                return n;
            }
            else return -1;
    }
    float型main()
    {
            int n=0,k,m;
            for(k=10;k<=99;k++)
            {
                m=sub(k,n);
                if(m!=-1) n=m;
            }
            printf(\nn=%d,n);
    }
    1 Ak*10        Bk%10        Ck/10        Dk*10%10
    2 Aa2*10    Ba2        Ca2/10    Da2%10
8.18】以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);则符合程序段运行结果的选项是   
    void move(char getone,char putone)
    {
            printf(%c-->%c\n,getone,putone);
    }
    void hanoi(int n,char one,char two,char three)
    {
            if(n==1) move(one,three);

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