设char *s1, *s2;分别指向两个字符串,可以判断字符串s1和s2是否相等的表达式为()A、s1=s2B、s1==s2C、strcpy(s1,s2)==0D、strcmp(s1,s2)==0

题目

设char *s1, *s2;分别指向两个字符串,可以判断字符串s1和s2是否相等的表达式为()

  • A、s1=s2
  • B、s1==s2
  • C、strcpy(s1,s2)==0
  • D、strcmp(s1,s2)==0
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指字符串大于s2所指字符串时,执行语句S;则以下选项中正确的是( )。

A.if(sl>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1>0)S;

D.if(strcmp)(s1,s2)>0)S;


正确答案:D
解析:在C语言中字符串的比较用strcmp()函数,该函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若小于返回值小于0,相等返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。本题中要求当s1所指字符串大于s2所指字符串时,执行语句s,因此应该为strcmp(s1,s2)>0或者strcmp(s2,s1)0,所以,4个选项中选项D符合题意。

第2题:

阅读以下函数fun(char *sl,char *s2){ int i=0;while(sl[i]==s2[i]&&s2[i]!='\0') i++;return(sl[i]=='\0'&&s2[i]=='\0');}此函数的功能是

A.将s2所指字符串赋给s1

B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0


正确答案:C

第3题:

s1和s2已正确定义并分别指向两个字符串,若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(strcmp(s1,82)>0)S;


正确答案:D
解析:在C语言中字符串的比较用stremp()函数,该函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若小于返回值小于0,相等返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符中,女B果遇到某一个字符小,该字符所在的字符串就是较小的字符串。本题中要求当sl所指字符串大于s2所指串时,执行语句s,因此应该为stremp(s1,s2)>0或者strcmp(s2,s1)0。

第4题:

以下程序中函数scmp功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。#includ<string. h>char *scmp(char *s1,char *s2){ if(strcmp(s1,s2)<0) return(s1); else return(s2);}main(){ int i;char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); //库函数 strcpy 对字符串进行复制 strcpy(string,scmp(stfing,str[2])); puts(string); }若运行时依次输入: abed、abba 和abc三个字符串,则输出结果为( )。

A.abed

B.abba

C.abc

D.abca


正确答案:B

第5题:

s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S。则以下选项中正确的是______。

A.if (s1>s2)S;

B.if(strcmp(s1, s2))S;

C.if(strcmp(s2, s1)>0)S;

D.if(strcmp(s1, s2)>0)S;


正确答案:D
解析:C语言中,用strcmp(s1,s2)来比较串s1和s2的大小,当s1>s2时,strcmp的值为正数;当s1=s2时,strcmp的值为0;当s1s2时,strcmp的值为负数。因此D选项的if语句正确。

第6题:

若已包括头文件且已有定义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"的方法是错误的。

第7题:

若有定义语句:“char*s1=”0K”,*s2=”ok”;”,以下选项中,能够输出“OK”的语句是( )。

A.if(strcmp(sl,s2)= =0)puts(s1);

B.if(strcmp(sl,s2)!=0)puts(s2);

C.if(strcmp(sl,s2)= =l)puts(s1);

D.if(stremp(sl,s2)!=0)puts(s1);


正确答案:D
此题考查strcmp函数,此函数是模糊比较两个字符串的大小,因为Strcmp(sl,s2)!=0,所以需要输出“0K”用puts函数,所以答案为D。

第8题:

若已包括头文件且已有定义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”的方法是错误的。

第9题:

对于下面的程序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。

第10题:

判断字符串s1是否大于字符串s2,应该使用()。A.if(strcmp(s1,s2)<0)B.if(s1>s2)C.if(strcmp(s2,s1)

判断字符串s1是否大于字符串s2,应该使用( )。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))


正确答案:C
解析: 本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。

更多相关问题