目录: 标题| 题干| 答案| 搜索| 相关
问题

若有下面的程序段char s[]="china";char *p; p=s;


若有下面的程序段char s[]="china";char *p; p=s;则下列叙述正确的是A.s和p完全相同 B.数组s中的内容和指针变量p中的内容相等C.s数组长度和p所指向的字符串长度相等 D.*p与s[0]相等

  • As和p完全相同
  • B数组s中的内容和指针变量p中的内容相等
  • Cs数组长度和p所指向的字符串长度相等
  • D*p与s[0]相等
参考答案
参考解析:

本题考查数组与指针的关系。C语言规定数组名代表数组中第一个元素的地址,题目中给出了p=s,即p=&s[0],所以有*p=s[0]。A选项说s和p完全相同是错误的,因为s是数组名,是一个常量,而p是一个指针变量;B选项说数组s中的内容和指针变量p中的内容相等也是错误的,因为数组s中的内容是字符串“china”,而指针变量p中的内容是数组的首地址;C选项说s数组长度和p所指向的字符串长度相等也是错误的,因为字符串存放在数组中时,至少需要多出一个存放字符串结束标识的单元。

分类:其他
相关推荐

1、若有定义和语句: char s[10]:s=""abc

若有定义和语句:char s[10]:s=""abcd"";printf(""%sn"",s);则结果是(以下u代表空格)()A输出abcdB输出aC输出abcduuuuuD编译不通过

2、若有下面的程序段#include "stdio.h"main(){ int

若有下面的程序段#include "stdio.h"main(){ int i=6; while(i--) printf("%d",--i); printf("\n");}那么程序的输出结果为A.531 B.420C.654321 D.死循环A531 B420C654321 D死循环

3、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大

若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++)s=s+1; 则与上述程序段功能等价的赋值语句是As=a+b;Bs=a+c;Cs=s+c;Ds=b+c;

4、若有下面的说明和定义struct test{ int ml; char m2

若有下面的说明和定义struct test{ int ml; char m2; float m3;union uu {char ul[5]; int u2[2];} ua;} myaa;则sizeof(struct test )的值是A12B16C14D9

5、若有定义: char *st= "how are you "; 下列程序段中

若有定义: char *st= "how are you "; 下列程序段中正确的是Achar a[11], *p; strcpy(p=a+1,&st[4]);Bchar a[11]; strcpy(++a, st);Cchar a[11]; strcpy(a, st);Dchar a[], *p; strcpy(p=&a[1],st+2);

6、有下列程序:main{ char p[]={a,h,c},q[]="

有下列程序:main{ char p[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是( )。A4 4B3 3C3 4D4 3