“Nanjing&Shanghai”
“Nanjing&Nanjing”
“ShanghaiNanjing”
“Shanghai&Nanjing”
第1题:
下列语句中,在字符串s1和s2相等时显示"they are Equal"的是( )。
A.if(*s1==*s2) puts("they are Equal");
B.if(!strcmp(s1,s2)) puts("they are Equal");
C.if(s1==s2) Puts("they are Equal");
D.if(strcmp(s1,s2) ) puts("they are Equal");
第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,否则函数值为o
D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为o
第3题:
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;
第4题:
判断字符串s1是否大于字符串s2,应该使用( )。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
第5题:
以下说法中错误的是
A.strcpy(A,B)函数是将A字符串的内容复制到B字符串中
B.strlen(cha*s)返回字符串S的长度,未尾的字符不计算在内
C.char a[20]="string";中字符串长度为6
D.strstr(S1,S2)函数在字符串S1中从左边开始查找字符串S2,若查找成功则返回S2在S1中首次出现的位置,否则返回NULL,如果S2为"",则返回S1。
第6题:
阅读以下函数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
第7题:
阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。
【说明】
本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。
【代码】
include<stdio.h>
include<stdlib.h>
include<string.h>
char*replace(char *s1, char *s2,char *s3)
{ char *p, *q, *r, *s; int |2,|3, i=0;
|2=strlen(s2);
|3=strlen(s3);
p=s1;
while((p=strstr(p,s2))!=NULL)
{ i++; /* 统计s2串出现的次数*/
(1);
}
i=(2);
s=r=(char*)malloc(i); /*分配动态内存存放新字符串*/
p=s1;
while(1)
{ q=strstr(p, s2); /* s2串是否在s1中出现,q是首次出现的位置*/
if(q!=NULL)
{ i=q-p;
(3);
r+=i;
(4);
r+=|3;
p=q+|2; /*将指向s1串的指针移到s2子串出现的位置后,
为下一次循环做好准备*/
}
else /*q为空,表示剩余的s1串中已经没有s2*/
{ (5);
break; /*终止循环*/
}
}
return(s); /*返回指向所形成的新串的指针*/
}
void main()
{ char *a="sabcababde", *b="ab", *c="efg", *d;
d=replace(a, b, c); printf("result=%s\n", d); free(d);
}
第8题:
若已包括头文件<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];
第9题:
设字符串s1='ABCDEFG',s2='PQRST',则运算s=CONCAT(SUB(s1,2,LEN(s2)),SUB(s1,LEN(s2,2))后的串值为(65)。
A.'ABCDEFEF'
B.'BCDEFG'
C.'BCPQRST'
D.'BCQR'
第10题:
阅读以下函数: fun(char*s1, char*s2) { int i=0; while(s1[i]==s2[i]&& s2[i]!='\0') i++; return(s1[i]==&& 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