已知:  int a=100;     void Func(ref int b)  { ……  }   则下列函数调用正确的是()A、 Func(ref(10*a))B、 Func(ref 10)C、 Func(ref(a) )D、 Func(ref a)

题目

已知:  int a=100;     void Func(ref int b)  { ……  }   则下列函数调用正确的是()

  • A、 Func(ref(10*a))
  • B、 Func(ref 10)
  • C、 Func(ref(a) )
  • D、 Func(ref a)

相似考题
参考答案和解析
正确答案:D
更多“已知:  int a=100;     void Func(ref int b)  { ……  }   则下列函数调用正确的是()A、 Func(ref(10*a))B、 Func(ref 10)C、 Func(ref(a) )D、 Func(ref a)”相关问题
  • 第1题:

    下面程序的运行结果是 include Void main( ) { int num=1; int &ref=num;ref=

    下面程序的运行结果是

    #include<iostream.h>

    Void main( )

    {

    int num=1;

    int &ref=num;

    ref=ref+2;

    cout < < num;

    num=num+3;

    cout < < ref < <endl;

    }

    A.13

    B.16

    C.36

    D.33


    正确答案:C
    解析:本题考查的是考生对引用的掌握,ref实际上就是变量num的别名,所以ref=ref+2时,num已经变成了3。

  • 第2题:

    类clasg one在声明func成员函数时发生错误,出错原因是______。

    class one

    private:

    int a;

    public:

    void func(two&);

    };

    class two

    {

    private:

    int b;

    friend vold one::func(two&);

    };

    void one::func(two&r)

    {

    a=r.b;

    }


    正确答案:class one前没有声明语句class two;
    class one前没有声明语句class two; 解析:当一个类作为另一个类的成员函数、成员函数的参数或其他情况的时候,要确保编译器能正确解析。由于在rclass orle之前没有关于class two的任何说明,而在class one的func函数中却用了class two类的参数。因此是错误的。

  • 第3题:

    下列程序执行后的输出结果是______。

    A.hello

    B.hel

    C.hlo

    D.hlm void func1 (int i); void func2 (int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){ i+=2;func2(i); } } void func2 (int i) { printf("%c",st[i]); if(i<3){ i+=2;func1(i); } } main() { int i=0;func1(i);printf("\n");}


    正确答案:C

  • 第4题:

    下列程序的输出结果是includeint b=2;int func(int *a) {b+=*a;return(b) ;}void m

    下列程序的输出结果是 #include<iostream.h> int b=2; int func(int *a) {b+=*a;return(b) ;} void main( ) { int a=2,res=2; res+=func(&a) ; cout<<res;}

    A.4

    B.6

    C.8

    D.10


    正确答案:B
    解析:在函数体语句中的b+=*a;的 *是指针运算符(也称间接访问运算符),*a就是main函数中a的值。

  • 第5题:

    下列程序执行后的输出结果是()。includevoid func1(int i);void func2(int i);char st[

    下列程序执行后的输出结果是( )。 #include<stdio.h> void func1(int i); void func2(int i); char st[]="hello,friend!"; void funcl(int i) { printf("%c",st[i]); if(i<3){i+=2;func 2(i);} } void func 2(int i) { printf("%c",st[i]); if(i<3){i+=2;funcl(i);} } main() { int i=0; funcl(i);printf("\n"); }

    A.hello

    B.hel

    C.hlo

    D.hlm


    正确答案:C
    解析:本题首先调用函数funcl(0),输出st[0]=h,i值变为2,再调用函数func2(2),输出st[2]=1,此时i3,执行i+=2,i值变为4,然后再调用函数funcl(4),输出st[4]=o,此时i值大于3,函数调用结束。因此,输出结果为hlo。

  • 第6题:

    有如下函数模板定义:template T func(T x, T y){return x*x*y*y;)在下列对func的调用中

    有如下函数模板定义: template <class T> T func(T x, T y){return x*x*y*y;) 在下列对func的调用中,错误的是

    A.func(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。引用模板函数和引用一般的函数在语法形式上没有任何区别。所有的类型替换都是编译器在幕后悄悄进行的,但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。例如,本题中的C)选项,编译系统从第一个参数“3”获得的信息是“T对应于int”,而从第二个参数“5.5”处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D)选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数“5.5”将被自动换成int型。

  • 第7题:

    下面代码有何错误

    void func1()

    {

    int *pa = NULL;

    func2(pa);

    delete pa;

    }

    void func2(int *pb)

    {

    pb = new int(5);

    }


    正确答案:

     

  • 第8题:

    int func1(int& b)

    {

    return 0;

    }

    void func2()

    {

    int bbb = 3;

    func1(&bbb);

    func1(bbb);

    }

    func2中有何错误,func1的参数b 的类型是什么。


    正确答案:
     

  • 第9题:

    有如下函数模板的定义:templateT func(T x,T y){return x*x+y*y;}在下列对func()的调用

    有如下函数模板的定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func()的调用中,不正确的是( )。

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:对于选项C,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于选项D中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成血型。

  • 第10题:

    下列表示纯虚函数的成员函数是

    A.virtual int func(int);

    B.void func(int)=0;

    C.virtual void func=0;

    D.virtual void func(int){}


    正确答案:C
    解析:由于在前序遍历中首先访问根结点,因此,前序序列中的第一个结点为二叉树的根结点,即D为二叉树的根结点。又由于在中序遍历中访问根结点的次序为居中,而访问左于树上的结点为居先,访问右子树上的结点为最后,因此,在中序序列中,以根结点(D)为分界线,前面的子序列(ABC)一定在左子树中,后面的子序列(EFG)一定在右于树中。同样的道理,对于已经划分出的每一个子序列的所有结点中,位于前序序列最前面的一个结点为子树的根结点,而在中序序列中位于该根结点前面的结点构成左子树上的结点子序列,位于该根结点后面的结点构成右子树上的结点子序列。这个处理过程直到所有子序列为空为止。
    根据上述道理,该二叉树恢复的过程如下图所示;
     [*]
      根据后序遍历的方法,对该二叉树后序遍历的结果为ACBEGFD。

  • 第11题:

    有如下函数模板的定义:templateT func(T x,T y){return x*x+y*y;}在下列对func的调用中

    有如下函数模板的定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func的调用中不正确的是

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。对于C)选项,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D)选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成int型。

  • 第12题:

    单选题
    已知:  int a=100;     void Func(ref int b)  { ……  }   则下列函数调用正确的是()
    A

     Func(ref(10*a))

    B

     Func(ref 10)

    C

     Func(ref(a) )

    D

     Func(ref a)


    正确答案: C
    解析: 暂无解析

  • 第13题:

    关于函数声明,下面语法错误的是()

    A. func f(a, b int) (value int, err error)

    B. func f(a int, b int) (value int, err error)

    C. func f(a, b int) (value int, error)

    D. func f(a int, b int) (int, int, error)


    参考答案:C

  • 第14题:

    在C程序中有如下语句:char *func(intx,int y); 它是( )。

    A.对函数func的定义。

    B.对函数func的调用。

    C.对函数func的原型说明。

    D.不合法的


    正确答案:C

  • 第15题:

    有如下函数模板定义: template T func(Tx,Ty){return x*x+y*y;} 在下列对func

    有如下函数模板定义: template<class t> T func(Tx,Ty){return x*x+y*y;} 在下列对func的调用中,错误的是

    A.func(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5)


    正确答案:C
    解析:模板类型参数歧义。

  • 第16题:

    下列表示纯虚函数的成员函数是

    A.virtual int func (int);

    B.void func(int)=0;

    C.virtual void func=0;

    D.virtual void flmc(int){}


    正确答案:C
    解析:本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除A和D。而B中没有出现virtual关键词,故正确答案为C。

  • 第17题:

    下面程序执行后的结果是()。includeusing namespace std;void func1(int i);void func

    下面程序执行后的结果是( )。 #include<iostream> using namespace std; void func1(int i); void func2(int i); char st[]="hello, friend!"; void func1(int i) { cout<<st[i]; if(i<3){i+=2;func2(i);} } void func2(int i) { cout<<st[i]; if(i<3){i+=2;func1(i);} } void main() { int i=0;func1(i);cout<<endl;}

    A.ello

    B.hel

    C.hlo

    D.him


    正确答案:C
    解析:主函数中调用func1()函数,实参赋值为0,在该函数中先输出st[0],即“h,,;然后func1()函数又调用func2()函数,实参赋值为2,func2()函数运行时先输出st[2],即“1”;然后又调用func1()函数,实参赋值为4,func1()函数运行时先输出st[4],即“o”。

  • 第18题:

    下列程序执行后的输出结果是( )。 void func1 (int i); void func2(int i); char st[]="hello,friend!"; void func1 (int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);}

    A.hello

    B.hel

    C.hol

    D.hlm


    正确答案:C

  • 第19题:

    下面代码有何错误

    void func2(int *value)

    {

    *value = 2;

    }

    void func1()

    {

    int *p = 0;

    func2(p);

    }


    正确答案:
     

  • 第20题:

    有下列程序void func1(int i);void func2(int i);char st[ ]="hello,friend! ";void func1(int i){ printf("%c",st[i]); if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]); if(i<3){i+=2;func1(i);}}main(){ int i=0;func1(i); printf("\n");}执行后的输出结果是A.hello B.helC.hlo D.hlm


    正确答案:C
    根据变量作用域与其定义语句在程序中出现位置之间的关系,可把变量分为局部变量和全局变量两种。其中,在函数外部定义的变量叫做全局变量,又称为外部变量;在函数体内定义的变量是局部变量,又称为内部变量。全局变量的作用域是整个程序,而局部变量的作用域是定义它的函数或者程序段。
    在本题中,程序首先声明两个无返回值函数func1和func2,然后定义一个全局数组st。做这类除主函数外,有其他函数的试题时,首先需要分析其他函数来得知函数的作用,然后再看主函数。
    func1函数带有一个整型变量的形参,在函数体中,首先输出以形参作为下标的数组元素值,然后执行if条件判断语句,其条件为形参变量i<3。如果结果为真,则将变量i加2后保存,然后调用func2函数;如果条件结果为假,则结束该函数。
    从程序中不难看出,func2函数与func1函数基本类似,只是最后它对函数func1进行调用,与前者不同,两个函数是互相调用的。
    在主函数中定义一个变量i并赋值为0,然后调用函数func1,根据我们对函数func1的分析可知,输出st[0]即字符‘h’,而此时if语句的结果为真,执行i加2并调用func2函数操作。此时变量i的值为2,因此,输出st[2]即字符‘l’,此时函数func2中的if条件语句结果为真,同样执行i加2,并调用func1函数操作,然后通过func1函数输出st[4]即字符‘o’,此时由于变量i的值等于4,是大于3的,函数结束。程序运行到出口,最后输出换行。因此,本程序最终的输出结果是hlo。

  • 第21题:

    类class one 在声明func 成员函数时发生错误,出错原因是【 】。

    Class one

    {

    private:

    int a;

    public:

    void func(two& )

    };

    class two

    {

    private:

    int b;

    friend void one: :func(two & );

    };

    void one: : func(two& r)

    a=r.b;

    }


    正确答案:class one前没有声明语句class two;
    class one前没有声明语句class two; 解析:当一个类作为另一个类的成员函数、成员函数的参数或其他情况的时候,要确保编译器能正确解析。由于在class one之前没有关于class two的任何说明,而在class one的func函数中却用了class two类的参数。因此是错误的。

  • 第22题:

    下面程序的运行结果是includevoid main(){int num=1;int &ref=num;ref=ref+2;c

    下面程序的运行结果是 #include<iostream.h> void main() { int num=1; int &ref=num; ref=ref+2; cout<<num; num=num+3; cout<<ref<<end1; }

    A.13

    B.16

    C.36

    D.33


    正确答案:C
    解析:本题考查的是考生引用的掌握,ref实际上就是变量num的别名,所以ref=ref+2时,num已经变成了3。

  • 第23题:

    对于类定义: class A{ public: virtual void func1(){} Void func2 (){} }; class B:public A{ public: void func1(){cout<<"class B func 1"<<end1;} virtual void func2(){cout<<"class B func 2"<<end1;} };下面叙述正确的是( )。

    A.A::func2()和B::func1()都是虚函数
    B.A::func2()和B::func1()都不是虚函数
    C.B::func1()是虚函数,而A::func2()不是虚函数
    D.B::func1()不是虚函数,而A::func2()是虚函数

    答案:C
    解析:
    继承是面向对象程序设计最重要的特征,指的是一个新类从已有的类那里获得其已有的特征,并可以添加新的特征。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。题中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A的特征,因此,类B中的func1()是一个虚函数。在类B中又把func2()声明成虚函数,给func2()增加了新的特征,所以,类B中的两个函数都是虚函数,而在类A中只有func1()是虚函数。