niusouti.com
参考答案和解析
正确答案:D
更多“有定义:int x,y=10,*p=y;, 则能使得x的值也等于10的语句是()。A、x=p;B、x=p;C、x=y;D、x=*p;”相关问题
  • 第1题:

    有以下程序:include main() {int a[] = {2,4,6,8,10} ,y =0,x, * p;p =&a[1];for(

    有以下程序: #include <stdio.h> main() { int a[] = {2,4,6,8,10} ,y =0,x, * p; p =&a[1]; for(x=1;x<3;x++)y+ =p[x]; printf( "% d \n" , y); }程序运行后的输出结果是( )。

    A.10

    B.11

    C.14

    D.15


    正确答案:C
    解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。

  • 第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

  • 第3题:

    下列语句执行后的结果是 ( )y=5;p=&y; x=* p+ +;

    A.x=5, y=5

    B.x=5, y=6

    C.x=6, y=5

    D.x=6, y=6


    正确答案:A

  • 第4题:

    执行以下程序后,y的值是 ( ) main( ) { int a [ ]={2,4,6,8,10); int y=1,x, *p; p=&a[1]; for(x=0;x<3; x + +) y + =* (p + x); printf("%d\n",y); }

    A.17

    B.18

    C.19

    D.20


    正确答案:C

  • 第5题:

    有如下程序: include using namespace std; class point {int x,y; public:point( i

    有如下程序: #include <iostream> using namespace std; class point { int x, y; public: point( int vx, int vy ) { x = vx; y = vy; } point ( ) { x = 0; y = 0; } point operator+( point pl ) { point p; int px = x + p1.x; int py = y + p1.y; return point( px, py ); } point operator-( point p1 ) { point p; int px = x - p1.x; int py = y - p1.y; return point( px, py ); } void print() { cout<<x<<", "<<y<<end1; } }; int main () { point pl ( 10, 10 ), p2 ( 20, 20 ); p1 = p1 + p2; p1.print (); return 0; } 执行后的输出结果是( )。

    A.10,10

    B.20,20

    C.10,20

    D.30,30


    正确答案:D
    解析:本题主要考察C++中运算符重载的机制与实现。运算符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类point中声明了私有数据成员intx和inty,并定义了两种形式的构造函数以完成对对象的初始化:之后,程序对运算符“+”进行了重载,令其输入参数为类point的对象,输出为操作符“+”右侧该对象的私有数据成员x和y与操作符“+”左侧同类型对象的私有数据成员x和y的两数之和;print()函数则输出对象中数据成员的值。主函数中,实例化了类point的两个对象p1和p2,并完成对对象的初始化。在语句“p1=p1+p2;”中,由于操作符“+”左右两端的操作数为point类的对象,复合类point定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两point对象数据成员的加和值,覆盖对象p1的数据成员。因此print()函数输出对象p1的数据成员值应该为:x=10+20=30,y=10+20=30。

  • 第6题:

    设有定义语句“int x=10, *p=&x”,则表达式的值为10的有( )。

    A、p

    B、*p

    C、*&x

    D、*p=x

    E、x=*p


    参考答案BCDE

  • 第7题:

    有以下程序:includeincludeusingnamespacestd;classDistance;classpoint{pub

    有以下程序: #include <iostream> #include <cmath> using namespace std; class Distance; class point { public: friend class Distance; Point(int a,int B) { x=a; Y=b; } void Print() { cout<<"X= "<<X<<end1; cout<<"Y= "<<Y<<end1; } private: float X,Y; }; class Distance { public: float Dis(Point &p,Point &q); }; float Distance :: Dis(Point &p,Point &q) { float result; result=sqrt((p.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y)); cout<<result<<end1; retUrn result; } int main() { Point p(10,10),q(10,30); Distance d; d.Dis(p,q); return 0; } 运行后的输出结果是( )。

    A.10

    B.30

    C.0

    D.20


    正确答案:D
    解析:本题程序通过把类Distance定义为类Point类的友元类来实现计算两点之间距离的功能。主函数中定义两个对象点p,q,然后调用对象d的成员函数Dis()计算两点之间的距离。

  • 第8题:

    若已有以下定义和语句: #include       int x=4,y=3,*p,*q,*s;  p=&x; q=&y; s=q; q=NULL;  则下面分别给出的四条语句中,错误的是()

    • A、*q=0;
    • B、s=p;
    • C、*p=x;
    • D、*p=*s;

    正确答案:A

  • 第9题:

    有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()

    • A、point.x=1;point.y=2;
    • B、point={1,2};
    • C、p.x=1;p.y=2;
    • D、p={1,2};

    正确答案:C

  • 第10题:

    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }

    • A、17
    • B、18
    • C、19
    • D、20

    正确答案:C

  • 第11题:

    单选题
    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }
    A

    17

    B

    18

    C

    19

    D

    20


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

  • 第12题:

    单选题
    有定义:int x,y=10,*p=&y;, 则能使得x的值也等于10的语句是()。
    A

    x=p;

    B

    x=&p;

    C

    x=&y;

    D

    x=*p;


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

  • 第13题:

    主调函数中的两个变量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是正确的。

  • 第14题:

    有如下程序:include using namespace std;class point{int x, y;public:point( int v

    有如下程序:#include <iostream>using namespace std;class point{ int x, y;public: point( int vx, int vy ) { X=vx; y=vy; } point() { x=0; y=0; } point operator+ ( point p1 ) { point p; int px = x + p1.x; int py = y+ p1.y; return point( px, py ); } point operator-( point p1 { point p; int px = x - p1.x; int py = y - p1.y; return point( px, py ); } void print() { cout<<x<<","<<y<<end1; }};int main(){ point p1( 10, 10 ), p2( 20, 20 ); p1 = p1 + p2; p1.print(); return ();}执行后的输出结果是( )。

    A.10, 10

    B.20, 20

    C.10, 20

    D.30, 30


    正确答案:D

  • 第15题:

    有如下程序:include using namespace std;class point{intx,y;public:point( int vx,

    有如下程序:#include <iostream>using namespace std;class point{ int x, y;public: point( int vx, int vy ) { x = vx; y = vy; } point ( ) x = 0; y= 0; } point operator+( point p1 ) { point p; int px = x+ p1.x; int py = y + p1.y; return point( px, py ); point operator-( point p1 ) { point p; int px = x -p1.x; int py = y - p1.y; return point ( px, py ); } void print() { cout<<x<<" , "<<y<<end1; }};int main (){ point p1(10, 10 ), p2( 20, 20 ); p1 = p1 - p2; p1.print (); return 0;} 执行后的输出结果是

    A.10,10

    B.20,20

    C.10,20

    D.30,30


    正确答案:D
    解析:本题主要考查C++中运算符重载的机制与实现。运算符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类point中声明了私有数据成员int x和 int y,并定义了两种形式的构造函数以完成对对象的初始化;之后,程序对运算符“+”进行了重载,另其输入参数为类point的对象,输出为操作符“+”右侧该对象的私有数据成员x和y与操作符“+”左侧同类型对象的私有数据成员x和y的加和:print()函数则输出对象中数据成员的值。程序main()函数中,实例化了类point的两个对,象p1和p2,并完成对对象的初始化.在语句“p1= p1+p2;”中,由于操作符“+”左右两端的操作数为point类的对象,复合类point定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两point对象数据成员的加和值,覆盖对象p1的数据成员.因此print()函数输出对象p1的数据成员值己应该为:x=10+20=30,y=10+20=30

  • 第16题:

    有以下程序:

    main

    { int a[]=(2,4,6,8,10},y=0,x,*P;

    p=&a[1];

    for(x=1;x<3;x++) y+=p[x];

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

    }

    程序运行后的输出结果是( )。

    A.A.10

    B.11

    C.14

    D.15


    正确答案:C
    由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。

  • 第17题:

    有如下程序:includeusing namespace std;class point{int x,y;public:point(int vx,i

    有如下程序: #include<iostream> using namespace std; class point { int x,y; public: point(int vx,int vy) { x=vx; y=vy; } point() { x=0; y=0; } point operator+(point p1) { point p; int px=x+p1.x; int py=y+p1.y; return point(px,py); } point operator-(point p1) { point p; int px=x-p1.x; int py=y-p1.y; return point(px,py); } void print() { cout<<x<<","<<y<<end1; } }; int main() { point p1(10,10),p2(20,20); p1=p1+p2; p1.print(); retrun 0; } 执行后的输出结果是

    A.10,10

    B.20,20

    C.10,20

    D.30,30


    正确答案:D
    解析:本题主要考查C++中运算符重载的机制与实现。运算符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类point中声明了私有数据成员intx和inty,并定义了两种形式的构造函数以完成对对象的初始化;之后,程序对运算符“+”进行了重载,另其输入参数为类point的对象,输出为操作符“+”右侧该对象的私有数据成员x和y与操作符“+”左侧同类型对象的私有数据成员x和y的加和:print()函数则输出对象中数据成员的值。程序main()函数中,实例化了类point的两个对象p1和p2,并完成对对象的初始化。在语句“p1=p1+p2;”中,由于操作符“+”左右两端的操作数为point类的对象,复合类point定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两point对象数据成员的加和值,覆盖对象p1的数据成员。因此print()函数输出对象p1的数据成员值应该为:x=10+20=30,y=10+20=30

  • 第18题:

    设int x[ ]={2,4,6,8},y,*p=&x[1];则执行语句y=(*--p)++;后数组元素x[0]的值为 ______。

    A.2

    B.3

    C.4

    D.5


    正确答案:B

  • 第19题:

    某随机事件最多只有X、Y、Z三种互不相同的结果,关于X、Y、Z发生的概率,下列各项有可能的是( )。
    A. P(X) =1, P(Y) = -1, P(Z) =1
    B. P(X) =0.3, P(Y) =0.2,P(Z) =0.5
    C. P(X) =P(Y) =P(Z) =1
    D. P(X) >0, P(Y)= -P(X),P(Z) =1


    答案:B
    解析:
    概率具有非负性,即 P(X) >0,P(Y) >0,P(Z) >0,且P(X) +P(Y) +P(Z) =1, 因此只有B项符合要求

  • 第20题:

    判断下列公式是否为可合一,若可合一,则求出其最一般合一。 (1)P(a,b),P(x,y) (2)P(f(x),b),P(y,z) (3)P(f(x),y),P(y,f(b)) (4)P(f(y),y,x),P(x,f(a),f(b)) (5)P(x,y),P(y,x)


    正确答案: (1)可合一,其最一般和一为:σ={a/x,b/y}。
    (2)可合一,其最一般和一为:σ={y/f(x),b/z}。
    (3)可合一,其最一般和一为:σ={fB./y,b/x}。
    (4)不可合一。
    (5)可合一,其最一般和一为:σ={y/x}。

  • 第21题:

    下列语句执行后的结果是()。 y=5;p=&y;x=*p++;

    • A、x=5,y=5
    • B、x=5,y=6
    • C、x=6,y=5
    • D、x=6,y=6

    正确答案:A

  • 第22题:

    单选题
    有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()
    A

    point.x=1;point.y=2;

    B

    point={1,2};

    C

    p.x=1;p.y=2;

    D

    p={1,2};


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

  • 第23题:

    单选题
    若已有以下定义和语句: #include       int x=4,y=3,*p,*q,*s;  p=&x; q=&y; s=q; q=NULL;  则下面分别给出的四条语句中,错误的是()
    A

    *q=0;

    B

    s=p;

    C

    *p=x;

    D

    *p=*s;


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