itgle.com
参考答案和解析
正确
更多“以下选项中正确的定义语句是()”相关问题
  • 第1题:

    设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是( )。

    A.p=1;

    B.*q=2;

    C.q=p;

    D.*p=5;


    正确答案:D
    解析:本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q,并让它指向p。选项A中将常量1赋给指针p,而p的值应为地址,所以不正确。选项B中*p的值也应为地址,故将常量 2复制给*p不正确。选项C中将p的值赋给q,使q也指向p所指向的存储单元,该存储单元中存放的是常量0,而q被定义为一个指向指针的指针变量,它所指向的存储单元中应该存放的是地址值,故不正确。所以,4个选项中选项D符合题意。

  • 第2题:

    程序中若有如下说明和定义语句

    Char fun(char *);

    main()

    {

    char *s="one", a[5]={0}.(*f1)()=fun, ch;

    }

    以下选项中对函数fun的正确调用语句是

    A.(*f1)(A) ;

    B.*fl(*s);

    C.fun(&A) ;

    D.ch=*fl(s);


    正确答案:A
    解析:在C语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这种地址.其定义形式为:函数类型(*函数指针名)(函数参数列表);其中,函数参数列表可以省略。通过函数指针调用函数的形式为:(*函数指针)(函数参数列表)调用时函数的参数列表是不能省略的。所以本题的正确答案为选项A。

  • 第3题:

    设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 ______。

    A.p=1;

    B.*q=2

    C.q=p

    D.*p=5


    正确答案:D
    解析:本题中n是int型变量,p是指向int型的指针变量,q是指向指针的指针变量,故正确答案为D。

  • 第4题:

    以下选项中正确的定义语句是______。

    A.double a;b;

    B.double.a=b=7;

    C.double a=7,b=7;

    D.double,a,b;


    正确答案:C
    解析:C语言规定,每个语句和数据定义以分号结束,则说明选项A是两条语句,前—条是对变量a作双精度型定义的语句,而后一个“b;”是一个缺少类型的不正确的定义形式,如果是定义多个变量,则应用逗号隔开;当定义多个变量赋同—个值时,不能用等式连写的方式,如选项B的“double a=b=7;”应写成“double a=7,b=7;”所以选项B错误,选项C正确;在定义语句时,类型与变量名之间应用空格分隔,而不是逗号,所以选项D错误。

  • 第5题:

    若以下选项中的变量已正确定义,则正确的赋值语句是( )

    A.x1=26.8%3

    B.1+2=x2

    C.x3=0x12

    D.x4=1+2=3;


    正确答案:C
    解析:在C语言中,“ =”称为赋值运算符,“=”符号的左边必须是变量名,“=”符号的右边必须是C 语言中合法的表达式。在选项B)中,0x12表示16进制数;在选项D)中,1+2=3不是正确的表达式。选项A)中,“%”符号的运算对象为整型。

  • 第6题:

    若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    在函数调用前,需要定义或声明,A)选项错误。

  • 第7题:

    有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是A.fun(int y,double m); B.k=fun(10,12.5); C.fun(x,n); D.void fun(n,x);


    正确答案:C
    选项A中,fun(int y,double m);中变量y和m前不需要类型说明;因为函数fun(10,12.5)没有返回值,所以选项B错误;调用函数fun时,不需要在函数前面加上void,所以选项D错误。故本题的正确答案是选项C。

  • 第8题:

    有以下函数定义; void fun(int n,double x){......} 若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:函数调用的一般形式为;函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选C。

  • 第9题:

    有定义语句:“int*p[4];”,以下选项中与此语句等价的是( )。 A.int p[4];B.int**P;SXB

    有定义语句:“int*p[4];”,以下选项中与此语句等价的是( )。

    A.int p[4];

    B.int**P;

    C.int*(p[4]);

    D.int(*p)[4];


    正确答案:D
    本题int*p[4]的作用是声明一个指针数组,每个元素都是int*型指针。

  • 第10题:

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

    A.scanf(“%d”,a,b,

    B.scanf(“%d%d%d”,a,b,

    C.scanf(“%d”,p);

    D.scanf(“%d”,&p);


    正确答案:C

  • 第11题:

    有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()

    • A、fun(inty);
    • B、k=fun(10);
    • C、fun(x);
    • D、voidfun(n);

    正确答案:C

  • 第12题:

    单选题
    若有定义: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选项。

  • 第13题:

    有以下函数定义: void fun(int n, double x) {……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:本题考查函数调用。函数调用时,实参前不需加类型说明,选项A)错误;题目中的函数没有返回值,所以选项B)错误;函数调用前不需要加类型说明,选项D)错误。

  • 第14题:

    有以下程序中若有如下说明和定义语句; char fun(char*); main() { char * s="one",a[5]={0},(*f1)()=fun,ch; … } 以下选项中对函数fun的正确调用语句是 ______。

    A.(*f1)(a);

    B.*f1(*s);

    C.fun(&a);

    D.ch=*f1(s);


    正确答案:A
    解析:(*f1)()=fun可以理解为将fun函数的函数名称用(*f1)()来代替了,因此高调用fun时就可以用(*f1)()来代替,因此只有A是正确的。

  • 第15题:

    有定义语句:int*p[4],以下选项中与此语句等价的是( )。

    A.int p[4];

    B.int**p;

    C.int*(p[4]);

    D.int(*p)[4];


    正确答案:C

  • 第16题:

    若在定义语句int a ,b,c,* P=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。

    A.

    B.

    C.

    D.


    正确答案:D
    seartf函数中的输入项必须是指针,只有选项D)符合这个要求。

  • 第17题:

    下列选项中,能正确定义数组的语句是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    数组定义的长度必须为常量,所以A)选项正确。

  • 第18题:

    以下选项中正确的定义语句是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    B)选项,定义变量不能连等,C)选项b前没有类型名,D)选项类型名与变量名之间不能有逗号,所以A)正确,其余错误。

  • 第19题:

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。 A.a<>b+cS

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。

    A.a<>b+c

    B.ch=getchar

    C.a= =b+C

    D.a++


    正确答案:A
    符号<>不是C语言中的运算符,所以不能替代。

  • 第20题:

    以下不正确的定义语句是( )。


    正确答案:B

  • 第21题:

    下列选项中,能正确定义数组的语句是( )。

    A.

    B.

    C.

    D.


    正确答案:D
    选项A)不符合c语言的语法要求;选项B)中没有指定数组的大小;选项c)中数组大小不能用变量来指定。

  • 第22题:

    若在定义语句:inta,b,c;之后,接着执行以下选项中的语句,则能正确执行的语句是()

    • A、scanf("%d",a,b,c)
    • B、scanf("%d%d%d",&a,&b,&c)
    • C、scanf("%d%d%d",&a,b,c)
    • D、scanf("%d%d%d",a,b,c)

    正确答案:B

  • 第23题:

    单选题
    若主函数中有定义语句:int a[10],b[10],c;在主函数前定义的fun函数首部为void fun(int x[])则以下选项中错误的调用语句是(  )。
    A

    fun(b);

    B

    fun(&c);

    C

    fun(&a[3]);

    D

    fun(b[11]);


    正确答案: C
    解析:
    fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。答案选择D选项。

  • 第24题:

    单选题
    有定义语句: int *p[4]; 以下选项中与此语句等价的是(  )。
    A

    int p[4];

    B

    int **p;

    C

    int*(p[4]);

    D

    int(*p)[4];


    正确答案: D
    解析:
    题目中定义语句的含义是定义了一个包含4个整数指针元素的数组p。A项,仅定义了一个含有4个整数元素的数组;B项,定义了一个指向整数指针的指针;D项,声明了一个指针变量,它指向的是一个含4个元素的一维数组。答案选择C选项。