niusouti.com

若有定义语句int a[10]; 以下叙述中正确的是()A.a[0]是合法的数组元素,a[10]不是合法的数组元素B.a[0]是合法的数组元素,a[10]是合法的数组元素C.a[0]不是合法的数组元素,a[10]不是合法的数组元素D.a[0]不是合法的数组元素,a[10]是合法的数组元素

题目

若有定义语句int a[10]; 以下叙述中正确的是()

A.a[0]是合法的数组元素,a[10]不是合法的数组元素

B.a[0]是合法的数组元素,a[10]是合法的数组元素

C.a[0]不是合法的数组元素,a[10]不是合法的数组元素

D.a[0]不是合法的数组元素,a[10]是合法的数组元素


相似考题
更多“若有定义语句int a[10]; 以下叙述中正确的是()”相关问题
  • 第1题:

    若有以下定义和语句 union date { int i; char c; fioat f;} x; int y; 则以下语句正确的是______。

    A.x=10.5;

    B.x.c=101;

    C.y=x;

    D.printf("%d\n",x);


    正确答案:B
    解析:本题定义了共用体变量x及整型变量y,需要说明的是共用体变量不能直接引用,而只能用共用体变量中的成员,故选项A、C、D均错误。

  • 第2题:

    若有定义语句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。

  • 第3题:

    若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*ia=a;则不能正确表示a数组元素的表达式是 ______。

    A.*ia

    B.a[10]

    C.*a

    D.a[ia-a]


    正确答案:B

  • 第4题:

    若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。 A.定义语句中的*号是一个间址运算符S

    若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。

    A.定义语句中的*号是一个间址运算符

    B.定义语句中的*号只是一个说明符

    C.定义语句中的P只能存放double类型变量的地址

    D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P


    正确答案:C
    doublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

  • 第5题:

    若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。A.定义语句中的*号是一个间址运算符SXB

    若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。

    A.定义语句中的*号是一个间址运算符

    B.定义语句中的*号是一个说明符

    C.定义语句中的p只能存放double类型变量的地址

    D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P


    正确答案:A
    在变量定义doublea,*p:&a;中,*号是一个指针运算符,而非间址运算符,因此A)错误。

  • 第6题:

    若有以下语句:typedef struct S{int 9;char h;}T;以下叙述中正确的是( )。

    A.可用s定义结构体变量

    B.可用T定义结构体变量

    C.S是struct类型的变量

    D.T是struct S类型的变量


    正确答案:B
    本题考查typledef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。

  • 第7题:

    若有定义语句:double a,+P=&a;以下叙述中错误的是( )。A.定义语句中的*号是一个问址运算符

    若有定义语句:

    double a,+P=&;a;

    以下叙述中错误的是( )。

    A.定义语句中的*号是一个问址运算符

    B.定义语句中的*号是一个说明符

    C.定义语句中的P只能存放double类型变量的地址

    D.定义语句中。P=&a把变量a的地址作为初值赋给指针变量P


    正确答案:A
    指针运算符(通常称为间接引用运算符:indirectionopemlor或复引用运算符:derefereneingoperator)返回其操作数(即一个指针)所指向的对象的值。定义语句中的+号不是一个问址运算符,而是定义指针变量的说明符,因此,A项错误,B选项正确,原则上说变量P可以放double兼容性的变量地址,C选项正确,根据指针的赋值运算,可知D选项正确。故答案为A选项。’

  • 第8题:

    若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。 A.-20B.-l0C.0

    若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。

    A.-20

    B.-l0

    C.0

    D.10


    正确答案:B
    表达式x-=x+X可以写成x=x-(x+x),所以X的值为-l0。

  • 第9题:

    若有以下说明和定义:typedefint*INTEGER INTEGERp,*q;以下叙述正确的是()

    • A、p是int型变量
    • B、p是基类型为int的指针变量
    • C、q是基类型为int的指针变量
    • D、程序中可用INTEGER代替int类型名

    正确答案:B

  • 第10题:

    单选题
    若有定义:int a[2][3],*p[3]; ,则以下语句中,正确的是()。
    A

    p[0]=&a[1][2];

    B

    p=a;

    C

    p[0]=a;

    D

    p[1]=&a;


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

  • 第11题:

    单选题
    若有类模板声明:template classTclass{int k;public:Tclass(int);//……};以下正确的说明语句正确的是()
    A

    Tclass(double)t(10);

    B

    Tclass<double>t(10);

    C

    Tclass<0.5>t(10);

    D

    Tclass t(10);


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

  • 第12题:

    单选题
    若有定义语句:int a[2][3],*p[3];则以下语句中正确的是(  )。
    A

    p[0]=&a[1][2];

    B

    p[0]=a;

    C

    p=a;

    D

    p[1]=&a;


    正确答案: D
    解析:
    声明了a是一个二维数组,p是长度为3的int *数组。A项正确,p[0]是int类型指针,可以指向二维数组中的元素。B项错误,p[0]是int类型指针,不能指向二维数组;C项错误,p是int类型指针的数组,一旦定义,不能再次赋值;D项错误,p[1]是int类型的指针,&a是二维数组的地址。答案选择A选项。

  • 第13题:

    若有定义语句:int a[2][3],*p[33;,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[0]=&a[1][2];

    D.p[1]=&a


    正确答案:B
    解析:本题考查的重点是指针数组与二维数组的关系。因为*p[3]定义成指针数组,从而指针数组中的任何元素都是一个地址,因此,选项B是正确的。

  • 第14题:

    若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。A.D=aB.q[i]=a[i]C.p=a[l]D.

    若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。

    A.D=a

    B.q[i]=a[i]

    C.p=a[l]

    D.P=&a[2][1]


    正确答案:A
    数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

  • 第15题:

    若有以下说明和定义:fun(int*c){ }main(){ int(*a)()=fun,*b(),w[10],c; ……}在做必要的赋值之后,对fun函数的正确调用语句是______。

    A.a=a(w);

    B.(*a)(&c);

    C.b=*b(w);

    D.fun(b);


    正确答案:B

  • 第16题:

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第17题:

    若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。


    正确答案:A
    B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。

  • 第18题:

    若有定义:

    typedefint*T[10];T a;

    则以下选项与上述定义中a的类型完全相同的是( )。

    A.int*a[10];

    B.int(*A.[10];

    C.int a[10];

    D.int(*a[10]);


    正确答案:A
    c语言允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取”别名”。类型定义符typedef即可用来完成此功能,可以完全代替原来的类型说明符。因此,变量a的类型为int}a[10]。typedefint{T[10],由于[]运算符优先级高于·,可以看成typedefint[10]}T,替换T可得int[10],a=>int}a[10],因此,答案为A选项0

  • 第19题:

    若有以下说明和定义

    typedef int*INTEGER:

    INTEGER P,*q;

    以下叙述正确的是


    正确答案:B

  • 第20题:

    若有定义

    则a的定义与下面哪个语句等价

    A.int(*A.[10];

    B.int}g[10];

    C.int*a;

    D.int a[10];


    正确答案:B
    本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,其中本题中int*用T来代替,所以定义Ta[10];就相当于是int*a[10];选项B正确。

  • 第21题:

    单选题
    若有定义:int a,b,c;以下选项中的赋值语句正确的是(  )。
    A

    a=(b=c)+1;

    B

    (a=b)=c=1;

    C

    a=(b==c)=1;

    D

    a+b=c;


    正确答案: C
    解析:
    赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。A项中,将c赋值给b,然后将b加1赋值给a,是正确的赋值语句,正确。B项中,将1赋值给c,赋值运算(a=b)=c中左值为表达式,不是变量不能被赋值,错误。C项中赋值运算(b=c)=1左值为逻辑表达式,不是变量不能被赋值,错误。D项左值a+b为表达式,不是变量不能被赋值,D项错误。答案选择A选项。

  • 第22题:

    单选题
    若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是(  )。

    正确答案: A
    解析:
    D项正确,标号可以是整型表达式。A项错误,case是关键字,与其后面的常量表达式合称case语句标号。常量表达式的类型必须与swicth后圆括号中的表达式类型相同,各case语句标号的值应该互不相同。c是变量,不能作为表达式放在case后面;B项错误,switch后面不应该有分号;C项错误,switch参数值类型必须是这几种类型之一:int,long,short,byte,char。答案选择D选项。

  • 第23题:

    单选题
    若有定义语句int a,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是(  )。
    A

    scanf("%d%d%d",a,b,c);

    B

    scanf("%d",p);

    C

    scanf("%d",a,b,c);

    D

    scanf(%d,&p);


    正确答案: C
    解析:
    scanf中地址列表需要取地址,即&a形式,故AC项错误;p为指针类型,本身就是c的地址,因此不用再取地址。答案选择B选项。

  • 第24题:

    单选题
    以下叙述中错误的是(  )。
    A

    同一个数组中所有元素的类型相同

    B

    不可以跳过前面的数组元素给后面的元素赋初值0

    C

    定义语句int a[10]={0};给a数组中所有元素赋初值0

    D

    若有定义语句int a[4]={1,2,3,4,5};,编译时将忽略多余的初值


    正确答案: B
    解析:
    一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0,当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。答案选择D选项。