参考答案和解析
B
更多“若已定义 char s[10];则在下面表达式中不表示 s[1]地址的是”相关问题
  • 第1题:

    有以下字符串,说明表达式strlen(s)值的是( )。 char s[10]={'a','\n','a','b','\t','c'};

    A.10

    B.1

    C.6

    D.7


    正确答案:C

  • 第2题:

    若已包括头文件且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串“ABCDE”赋给s

    若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串“ABCDE”赋给s1,下列语句错误的是( )。

    A.strcpy(s1,s2)

    B.strcpy(sl,"ABCDE");

    C.s1="ABCDE";

    D.for(i=0;i<6;i++) s1[i]=s2[i];


    正确答案:C
    解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量,因此s1=“ABCDE”的方法是错误的。

  • 第3题:

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

    A.s += "books";

    B.char c = s[1];

    C.int len = s.length;

    D.String t = s.toLowerCase();


    正确答案:AD

  • 第4题:

    有以下字符串,说明表达式strlen(s)值的是( )。

    char s[10]={'a','\n','a','b','\t','c'};

    A)10

    B)1

    C)6

    D)7


    正确答案:C
    strlen(s)返回s字符串中字符的个数,若S是一个数组,则返回数组元素的个数。

  • 第5题:

    若已包括头文件,运行下面程序的输出结果是()。chars1[10]="12345",s2[10]="

    若已包括头文件<stdio.h>和<string.h>,运行下面程序的输出结果是( )。 chars1[10]="12345",s2[10]="089",s3[]="67"; strcat(strcpy(s1,s2),s3); puts(s1);

    A.8967

    B.894567

    C.89567

    D.89567


    正确答案:A

  • 第6题:

    若已包括头文件,运行下列程序段时输出结果是()。int i=0;char s1[10]="ABCD

    若已包括头文件<stdio.h>和<string.h>,运行下列程序段时输出结果是( )。 int i=0; char s1[10]="ABCD",s2[10]="EFG"; strcat(s1,S2); while(s2[i++]!='\0') s2[i]=s1[i]; puts(s2);

    A.ABC

    B.ABCDEF

    C.EBCDEFG

    D.CBD


    正确答案:C
    解析: strcat(s1,s2)把s2连接到s1的后面,s1=ABCDEFG,执行while(s2[i++]!='\0')后i的值变为1,往后执行s2[i]=s1[i]时是从把s1的第二位给s2的第二位开始,把s1赋给s2。

  • 第7题:

    设已包含头文件,下列程序段的运行结果是()。 char s1[]={"ACDEF"}; char s2[]="ABC"; s

    设已包含头文件<string.h>,下列程序段的运行结果是( )。

    char s1[]={"ACDEF"};

    char s2[]="ABC";

    strcpy(s1,s2) ;

    printf("%d",strlen(s1) );

    A.3

    B.4

    C.6

    D.5


    正确答案:A
    解析:头文件string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。
      strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

  • 第8题:

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

    A.*(s+1)

    B.s[1]

    C.s+1

    D.*(s[1])


    正确答案:D

  • 第9题:

    下面程序的运行结果是______。 include include fun(char*w,int n) { char

    下面程序的运行结果是______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) {t=*s1++;*s1=*s2--;*s2=t;} } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

    A.7654321

    B.1714171

    C.1711717

    D.7177171


    正确答案:C

  • 第10题:

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

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

    正确答案:B

  • 第11题:

    若s是int型变量,且s=6,则下面表达式的值是() s%2+(s+1)%2


    正确答案:1

  • 第12题:

    单选题
    如果定义有short,s;byte,b;char,c,则表达式s*b+c的类型为()
    A

    char

    B

    short

    C

    int

    D

    byte


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

  • 第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 s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给

    若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给s1,下列语句错误的是( )

    A.strcpy(s1,s2)

    B.strcpy(s1,"ABCDE");

    C.s1="ABCDE";

    D.for(i=0;i<6;i++) s1[i]=s2[i];


    正确答案:C
    解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量, 因此 sl="ABCDE"的方法是错误的。

  • 第15题:

    以下选项中,不能确定赋值的是______。

    A.char s1[10];s1="chest";

    B.char s2[]={'C','t','e','s','t'};

    C.char s3[20]="Chest";

    D.char *s4="Ctest\n"


    正确答案:A
    解析:C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

  • 第16题:

    对于下面的程序includeincludechar *scmp(char*s1,char*s2){if(strcmp(s1,

    对于下面的程序 #include<stdio.h> #include<string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i:char string[20],sb[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[21)); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

  • 第17题:

    以下选项中,能定义s为合法的结构体变量的是( )。

    A.typedef struct abc { double a; char b[10]; } s;

    B.struct { double a; char b[10]; }s;

    C.struct ABC { double a; char b[10]; } ABC s;

    D.typedef ABC { double a; char b[10]; } ABC s;


    正确答案:B
    解析:定义一个结构体类型的变量,可采用三种方法:①先定义结构体类型,再定义变量名。②在定义类型的同时定义变量。③直接定义结构体类型变量,即不出现结构体名。选项B)符合第三种定义方法。

  • 第18题:

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

    A.&s[1]

    B.&s[0]+1

    C.s+1

    D.s++


    正确答案:D

  • 第19题:

    设下面程序段中调用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

  • 第20题:

    设有定义语句“char s[]="123";”,则表达式“s[3]”的值是 ( )

    A.’1’

    B.’3’

    C.0

    D.语法出错


    正确答案:C
    字符数组s在定义时省略了数组长度,表示给每个数组元素均赋了初值。对本题来说,数组的长度为4;数组元素的值依次为:S[0]为'1'。S[1」为'2'。S[2]为'3'、S[3]为字符率结束标记符'\0',所以“s[3]”的值是'\0'。注意,这个字符的ASCII代码值是整数0,所以本题答案应选C。

  • 第21题:

    给S赋值:S=10,那么下面逻辑表达式中返回True结果的是:()。

    • A、S>5 and S>20
    • B、S>2 and S>4
    • C、S>5 and S<8
    • D、S==5 and S>1

    正确答案:B

  • 第22题:

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

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

    正确答案:B

  • 第23题:

    已知如下定义:Strings="story";下面哪个表达式是合法的()

    • A、s+="books"
    • B、charc=s[1]
    • C、intlen=s.length
    • D、Stringt=s.toLowerCase()

    正确答案:A,D

  • 第24题:

    单选题
    有定义语句:char s[10];若要从终端给s输入5个字符,错误的输入语句是(  )。
    A

    gets(&s[0]);

    B

    scanf(%s,s+1);

    C

    gets(s);

    D

    scanf(%s,s[1]);


    正确答案: B
    解析:
    采用scanf函数输入时,输入项为变量的地址。gets函数的输入项为存放字符串的首地址。A项,&s[0]为数组的首地址;B项,s+1为数组中第二个元素的地址;C项,s也为数组的首地址;D项,s[1]不是地址。答案选择D选项。