niusouti.com

类模板template<classT>classX{…},其中友元函数f对特定类型T(如int),使函数f(x<int>)成为x<int>模板类的友元,则其说明为( )。A.friendvoidf();B.friendvoidf(x<T>);C.friendvoidA::f();D.friendvoidC<T>::f(x<T>);

题目

类模板template<classT>classX{…},其中友元函数f对特定类型T(如int),使函数f(x<int>)成为x<int>模板类的友元,则其说明为( )。

A.friendvoidf();

B.friendvoidf(x<T>);

C.friendvoidA::f();

D.friendvoidC<T>::f(x<T>);


相似考题
更多“类模板templateclassTclassX{…},其中友元函数f对特定类型T(如int),使函数f(xint)成为xint模板类的友元,则其说明为( )。A.friendvoidf();B.friendvoidf(xT);C.friendvoidA::f();D.friendvoidCT::f(xT);”相关问题
  • 第1题:

    已知f1(int)是类A的公有成员函数,并将指针p定义为可以指向函数f1的指针类型,则可以实现让p是指向成员函数f1()的指针的语句为【 】。


    正确答案:p=A::f1;
    p=A::f1;

  • 第2题:

    下列函数模板定义中错误的是A.templateB.template Q F(Q x){return Q+x;} Q F

    下列函数模板定义中错误的是

    A.template<class Q>

    B.template<class Q> Q F(Q x){return Q+x;} Q F(Q x){return x+x;}

    C.template<class T>

    D.template<class T> T F(T x){return x * x;} bool F(T x){return x>1;}


    正确答案:A
    解析:在函数模板定义中,类型参数不能参与运算。

  • 第3题:

    若有以下程序:includevoid f(int n);main(){void f(int n); f(5);}void f(int n){prin

    若有以下程序: #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n);}则以下叙述中不正确的是( )。

    A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

    C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明

    D.函数f无返回值,所以可用void将其类型定义为无返回值型


    正确答案:C
    解析:f函数没有重复说明,在main函数中是对f函数声明,在main函数外则是对f函数的定义。

  • 第4题:

    若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n); f(5);}void f(int n){ printf("%d\n",n);}则以下叙述中不正确的是A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:对f函数重复说明D.函数f无返回值,所以,可用void将其类型定义为无返回值型


    正确答案:C
    C语言规定,一个函数中调用另一个函数(即被调用函数)需要具备的条件有:
    ① 被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。
    ② 如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要的信息“包含”到本文件中。
    ③ 如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
    在本题中,选项C是不正确的,从程序中我们可以看出,首先在主函数前面声明了函数f,按照函数调用的规则,主函数可以调用该函数了,但在主函数中又重复声明了该函数,其声明的形式完全一样,虽然重复了操作,但编译时系统不会报错,仍属于合理操作。

  • 第5题:

    设有定义语句int(*f(int);,则下列叙述正确的是( )。

    A.f是基类型为int的指针变量

    B.f是指向函数的指针变量,该函数具有一个int类型的形态

    C.f是指向int类型一维数组的指针变量

    D.f是函数名,该函数的返回值是其类型为int类型的地址


    正确答案:B
    解析:定义语句int(*f(int)中f是指向函数的指针变量,该函数中也只有一个int型的形参。

  • 第6题:

    若有以下程序includevoid f(int n);main(){ void f(int n);f(5);}void f(int n){print

    若有以下程序 #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) {printf(“%d\n”,n);} 则以下叙述中不正确的是

    A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他的其他函数中都可以正确调用函数f

    C.对于以上程序,编译时系统会提示出错信息;提示对f函数重复说明

    D.函数f无返回值,所以可用void将其类型定义为无值型


    正确答案:C
    解析:若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次。

  • 第7题:

    若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n); f(5);}void f(int n){ printf("%d\n",n); }则以下叙述中不正确的是A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:对f函数重复说明D.函数f无返回值,所以,可用void将其类型定义为无返回值型


    正确答案:C
    本题主要考查函数说明的位置及调用。
    函数的说明有时可以缺省,在缺省时,必须先被定义后被调用。函数说明的位置可以是所有函数定义的外部,也可以是某一函数内部,对于后者,函数说明的作用域将被限制在该函数定义内部。函数说明是一条独立的语句,其中<形式参数>部分可以省略。当函数在调用时,如果实参的数据类型与函数说明中对应的形参数据类型不兼容,C语言将不能编译通过。不管函数被说明在哪里,我们需要注意的是:函数在被调用前必须先被说明或定义。
    在本题中,程序首先说明了一个无返回值的函数f,然后在主函数中又说明了这个函数f,接着调用这个函数,虽然函数被重复说明,但其符合先说明后调用的规定。程序执行时,编译系统不报错。
    根据上面的分析我们可以知道,本题四个选项中,描述不正确的是C,虽然函数被重复说明,但编译系统不报错。其他说法都正确。因此本题答案选C。

  • 第8题:

    有下列函数定义: fun(float h) { printf("%f,%f\n",h,h*h);) 该函数的类型是( )。A.int类型SX

    有下列函数定义: fun(float h) { printf("%f,%f\n",h,h*h);) 该函数的类型是( )。

    A.int类型

    B.float类型

    C.void类型

    D.函数无类型说明,定义有错


    正确答案:A
    本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型(int)处理。

  • 第9题:

    下面关于友元函数描述正确的是 ______。

    A.友元函数能访问类的所有成员

    B.友元函数是类的成员

    C.只有函数才能声明为另一个的友元

    D.友元函数能访问类的私有成员


    正确答案:D

  • 第10题:

    已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用赋值,( )是正确的。

    A.p=f1

    B.P=A::f1

    C.P=A::f1()

    D.P=f1()


    正确答案:B

  • 第11题:

    假设调用函数有以下定义和函数f调用,则函数f中对形参数组错误定义的是()。 charc[5]={‘a’,’b’,’0’,’c,’0’}; printf(“%s”,c);

    • A、f(int array[][6])
    • B、f(int array[3][])
    • C、f(int array[][4])
    • D、f(int array[2][5])

    正确答案:B

  • 第12题:

    如果f(t)是t的偶函数,则频谱函数F(jω)是ω的实偶函数。


    正确答案:正确

  • 第13题:

    类模板templateclass x{...},其中,友元函数f对特定类型T(如int),使函数 f(x);成为

    类模板template<class T>class x{...},其中,友元函数f对特定类型T(如int),使函数 f(x<int>);成为x<int>模板类的友元,则其说明为( )。

    A.friend void f();

    B.friend void f(x<T>);

    C.friend void A:: f()

    D.friend void C<D:: f(x<T>);


    正确答案:B

  • 第14题:

    类模板templateclass x{…},其中,友元函数f对特定类型T(如int),使函数f(x&=成

    类模板template<class T>class x{…},其中,友元函数f对特定类型T(如int),使函数f(x<int>&=成为x<int>模板类的友元,则其说明为( )。

    A.friend void f();

    B.friend void f(x<T>&=;)

    C.friend void A::f()

    D.friend void C<T>::f(x<T>&=;)


    正确答案:B

  • 第15题:

    若要把函数void f()定义为aClass的友元函数,则应该类aClass的定义中加入的语句是( )。

    A.void f();

    B.static void f();

    C.friend f();

    D.friend void f();


    正确答案:D

  • 第16题:

    若有以下程序includevoidf(intn);main() (voidf(intn); f(5); }void f(intn) {printf(

    若有以下程序 #include <stdio.h> void f(int n); main() ( void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是

    A.若只在主函数中对函数f进行说明,则只能在土函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正碗调用函数f

    C.对于以上程序,编译时系统会提示出错信息:提示对f函数重复况明

    D.函数f无返回值,所以可用void将其类型定义为无值型


    正确答案:C
    解析:本题考核的知识点是函数说明的方法。若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次,因此选项C是错误的。所以,4个选项中C为所选。

  • 第17题:

    若要把函数void f()定义为aClass的友元函数,则应该在类aClass的定义中加入的语句是( )。

    A.void f();

    B.static voidf();

    C.friend f();

    D.friend void f();


    正确答案:D

  • 第18题:

    类模板templateclass x{…},其中友元函数f对特定类型T(如int),使函数f(x)成为x

    类模板template<class T>class x{…},其中友元函数f对特定类型T(如int),使函数f(x<int>)成为x<int>模板类的友元,则其说明为( )。

    A.friend voidf();

    B.friend voidf(x<T>);

    C.friend voidA::f();

    D.friend void C<T>::f(x<T>);


    正确答案:B
    解析: 声明一个函数模板的格式:template模板形参表声明>函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。

  • 第19题:

    设有定义语句 则以下叙述正确的是( ).A.f是指向函数的指针变量,该函数具有_个int类型的形参SX

    设有定义语句

    则以下叙述正确的是( ).

    A.f是指向函数的指针变量,该函数具有_个int类型的形参

    B.f是基类型为int的指针变量

    C.f是指向int类型一维数组的指针变量

    D.f是函数名,该函数的返回值是基类型为int类型的地址


    正确答案:A

  • 第20题:

    类模板templateclass x(…),其中,友元函数f成为从该类模板实例化的每个模板类的友元,则

    类模板template<class T>class x(…),其中,友元函数f成为从该类模板实例化的每个模板类的友元,则其说明应为( )。

    A.friend void f();

    B.friend void f(x<T>&)

    C.friend void A::f();

    D.friend void C<T>::f(x<T>&):


    正确答案:A

  • 第21题:

    当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( )。

    A.只能是公有成员

    B.只能是保护成员

    C.只能是除私有成员之外的任何成员

    D.具有任何权限的成员


    正确答案:D

  • 第22题:

    当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的()

    • A、 只能是公有成员
    • B、 只能是保护成员
    • C、 只能是除私有成员之外的任何成员
    • D、 具有任何权限的成员

    正确答案:D

  • 第23题:

    若有以下程序 #include void f(int n) main() { void f(int n); f(5); } void f(int n); { printf("%d/n",n); } 则以下叙述不正确的是()

    • A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    • B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f
    • C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明
    • D、函数f无返回值,所以可用void将其类型定义为无值型

    正确答案:C