niusouti.com
更多“(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f" ”相关问题
  • 第1题:

    设有定义:double x[lO],*p=x;,以下能给数组x下标为6的元素读人数据的正确语句是

    A.scanf(“%f”,&x[6]);

    B.scanf(“%If”,*(x+6));

    C.scanf(“%lf”,p+6);

    D.scanf(“%lf”,p[6]);


    正确答案:C

  • 第2题:

    假定一条定义语句为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则正确的语句为()。

    A、x=pa[3];

    B、x=*(a+3);

    C、x=a[3];

    D、x=*pa+3;


    参考答案:ABC

  • 第3题:

    设有定义:inca,*pa;&a;以下scanf语句中能正确为变量a读入数据的是

    A.scanf("%d",pA);

    B.Scanf("%d",A);

    C.SCaRf("%d",&p9);

    D.scanf("%d",*pA);


    正确答案:A
    解析:本题考核的知识点是scanf()函数和指针类型变量的简单应用。scanf()函数的功能是进行输入数据,它是按格式参数的要求从终端上把数据传送到地址参数所指定的内存空间中,C语言允许程序员间接地使用内存地址,这个地址是通过对变量名“求地址”运算得到的,求地址的运算符是&,得到的地址是一种符号地址.本题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义pa是一个存放a的地址的变量。选项B中应该将a改为&a,故选项B不正确:选项C应该将&pa改为pa,因为pa已经表示存放a的地址,故选项C不正确;选项D中*pa表示的是指针pa所指向存储空间的变量的值,而不是一个地址,故选项D不正确,所以,4个选项中选项A符合题意。

  • 第4题:

    若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是______。

    A.*p

    B.x[5]

    C.*(p+1)

    D.*x


    正确答案:B
    解析:本题定义了一个有5个数组元素的—维数组x和指针变量p,且将x的首地址(即x[0])的地址)赋给了指针变量p,即p指向了x数组的第0号元素,所以*p的值为x[0]的值,选项A的引用正确;由于p+1就是x[1]的地址,所以*(p+1)所指向的数组元素为x[1],故选项C的引用正确;由于x就是数组x的首地址,所以*x即对x[0]的引用,所以选项D引用正确;由于数组最大下标是元素个数减一,所以选项B的引用越界。

  • 第5题:

    若有定义语句:double x,y,*px,*PY;执行了laX=&x;lay=&y;之后,正确的输入语句是( )。

    A.scanf(”%If%le”,px,lay);

    B.seanf(”%f%f¨&x,y);

    C.seanf(”%f%f",x,y);

    D.Scanf(”%If%If"·,x,y):


    正确答案:A
    因为X,Y都是double型数据,所以输入时的格式字符应为%If,所以B与C错误。D选项中scanf(”%lf%%’,x,Y);应为sc“(”%If%If"’,,&)r);。

  • 第6题:

    若有定义语句:float x[6];则以下对x数组元素的正确引用形式是()。A.x+2B.&x[6]C.*(x+2)D.*&am

    若有定义语句:float x[6];则以下对x数组元素的正确引用形式是( )。

    A.x+2

    B.&x[6]

    C.*(x+2)

    D.*&x[6]


    正确答案:C
    解析:数组名x为该数组的首地址即第1个元素的地址,x+2表示数组第3个元素的值地址。x[6]表示数组中长度为6,数组元素的下标从0到5,没有x[6]。&为取地址符,取得的是元素的地址。*为间接访问运算符,其运算对象为地址或存放地址的指针变量。*(x+2)为取数组第3个元素的值,因此只有选项C正确引用了数据元素,选项C正确。

  • 第7题:

    设有定义:“double x[10],*p=x;”,以下能给数组x下标为6的元素读人数据的正确语句是( )。

    A.scanf("%f"&x[6]);

    B.scanf("%If",*(x+6));

    C.scanf("%if",p+6);

    D.scanf("%if",p[6]);


    正确答案:C
    由题中给出数组要给下标为6的数组赋值,其中x[6]实际上是第6个数,下标为5,因为数组是从0开始计算,所以正确的表示方法为C。

  • 第8题:

    设有定义:int a,*p=&a;以下scanf语句中能正确为变量a读入数据的是( )。

    A.scanf("%d",pa);

    B.scanf("%d",a);

    C.scanf("%d",&pa);

    D.scanf("%d",*pa);


    正确答案:A
    解析:本题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义pa是一个存放a的地址的变量。选项B中使用a是变量名而不是内存地址,故选项B不正确。&pa是取指针变量pa的地址,这个地址中存放的应该是地址值,不能正确为变量a读入数据,故选项C不正确。选项D中*pa等价于变量名a,而输入函数地址列表中的参数要求是内存中的地址,故选项D不正确,所以,4个选项中选项A符合题意。

  • 第9题:

    设有说明语句:doublex;,下列选项中正确的是()

    • A、scanf("%d",&x)
    • B、scanf("%f",&x)
    • C、scanf("%lf",x)
    • D、scanf("%lf",&x)

    正确答案:D

  • 第10题:

    设floatx,由键盘输入:12.45,能正确读入数据的输入语句是()。

    • A、scanf("%5f",&x)
    • B、scanf("%5d",&x)
    • C、scanf("%f",x)
    • D、scanf("%s",&x)

    正确答案:A

  • 第11题:

    假设定义变量如下:int  x; float  y;以下输入语句中()是正确的。

    • A、scanf(“%f%f”,&y,&x);
    • B、scanf(“%f%d”, y, x);
    • C、scanf(“%f%d”,&y,&x);
    • D、scanf(“%5.2f%2d”,&y,&x);

    正确答案:C

  • 第12题:

    单选题
    设有定义double x[10],*p=x;以下能给数组x下标为6的元素读入数据的正确语句是(  )。
    A

    scanf("%f",&x[6]);

    B

    scanf("%1f",*(x+6));

    C

    scanf("%1f",p+6);

    D

    scanf("%1f",p[6]);


    正确答案: B
    解析:
    scanf函数的一般形式为:scanf(格式控制字符串,地址列表);,其中的地址列表应当是存放输入数据变量的地址。A项,“%f”格式符对应的是float类型的变量;BD两项,*(x+6)和p[6]都表示下标为6的元素的值而非其地址;C项,p+6表示数组x下标为6的元素的地址。答案选择C选项。

  • 第13题:

    若有定义:int x[10], *p=x;,则*(p+5)表示( )。

    A.数组元素x[5]的地址

    B.数组元素x[5]的值

    C.数组元素x[6]的地址

    D.数组元素x[6]的值

    E.选项内容11

    F.选项内容11

    G.选项内容11


    参考答案B

  • 第14题:

    有以下程序,请在 处填写正确语句。使程序可正常编译运行。

    include

    mairl();

    {double x,y,(*p)():

    scanf(“%If%If”,&x,&y);

    P=avg;

    printf(“%f\n”,(*p)(x,y));

    }

    double avg(double a,doublc b)

    {return((a十b/2):


    正确答案:double avg(double a.doubleb)
    double avg(double a.doubleb)

  • 第15题:

    若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()。

    A.scanf("%d%lx,%le",&x,&y,&z);

    B.scanf("%2d*%d%lf"&x,&y,&z);

    C.scanf("%x%*d%o",&x,&y);

    D.scanf("%x%o%6.2f",&x,&y,&z)


    正确答案:D

  • 第16题:

    若有说明语句:double*p,a,则能通过scanf语句正确给输入项读入数据的程序段是( )。

    A.*p=&a;scanf("%1f",p);

    B.*p=&a; scanf("%f",p);

    C.p=&a; scanf("%1f",*p);

    D.p=&a; scanf("%1f",p);


    正确答案:D
    解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf("%1f",p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%le).否则,数据不能正确输入。所以选项D)为正确答案。

  • 第17题:

    设有定义:int X[10],+P=x,i;,若要为数组x读人数据,以下选项正确的是( )。


    正确答案:A
    从scanf(“<格式化字符串>”,<地址表>);可知scanf()的第二个参数是地址,因此,从四个答案中可以判断,只有选项A是P[i]的地址,其他的均是变量本身。敌答案为A选项。

  • 第18题:

    设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是

    A.scanf("%f",&x[6])

    B.scanf("%lf",*(x+6));

    C.scanf("%lf",p+6)

    D.scanf("%lf",p[6]);


    正确答案:C

  • 第19题:

    若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是( )。A.*p=&a;scanf(&qu

    若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是( )。

    A.*p=&a;scanf("%1f”,p);

    B.*p=&a;scanf("%f",p);

    C.p=&a;scanf("%",*p);

    D.p=&a;scanf("%1f",p);


    正确答案:D
    double*p,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf("%If",p)表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf函数要求在输入double型数据,格式控制符必须用%1f。否则,数据不能正确输入。所以选项D正确。

  • 第20题:

    (12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。

    #include <stdio.h>

    【12】 ;

    main()

    { double x,y,(*p)();

    scanf("%lf%lf",&x,&y);

    p=avg;

    printf("%f\n",(*p)(x,y));

    }

    double avg(double a,double b)

    { return((a+b)/2);}


    正确答案:
    (12)double avg(double a,double b);

  • 第21题:

    若定义x为double型变量,则能正确输入x值的语句是()。

    • A、scanf(“%f”,x);
    • B、scanf(“%f”,&x);
    • C、scanf(“%lf”,&x);
    • D、scanf(“%5.1f”,&x);

    正确答案:C

  • 第22题:

    假定一条定义语句为“inta[10],X,*pa=a;”,若要把数组a中下标为3的元素值赋给X,则不正确的语句为()。

    • A、x=pa[3]
    • B、x=*(a+3)
    • C、x=a[3]
    • D、x=*pa+3

    正确答案:D

  • 第23题:

    单选题
    若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x数组元素的是(  )。
    A

    * p

    B

    x[5]

    C

    *(p+1)

    D

    *x


    正确答案: C
    解析:
    引用一维数组元素有多种方式。直接引用的表达式为:数组名[下标],数组大小为n时,下标的取值范围为0~(n-1),所以本题中x的下标为0~4,x[5]溢出,B项错误。此外还可以通过指针引用一维数组元素。指针p指向该数组,所以*p表示x[0],A项正确;指针p+1指向数组x的第二个元素的地址,*(p+1)表示引用x的第二个元素,C项正确;x为x数组元素的首地址,*x表示对x[0]的引用,D项正确。答案选择B选项。