设有定义语句“int a[]={2, 4,6,8,10},*p=s;”,则值为8的表达式是( )A.*p+3B.*p+4C.*(p+4)D.*(s+3)

题目

设有定义语句“int a[]={2, 4,6,8,10},*p=s;”,则值为8的表达式是( )

A.*p+3

B.*p+4

C.*(p+4)

D.*(s+3)


相似考题
更多“设有定义语句“int a[]={2, 4,6,8,10},*p=s;”,则值为8的表达式是( )A.*p+3B.*p+4C.*(p+4)D.*(s+3) ”相关问题
  • 第1题:

    ( 6 )若有定义语句: int a=3,b=2,c=1;, 则表达式 a<b?a:b 的值是 ___________ 。


    正确答案:

  • 第2题:

    有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=a;正确的描述是( )。

    A.语句int*p=a;定义不正确

    B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int*p=a;是把a[0]的值赋给变量p

    D.语句iht*p=a;是把a[l]的值赋给变量p


    正确答案:B

  • 第3题:

    设有定义语句:int a=12;,则表达式a*=2+3的运算结果是______。


    正确答案:60
    60 解析:本题考核C++运算符运算优先级和结合性。表达式"a*=2+3,"先计算“2+3”得到5,然后计算a*=5,得到a的值为60。

  • 第4题:

    有如下定义语句:int a[]={1,2,3,4,5);,则对语句int *p=a;正确的描述是( )。

    A.语句int *p=a;定义不正确

    B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int *p=a;是把a[0]的值赋给变量p

    D.语句int *p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第5题:

    若有以下定义和语句: int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为3的表达式是______。

    A.p+=2,*(p++)

    B.p+=2,*++p

    C.p+=3,*p++

    D.p+=2,++*p


    正确答案:A
    解析:引用一个数组元素,可以用:(1)下标法,如a[i]形式:(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将a[2]前自加,结果为4。

  • 第6题:

    设有如下定义语句: 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。-

  • 第7题:

    设有以下定义的语句,则*(*(p+2)+1)的值为______。int a[3][2]={10,20,30,40,50,60}, (*p)[2];p=a;

    A.10

    B.30

    C.60

    D.40


    正确答案:C

  • 第8题:

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

    A、p

    B、*p

    C、*&x

    D、*p=x

    E、x=*p


    参考答案BCDE

  • 第9题:

    设有以下C语言说明语句。 struct { int x,y;} s[2]={{1,2),{3,4}),*p=s,*q=s; 则表达式++p->x和表达式(++q)->x的值分别为(34)。

    A.1、1

    B.1、3

    C.2、3

    D.3、3


    正确答案:C
    解析:表达式++p->x中->(指向运算符)优先级高于++(自增运算符),所以先求出p->x中的值1。由于结构体数组元素(或结构体变量)中的成员是有存储单元的,可以像普通变量一样使用,因此++运算是针对s[0].x成员的,即该成员中的值自增后由1变为2。对于表达式(++q)->x,则是q先自增,q指向s[1],输出s[1].x成员中的值3。

  • 第10题:

    设有定义语句“char s[]="123";”,则表达式“s[3]”的值是 ( )

    A.’1’

    B.’3’

    C.0

    D.语法出错


    正确答案:C
    字符数组s在定义时省略了数组长度,表示给每个数组元素均赋了初值。对本题来说,数组的长度为4;数组元素的值依次为:S[0]为'1'。S[1」为'2'。S[2]为'3'、S[3]为字符率结束标记符'\0',所以“s[3]”的值是'\0'。注意,这个字符的ASCII代码值是整数0,所以本题答案应选C。

  • 第11题:

    若有定义语句:int a=3,b=2,c=1;,则表达式a<b?a:b的值是【 】。


    正确答案:2
    2 解析:本题考查的知识点是:条件运算符。条件运算是C++中唯一的三目运算,与其对应的运算符?:称为条件运算符。条件运算符的使用格式为:
    表达式1>?表达式2>:表达式3>
    当计算有条件运算符构成的表达式时,首先计算表达式1>,若其值非0,则计算出 表达式2>的值,并用这个值作为整个表达式的值;若表达式1>的值为0,则计算出表达式3>的值,并用这个值作为整个表达式的值。题目中,ab的结果为假(即 0),所以整个表达式的值为b的值2。

  • 第12题:

    单选题
    若有定义语句 int b=2; 则表达式(b<<2)/(3‖b)的值是(  )。
    A

    8

    B

    2

    C

    4

    D

    0


    正确答案: B
    解析:
    b=2,转为二进制即为0010,首先将b左移两位,变成1000,即十进制的8,3‖b的值为真即为1,最后计算8/1=8。答案选择A选项。

  • 第13题:

    若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。A.4B.8C.0D.2

    若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。

    A.4

    B.8

    C.0

    D.2


    正确答案:B
    2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/ 1=8,所以结果为8。

  • 第14题:

    设有定义语句:double x=2.5, y=4.7;int a=7;那么表达式x+a%3*(int)(x+ y)%2/4的值为【 】。


    正确答案:2.5
    2.5 解析:本题考核运算符的使用(包括类型、优先级、结合性)。强制类型转换符()将表达式x+y的值转换为int型,那么表达式“a%3*(int) (x+y)%2/4”结果将为整型,计算:7%3*7%2/4的结果为0,而x为double型,所以最后的结果为2.5

  • 第15题:

    设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【 】。


    正确答案:×
    0 解析:本题考查的是二维数组初始化问题。题中对数组的a[0][0],a[1][0],a[2][0]3个元素分别赋值为0,1,2,其余的元素都自动赋0。所以a[1] [2]的值为0。

  • 第16题:

    有如下定义: int a[5]={1,3,5,7,9}, * p=a; 下列表达式中不能得到数值5的是

    A.a[2]

    B.a[3]

    C.*(p+2)

    D.*p+4


    正确答案:B

  • 第17题:

    有如下说明int a[10]={1,2,3,4,5,6,7 },*p=a;则数值为5的表达式是A.*p+4 B.*(p+4) C.*p+=4 D.p+4


    正确答案:B
    本题考查C语言的数组元素的引用方法。我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0)即*p来引用;对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”*(p+1)就代表存储单元a[1],注意,一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式*(p+2)来引用,……,对于数组元素a[9],可以用表达式*(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i10,则数组元素a[i]可以用*(p+i)来表示。

  • 第18题:

    若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。

    A.4

    B.8

    C.0

    D.2


    正确答案:B
    2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/1=8,所以结果为8。

  • 第19题:

    设有以下语句: struct st{int n;struct st*next;}; static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p; p=&a[0];则表达式的值是6的为______。

    A.p++->n

    B.p->n++

    C.(*p).n++

    D.++p->n


    正确答案:D
    解析:本题主要考查结构体变量的定义和应用,以及运算符的优先级。

  • 第20题:

    设有以下C语言说明语句,则值为210的表达式是(33)。 struct s { int a;int *b;}; Int x0[]={110,120},x1[]={210,220}; struct s x[]={{100},{200}},*p=x; x[0].b=x0;x[1].b=x1;

    A.(++p)->a

    B.*p->b

    C.*(p++)->b

    D.*(++p)->b


    正确答案:D
    解析:注意到本试题中x为结构体数组,则数组名x代表数组首地址。x[0]、x[1]代表结构体数组元素。对于指向结构体数组的指针变量p,每次“+1”则指向下一个结构体数组元素。本题中++p后,由x[0]改指向x[1]。结构体数组x在定义时赋初值,但未对结构体成员b赋初值。语句“x[0].b=x0;x[1].b=x1;”的作用是对结构体数组x的成员b赋初值。对于选项A,(++p)->a等价于x[1].a==200。选项B,*p->b等价于*(x->b)==*x0==110。选项C,*(p++)->b等价于*(x[0].b)==110=x0[0]。选项D,*(++p)->b等价于*(x[1].b)==210=x1[0]。注意,在测试以上1个选项的输出值时,不能放在同一个printf函数中进行输出。因为函数中的参数运算顺序在C语言中是自右向左进行的,而p的值又是不断变化的,所以相互之间会产生影响。

  • 第21题:

    设有定义语句“int a=10,*p=&a;”,则表达式“a十*p”的值是( )

    A.10

    B.20

    C.100

    D.语法出错


    正确答案:B
    在数据定义语句中的“*p=&a”,表示指针变量p已经指向变量a,所以表达式中的“*p”就是变量a,“a+*p”就是“a+a”,所以该表达式的值为20。本题答案应选B。

  • 第22题:

    设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为()A.**p=100;B.**pp=100;C.&

    设有定义:int a,*p=&a,* *pp=&p;,则与a=100;等价的语句为( )

    A.**p=100;

    B.**pp=100;

    C.&*p=100;

    D.*pp=10;


    正确答案:B

  • 第23题:

    若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为(),a[2][1]得到的值为()。


    正确答案:0;6