单选题int len = strlen(s),如果s=‛hell‛,则 len =()A4B5Cs的首地址D0

单选题
int len = strlen(s),如果s=‛hell‛,则 len =()
A

4

B

5

C

s的首地址

D

0


参考解析

解析: 暂无解析

相关考题:

●试题五阅读以下程序说明和C程序,将应填入(n)处的子句,写在答卷纸的对应栏内。【程序说明】函数int commstr(char *str1,char *str2,int *sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。【程序】int strlen(char *s){char *t=s;while(*++);return t-s-1;}intcommstr(char)*str1,char *str2,int *sublen{char*s1,*s2;int count=0,len1,len2,k,j,i,p;len1=strlen(str1);len2=strlen(str2);if(len1len2){s1=str1;s2=str2;}else{len2=len1;s1=str2;s2=str1;}for(j=len2;j0;j--)/*从可能最长子串开始寻找*{for(k=0; (1) =len2;k++)/*k为子串s2的开始位置*/{for(i=0;s1[ (2) ]!='\0';i++;)/* i为子串s1的开始位置*/{/* s1的子串与s2的子串比较*/for(p=0;pj) (3) ;p++);if ( (4) )/*如果两子串相同*/{for(p=0);pj;p++}/*输出子串*/printf("%c",s2[k+p]);printf("\n");count++;/* 计数增1*/}}}if (count0)break;*sublen=(count0)? (5) :0;return count;}

●试题三阅读下列函数说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为typedef struct node {int key;struct node *next;}*LinkedList;【函数】int DelA_InsB(LinkedList La,LinkdeList Lb,int key1,int key2,int len){LinkedList p,q,s,prep,pres;int k;if(!La->next||!Lb->next||len<=0)return-1;p=La->next;prep=La;while(p p- >key != key1){/*查找表A中键值为key1的结点*/prep=p;p=p->next;}if(!p)return -1;/*表A中不存在键值为key1的结点*/q=p;k=1;while(q (1) ){/*在表A中找出待删除的len个结点*/(2) ;k++;}if(!q)return -1;/*表A中不存在要被删除的len个结点*/s=Lb->next; (3) ;while(s s->key !=key2){/*查找表B中键值为key2的结点*/pres=s;s=s->next;}if(!s)return -1;/*表B中不存在键值为key2的结点*/(4) =q->next;/*将表A中的len个结点删除*/q->next= (5) ;pres->next=p;/*将len个结点移至表B*/return 0;}

阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。[函数6说明]函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:typedef struct node {int key;struct node * next;} * LinkedList;[函数6]int DelA InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len){ LinkedListp,q,s,prep,pres;int k;if(! La->next‖! Lb->next‖->next‖len<=0)return-1;p=La->next;prep=La;while(pp->key!=key1){ / * 查找表A中键值为key1的结点 * /prep=p;p=p->next;}if(! p)return -1; / * 表A中不存在键值为key1的结点 * /q=p;k=1;while(q (1) ){ / * 在表A中找出待删除的len个结点 * /(2);k++;}if(! q)return-1: / * 表A中不存在要被删除的len个结点 * /s=Lb->next; (3);while(s s s->key!=key2){ / * 查找表B中键值为key2的结点 * /pres=s;s=s->next;}if(! s)return-1; / * 表B中不存在键值为key2的结点 * /(4)=q->next; / * 将表A中的len个结点删除 * /q->next=(5);pres->next=p; / * 将len个结点移至表B * /return 0;}

有如下的程序: include include using namespace st 有如下的程序: #include<cstring> #include<iostream> using namespace std; class MyString { public: MyString(const char*s); ~MyString(){delete[]data;} Protected: unsigned len; char*data; }; MyString::MyString(const char*s) { len=strlen(s); data=new char[len+1]; strcpy(data,s); } int main() { MyString a("C++Programing"); MyString b(a); return 0; } 在运行上面的程序时出错,出错的原因是A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深拷贝)的拷贝构造函数C.构造对象a时实参与形参类型不符D.系统不能生成缺省的拷贝构造函数

有以下程序:includemain(intargc, char *argv[ ]){int i,len=0;for(i=1;i 有以下程序: #include <string.h> main(int argc, char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf("%d\n",len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出的结果是( )。A.14B.12C.8D.6

试题二(共15分)阅读以下说明和C函数,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。【说明1】 函数deldigit(char *s) 的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与 s 等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。【C函数】void deldigit(char *s){char *t = (char *)malloc( (1) ); /*申请串空间*/int i, k = 0;if (!t) return;for(i = 0; i strlen(s); i++)if ( !(*(s+i)='0' *(s+i)='9') ) {t[k++] = (2) ;}(3) = '\0'; /*设置串结束标志*/strcpy(s,t);free(t);}【说明2】函数reverse(char *s, int len)的功能是用递归方式逆置长度为 len的字符串s。例如,若串s的内容为“abcd” ,则逆置后其内容变为“dcba” 。【C函数】void reverse(char *s, int len){char ch;if ( (4) ){ch = *s;*s = *(s+len-1);*(s+len-1) = ch;reverse( (5) );}}

已知如下定义: String s = "story"; 下面哪些表达式是合法的?() A.s += "books";B.char c = s[1];C.int len = s.length;D.String t = s.toLowerCase();

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。【说明】函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为typedef struct node {int key;struct node * next;} *LinkedList;【函数】int DelA_InsB ( LinkedList La, LinkdeList Lb,int key1,int key2,,int len){ LinkedList p,q,s,prep,pres;int k;if( ! La->next || ! Lb-> next ||| en <=0)return-1;p = La -> next;prep = La;while(pp- >key != key1) { /*查找表A中键值为key1的结点*/prep = p;p = p -> next;}if( ! p) return - 1; /*在表A中不存在键值为key1的结点*/q=p;k=1;while(q (1))} /*表A中不存在要被删除的len个结点*/(2);k++;}if( ! q)return -1; /*表A中不存在要被删除的len个结点*/s = Lb -> next;(3);while(s s -> key != key2) { /*查找表B中键值为key2的结点*/pres =s;s =s->next;}if( ! s) return - t; /*表B中不存在键值为key2的结点*/(4)=q-> next; /*将表A中的len个结点删除*/q->next=(5);pres -> next = p; /*将len个结点移至表B */return 0;}

阅读以下程序说明和C程序,将应填入(n)处的子句,写在对应栏内。【程序说明】函数int commstr(char * str1,char * str2,int * sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。【程序】int strlen(char * s){char *t=s;while( * ++);return t-s-1;}int commstr(char) *str1,char *str2,int *sublen{ char*s1, *s2;int count=0,len1 ,len2,k,j,i,p;len1:=strlen(str1)len2 = strlen(str2);if(len1>len2){s1=str1 ;s2=str2;}else {len2 = len1;s1 = str2;s2 = str1;}for(j=len2;j>0;j--) /*从可能最长子串开始寻找*/{for(k=0;(1)<:len2;k++) /*k为子串s2的开始位置*/{for(i=0;s1[(2)]!='\0';i++;) /*i为子串s1的开始位置*/{ /*s1的子串与s2的子串比较*/for (p=0;p<j)(3);p++);if ((4)) /*如果两子串相同*/{for(p=0);p<j;p++} /*输出子串*/printf ("%c",s2[k+p]);printf ("\n");count++;/*计数增1 */}}}if (count>0) break;*sublen=(count>0)?(5):0;return count;}

如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如:9632是降序数,而8516则不是降序数)。现编写如下程序,判断输入的正整数是否为降序数。 Private Sub Command1 Click( ) Dim n As Long Dim flag As Boolean n=InputBox("输入一个正整数") S=Trim(Str(n)) For i=2 To Len(s) If Mid(s,i-1,1)Mid(S,i,1)Then Exit For Next i If i=Len(S)Then flag=True Else flag=False If flag Then Print n;"是降序数" Else Print n;"不是降序数" End If End Sub 运行以上程序,发现有错误,需要对给flag变量赋值的If语句进行修改。以下正确的修改是( )。A.If i=Len(s)+1 Then flag=False Else flag=TrueB.If i=Len(s)+1 Then flag=True Else flag=FalseC.If i=Len(s)-1 Then flag=False Else flag=TrueD.If i=Len(s)-1 Then flag=True Else flag=False

有如下程序:includeincludeusing namespace std;class MyString{public:My 有如下程序: #include<cstring> #include<iostream> using namespace std; class MyString{ public: MyString(const char * s); ~MyString( ){delete[ ]data;} protected: unsigned len; char * data; }; MyString::MyString(const char * s){ len=strlen(s); data=new char[1en+1]; strcpy(data,s); } int main( ){ MyString a("C++Progreanfing"); MyString b(A) ; return 0; } 在运行上面的程序时出错,错误的原因是A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深复制)的复制构造函数C.构造对象a时实参与形参类型不符D.系统不能生成缺失的复制构造函数

设字符串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'

请找出下面代码中的所有错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”1、#include"string.h"2、main()3、{4、 char*src="hello,world";5、 char* dest=NULL;6、 int len=strlen(src);7、 dest=(char*)malloc(len);8、 char* d=dest;9、 char* s=src[len];10、 while(len--!=0)11、 d++=s--;12、 printf("%s",dest);13、 return 0;14、}

有以下程序includemain(int arge,char *argv[]){int i,len=0;for(i=1;i 有以下程序 #include<string.h> main(int arge,char *argv[]) { int i,len=0; for(i=1;i<arge;i++)len+=strlen(argv[i]); printf(“%d\n”,len); } 程序编译连接后生成的可执行文件是exl.exe,若运行时输入带参数的命令行是: exl abcd efg 10<回车> 则运行的结果是A.22B.17C.12D.9

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。[C函数]int count(char*s,int start,int end){inti,c=0,color=s[start],step=(start>end)?-1:1;for(i=start;s[i]==color;i+=step){if(step>0 i>end || (1) ) break;(2) ;}return c;}void main(){ char t,s[120];int i,j,C,len,maxc,cut=0;printf("请输入环上代表不同颜色珠子字符串:");scanf("%s",s );len=strlen(s);for(i=maxc=0;i<len;i++){ /*尝试不同的剪开方式*/c=count(s,0,len-1);if(c<len) C+=count( (3));if(c>maxc){cut=i;maxc=c; )/*数组s的元素循环向左移动一个位置*/t=s[0];for(j=1;i<len;i++) (4);(5);}printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);}

有以下程序:includemain(int argc,char *argv[]){inti,len=0;for(i=1;i 有以下程序: #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]); printf("%d\n",len); } 程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是: ex1 abcd efg 10<回车> 则运行的结果是( )。A.22B.17C.12D.9

有以下程序 include main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i 有以下程序 #include <string.h> main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf(“%d\n”,len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是( )A.14B.12C.8D.6

设P=”ABCD abcd”,则SUBSTER(P,INT(LEN(P)/2+1))值为【 】。

有以下程序:include include main(int argc,char *argv[]){ int i,len=0;f 有以下程序: #include <stdio.h> #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i+=2)len+=strlen(argv[i]); prinff("%d\n",len); } 此程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abed efg h3 k44则执行后的输出结果时( )。A.14B.12C.8D.6

获得字符串s长度的方法是什么? A.s.len()B.s.lengthC.len(s)D.length(s)

阅读下列说明和C代码,回答问题,将解答填入答题纸的对应栏内。【说明1】函数deldigit(char *s) 的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。【C函数】void deldigit(char *s){ char *t = (char *)malloc( (1) ); /*申请串空间*/ int i, k = 0; if (!t) return; for(i = 0; i if ( !(*(s+i)>=’0’ } (3) = ’\0’; /*设置串结束标志*/ strcpy(s,t);free(t);}【说明2】函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为“abcd”,则逆置后其内容变为“dcba”。【C函数】void reverse(char *s, int len){ char ch; if ( (4) ) { ch = *s; *s = *(s+len-1); *(s+len-1) = ch; reverse( (5) ); }}

int len = strlen(s),如果s=‛hell‛,则 len =()A、4B、5C、s的首地址D、0

设Strings="story";下列选项中的语句书写正确的是()。A、s+="books";B、char c = s[1];C、int len = s.length;D、s = s-"books";

设字符串S1= “ABCDEF”,S2= “PQRS”,则运算S=CONCAT(SUB(S1,2,LEN(S2)),SUB(S1,LEN(S2),2))后的串值为()。

设串sI="ABCDEFG",s2="PQRST",函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,1en(s2)),subs(sl,len(s2),2))的结果串是()A、BCDEFB、BCDEFGC、BCPQRSTD、BCDEFEF

单选题设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是()ABCDEFBBCDEFGCBCPQRSTDBCDEFEF

填空题设字符串S1= “ABCDEF”,S2= “PQRS”,则运算S=CONCAT(SUB(S1,2,LEN(S2)),SUB(S1,LEN(S2),2))后的串值为()。