itgle.com
更多“若有定义 char s[10];则在下面表达式中不表示s[1]的地址的是()。”相关问题
  • 第1题:

    若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)while(s[i]){d[j]=;j++;}d[j]=0;


    正确答案:s[i++]
    当s中最后一个数组元素不是0(没有拷贝完),将数组元素赋给d.然后i++.

  • 第2题:

    已知如下定义: String s = "story"; 下面哪些表达式是合法的?()

    A.s += "books";

    B.char c = s[1];

    C.int len = s.length;

    D.String t = s.toLowerCase();


    正确答案:AD

  • 第3题:

    若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是______。

    A.4

    B.5

    C.9

    D.10


    正确答案:A
    解析:函数strcpy(s1,s2)的返回结果是指针s1的新值"1234",因此求串长函数的结果为4。

  • 第4题:

    程序中若有如下说明和定义语句

    Char fun(char *);

    main()

    {

    char *s="one", a[5]={0}.(*f1)()=fun, ch;

    }

    以下选项中对函数fun的正确调用语句是

    A.(*f1)(A) ;

    B.*fl(*s);

    C.fun(&A) ;

    D.ch=*fl(s);


    正确答案:A
    解析:在C语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这种地址.其定义形式为:函数类型(*函数指针名)(函数参数列表);其中,函数参数列表可以省略。通过函数指针调用函数的形式为:(*函数指针)(函数参数列表)调用时函数的参数列表是不能省略的。所以本题的正确答案为选项A。

  • 第5题:

    若有以下定义,则不能代表字符。的表达式是______。 char s[20]="programming",*ps=s;

    A.ps+2

    B.s[2]

    C.ps[2]

    D.ps+=2,*ps


    正确答案:A
    解析:ps是指针变量,ps+2是地址值,表示s[2]的地址,并不能代表s[2]的值‘o’;选项B、C、D均能代表s[2]的值‘o’。

  • 第6题:

    若有定义语句:char s[3][10],(*k)[3]。*P;,则以下赋值语句正确的是

    A.p=S;

    B.p=k;

    C.p=s[0];

    D.k=S;


    正确答案:C

  • 第7题:

    若有如下定义: int s[3] 则下面表达式中不能代表数组元素s[1]的地址的是( )

    A.&s[1]

    B.&s[0]+1

    C.s+1

    D.s++


    正确答案:D

  • 第8题:

    若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是;

    A.p=s;

    B.p=k

    C.p=s[0]

    D.k=s;


    正确答案:C

  • 第9题:

    设下面程序段中调用fun函数传送实参a和b, main() { chara[10],b[10] ┇ fun(a,b); ┇ } 则在fun函数首部中,对形参错误的定义是( )

    A.fun(char a[10],b[10]){…}

    B.fun(char a1[],char a2[]){…}

    C.fun(char p[10],char q[10]){…}

    D.fun(char*s1,char*s2){…}


    正确答案:A

  • 第10题:

    (28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是

    A)p=s;

    B)p=k;

    C)p=s[0];

    D)k=s;


    正确答案:C

  • 第11题:

    若已定义chars[10];则在下面表达式中不表示s[1]地址的是()

    • A、s+1
    • B、s++
    • C、&s[0]+1
    • D、&s[1]

    正确答案:B

  • 第12题:

    单选题
    若有定义语句:char s[3][10],(*k)[3],*p; 则以下赋值语句正确的是(  )。
    A

    p=s;

    B

    p=k;

    C

    p=s[0];

    D

    k=s;


    正确答案: C
    解析:
    A项,将字符型二维数组首地址赋值给了一个字符型指针,类型不匹配;B项,将指针数组的首地址赋值给一个字符型指针,类型不匹配;C项,s是二维字符数组,s[0]表示一个含有10个元素的一维数组,即将一维字符数组首地址赋值给了一个字符型指针,这是允许的;D项,将二维字符数组赋值给了指向一维字符数组的指针,类型不匹配。答案选择C选项。

  • 第13题:

    若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

    A.char y[10]; strcpy(y,x[4]);

    B.char y[10]; strcpy(++y,&x[1]);

    C.char y[10],*s; strcpy(s=y+5,x);

    D.char y[10],*s; strcpy(s=y+1,x+1);


    正确答案:D
    解析:选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。

  • 第14题:

    若有定义:char *s="Programming";,以下叙述中有错误的是______。

    A.变量s中存放了字符P的地址

    B.s[0]中存放了字符P

    C.*s中存放了字符P

    D.s中存放了一个字符串


    正确答案:D
    解析:将一个字符型指针s指向一个字符串,s中存放的是该字符串的首地址。

  • 第15题:

    若有以下定义: char s(10)="program",t[]="test"; 则下列选项中对字符串操作错误的是( )。

    A.strcpy(s,t);

    B.strcat(s,t);

    C.cout<<strlen(s);

    D.gets(s);


    正确答案:B

  • 第16题:

    有以下程序中若有如下说明和定义语句; char fun(char*); main() { char * s="one",a[5]={0},(*f1)()=fun,ch; … } 以下选项中对函数fun的正确调用语句是 ______。

    A.(*f1)(a);

    B.*f1(*s);

    C.fun(&a);

    D.ch=*f1(s);


    正确答案:A
    解析:(*f1)()=fun可以理解为将fun函数的函数名称用(*f1)()来代替了,因此高调用fun时就可以用(*f1)()来代替,因此只有A是正确的。

  • 第17题:

    若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是______。

    A.7

    B.8

    C.9

    D.10


    正确答案:A
    解析:strlen(字符数组)是测试字符串的长度的函数。函数的值为字符串的实际长度,不包括'\0'在内。 C语言中字符串是以'\0'字符结束的,且salen()函数计算的是'\0'字符前的所有字符的个数,所以本题strlen(s)的值是7。需要与其区分的是sizeof()函数,它的功能是计算变量或数组所分配到的内存空间的大小。如果本题要求计算sizeof(s)的话,则其值应为10。

  • 第18题:

    若有以下定义语句: char * sl="12345", * s2="1234"; printf("%d"n",strlen(strcpy(s1,s2))); 则输出结果是 ( )

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第19题:

    若有以下定义: char s[20]="programming",*ps=s; 则不能代表字符o的表达式是_______。

    A.ps+2

    B.s[2]

    C.ps[2]

    D.ps+=2,*ps


    正确答案:A
    解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是错误的。

  • 第20题:

    若有byte b=6;short s=20;则表达式b+s的值的类型是()。

    A.byte

    B.int

    C.short

    D.char


    答案:C

  • 第21题:

    若有如下定义: int s[3][4]; 则下面表达式中能代表数组元素s[1][0]的值的是( )

    A.*(s+1)

    B.s[1]

    C.s+1

    D.*(s[1])


    正确答案:D

  • 第22题:

    若有定义char s[10];则在下面表达式中不表示s[1]的地址的是()

    • A、s+1
    • B、s++
    • C、&s[0]+1
    • D、&s[1]

    正确答案:B

  • 第23题:

    若有定义和语句: char s[10]:s=""abcd"";printf(""%s/n"",s); 则结果是(以下u代表空格)()

    • A、输出abcd
    • B、输出a
    • C、输出abcduuuuu
    • D、编译不通过

    正确答案:D

  • 第24题:

    单选题
    若有定义语句char s[10]=1234567\0\0,则strlen(s)的值是(  )。
    A

    7

    B

    8

    C

    9

    D

    10


    正确答案: B
    解析:
    C语言规定以字符’\0’作为字符串结束的标识符。strlen函数返回的是字符串的长度,不包含字符’\0’,所以值是7。答案选择A选项。