参考答案和解析
正确答案: B
解析:
后缀表达式,先赋值,后自增。k++表达式值为k的值0;其余三项为k+1的值,即1。答案选择C选项。
更多“单选题设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是(  )。A ++kB k+=1C k++D k+1”相关问题
  • 第1题:

    假定有下列变量定义:

    int k=7,x=12;

    则能使值为0的表达式是

    A.x*=k-k%5

    B.x*=(k-k%5)

    C.x%=(k-=5)

    D.(x-=k)-(k+=5)


    正确答案:C
    解析:A项:x=x*(7-7%5),x=7*5,x=35;
        B项:x=x*(7-7%5),x=35;
        D项:(x=x-k)-(k=k+5),5-12,-7;
        C项:x=x%(k=k-5),x-12%2,x=0。
        故正确答案为C项。

  • 第2题:

    设有定义:int k=1,m=2;float f=7;则以下选项中错误的表达式是( )。

    A.k=k>=k

    B.-k++

    C.k%int(f)

    D.k>=f>=m


    正确答案:C
    解析:强制类型转换的一般形式为:(类型名)(表达式),而选项C)中没有给类型名加括号,所以选项C)错误。

  • 第3题:

    设有定义:intk=1,m=2;noat f=7;则下列选项中错误的表达式是( )。

    A.k=k>=k

    B.-k++

    C.k%int(f)

    D.k>=f>=m


    正确答案:C
    解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项B),先计算k什的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。

  • 第4题:

    设有如下定义语句: int m[]={2,4,6,8,10},*k=m; 以下选项中,表达式的值为6的是( )。

    A.*(k+2)

    B.k+2

    C.*k+2

    D.*k+=2


    正确答案:A
    本题考查数组和指针,*k指针是指向rn数组的首地址,所以要使表达武的值为6,只需要指针指向第m[2],所以答案选择A。-

  • 第5题:

    若有定义:int k,*q;,则下列各选项中赋值表达式正确的是()。A.q=(&k+1)B.q=&kC.q=kD.*q=&a

    若有定义:int k,*q;,则下列各选项中赋值表达式正确的是( )。

    A.q=(&k+1)

    B.q=&k

    C.q=k

    D.*q=&k


    正确答案:B

  • 第6题:

    设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

    A.++k

    B.k+=1

    C.k++

    D.k+1


    正确答案:C
    先使k的值自增l后再使用,k++是先取得k的值再将k的值自增l,所以c选项中表达式的值为0,而其他三个表达式的值均为1,所以选择c。

  • 第7题:

    设有定义:int a=0,b=1;,以下表达式中,会产生“短路”现象,致使变量b的值不变的是

    A.a++&&b++

    B.a++||++b

    C.++a&&b++

    D.+a ||++b


    正确答案:A
    运算符“++”放在变量前面时,表示将变量+1,再参与其他操作,a++&&b++时,由于a值是0直接判定与运算结果为0,忽视b++的值。因此b值不发生改变,答案为A选项。

  • 第8题:

    设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

    • A、k++
    • B、k+=1
    • C、++k
    • D、k+1

    正确答案:D

  • 第9题:

    设有说明语句:int k=1,m=2;double d=7.3;,以下表达式中错误的是()。

    • A、k>=m=k
    • B、k++
    • C、k%(int)d
    • D、d>m>k

    正确答案:A

  • 第10题:

    设有定义:intk=0;以下选项的四个表达式值相同的是()

    • A、a=++k
    • B、a=k++
    • C、a=k+=1
    • D、a=k+1

    正确答案:A,C,D

  • 第11题:

    单选题
    设有如下定义语句:int m[ ]={2,4,6,8},*k=m;以下选项中,表达式的值为6的是(  )。
    A

    *(k+2)

    B

    k+2

    C

    *k+2

    D

    *k+=2


    正确答案: B
    解析:
    本题中k指向数组m的首地址。*(k+2)先将指针后移两个元素,即为m[2]的地址,然后取出m[2]的值6。B项错误,k+2是m[2]的地址;C项错误,*k表示m[0]的值,然后再加上2,所以为4;D项错误,表示给m[0]的值加2,也为4。答案选择A选项。

  • 第12题:

    单选题
    设有定义:int a=0,b=1;以下表达式中,会产生“短路”现象,致使变量b的值不变的是(  )。
    A

    +a‖++b

    B

    a++‖++b

    C

    ++a&&b++

    D

    a++&&b++


    正确答案: D
    解析:
    产生“短路”现象,即逻辑表达式靠后的部分不会被运算。对于逻辑或运算,表达式前半部分运算结果为1时产生“短路”现象,A选项,+a的值是0,需要计算后半部分,B选项,a的值是先使用再自增1,a++值是0,也需要计算后半部分;对于逻辑与运算,表达式前半部分运算结果为0时产生“短路”现象,C选项,a的值是先自增1再传递,传值是1,需要计算后半部分;D项,a的值是先传递再自增1,传值是0,无需要计算后半部分,可忽视b++的值,因此b值不发生改变。答案选择D选项。

  • 第13题:

    设有如下定义语句以下选项中,表达式的值为6的是()

    A.*(k+2)

    B.k+2

    C.*k+2

    D.*k+=2


    正确答案:A
    考察数组和指针的概念,本题中*k指向数组m的首地址。*(k+2)现将指针后移两个元素,即为m[2]的首地址,然后取出m[2]的值6,所以选择A选项。选项B的值是一个地址无意义。选项C的值为4。选项D使得m[0]的值为4。fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。

  • 第14题:

    当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是

    A.k%2

    B.k%2==1

    C.(k%2)!=0

    D.!k%2==1


    正确答案:D
    解析:本题考查的是判断奇偶数。选项A、B和c中都是当k是奇数时表达式的值为1,否则为0。而选项D中因为逻辑非!运算符的优先级最高,所以当k为0的时候,k的值为1,整个表达式的值也就是1,而当k为非。的时候!k的值为0,整个表达式的值为0。所以本题应该选择D。

  • 第15题:

    设有定义:int k=0;,下列选项的4个表达式中与其他3个表达式的值不相同的是( )。

    A.k++

    B.k+=1

    C.#NAME?

    D.k+1


    正确答案:A

  • 第16题:

    设有定义: int a=2,b=3,c=4;, 则以下选项中值为0的表达式是A.(!a==1)&&(!b==0)B.(a

    设有定义: int a=2,b=3,c=4;, 则以下选项中值为0的表达式是

    A.(!a==1)&&(!b==0)

    B.(a<b)&& !c‖1

    C.a && b

    D.all(b+b)&&(c-a)


    正确答案:A
    解析:计算逻辑表达式要注意的问题有三个:一、3个逻辑表达式的优先级从高到低依次是!(逻辑非)、&&(逻辑与)、‖(逻辑或);二、运算符&&或‖的左边运算分量分别为“假”或“真”的时候已经能够得出整个表达式的值,故右边运算分量将被“短路”,即忽略右边的表达式.三、逻辑值能够自动转换为整数值:“真”=1、“假’=0;整数值也能自动转换为逻辑值:0=“假”,非0=“真”。选项A中(!a=1)&&(!b==0)→(12==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右边表达式(!b==0)被“短路”);选项B中(ab)&&!c‖1→(23)&&!4‖1→1&&0‖→0‖→1;选项C中a&&b→2&&3→1选项Da‖(b+b)&&(c-a)→2‖(b+b)&&(c,a)→1(‖右边表达式(b+b)&&(c-a)被“短路”)。所以本题选A。

  • 第17题:

    若有定义“int k,*q;”,则下列各选项中,赋值表达式正确的是( )。

    A.q=(&k+1)

    B.q=&k

    C.q=k

    D.*q=&k


    正确答案:B
    解析:本题考核指针的赋值操作。先来了解C++语言中指针的有关说明:①本题的定义语句中,在q前面有一个*说明符,表示q是一个指针变量,C++语言规定在指针变量中只能存放存储单元(即变量)的地址。②因为在定义中,q的基类型为int,所以q中只能存放int类型变量的地址。③在C++程序中&是求地址符,表达式&k的值是变量k在内存中的地址,而*的作用是求地址中存放的值。选项A中,&k表示变量k在内存中的地址,而后面的1是整型常量,所以此选项不正确:选项C中,把整型变量的值直接赋给指针变量q,由于赋值没有兼容性,所以这是错误的;选项D中,企图把k在内存中的地址赋给一个整型变量(*q在此代表一整型变量),这也是不允许的,地址值不能直接转换为一个整数。

  • 第18题:

    设有定义:int m=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

    A.++m

    B.m+=1

    C.m++

    D.m+1


    正确答案:C
    选项中的四个表达式执行后,m的值都递增1。选项c)中,表达式的值是m递增前的值,为0。选项A)、B)、D)中,表达式的值都是m递增后的值,为1。

  • 第19题:

    设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式是()

    • A、k=k+=k
    • B、-k++
    • C、k%int(f)
    • D、f=k%m

    正确答案:C

  • 第20题:

    设有说明语句:inti=2;,以下选项的四个表达式中与其他三个表达式的值不相同的是()

    • A、i++
    • B、i+=1
    • C、++i
    • D、i+1

    正确答案:A

  • 第21题:

    已知int i=0,j=1,k=2;则逻辑表达式++i || --j && ++k的值为()

    • A、0
    • B、1
    • C、2
    • D、3

    正确答案:B

  • 第22题:

    单选题
    设有说明语句:inti=2;,以下选项的四个表达式中与其他三个表达式的值不相同的是()
    A

    i++

    B

    i+=1

    C

    ++i

    D

    i+1


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

  • 第23题:

    单选题
    设有定义:int a=0,b=1,c=1;以下选项中,表达式值与其他三个不同的是(  )。
    A

    b=a==c

    B

    a=b=c

    C

    a=c==b

    D

    c=a!=c


    正确答案: A
    解析:
    赋值运算结合性为由右向左结合,成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。A项,逻辑表达式a==c不成立,则b=0,表达式值为0;B项,将c赋值给b,b=1,再将b赋给a,a=1,表达式值为1;C项,逻辑表达式c==b成立,则a=1,表达式值为1;D项,逻辑表达式a!=c成立,则c=1,表达式值为1。A项与其他项不同。答案选择A选项。

  • 第24题:

    单选题
    设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是(  )。
    A

    ++k

    B

    k+=1

    C

    k++

    D

    k+1


    正确答案: D
    解析:
    后缀表达式,先赋值,后自增。k++表达式值为k的值0;其余三项为k+1的值,即1。答案选择C选项。