更多“以下选项中,正确运用指针变量的程序段是()。A.int*i=NULL;B.float*f=NULL; scanf("%d",i); *f=10. ”相关问题
  • 第1题:

    若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是

    A.int *i=NULL; scanf("%d",i;

    B.float *f=NULL; *f=10.5;

    C.char t='m',*c=&t; *c=&t;

    D.long *L; L='\0';


    正确答案:D
    解析:选项A定义了一个整型变量i,并且初始化让它指向NULL,接着通过scanf()函数,改变i指向的存储空间的值,选项A中首先定义了整型指针变量i并初始化为NULL,即表示指针i不指向任何内存,即此时程序还没有为i在内存中开辟存储单元,而在scanf()函数中第二个参数是地址参数,显然在这里i不是表示地址,所以下面的 scanf(“%d”,i)语句是不正确的;选项B定义了一个浮点型变量f并初始化让它指向 NULL,而当一个指针变量指向NULL以后不能再给它赋值,而接下来的程序中为其赋了一值;选项C中首先定义了一个字符变量t并给它赋初值'm',然后定义一个字符型指针c并让它指向了变量t,这一部分正确,然后接着用了一个语句“*c=&t;”应该将该语句中c前的“*”去掉。

  • 第2题:

    若程序中已包含头文件stdio.h,以下选项能正确运用指针变量的程序段是( )。

    A.int *i=NULL; scanf("%d",i);

    B.float *f=NULL; *f=10.5;

    C.char t='m',*c; *c=&t;

    D.long *L; L='\0';


    正确答案:D
    解析:本题考查指针变量的运用。选项A)、B)的指针定义错误,空指针NULL是对指针变量赋。值而得到的。例如:#defineNULL0int*p=NULL;对指针变量赋。值和不赋值的时候意义是不同的:指针变量未赋值时,它是指向任意不确定的存储单元,不能使用,否则将造成意外错误;而指针变量赋0值后,则可以使用,只是它不指向具体的变量而已。选项C)中的*c=&t;错误,因为&t是地址,而*c是值。选项D)是让指针L指向字符串的末尾,即字符串的结束符。

  • 第3题:

    设变量已正确定义,则以下能正确计算n!的程序段是()。

    A.f=0; for(i=1; i<=n; i++)f*=i;

    B.f=1; for(i=1; i<n; i++)f*=i;

    C.f=1; for(i=n; i>1; i++)f*=i;

    D.f=1; for(i=n; i>=2; i--)f*=i;


    D解析:A选项,将f赋值为0,结果得到0,因为0乘任何数都为0;B选项,i<n,计算的是(n-1)!

  • 第4题:

    若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是

    A.int *i = NULL; scanf("%d", i);

    B.float *f = NULL; *f = 10.5;

    C.char t = 'm', *c = &t; *c = &t;

    D.long *L; L = '\0';


    正确答案:D
    解析:选项A定义了一个整型变量i,并且初始化让它指向NULL,接着通过seanf()函数,改变i指向的存储空间的值,选项A中首先定义了整型指针变量i并初始化为NULL,即表示指针i不指向任何内存,即此时程序还没有为i在内存中开辟存储单元,而在scanf()函数中笫;个参数是地址参数,显然在这里i不在表示地址,所以下面的scanf("%d",i)语句是不正确的,故选项A不正确;选项B定义了一个浮点型变量f并初始化让它指向NULL,而当一个指针变量指向NULL以后不能在给它赋值,而按下来的程序中为其赋了一值,故选项B错误;选项C中首先定义了一个字符变量t并给它赋初值'm',然后定义一个字符型指针c并让它指向了变量t,这一部分正确,然后接着用了一个语句“c=&t;”应该特该语句中c前的“*”去掉,故选项c运用指针变量不正确。所以,4个选项中选项D符合题意。

  • 第5题:

    设变量已正确定义,则以下能正确计算n!的程序段是 。

    A.f=0; for(i=1; i<=n; i++)f*=i;

    B.f=1; for(i=1; i<n; i++)f*=i;

    C.f=1; for(i=n; i>1; i++)f*=i;

    D.f=1; for(i=n; i>=2; i--)f*=i;


    f=1; for(i=n; i>=2; i--)f*=i;