niusouti.com
参考答案和解析
正确答案:B
更多“设char*s="/tabc/017/’/n";则指针变量s指向”相关问题
  • 第1题:

    已知char **t;则变量t是

    A.指向char变量的指针

    B.指向指针的char变量

    C.指向指针的指针

    D.以上说法都不对


    正确答案:C

  • 第2题:

    设有下面的程序段:

    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)的说法正确。

  • 第3题:

    以下能将字符串“good!”正确地存放在字符数组s中,或使指针;能指向这个字符串的是(33)。

    A.char s[4]={'g','o','o','d','!')

    B.char s[5];s="good!";

    C.int s[5]="good!";

    D.char *s;s="good!:;


    正确答案:D
    解析:选项A是逐个字符赋值,字符数组末尾无“'\0'”结束符,因此不是字符串。选项A应更正为:chars[5]={'g','o','o','d','!','\0'}。选项B的错误在于,在赋值语句中对字符数组进行整体赋值。通常,在定义时可以对字符数组进行字符串的整体赋值。chars[5]="good!";是对选项B的更正。选项C存在语法错误。数组类型为int型,不是char型,不能进行初始化。chars[5]="good!";是对选项C的更正。选项D的“char*s;s="good!";”,是通过指针s指向字符串"good!"。

  • 第4题:

    语句Char(*P)说明了( )。

    A.P是指向函数的指针,该函数返回一个Char型数据

    B.P是指向Char型数据的指针变量

    C.P是指向数组的指针变量

    D.P是一个函数名,该函数的返回值是指向Char型数据的指针


    正确答案:A
    P是指向函数的指针,该函数返回一个char型数据。

  • 第5题:

    若有下面的程序段: 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)。

  • 第6题:

    设指针变量p指向双向链表中节点A,指针变量s指向被插入的节点X,则在节点A的后面插入节点X的操作序列为()

    A.p->right=s;s->left=p;p->right->left=s;s->right=p->right;
    B.p->right=s;p->right->left=s;s->left=p;s->right=p->right;
    C.s->left=p;s->right=p->right;p->right=s;p->right->left=s;
    D.s->left=p;s->right=p->right;p->right->left=s;p->right=s;

    答案:D
    解析:
    为了防止在插入节点时链表断裂,在修改指针时,需要先使s的后继指针指向p原来的后继节点,然后修改p的后继指针。

  • 第7题:

    假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。

    Achar *p=s;

    Bchar *p=&s;

    Cchar *p;p=*s;

    Dchar *p; p=&s;


    A

  • 第8题:

    设指针x指向的整型变量值为25,则printf(“%d/n”,++*x);的输出是()。

    • A、26
    • B、25
    • C、24
    • D、23

    正确答案:A

  • 第9题:

    设变量定义为char format[]=“s=%d/n”;则数组format中有()个元素。

    • A、4
    • B、5
    • C、6
    • D、7

    正确答案:C

  • 第10题:

    单选题
    假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。
    A

    char *p=s;

    B

    char *p=&s;

    C

    char *p;p=*s;

    D

    char *p; p=&s;


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点x,则入队列的操作序列为(  )。
    A

    front->next=s;front=s;

    B

    s->next=rear;rear=s;

    C

    rear->next=s;rear=s;

    D

    s->next=front;front=s;


    正确答案: A
    解析:

  • 第12题:

    单选题
    设有如下程序段:char s[20]= Bejing,*p;p=s:则执行p=s;语句后,以下叙述正确的是(  )。
    A

    可以用*p表示s[0]

    B

    s数组中元素的个数和p所指字符串长度相等

    C

    s和p都是指针变量

    D

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


    正确答案: A
    解析:
    A项正确,p=s;后,指针p指向s的首地址,*p=s[0];B项错误,p是字符串指针所指向的字符串为"Bejing",其长度为7,而数组a中元素的个数为20;C项错误,s为字符数组名;D项,数组s中有20个元素,其中s[6]~s[19]都为0,p中只有7个元素。答案选择A选项。

  • 第13题:

    设有下列程序段: char s[20]="Beijing",*p; p=s; 则执行p=s;语句后,下列叙述正确的是( )。

    A.可以用*p表示s[0]

    B.s数组中元素的个数和p所指字符串长度相等

    C.s和p都是指针变量

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


    正确答案:A
    解析:程序定义了字符数组s和字符型指针变量p,并且使得p指向数组,执行p=s;语句后,*p即表示s[0];s数组中元素的个数和 p所指字符串长度不相等,因为s数组中元素的个数包括字符串结束标志“\0”,而p所指字符串长度不包括“\0”;s是字符型数组,p是指针变量;数组s中的内容和指针变量p中的内容不相同,数组中存放的是字符串,而指针变量p存放的是数组的首地址。

  • 第14题:

    设函数f的原型是:char *f (const char*);,pf 是指向f 的指针,则pf 的定义是【 】。


    正确答案:char(*p)(const char*)=f;
    char(*p)(const char*)=f; 解析:如果要使指针指向函数,函数的原型应该改为上面的形式。

  • 第15题:

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】include move(char *str,

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】

    include <string.h>

    move(char *str, int n)

    { char temp; int i;

    temp=str[n-1];

    for(i=n-1;i>0;i--) str[i]=str[i-1];

    str[0]=temp;

    }

    main( )

    { char s[50]; int n, i, z;

    scanf("%d,%s",&n,s);

    z=strlen(s);

    for(i=1; i<=n; i++) move(s, z);

    printf("%s\n",s);

    }


    正确答案:cdeab
    cdeab 解析:本题主要考查函数move()的功能。经过分析可知,每次调用该函数时,都是把最后一个字符移到串的最前端,而原先的第一个字符至倒数第二个字符顺次后移。

  • 第16题:

    变量s的定义为“char *s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则应选取(47)。

    A.char *p=s;

    B.char *p=&s;

    C.char *p;p=*s;

    D.char *p; p=&s;


    正确答案:A
    解析:按照要求,p应该定义为一个指向字符串的指针,它的值和s一样,所以选择A。

  • 第17题:

    设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。

    A.p->next=s;s->next=q;
    B.q->next=s;s->next=p;
    C.p->next=s->next;s->next=p;
    D.s->next=p->next;p->next=-s;

    答案:B
    解析:
    插入s结点,应使s的next指针指向p结点,使q结点的next指针指向s。

  • 第18题:

    设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。

    A.s->next=rear;rear=s;
    B.front->next=s;front=s;
    C.rear->next=s;rear=s;
    D.s->next=front;front=s;

    答案:C
    解析:
    向队列插入元素,即入队操作,应该在队尾进行,所以需要修改尾指针,实现新结点的人队。

  • 第19题:

    变量s已定义为"char *s="Heoll world!";",要使变量p指向s所指向的同一个字符串,则应定义为()。

    Achar *p=s;

    Bchar *p=&s;

    Cchar *p;p=*s;

    Dchar *p;p=&s;


    A

  • 第20题:

    在一个单链表中,己知指针q所指向的结点是指针P所指向的结点的前趋结点,若在指针q和p所指向的两个结点之间插入指针s指向的结点,则执行()

    • A、 p->next=s;s->next=q
    • B、 q->next=s;s->next=p
    • C、 S->next=p->next;p->next=s
    • D、 p->next=s->next;s->next=q

    正确答案:B

  • 第21题:

    设指针x指向的变量值为25,则printf("%d/n",++*x);的输出结果是()

    • A、23
    • B、24
    • C、25
    • D、26

    正确答案:D

  • 第22题:

    单选题
    在一个单链表中,己知指针q所指向的结点是指针P所指向的结点的前趋结点,若在指针q和p所指向的两个结点之间插入指针s指向的结点,则执行()
    A

     p->next=s;s->next=q

    B

     q->next=s;s->next=p

    C

     S->next=p->next;p->next=s

    D

     p->next=s->next;s->next=q


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    变量s已定义为"char *s="Heoll world!";",要使变量p指向s所指向的同一个字符串,则应定义为()。
    A

    char *p=s;

    B

    char *p=&s;

    C

    char *p;p=*s;

    D

    char *p;p=&s;


    正确答案: A
    解析: 暂无解析