根据下面程序段进行分析,结论正确的是()。 intfun(intx,inty) { (x)++; y++; return(x)-y; }A、参数x是按照值传递进行传递,而y按地址传递进行传递B、参数y是按照值传递进行传递,而x按地址传递进行传递C、x,y均是按照值传递传递数据的D、x,y均是按照地址传递传递数据的

题目

根据下面程序段进行分析,结论正确的是()。 intfun(intx,inty) { (x)++; y++; return(x)-y; }

  • A、参数x是按照值传递进行传递,而y按地址传递进行传递
  • B、参数y是按照值传递进行传递,而x按地址传递进行传递
  • C、x,y均是按照值传递传递数据的
  • D、x,y均是按照地址传递传递数据的

相似考题
更多“根据下面程序段进行分析,结论正确的是()。 intfun(int”相关问题
  • 第1题:

    下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);

    A.23

    B.17

    C.18

    D.24


    参考答案C

  • 第2题:

    指出下面程序段中的错误,并说明出错原因【 】。

    class Location {

    int X, Y=20;

    protected:

    int zeroX, zeroY;

    int SetZero(int ZeroX, iht ZeroY);

    private:

    int length, height;

    public:

    float radius;

    void init(int initX,int initY);

    int GetX();

    Int GetY();

    };


    正确答案:int XY=20; 出错不能采用这种方式初始化
    int X,Y=20; 出错,不能采用这种方式初始化

  • 第3题:

    下面程序的运行结果是()。includeintfun(inta[],int n){int result=1;for(int i=“i<

    下面程序的运行结果是( )。 #include<iostream.h> intfun(inta[],int n) { int result=1; for(int i=“i<n;i++) result’resultxa[i]; return result; } void main() { inta[3]={3,4,5}; cout<<fun(a,3)<<endl; }

    A.12

    B.15

    C.20

    D.60


    正确答案:C
    解析: for循环执行2次,所以第一次for循环为result:1*a[1]=4,第二次for循环为result=4*a[2]=20。

  • 第4题:

    假定a=3,下列程序的运行结果是()。ineludeint fun(int n);void main(){cout<<"Pleas

    假定a=3,下列程序的运行结果是( )。 #inelude<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); tout<<result<<end1; } intfun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result+=p; } return result; )

    A.4

    B.8

    C.9

    D.20


    正确答案:C
    解析:由程序main主函数入手,调用fun函数获得返回值result输出。题目中假定a=3,即调用语句fun(a)中的输入参数为a,进入fun函数,在for循环中当i小于等于n,即输入参数3时,循环3次执行“p*=5;result+=p;”语句。即执行三次p=p*i,result=result+p,result的结果为9。返回的fun函数结果为9,即“coutresultend1;”输出9。

  • 第5题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

    下面程序的运行结果是( )。

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第6题:

    有下列程序: #include<stdi0.h> #include<stdlib.h> intfun(intn) {int*P; p=(int*)malloc(sizeof(int)); *P=n;return*P; } voidmain( ) {inta; a=fun(10);printf("%d\n",a+fun(10));} 程序的运行结果是( )。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    C。【解析】本题考查指针与函数的调用。a+fun(10)相当于fun(10)+fun(10),故结果为20。两次调用fun函数,返回值指向不同的内存单元,不会存在内存冲突的问题,也就不会走错。

  • 第7题:

    有以下程序includeintfun(int a,intB){if(b=0)return a;elsereturn(fun(--a,--B));}ma

    有以下程序 #include<stdio.h> intfun(int a,intB){if(b=0)return a; else return(fun(--a,--B)); } main() {pdntf("%d\n",fun(4,2));} 程序的运行结果是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:B

  • 第8题:

    下面程序段的功能是()。……int a[]={4,0,2,3,1},i,j,t;for(i=0;<5;i++){t=a[i];j=i;j--;while(j>=0

    下面程序段的功能是( )。 …… int a[]={4,0,2,3,1},i,j,t; for(i=0;<5;i++) { t=a[i];j=i;j--; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;} a[j+1] =t; } ……

    A.对数组a进行插入排序(升序)

    B.对数组a进行插入排序(降序)

    C.对数组a进行选择排序(升序)

    D.对数组a进行选择排序(降序)


    正确答案:B
    解析:本题考查数组的使用,注意插入排序方法。

  • 第9题:

    请选出下面正确的程序段( )。

    A.int *s; scanf("%d",s); ┆

    B.int *s,k; *s=100; ┆

    C.int *s,k; char *p, c; s=&k; p=&c; *p='a'; ┆

    D.int *s,k; char *p, c; s=&k; p=&c; s=p; *s=1; ┆


    正确答案:C
    解析:本题的选项A)和B)犯了一个同样的错误,即指针变量s定义后并没有指向具体的变量。也就是说,s中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

  • 第10题:

    分析下面程序,该程序的运行结果是()。includeclass cmm{public:static int m;cmm(){

    分析下面程序,该程序的运行结果是( )。 #include<iostream.h> class cmm { public: static int m; cmm() { m++; } cmm(int n) { m=n; } static void testm() { m++; } }; int cmm :: m=0; void main() { cmm A; cmm B(3); A.testm(); cram :: testm0; cout<<"m="<<B.m<<endl; }

    A.m=3

    B.m=4

    C.m=5

    D.m=6


    正确答案:C

  • 第11题:

    假设堆内存分配均成功,则下面程序段完全正确的是()。

    • A、int*p=newint(3);cout<;<;*p;deletep;
    • B、int*p=newint[5]={1,2,3,4,5};for(inti=0;i<;5;i++)cout<;<;p;delete[]p;
    • C、int*p=newint[5];for(inti=0;i<;5;i++,p++){*p=i;cout<;<;*p;}delete[]p;
    • D、以上程序段均正确

    正确答案:A

  • 第12题:

    以下为重载函数的一组函数声明的是()。

    • A、voidprint(int);voidprint(double);
    • B、voidfun(int);intfun(int);
    • C、intmax(int,int);intmin(int,int);
    • D、voidmm();intmm();

    正确答案:A

  • 第13题:

    对下列程序段的描述正确的是()。includeint Fun(int,int)void main(){cout<

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

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

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

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

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


    正确答案:C

  • 第14题:

    阅读下列程序和控制流图,将应填入(n)的字句。

    【程序】

    下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。

    int GetMax(int n,int datalist[]){

    int k=0;

    for(int j=1;j<n;j++)

    if(datalist[j]>datalist[k])

    k=j;

    return k;

    }

    该程序的控制流图中A~E分别是什么?


    正确答案:(1)jn(2)return k;(3)datalist[j]>datalist[k](4)k=j;(5)j++;
    (1)jn(2)return k;(3)datalist[j]>datalist[k](4)k=j;(5)j++;

  • 第15题:

    对下列程序段的描述正确的是( )。 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的定义和调用都是正确的。

  • 第16题:

    对于下面程序,对p进行赋值正确的是( )。 class A{ public:fun(int i){cout<<i<<endl;} }; main(){ void(A::*p)(int); }

    A.p=fun;

    B.p=fun();

    C.p=A::fun;

    D.p=A::fun()


    正确答案:C
    解析:给类函数指针赋值的格式是:指针名>=类名::函数名>

  • 第17题:

    请分析下面的程序并给出该程序的执行结果【】。 include class AA {int a;public: AA()

    请分析下面的程序并给出该程序的执行结果【 】。

    include <iostream>

    class AA {

    int a;

    public:

    AA() {cout<<" Initializing AA!\n" ; }

    AAM() {cout<<" Destroying AA!\n" ;

    };

    class BB {

    int b;

    AA p;

    public:

    BB() {cout<<"Initializing BB!\n" ;

    ~BB() {cout<<"Destroying BB!\n" ;

    };

    void main() {

    BB X;

    cout<<"Ending main!\n' ;

    }


    正确答案:Initializing AA! Initializing BB! Ending main! Destroying BB! Destroying AA!
    Initializing AA! Initializing BB! Ending main! Destroying BB! Destroying AA!

  • 第18题:

    下面程序段中的错误语句是 ______。 class M{ int i; public: void ~AA(int); AA *p; void AA(); void AA(int x){i=x;}; };

    A.AA *p;

    B.void ~AA(int);

    C.void AA(int);

    D.void AA(int x){i=x;};


    正确答案:B

  • 第19题:

    下面的程序段中,有()处错误和警告。includeint main()int x; cin>>x cout<

    下面的程序段中,有( )处错误和警告。 #include<stdio.h> int main() int x; cin>>x cout<<x; }

    A.1

    B.2

    C.3

    D.4


    正确答案:D
    解析:本题考核C++程序的基本结构。第1处错误:头文件stdio.h>应改为iostream.h>。因为在C++语言中,输入输出流的流类库是在iostream.h>头文件中定义的。第2处错误:主函数缺少左大括号“{”。第3处错误:语句cin>>x后面缺少“;”。第4处错误:由于已设定主函数的返回类型是血型,因此,在程序结束后,必须给出返回值或者将主函数的返回类型更改为void型。

  • 第20题:

    以下程序段完全正确的是( )。 A.int*P;scanf("%d",&p);B.int*P;scanf("%d",p);SX

    以下程序段完全正确的是( )。

    A.int*P;scanf("%d",&p);

    B.int*P;scanf("%d",p);

    C.int k,*p=&k;scanf("%d",p);

    D.int k,*p;*p=&k;scanf("%d¨,p);


    正确答案:C
    A中P是指针,没有初始化,且取P的地址即类型为指向地址的地址,与输出参数类型不符。B中指针P没有初始化,且P所指变量值不明。D*p是整型变量,&k是整型变量的地址。所以选C。

  • 第21题:

    运行下面的C程序代码段,会出现( )错误。 int k=0; for(;k<100;); {k++;)A.变量未定义B.静态语

    运行下面的C程序代码段,会出现( )错误。 int k=0; for(;k<100;); {k++;)

    A.变量未定义

    B.静态语义

    C.语法

    D.动态语义


    正确答案:D

  • 第22题:

    根据下面程序段进行分析,结论正确的是()。 intfun(intx,inty) { (x)++; y++; return(x)-y; }

    • A、参数x是按照值传递进行传递,而y按地址传递进行传递
    • B、参数y是按照值传递进行传递,而x按地址传递进行传递
    • C、x,y均是按照值传递传递数据的
    • D、x,y均是按照地址传递传递数据的

    正确答案:B

  • 第23题:

    下面程序段不是死循环的是()

    • A、 int  j=100; while(1){j=j%100+2;if(j>100)break;}
    • B、 for( ; ; );
    • C、 int k=0; do{ ++k;}while(k>=0);
    • D、 int s=36; while(s);--s;

    正确答案:A

  • 第24题:

    单选题
    下面程序段的正确输出是(  )。int w=4,x=3,y=2,z=1; cout<<(w
    A

    0

    B

    1

    C

    2

    D

    3


    正确答案: A
    解析:
    本题考查表达式作为变量进行输出,且表达式为两个三目表达式的嵌套,其中,第1个三目表达式z<y?z:x的值为1。接着计算第2个三日表达式 w<x?w:l,值为1。