niusouti.com
参考答案和解析
B
更多“执行下列语句后的结果为()。 int x=3,y; int *px=&x; y=*px++; printf("x=%d,y=%dn",x,y);”相关问题
  • 第1题:

    以下程序执行后的输出结果是( )。include usingnamespacestd;void try(int,int,int,in

    以下程序执行后的输出结果是( )。 #include <iostream> using namespace std; void try(int,int,int,int); int main ( ) { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = X*X; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。下面是正确解答。根据程序逐步分析:①程序中定义了一个名为try的void型函数,即函数try()没有任何返回值。②而try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量r的值。③但在主函数中,并没有对变量r赋值。④在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数try()中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第2题:

    以下程序运行后的输出结果是【】。 include void fun(int x,int y) {x=x+y;y=x-y

    以下程序运行后的输出结果是【 】。

    include<iostream.h>

    void fun(int x,int y)

    { x=x+y;y=x-y;x=x-y;

    cout<< x << "," <<y << " ,";}

    void main( )

    { int x=2,y=3;fun(x,y);

    cout<< x << "," << y << endl;}


    正确答案:3223
    3,2,2,3 解析:main函数和fun函数中的变量x和y都是局部变量,它们各自独立,在本题 fun函数中:接入实参的值传递:x=2,y=3,执行:x=x+y后,x=5,y=3,执行:x=x-y后,x=5,y=3,执行:y=x-y后,x=3,y=2。所以,第一次执行cout显示结果是3和2返回到main函数中,输出main函数中的x和y的值2,3。

  • 第3题:

    若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf(( ),x/y);补充完整,使其输出的计算结果形式为:x/y=11。


    正确答案:x/y=%d
    x/y=%d 解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf("格式化字符串>”,参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。 参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

  • 第4题:

    下列程序的输出结果是______。main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break;if(y%3=

    下列程序的输出结果是______。 main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break; if(y%3==1) }y+=3; continue; } y-=5; } printf("%d\n",x); }

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:本题考查循环辅助控制语句break和continue,前者退出整个for循环,后者跳过本次循环没有执行完的若干条语句,开始下一次循环操作,建议读者采用本书推荐的列表法分析。

  • 第5题:

    设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。A.1SX

    设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

    A.1

    B.0

    C.4

    D.3


    正确答案:D

  • 第6题:

    执行以下语句后的输出结果是______。int x=3,y=0;printf("%d,%d”,-1>x>-10&&1y>

    执行以下语句后的输出结果是______。 int x=3,y=0; printf("%d,%d”,-1>x>-10&&1<x<10,-1>y>-10&&1<y<10);

    A.1 2

    B.1 1

    C.1 2

    D.2 2


    正确答案:B

  • 第7题:

    以下程序运行后的输出结果是void fun(int x,int y){ x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y);}main(){ int x=2,y=3; fun(x,y); printf("%d,%d\n",x,y);}


    正确答案:3,2,2,3
    被调用函数fun()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。

  • 第8题:

    执行以下语句后的输出结果是______。int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));

    A.1

    B.0

    C.4

    D.3


    正确答案:D

  • 第9题:

    下列程序段的输出结果是( )。include void fun(int *x, int *y) { printf("%d %d ", *x,*y); *x=3;*y=4;}main() { int x=1,y=2; fun(&y,&x); printf("%d %d\n",x,y); }

    A、2143

    B、1212

    C、1234

    D、2112


    正确答案:A

  • 第10题:

    执行以下语句的结果为______。 int x=3,y;int*px=&x;y=*px++;

    A.x=3,y=4

    B.x=3,y=3

    C.x=4,y=4

    D.x=3,y不知


    正确答案:B
    解析:++和*的运算优先级别相同,且从右到左结合,y=*px++也就是y=*(px++),++运算只对px有效。这里++是后置的,应当先将px所指向的变量*px(也就是变量x)的值赋给变量y,然后px才增1。

  • 第11题:

    执行"int x=45, y=13; printf("%d",x/y);"语句序列后得到的输出结果为()。
    3

  • 第12题:

    填空题
    执行“int=45,y=13;printf(“%d”,x/y);”语句序列后得到的输出结果为()。

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

  • 第13题:

    有以下程序

    void f( int y, int *x)

    { y=y+*x; *X=*X+y; }

    main()

    { int x=2,y=4;

    f(y,&x);

    printf("%d %d\n",x,y);

    }

    执行后输出结果是______。


    正确答案:8 4
    8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

  • 第14题:

    下列程序执行后,屏幕的输出是()。includeusing namespace std;void swap(int x,int y)

    下列程序执行后,屏幕的输出是( )。 #include<iostream> using namespace std; void swap(int x,int y) { int temp=x; x=y; y=temp; cout<<"x="<<x<<"",y=""<<y<<end1; } int main() { int x=3,y=2; swap(x,y); cout<<"x="<<x<<",y="<<y<<end1; return 0; }

    A.x=3,y=2 x=3,y=2

    B.x=2,y=3 x=3,y=2

    C.x=2,y=3 x=2,y=3

    D. x=3,y=2 x=2,y=3


    正确答案:B

  • 第15题:

    有以下程序: void f(int y,int *x) { y=y+ *x; *x;=*x+y;} main() { int x=2,y=4; f(y,&x); - printf ("%d %d\n",x,y); } 执行后的输出结果是 ______。

    A.8 4

    B.8 8

    C.4 8

    D.4 2


    正确答案:A
    解析:函数{的形参Y是简单变量,x是地址变量,故Y=4,x=2+4+2=8

  • 第16题:

    下列程序段的输出结果是( )。 void fun(int *x,int *y) { printf("%d%d",*x,*y);*x=3;*y=4; } main() { int x=2,y=1; fun(&y,&x); printf("%d%d",X,y); }

    A.1243

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。

  • 第17题:

    下列程序的输出结果是( )。

    void fun(int*X,int y)

    { printf("%d%d",*x,*y);*x=3;*y=1;}

    main

    { int x=1,y=2;

    fun(&y,&x);

    printf("%d%d",x,y);

    }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:C
    当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。

  • 第18题:

    下列程序的输出结果是( )。

    int t(int x,int y,int cp,int dp)

    {cp=x% y+y*y;

    dp=x+x-y*y;

    }

    main()

    { im a=4,b=3,c=9,d=8;

    t(a,b,c,D);

    printf("%d%d\n",c,D);

    }


    正确答案:98
    98 解析:本题的考查点是函数的调用。本题中a,b,c,d是实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是98。

  • 第19题:

    下列程序段的输出结果是______。 void fun(int *x,int *y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() { int x=1,y=2; fun(&y,&x); printf("%d%d",x,y); }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:A
    解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相对应的实参也就有了改变。

  • 第20题:

    以下程序执行后的输出结果是include using namespace std;void try(int,int,int,int)

    以下程序执行后的输出结果是 #include <iostream> using namespace std; void try(int,int,int,int); int main () { int x,y,z,r; x =1 ; y = 2; try(x,y,z,r); cout<<r<<endl; return 0; } void try(int x,int y,int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在c++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第21题:

    执行以下程序后的输出结果为( )。includeclass Sample{int x, y;public:Sample() {

    执行以下程序后的输出结果为( )。#include<iostream. b>class Sample{ int x, y; public: Sample() { x=y=0;} Sample(int a, int b) {x=a; y=b; } void disp () { cout<<"x="<<x<<"y="<<y<<end1; }};void main(){ Sample s(2,3), *p=&s; p->disp();}

    A.x=1, y=3

    B.x=2, y=4

    C.x=3, y=2

    D.x=2, y=3


    正确答案:D

  • 第22题:

    有以下程序:

    void f( int y,int *x)

    { y=y+*x; *x=*x+y; }

    main()

    {int x=2,y=4;

    f(y,&x);

    ptintf("%d %d\n",x,y);

    }

    执行后输出结果是【 】。


    正确答案:84
    84 解析:“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响。函数f(y,*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参y的值将不改变,而实参x的值将改变,故最后输出的y值为4,而x的值为8。

  • 第23题:

    执行“int=45,y=13;printf(“%d”,x/y);”语句序列后得到的输出结果为()。
    3

  • 第24题:

    填空题
    执行"int x=45, y=13; printf("%d",x/y);"语句序列后得到的输出结果为()。

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