niusouti.com
更多“有以下说明语句:char *s = "\"Name\\Address";指针s所指字符串的长度是( )。”相关问题
  • 第1题:

    以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char*s,char*t){while(*s++=);}main(){ char str1[100],str2[]="abcdefgh"; sstrcpy(str1,str2); printf("%s\n",strl);}


    正确答案:*t++ 或 *(t++)
    将t所指字符赋给s,然后各自增1,指向下一字符,知道遇到最后的字符‘0’,则退出循环。

  • 第2题:

    有以下结构体说明、变量定义和赋值语句 struct STD { char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是______。

    A.scanf("%s",s[0].name);

    B.scanf("%d",&s[0].age);

    C.scanf("%c",&(ps->sex));

    D.scanf("%d",ps->age);


    正确答案:D
    解析:要给结构体成员输入数据,在scanf语句中需要使用结构体成员的地址。函数scanf是C语言的标准输入函数,其作用是在终端设备上输入数据,而且要求输入项必须是某个存储地址。选项A中是引用结构体数组s的第0个元素s[0]的name成员,name是包含10个元素的数组,数组名就表示数组的地址,也就代表s[0].name的地址,所以选项A是正确的。选项B显然也是正确的,选项C是先用指针变量引用结构体的成员sex后取它的地址,也是正确的。选项D用指针变量引用结构体的成员sex后没有再继续取其地址,所以是错误的。

  • 第3题:

    设有下列程序段: 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存放的是数组的首地址。

  • 第4题:

    以下语句或语句组中,能正确进行字符串赋值的是( )。

    A.char*sp;*sp="right!";

    B.char s[10];s="right!";

    C.char s[10];*s="right!";

    D.char*sp="right!";


    正确答案:D
    解析:本题的考点是C语言的数组和指针。C的数组名是一个特殊类型的指针,固定指向数组第一个元素的位置,运行过程中不能再改变其指向。因此选项B、C都是错误的。指针可以指向任何单元,但选项A是错误的,因为赋值语句“*sp=”right!”;”是错误的,正确写法是“sp=”right!”;”。而对于选项D,由于“char*sp="right!";”是定义指针同时赋初值,因此是正确的。

  • 第5题:

    下面各语句中,能正确进行赋字符串操作的语句是

    A.char s[5]= { "ABCDE" };

    B.char s[5]= { 'A' ,' B' ,' C' ,' D' ,' E' };

    C.char *s; s = "ABCBE";

    D.char *s; scanf("%s", s);


    正确答案:C

  • 第6题:

    以下语句或语句组中能正确进行字符串赋值的是( )。

    A.ehar以*sp; * sp = "right!";

    B.char s[10] ;s = "right!";

    C.char s [10]; * s = "right !";

    D.char * sp = "right !";


    正确答案:D
    解析:选项A)应将*sp="right!";中的*叩改为sP,即把字符串"right!”的首地址赋给指针变量sp;选项B)中的s代表数组的首地址,不能给它赋字符串,只能在定义数组时,对其进行初始化;选项C)中的。s指的是数组的第一个元素,不能给它赋字符串。

  • 第7题:

    有以下函数: int fun(char * s) {char * t=s; while(*t++); return(t-s) 该函数的功能是______。

    A.比较两个字符串的大小

    B.计算s所指字符串占用内存字节个数

    C.计算s所指字符串的长度

    D.将s所指字符串复制到字符串t中


    正确答案:C
    解析: 定义一个字符指针t,并将字符指针s的首地址赋给字符指针t;通过while语句将指针t往下移到字符串最后一个字符后面的地址,指针s始终指向首地址,将末地址减去首地址可以计算出字符串的长度。

  • 第8题:

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

  • 第9题:

    以下能将字符串,you are luck!正确读入的语句组是( )

    A.char s[80]; scanf("%s",s);

    B.char *s: scanf("%s",s);

    C.char s[80]; gets(s);

    D.char *s; gets(3);


    正确答案:C

  • 第10题:

    单选题
    有以下函数 int fun(char *s) {  char *t=s;  while(*t++);  return(t-s); } 该函数的功能是(  )。
    A

    计算s所指字符串占用内存字节的个数

    B

    比较两个字符串的大小

    C

    计算s所指字符串的长度

    D

    将s所指字符串复制到字符串t中


    正确答案: A
    解析:
    本题中,首先让t指向形参s,然后通过一个循环体为空的while循环,将t逐次后移,直到其所指内容为'\0'(字符串结束标志)。此时t仍然会被增1,所以从循环出来,t指向的是s所指字符串的结束标志的后一个字节。因此,返回的t-s是s所指字符串占用内存字节的个数,A项正确。而C项所说的长度并不包括字符串结束标志位,错误。答案选择A选项。

  • 第11题:

    单选题
    标准函数fgets(s,n,f)的功能是()
    A

    从文件f中读取长度为n的字符串存人指针s所指的内存

    B

    从文件f中读取长度不超过n-1的字符串存人指针s所指的内存

    C

    从文件f中读取n个字符串存人指针s所指的内存

    D

    从文件f中读取长度为n-1的字符串存入指针s所指的内存


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

  • 第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题:

    函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp()),请填空。#include<stdio.h>int sstrcmp(char *s,char *t){ while(*s&&*t&&*s= =){s++;t++; }return;}


    正确答案:*t或t[0] *s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]
    当s所指字符和t所指字符不等时,退出循环;否则继续执行循环。当发现不等时,返回*s-*t,即如果s所指字符大于t所指字符,则返回值大于0,小于则返回值小于0.

  • 第14题:

    有以下函数 int fun(char *s) { char *t=s; while(*t++); return(t-s); } 该函数的功能是

    A.比较两个字符串的大小

    B.计算s所指字符串占用内存字节的个数

    C.计算s所指字符串的长度

    D.将s所指字符串复制到字符串t中


    正确答案:B
    解析:循环语句while(*t++);执行完时,指针变量t就指向了字符中结束符‘\o’之后的位置,所以语句return(t-s);返回的就是字符串s所用内存的字节个数。

  • 第15题:

    设有下面的程序段:

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

  • 第16题:

    以下能将字符串“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!"。

  • 第17题:

    有下列函数: int fun(char*s) {char*t=s; while(*t++); return(t-s); } 该函数的功能是( )。

    A.比较两个字符串的大小

    B.计算s所指字符串占用内存字节的个数

    C.计算s所指字符串的长度

    D.将s所指字符串复制到字符串t中


    正确答案:C
    解析: 在函数fun(char*s)中,首先用字符指针变量t指向s,而循环语句while(*t++);的功能是使指针变量t指向字符串变量s的末尾,这时退出循环,因而语句return(t-s);返回的就是字符串s所指字符串的长度。

  • 第18题:

    设有如下程序段:则执行P=s;语句后,以下叙述中正确的是( )。

    A.可以用* P表示s[O]

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

    C.s和P都是指针变量

    D.数组s中的内容和指针变量P中的内容相等


    正确答案:A
    P=8;后,指针P指向s的首地址,*P=s[0],因此选项A)是正确的;p是字符串指针,所指向的字符串为”beijing”,其长度为7,而数组s中元素的个数为20,因此选项B)和D)是错误的;s是数组,不是指针变量,所以选项C)也是错误的。

  • 第19题:

    以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #include<string> char*scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0) return(s1); else retrun(s2); } main() { int i;char string[20],str[3][20]; for(i=0;i<3;i+

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B

  • 第20题:

    以下能正确进行字符串赋值、赋初值的语句是______。

    A.char s[5]:{'a','e','i','o','u'};

    B.char *s; s="good";

    C.char s[5]="good";

    D.char s[5]; s="good";


    正确答案:C

  • 第21题:

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

    Achar *p=s;

    Bchar *p=&s;

    Cchar *p;p=*s;

    Dchar *p; p=&s;


    A

  • 第22题:

    单选题
    有以下函数:int fun(char *s,char *t){ while((*s)&&(*t)&&(*t++==*s++)); return (*s-*t);}函数的功能是(  )。
    A

    求字符串的长度

    B

    比较两个字符串的大小

    C

    将字符串s复制到字符串t中

    D

    连接字符串s和字符串t


    正确答案: C
    解析:
    函数体执行过程为:将两个字符串首地址传入函数,分别赋给指针s与t,在函数体内s与t所指向的字符串的字符不为'\0'时,判断两个指针指向的字符是否相同,若相同则两个指针分别加一指向下一个字符,若不同则退出while循环,返回不相同的字符的ASCII码值之差。返回值大于0表示字符串s>t;返回值小于0表示s<t;返回值为0,表示s=t。函数实现了比较两个字符串大小的功能。答案选择B选项。

  • 第23题:

    单选题
    标准库函数fgets(s,n,f)的功能是(  )。
    A

    从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

    B

    从文件f中读取长度为n的字符串存入指针s所指的内存

    C

    从文件f中读取n个字符串存入指针s所指的内存

    D

    从文件f中读取n-1个字符串存入指针s所指的内存


    正确答案: D
    解析:
    fgets函数功能是从f所指文件中读入n-1个字符放入s为起始地址的空间内,并在尾端自动加一个结束标志“\0”。同时将读/写位置指针向前移动字符串长度个字节。在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束,A项正确。B项中“读取长度为n”错误。C项与D项中“读取n/n-1个字符串”错误,读取的是n-1个字符。答案选择A选项。