更多“已知有定义“int m, a[]={1,2,3}, *p=a;”,在执行“m=*p++;”后,m的值是_______。”相关问题
  • 第1题:

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

    struct NODE

    {int k;

    struct NODE *link;

    };

    main()

    {structNODEm[5],*p=m,*q=m+4;

    int i=0;

    while(p!=q){

    p->k=++i;p++;

    q->k=i++;q-;

    }

    q->k=i;

    for(i=0;i<5;i++)printf("%d",m[i].k);

    printf("\n");

    }


    正确答案:13431
    13431 解析:程序执行过程如下:
    p=m,q=m+4,条件9!=q成立,执行p->k=++i;,由于是“前加”,所以m[0].k=1,执行p++后p=m+1;执行q->k=i++;,由于是“后加”,所以m[4].k=1,然后使得i加上1,即i=2,q-后,q=m+3: p=m+1,q=m+3,条件p!=q成立,执行p->k=++i;,由于是“前加”,所以i=3,m[0].k=3,执行p++后p=m+2:执行 p->k=++i;,由于是“后加”,所以m[4].k=3,i=4,q-后,q=m+2; p=m+2,q=m+2,条件p!=q不成立,则执行p->k=i;即m[2].k-4;故输出的值为13431。

  • 第2题:

    以下程序运行后,输出结果是______。 func (int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; } main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m);printf("%d\n",p); }

    A.8, 15

    B.8, 16

    C.8, 17

    D.8, 8


    正确答案:C

  • 第3题:

    若有以下程序段: struct st {int n; int*m: }; int a=2,b=3,c=5; struct st s[3]=({101,&a},{102,&c},{103,&B)}; main() {struct st*p; p=s; } 则以下表达式中值为5的是( )。

    A.(*p).m

    B.*(p+1)->m

    C.*(p++)->n

    D.(p++)(*m)


    正确答案:B

  • 第4题:

    有以下程序include<stdio.h>int*f(int*p,int*q);main( ){int m=1,n=2,*r=&m;r=f(r,&am

    有以下程序

    include<stdio.h>

    int*f(int*p,int*q);

    main( )

    {int m=1,n=2,*r=&m;

    r=f(r,&n);printf(”%d\n”,*r);

    }

    int-f(int*P,int*q)

    (return(*p>*q)?p:q;)

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


    正确答案:2
    2 解析:函数f的返回值的类型是int*,作用是返回两个int*型指针所指变量中值大的那个指针的。本题中定义了一个int*型指针r并置初值&m,即指针r指向m。r=f(r,&n),由于m的值小于n值,所以f函数返回值为&n,所以输出为2,即n值。

  • 第5题:

    有以下程序: main() {int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456;p中的值为789,则正确的输入是 ______ 。

    A.m=123 n=456p=789

    B.m=123 n=456 p=789

    C.m=123,n=456,p=789

    D.123 456 789


    正确答案:A
    解析:根据本题的数据输入形式“scanf("m=%dn=%dp=%d",&m,&n,&p);”说明在输入数据时,必须输入“m=”、“n=”、“p”字符,且中间不能含有空格。

  • 第6题:

    执行以下程序段后,m的值为______。 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4));

    A.15

    B.14

    C.13

    D.12


    正确答案:A

  • 第7题:

    若有以下定义和语句 struct a{ int n,m;}; struct a st[3]={{2,3},{4,5},{6,7}}; struct a*p=st;则以下错误的引用是A.(p++)->n; B.st[0].n; C.(*p).n; D.P=&st.m,


    正确答案:D
    题目中给出了一个结构体,结构体类型名为 struct  a。该结构体成员列表包括两个整型变量。随后定义了一个结构体数组st[3],该数组的大小为3,同时定义了一个结构体指针p,指向数组st。
    选项A为(p++)->n,是指先将p的指针执行++操作,指向st[1],然后得到该结构体变量中的值n。
    选项B为st[0].n,这个是标准的结构体数组变量引用,得到结构体数组变量st[0]中的值n。
    选项C为(*p).n,该表达式与p->n是等价的,得到当前指针所指结构体变量中的值n。
    选项D为p=&st.m,该选项是错误的。若p是一个定义过的指向结构体变量的指针,则用它指向结构体变量的某一个成员,编译时将指出地址的类型不匹配。

  • 第8题:

    若有定义语句:int m[][3]={1,2,3,4,5,6,7};,则与该语句等价的是

    A.int m[][3j={{1,2,3},{4,5,6},{i 7}};

    B.int m[][3]={{1,2},{3,4},{5,6,7}};

    C.int m[][3]={{1,2,3},{4,5},{6,7}};

    D.int nl[][3]={{1},{2,3,4},{5,6,7}};


    正确答案:A
    二维数组的初始化有两种方式,一种是分行初始化,方式为:数据类型数组名[行下标表达式][列下标表达式]={{第0行初值},{第1行初值表},…{最后l行初值表}};,如果初值表只对部分元素赋初值,没有被赋初值的元素将被自动赋值为0。另一种是按二维数组在内存中的排列顺序给各元素赋初值,这种方式就是不分行将所有数据依次列在一个花括号里,方式为:数据类型数组名[行下标表达式][列下标表达式]={初值表};,这种方式的赋值就是将初值表的数据依次赋予数组的每个元素,其中赋值是按照数组元素在内存中的位置进行的。题目中的初始化语句是第二种方法,如果用第一种方法应该是intm[][3]={{1,2,3},{4,5,6{,{7{};,这里应该保证除了最后一行,每一行都满列有3个元素,A选项正确。

  • 第9题:

    下列程序运行后,输出结果是______。func (int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} main(){ int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p);}

    A.8,15

    B.8,16

    C.8,17

    D.8,8


    正确答案:C

  • 第10题:

    假定变量m定义为int m=7;则定义变量p的正确语句为( )。

    A.int p=&m;

    B.int *p=&m;

    C.int &p=*m;

    D.int *p=m;


    正确答案:B
    解析:将变量m的地址赋给指针p。

  • 第11题:

    根据函数原型"int MM(int a[],int m)",编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。

  • 第12题:

    单选题
    假定变量m定义为“int m=7;”,则下面正确的语句为()。
    A

    int p=&m;

    B

    int *p=&m;

    C

    int&p=*m;

    D

    int *p=m;


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

  • 第13题:

    设有以下程序: include using namespace std; int main() {inta,b,k:4,m=6,*p1=&k

    设有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int a,b,k:4,m=6,*p1=&k,*p2=&m;

    a=p1==&m;

    b=(*p1)/(*p2)+7;

    cout<<a<<b<<end1;

    return 0;

    }

    执行该程序后,a的值为【 】,b的值为【 】。


    正确答案:0 7
    0 7 解析:本题考核的知识点是有关指针的运算。程序中定义了两个指针变量p1和p2,并通过赋初值让它们分别指向了变量k和m。语句“a=p1==&m;”中先执行关系运算符“p1==&m”,显然是0(假),然后把0赋值给a。接着执行语句“b=(*p1)/(*p2)+7”,此处*p1的值就是k的值4,*p2的值就是m的值6,即把“4/6+7”的结果赋给b,b的值为7。

  • 第14题:

    已知:int m=10;在下列定义引用的语句中,正确的是

    A.int &x=m;

    B.int y=&m;

    C.int &z;

    D.int &t=&m;


    正确答案:A
    解析:本题考核引用的定义。C++的引用是一种赋值、发送和返回复杂数据结构的方法,应用这种方法,系统不需要负担额外的开销,节省内存空间。建立引用的格式为:类型&引用名=已定义的变量名;。所以只有A选项是符合要求的。

  • 第15题:

    有以下程序includevoid f(int *p,int *q);main(){ int m=1,n=2,*r=&m;f(r, &n

    有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n); } void f(int*p,int*q) {p=p+1; *q=*q+1;) 程序运行后的输出结果是______。

    A.1,3

    B.2,3

    C.1,4

    D.1,2


    正确答案:A
    解析:本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。

  • 第16题:

    已知intm=10;在下列定义引用的语句中,正确的是( )。

    A.int&x=m;

    B.inty=&m;

    C.int&z;

    D.int&t=&m;


    正确答案:A
    A。【解析】C++的引用是一种赋值、发送和返回复杂数据结构的方法,建立引用的格式为:类型-引用名=已定义的变量名。所以只有A选项是符合要求的。

  • 第17题:

    执行以下的程序段后,m的值是 ______ 。 int a[2][3]={{(1,2,3),{4,5,6}} int m,*p; p=aa[0][0]; m=p[4];

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。p[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第18题:

    执行以下的程序段后,m的值是______。 int a[2][3]={{1,2,3},(4,5,6}}; int m,*p; p=&a[0][0]; m=p[4];

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。P[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第19题:

    有如下程序:includeusing namespaee std;class Pair{int m;int n;public:Pair(int i,

    有如下程序: #include<iostream> using namespaee std; class Pair{ int m; int n; public: Pair(int i,int j):m(i),n(j){ } boot operator>(pair P)const;//需在类体外给出定义 }; int main( ){ Pair pl(3,4),p2(4,3),p3(4,5); cout<<(pl>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2); retum 0; } 运算符函数operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是

    A.bool Pair::operator>(Pair P)eonst

    B.bool Pair::operator>(Pair P) {if(m!=P.m)return m>p.In;return n>p.n;} {if(m!=P.m)return m>p.m;return n>p.n;}

    C.bool Pair::operator>(Pair P)eonst

    D.bool Pair::operator>(Pair P) {if(m>p.m)return true;return n>p.n;} {if(Ul>p.m)return true;return n>p.n;}


    正确答案:C

  • 第20题:

    已知:int m=10;在下列定义引用的语句中,正确的是______。A.int &x=m;B.int y=&m;C.int &a

    已知:int m=10;在下列定义引用的语句中,正确的是______。

    A.int &x=m;

    B.int y=&m;

    C.int &z;

    D.int &t=&m;


    正确答案:A
    解析:正确的引用正是在变量定义时,在变量前面加上,‘&’。而inty=&m;的形式,意思是取得m的地址值赋给y。

  • 第21题:

    有定义语句:int m=1,n=2,P=5,x;,则以下选项中各程序段执行后,x的值不等于5的是( )。

    A.

    B.

    C.

    D.


    正确答案:C
    选项A),执行else子句,执行后x=5。选项B),执行if子句,执行后x=5。选项D),执行if子句,执行后x=P=5。选项c),执行if子句,执行后X=2。

  • 第22题:

    假定变量m定义为“int m=7;”,则下面正确的语句为()。

    Aint p=&m;

    Bint *p=&m;

    Cint&p=*m;

    Dint *p=m;


    B

  • 第23题:

    假定变量m定义为“intm=7;”,则定义变量p的正确语句为()。

    • A、intp=&m
    • B、int*p=&m
    • C、int&p=*m
    • D、int*p=m

    正确答案:B

  • 第24题:

    单选题
    有以下程序:#include int fun(int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return m;}main(){ int k=4,m=1,p; p=fun(k,m); printf(%d,,p); p=fun(k,m); printf(%d,p);}程序运行后的输出结果是(  )。
    A

    8,17

    B

    8,16

    C

    8,8

    D

    8,20


    正确答案: D
    解析:
    static变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:调用函数,m=0,i=2,i=i+m+1=3,m=8,返回p=8,再次调用函数,m=8,i=3,i=i+m+1=12,m=12+4+1=17,返回p=17。答案选择A选项。