参考答案和解析
正确答案:C
更多“( 21 )有如下函数定义:void func ( int a,int & b ) {a++; b++;}若执行代码段:int x=0 ,y=1func ”相关问题
  • 第1题:

    有如下函数定义: void funC(int a,int&B. {a++;b++;} 若执行代码段: int x=0,Y = 1; funC(X,Y); 则变量x和y的值分别是( )。

    A.0和1

    B.1和1

    C.0和2

    D.1和2


    正确答案:C
    函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参本题中实参x为传值方式,所以x的值不会改变;Y为引用形参,所以会改变。故本题答案为c。

  • 第2题:

    若有定义语句int a,b;double x;则下列选项中没有错误的是( )。

    A.switch(x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    B.switch((int)x/2.0) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    C.switch((int)x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    D.switch((int)(x)%2) {case 0.O:a++;break; case 1.0:b++;break; default:a++;b++; }


    正确答案:C
    解析:C语言中switch语句中的表达式和case表达式都不能是浮点类型。所以选c。

  • 第3题:

    主程序中定义了变量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 一维数组定义和初始化是允许省略行下标,不允许省略列下标。

  • 第4题:

    有如下函数定义: void funC(int a,int&B.{a++;b++;} 若执行代码段: int x=0,Y=1: funC(X,y); 则变量X和y的值分别是( )。

    A.0和1

    B.1和1

    C.0和2

    D.1和2


    正确答案:C
    函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参。本题中实参x为传值方式,所以X的值不会改变;Y为引用形参,所以会改变。故本题答案为C。

  • 第5题:

    若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( )。

    A.switch(X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    B.switch((int)x/2.O) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    C.switch((int)X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    D.switch((int)(x)%2) { case 0.0:a++;break; case l.0:b++;break; default:a++;b++; }


    正确答案:C
    C语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。