更多“设有程序段:char s[]=china; char *p ; p=s ; 则下面叙述正确的是( ) 。 ”相关问题
  • 第1题:

    若有下面的程序段: chars[]="china";char *p;p=s;则下列叙述正确的是( )。

    A.s和p完全相同

    B.数组s中的内容和指针变量p中的内容相等

    C.数组s的长度和p所指向的字符串长度相等

    D.*p与s[0]相等


    正确答案:D
    解析:字符型指针变量p中存放的是“china"的首地址,所以选项A)和B)错误;s数组长度为6,而p所指向的字符串长度为5,二者不相等,排除选项C)。

  • 第2题:

    请选出下面正确的程序段( )。

    A.int *s; scanf("%d",s); ┆

    B.int *s,k; *s=100; ┆

    C.int *s,k; char *p, c; s=&k; p=&c; *p='a'; ┆

    D.int *s,k; char *p, c; s=&k; p=&c; s=p; *s=1; ┆


    正确答案:C
    解析:本题的选项A)和B)犯了一个同样的错误,即指针变量s定义后并没有指向具体的变量。也就是说,s中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

  • 第3题:

    有以下程序段: char s[]="china"; char *p; p=s; 则以下叙述中正确的是(40)。

    A.数组s中的内容和指针变量p中的内容相等

    B.s和p完全相同

    C.sizeof(s)与sizeof(p)结果相同

    D.*p和s[0]相等


    正确答案:D
    解析:本题考查对数组和指针的理解。题目中给出的程序段首先是将字符串"china"放进数组s中,接下来声明了一个字符型指针变量p,并使指针变量p指向数组s。指针变量p中存放的是数组s的首地址,而数组s中存放的是字符串"china",内容根本不同;数组名s是一个常量,表示的是数组首元素在内存中的首地址,虽然指针变量p中存放的也是数组s的首地址,但不完全相同;sizeof()函数的作用是求参数的长度,由于数组s中的内容和指针变量p中的内容不同,用函数sizeof()求得的结果肯定不同。*p表示取数组的第一个元素,而s[0]也表示取数组的第一个元素,因此相等。

  • 第4题:

    有以下程序: include main( ) { char *p ,* q; p=(char * )malloc(sizeof(char

    有以下程序: #include<stdlib.h> main( ) { char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf("%s%s",p,q); printf("%s%s\n",p,q); } 若从键盘输入:abc def<回车>,则输出结果是

    A.def def

    B.abc def

    C.abc d

    D.d d


    正确答案:A

  • 第5题:

    设有下面的程序段: char s[]="china"; char*p;p=s; 则下列叙述正确的是

    A.s和p完全相同

    B.数组s中的内容和指针变量p中的内容相同

    C.s数组长度和p所指向的字符串长度相等

    D.*p与s[0]相等


    正确答案:D
    解析:选项A)中,s为数组名,是一个常量地址,而指针p为一个字符变量,不能说两者完全相同,所以选项A)错误。选项B)和C)的说法都不严谨,只有选项D)的说法正确。注意:用于字符串处理的函数。