更多“设有以下程序段;int a[5]={0},*p,*q;p=a;q=a;则合法的运算是______。A.p+qB.p-qC.p*qD.p%q ”相关问题
  • 第1题:

    若有以下程序: void g(int **q) { (**q) ++; (*q) ++; } void main() { int line [5]; int *p=line; for (i=0; i<5; i++) { *p=i; g(&P); } for (i=0; i<5; i++) cout<<line[i]; cout<<end1; } 该程序运行后的输出结果为( )。

    A.12345

    B.1234

    C.11111

    D.55555


    正确答案:A
    解析:本题考核指针的运用。主函数的for循环中向函数g()传入实参&p,则在函数g()中执行“(**q)++;”相当于执行“(**(&p))++”,即(*p)++,其结果就是对相应的数组元素值加1。函数g()中执行“(*q)++;”相当于执行“(*(&p))++”,即p++。其结果为指针p指向下一个数组元素。这样通过for循环给数组元素分别赋值1、2、3、4、5。

  • 第2题:

    设有以下程序段: int a[5]={0},*p,*q; p=a; q=a; 则下列选项中,合法的运算是

    A.p+q

    B.p-q

    C.p*q

    D.P%q


    正确答案:B
    解析:本题考核指针的运算。C++语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。

  • 第3题:

    以下基本推理规则错误的是()。

    A.P, P→Q⇒Q

    B.P→Q , ¬Q⇒¬P

    C.¬P,P⋁Q⇒Q

    D.P→Q, ¬P ⇒ ¬Q


    P →Q , Q ⇒ P

  • 第4题:

    设有以下程序段: int a[5]={0},*p,*q; p=a; q=a; 则下列选项中,合法的运算是( )。

    A.p+q

    B.p-q

    C.p*q

    D.p%q


    正确答案:B
    解析:本题考核指针的运算。C++语言中,指向同一字符串的指针之间能且只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。

  • 第5题:

    设有以下程序段: int a[5]={0},*p,*q; p=a; q=a; 则下列选项中,合法的运算是.

    A.p+q

    B.p-q

    C.p*q

    D.P%q


    正确答案:B
    解析:本题考核指针的运算。C++语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。