关于以下两种陈述,说法正确的是?()陈述1:RegExp的search(str)方法返回字符串中与正则表达式相匹配的字串

题目
单选题
关于以下两种陈述,说法正确的是?()陈述1:RegExp的search(str)方法返回字符串中与正则表达式相匹配的字串的位置陈述2:String的test(str)方法用于测试字符串是否与正则表达式相匹配。
A

陈述1正确,陈述2错误

B

陈述1错误,陈述2正确

C

两种陈述都正确

D

两种陈述都错误

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

函数调用strcat(strcpy(str1,str2),str3)的功能是( )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


正确答案:C
解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

第2题:

函数调用strcat(strcpy(str1,str2) ,str3) 的功能是( )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


正确答案:C
解析:strcat(s1,s2) 是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

第3题:

以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首地址 , 例如 : st r所指字符串为 : Hello! , c 中的字符为 e ,则函数返回字符串 : ello! 的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL 。请填空。

char *fun(char *str,char c)

{ int n=0; char *p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\0') n++;

if(p[n]=='\0') return NULL;

return( 【 1 2 】 );

}


正确答案:
(12) 【 12 】 p+n
解析 : n++ 到一定数值 , 就找到所指的字符 , 返回 c 的地址。

第4题:

设有以下定义和语句: 则以下叙述中正确的是( )。A.str数组长度和P所指向的字符串长度相等SXB

设有以下定义和语句:则以下叙述中正确的是( )。

A.str数组长度和P所指向的字符串长度相等

B.*P与str[0]的值相等

C.str与P的类型完全相同

D.数组str中存放的内容和指针变量P中存放的内容相同


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

第5题:

这程序有错吗?

/*写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址const char*p=NULL;int len=maxsubstr("qweohiuweyowohifpw",&p);输出:len=3,substr=ohi*/#include<stdio.h>#include<string.h>int maxsubstr(const char *str,const char **p){ int len=0,templen=0;//len为字符串中重复出现的最长字串的长度,templen为判断过程中字符串中重复出现的字串的长度 int size=strlen(str); const char*i=str,*j=0; //i=str即i=str[0],i指向字符串的第一个字符 for(i=str;i<str+size;i++){ //i依次指向字符串内的各个字符 const char *temp_i=i; //temp_i指向当前i所指字符 for(j=i+1;j<str+size;++j){ //j指向当前i所指字符的下一个字符,temp_i、j依次在总字符串中取两个字符串,temp_i在前,即在temp_i后寻找 与从temp_i开始的字符串重复长度最长的字符串 if(*temp_i==*j&&templen==0){ //此处前两个if可以合并,如果所指字符相同,temp_i往后指一个字符,j在第二个循环中会自动往后指(++j) ++templen; ++temp_i; } else if(*temp_i==*j&&templen!=0){ ++templen; ++temp_i; } else{ //当前所指字符不相等,temp_i需要指回i所指位置,j指回此次循环开始位置(由于for循环有++j,实际下次循环开始时往后指了一个) if(templen>len){ //判断重复出现的最长字串的长度是否改变 len=templen; templen=0; *p=i; }else{ templen=0; //就算重复出现的最长字串的长度不改变,当前长度也得清零。。。 } } } } return len;}int main(){ char str[10000]; const char*p=0; int len=0; int i=0; printf("输入带重复字符的字符串"); scanf("%s",str); len=maxsubstr(str,&p); printf("len=%d,substr=",len); for(i=0;i<len;i++){ printf("%c",*p++); } printf("\n");}


1.有错,因为给个重复的字符串,他的结果不正确 2.看不懂,所以自己编了个 #include <stdio.h> #include <string.h> void find_longest_repeat_str(const char str[], char longest_repeat_str[]); int main(int argc, char *argv[]) { char str[1024] = ""; char longest_repeat_str[1024] = ""; printf("输入字符串: "); scanf("%s", str); find_longest_repeat_str(str, longest_repeat_str); printf("The length of longest_repeat_str: %d\n", strlen(longest_repeat_str)); printf("Longest repeat string: %s\n", longest_repeat_str); return 0; } //找到最长的重复字符串 void find_longest_repeat_str(const char str[], char longest_repeat_str[]) { //原理:假设字符串是abcabcdabcdef,长度为13 int str_len = strlen(str); int i=0; char *j_pchar=NULL; char *k_pchar=NULL; //那么重复字符串的长度最长为13/2=6 //重复字符串的长度可能为6到1, for( i=str_len/2; i>=1; i-- ) { //当长度为6时,重复的字符串只可能由前13-6=7个字符组成, //重复的字符串的首地址只能为str+0到str+((13-6)-6) for(j_pchar=(char *)str; j_pchar<=str+str_len-i*2; j_pchar++) { //判断以j_pchar为首地址的字符串(长度为i), //是否在str后面部分有重复的.有重复的, //那么就找到了这个最长字符串 for(k_pchar=j_pchar+i; k_pchar<=str+str_len-i; k_pchar++) { if(strncmp(j_pchar, k_pchar, i)==0) { strncpy(longest_repeat_str, j_pchar, i); *(longest_repeat_str+i) = '\0'; return; } } } } *longest_repeat_str = '\0'; return; }

第6题:

正则表达式模块re的match()方法是从字符串的开始匹配特定模式,而search()方法是在整个字符串中寻找模式,这两个方法如果匹配成功则返回match对象,匹配失败则返回空值None。

此题为判断题(对,错)。


正确答案:√

第7题:

strcmp函数的功能是【9】 。

正确答案: 1.(字符串的比较)

(10)以下程序段中,错误的行号是【10】 。

① #include

② main ()

③ { char str [14];str []={" I love China"};

④printf ("%s",str);

⑤ }


正确答案:
3行

第8题:

设字符串变量str1="abc";str2="defg";则str1.compareTo(str2)的返回值为()。

A.2

B.-3

C.3

D.-2


参考答案:B

第9题:

关于正则表达式声明6位数字的邮编,以下代码正确的是( )。

Avarreg = /\d6/;

Bvarreg = \d{6}\;

Cvarreg = /\d{6}/;

Dvarreg = new RegExp("\d{6}");


正确答案是:C

第10题:

以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}


正确答案:p+n
在本题中,函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址。
在本题的程序中,fun函数带有两个形参,其中一个是指针str,它指向字符串的首地址,另一个是字符变量c。程序首先定义了一个整型变量n,从程序中可知,它是字符串str中参数c相对于首地址的偏移量,然后定义了一个指针变量p,指向字符串str的首地址,然后执行条件语句,如果字符串不为空,则执行循环语句,循环结束的条件是要么字符串结束,要么找到形参c中对应的字符。根据循环结束的条件我们可以判断,其非死循环,循环结束后,从程序中可以看出,判断循环结束的原因是否因为字符串结束而结束的,如果是,说明没找到形参c中对应的字符,返回NULL。
如果不是,则说明是因为找到了形参c中对应的字符而结束循环的。根据题目要求,需要返回以形参c中字符开头的后续字符串的首地址,而这时以形参c中字符开头的后续字符串的首地址为p+n。

更多相关问题