主程序中定义了变量int x=3,y=4;调用函数f(x,&y)后,x,y都等于3,则调用的是以下函数()A.f(int *a, int b){ *a++; b--;}B.f(int *a, int b) { (*a)++; b--;}C.f(int a, int *b){ a++; (*b)--;}D.f(int *a, int *b) { a++; *b--;}

题目

主程序中定义了变量int x=3,y=4;调用函数f(x,&y)后,x,y都等于3,则调用的是以下函数()

A.f(int *a, int b){ *a++; b--;}

B.f(int *a, int b) { (*a)++; b--;}

C.f(int a, int *b){ a++; (*b)--;}

D.f(int *a, int *b) { a++; *b--;}


相似考题
参考答案和解析
D 一维数组定义和初始化是允许省略行下标,不允许省略列下标。
更多“主程序中定义了变量int x=3,y=4;调用函数f(x,&y)后,x,y都等于3,则调用的是以下函数()”相关问题
  • 第1题:

    有下列函数定义: int fun(double a,double b) {return a*b;} 若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。

    A.if(fun(x,y)){……}

    B.z=fun(fun(x,y),fun(x,y));

    C.z=fun(fun(X,y)x,y);

    D.fun(x,y);


    正确答案:C
    本题考查函数在函数调用时参数的传递形式,形参与实参参数个数类型要一致。

  • 第2题:

    主调函数中的两个变量a和b,要求调用函数交换a、b的值,返回交换结果,则以下正确的函数是______。

    A.funa(int*x,int*y) {int*p; *p=*x;*x=*y;*y=*p; }

    B.funb(int x,int y) {int t; t=x;x:y=y=t;}

    C.func(int*x,int*y) {*x=*y;*y=*x;}

    D.fund(int *x,int*y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


    正确答案:D
    解析:选项A中指针变量p没有明确的指向,选项B是值传递方式,显然不能改变实参中的值,选项C不能完成交换,实参中的值都变成一样的,只有选项D是正确的。

  • 第3题:

    有如下函数模板定义: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型。

  • 第4题:

    若有以下变量和函数说明:includecharCh='*';void sub(int x,int y,char ch,double*

    若有以下变量和函数说明: #include<iostream.h> charCh='*'; void sub(int x,int y,char ch,double*Z) { switch(ch) { case'+':*Z=x+y;break; case'-':*Z=x-y;break: case'*':*Z=x*y;break; case'/':*z=x/y;break: } } 以下合法的函数调用语句是( )。

    A.sub(10,20,Ch,y);

    B.sub(1.2+3,2*2,'+',&Z);

    C.sub(sub(1,2,'+',&y),sub(3,4'+',&x),'-',&y);

    D.sub(a,b,&x,ch);


    正确答案:B

  • 第5题:

    若有函数fun(x,y),并且已经使函数指针变量p指向函数fun,则使用p调用函数fun的正确方法是( )。

    A.(*p)fun(x,y);

    B.*pfun(x,y);

    C.(*p)(x,y)

    D.*p(x,y)


    正确答案:C

  • 第6题:

    有以下函数定义: int fun(double a,doubleB){return a*b;} 若以下选项中所用变量都已正确定义并赋值,错误的函数调用是( )。

    A.if(fun(x,y)){……}

    B.z=fun(fun(x,y),fun(x,y));

    C.z=fun(fun(x,y)x,y);

    D.fun(x,y);


    正确答案:C

  • 第7题:

    有如下函数模板的定义: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将被自动换成血型。

  • 第8题:

    有如下函数模板定义: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

  • 第9题:

    有下列函数定义:int fun(double a,double b) {return a*b;} 若下列选项中所用变量都己正确定义并赋值,错误的函数调用是( )。

    A.if(fun(x,y)){……}

    B.z=fun(fun(x,y),fun(x,y));

    C.z=fun(fun(x,y)x,y);

    D.fun(x,y);


    正确答案:C
    解析:本题考查函数调用时的参数传递。C项中第一个参数的表达式不正确,因此不能得到正确的结果。

  • 第10题:

    若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(x,y)));在此函数调用语句中实参的个数是( )。

    A.6

    B.5

    C.4

    D.3


    正确答案:D
    解析:参数之间是用逗号分隔的,不要因为参数是表达式而被迷惑。函数的第一个参数是表达式m+n,第三个参数是表达式f(m+n,z,(x,y))。

  • 第11题:

    对下列程序的描述中,正确的是()。includeusing namespace std;int Fun(int,int);int m

    对下列程序的描述中,正确的是( )。 #include<iostream> using namespace std; int Fun(int,int); int main() { cout<<Fun(5,50)<<end1; return 0; } int Fun(int x,int y) { return x*x+y*y; }

    A.该函数定义正确,但函数调用方式错误

    B.该函数调用方式正确,但函数定义错误

    C.该函数的定义和调用方式都是正确的

    D.该函数的定义和调用方式都是错误的


    正确答案:C
    解析:函数定义时要给出函数类型、函数名、函数参数表和函数体。本程序的Fun()都做到了,所以此函数的定义也是正确的。该函数的定义和调用方式都是正确的。

  • 第12题:

    单选题
    已知函数定义Functionf(x1%,x2%)as integer,则下列调用语句正确的是()
    A

    a=f(x,y)

    B

    call f(x,y)

    C

    f(x,y)

    D

    fxy


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

  • 第13题:

    对下列程序段的描述正确的是( )。 include int fun(int,int); void main(

    对下列程序段的描述正确的是( )。 #include<iostream.h> int fun(int,int); void main() { cout<<fun(1,2)<<endl; } int fun(int x,int y) { return x+y; }

    A.该函数定义正确,但函数调用方式错误

    B.该函数调用方式正确,但函数定义错误

    C.该函数定义和调用方式都正确

    D.该函数定义和调用方式都错误


    正确答案:C
    解析:函数定义的一般形式为:类型标识符函数名(形式参数列表){声明部分;语句}。函数调用的一般格式为:函数名(实参列表)。而“int fun(int,int)”为函数声明,是可以不写形参名,只写形参的类型。所以,可以看出函数fun的定义和调用都是正确的。

  • 第14题:

    主调函数中的两个变量a和b,要求调用函数交换a、b值,返回交换结果,则以下正确的函数是______。

    A.funa(int*x,int*y) { int*p; *p=*x;*x=*y;*y=*p; }

    B.funb (int x,int y) {int t;t=x;x=y;y=t;}

    C.func(int *x,int*y) {*X=*y;*y=*x;}

    D.fund(int *x,int *y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


    正确答案:D

  • 第15题:

    有如下函数模板的定义:template Tfunc(Tx,Ty){returnx*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型。

  • 第16题:

    对下列程序的描述正确的是()。include using namespace std;int fuc(int,int);int mai

    对下列程序的描述正确的是( )。 #include <iostream> using namespace std; int fuc(int,int); int main(){ cout<<fuc(1,10)<<endl; return 0; } int fuc(int x,int y){ return x*x+y*y; }

    A.该函数的定义和调用方式都是错误的

    B.该函数的定义和调用方式都是正确的

    C.该函数调用方式正确,但函数定义错误

    D.函数定义正确,但函数调用方式错误


    正确答案:B
    解析:函数定义时要给出函数类型、函数名、函数参数表和函数体。fuc()都做到了,该函数的定义和调用方式都是正确的。

  • 第17题:

    关于下列程序段的描述中,正确的是()。 include int fun(int,int); void main() { co

    关于下列程序段的描述中,正确的是( )。 #include<iostream.h> int fun(int,int); void main() { cout<<fun(1,2)<<endl; } int fun(int x,int y) { return X+y; }

    A.该函数定义正确,但函数调用方式错误

    B.该函数调用方式正确,但函数定义错误

    C.该函数定义和调用方式都正确

    D.该函数定义和调用方式都错误


    正确答案:C
    解析: 函数定义的一般形式:类型标识符函数名(形式参数列表){声明部分;语句}。函数调用的一般格式:函数名(实参列表)。而“int fun(int,int)”为函数声明,可以不写形参名,只写形参的类型。所以,可以看出函数fun的定义和调用都是正确的。

  • 第18题:

    设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数,请填空。main(){ int findbig(int,int,int); int (*f)(),x,y,z,big; f=; scanf("%d%d%d",&x,&y,&z); big=(*f)(x,y,z); printf("big=%d\n",big);}


    正确答案:findbig
    在main()函数中,int findbig();是对被调函数的说明,其功能是告诉系统在本函数中将用到该函数且返回整型值。int (*f)();说明f是一个指向函数的指针变量,此函数带回整型的返回值。赋值语句f=findbig;的作用是将函数findbig的入口地址赋给指针变量f,这时f就是指向函数findbig的指针变量。要注意的是,在给函数指针变量赋值时,只需给出函数名而不必给出参数,因为是将函数的入口地址赋给f,而不涉及实参与形参的结合问题。故本题答案为findbig。

  • 第19题:

    有如下类定义:class Point{int x__, y__;public:Point(): x_(0), y_(0) {}Point(int x, int y =0): x_(x), y_(y) {}若执行语句Point a(2),b[3], *c[4];则Point 类的构造函数被调用的次数是( )。

    A.2次

    B.3次

    C.4次

    D.5次


    正确答案:C

  • 第20题:

    有如下函数模板定义: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.0,5.5);

    C.func(3,5.5)

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


    正确答案:C

  • 第21题:

    有以下函数定义: int mypr(double a,double b) { return a*b; } 若以下选项中所用变量都已正确定义并赋值,错误的函数调用是

    A.if(mypr(x,y)){……}

    B.z=mypr(mypr(x,y),mypr(x,y));

    C.z=mypr(mypr(x,y)x,y);

    D.mypr(x,y);


    正确答案:C
    解析:本题考查了函数调用的方法。选项C函数调用mypr(x,y)可以作为表达式再参与运算,但是与另一个运算数x之间没有任何运算符所以是错误的。

  • 第22题:

    有如下函数模板的定义: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型。

  • 第23题:

    已知函数定义Functionf(x1%,x2%)as integer,则下列调用语句正确的是()

    • A、a=f(x,y)
    • B、call f(x,y)
    • C、f(x,y)
    • D、fxy

    正确答案:A

  • 第24题:

    单选题
    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。
    A

    k=FUN(x,n);

    B

    void FUN(n,x);

    C

    FUN(int y,double m);

    D

    FUN(10,12.5);


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