有如下程序段:Dim str As String*10Dim iStrl="abcdefg"i=12lenl=Len(i)str2=Right(str1,4) 执行

题目

有如下程序段: Dim str As String*10 Dim i Strl="abcdefg" i=12 lenl=Len(i) str2=Right(str1,4) 执行后,len1和str2的返回值分别是______。

A.12,abcd

B.10,bcde

C.2,defg

D.0,cdef

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

第1题:

若有定义:char strl[10],str2[ ]="student"; 以下能把str2中的字符串赋给strl的语句是()。

A.for(int i=0; i<=strlen(str2); i++) str1[ i ]=str2[ i ];

B.str1="student";

C.str1=str2;

D.for(int i=0; str2[ i ]!=0; i++) str1[ i ]=str2[ i ];


D

第2题:

以下函数的功能是连接两个字符串,请完善程序。 void str_cat(char str1[ ], char str2[ ], char str[ ]) { int i,j; for(i=0;str1[i]!= '0';i++) str[i]=str1[i]; for(j=0;str2[j]!='0';j++) str[i++]=str2[j]; ; }


void fun (char p1[]char p2[]) { int ij; for (i=0;p1 [i] !='\\0'; i++); /*求出的i为p1字符的总长度包括结束标记位*/ for (j=0;p2 [j] !='\\0'; j++) p1 [i++]=p2 [j]; /*将p2字符串连在p1字符串的后面*/ p1[i]='\\0'; /*在字符串最后加上结束标记符*/ } void fun (char p1[],char p2[]) { int i,j; for (i=0;p1 [i] !='\\0'; i++); /*求出的i为p1字符的总长度,包括结束标记位*/ for (j=0;p2 [j] !='\\0'; j++) p1 [i++]=p2 [j]; /*将p2字符串连在p1字符串的后面*/ p1[i]='\\0'; /*在字符串最后加上结束标记符*/ } 解析:本题用两个循环,第1个循环的作用是将i走到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。

第3题:

有如下程序段: Dim str As String*10 Dim i Str1="abcdefg" i=12 len1=Len(i) str2=Right(str1,4) 执行后,len1和str2的返回值分别是______。

A.12,abcd

B.10,bcde

C.2,defg

D.0,cdef


正确答案:C
解析:Len()是字符串长度检测函数,i=12,所以字符串长度为2。Right(字符串表达式 >,N1>)从字符串右起取N1个字符。

第4题:

有如下程序段: Dim str As String * 10 Dim i str1 = "abcdefg" i = 12 len1 = Len(i) sir2 = Right(str1, 4)执行后,len1和str2的返回值分别是( )。

A.12,abcd

B.10,bcde

C.2,defg

D.0,cdef


正确答案:C
解析:i的值为12,长度为2。Right()函数的功能是从字符串的右边截取n个字符,所以str2的值为"defg"。

第5题:

下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdio。h> include<string.h> void proc(char*strl,char*str2,char*str) { int i,j;char ch; i=0;j=strleu(str2)-1; //****found**** while(i>j) { ch=str2[i];str2[i]=str2[j];str2[j]=ch; i++;j--; } while(*str1||*str2) { if(*str1){*str=*str1;str++;str1++;) if(*str2){*str=*str2;str++;str2++;) } //****found**** *str=0: } void main { char s1[100],s2[100],t[200]; system("CLS"); printf("\nEnter s1 string:"); scanf("%s",sl); printf("\nEnter s2 string:"); scanf("%s",s2); proc(s1,s2,t); printf("\nThe result is:%s\n",t); }


正确答案:

(1)错误:while(i>j)
正确:while(i<j)
(2)错误:*str=0;
正确:*str='\0 ';
【解析】由函数proc可知,变量i和j分别存放的是字符串str前面和后面第i个字符的位置,当i<j时,两个位置的字符交换。因此,“while(i>j)”应改为“while(i<j)”;交叉合并完成后,要为新的字符串添加结束符,因此,“*str= 0;”应改为“*str='\0';”,

第6题:

阅读下列程序,写出程序的运行结果【】。 include void main() { charstr1[ ]: "Hello,

阅读下列程序,写出程序的运行结果【 】。

include<iostream. h>

void main() { char str1[ ]: "Hello, World?;

char str2[100];

int i=0;

do{

if (str1[i]>= 'a'&& str1[i]<= 'z' )

str2[i]=str1[i]-32;

else

str2[i]=strl [i];

i++;

}while(strl[i]!='\0');

str2[i]='\0';

cout<<str1<<end1;

cout<<str2<<end1;

}


正确答案:Hello World! HELLO WORLD!
Hello, World! HELLO, WORLD!

第7题:

执行语句序列

char strl[10]="ABCD",str2[10]="XYZxyz";

for (int i=0; strl[i]=str2[i]; i++)

后,数组str1中的字符是XYZxyz,数组str2中的字符串是【 】。


正确答案:XYZxyz
XYZxyz 解析:注意for的循环体为空语句,其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此,for循环的作用实际上是将str2的字符逐个赋值给str1中的对应位置。

第8题:

若输入bcdefgh、m、abcdefg,以下程序的输出结果为()。includeincludemain(){i

若输入bcdefgh、m、abcdefg,以下程序的输出结果为( )。 #include<stdio.h> #include<string.h> main() { int i; char string[20],str[3][20]; for(i=0;i<3;i++)gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf("%s",string); }

A.bcdefgh

B.m

C.abcdefg

D.bcdefgh或abcdefg


正确答案:B

第9题:

请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。

例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include<stdio.h>

include<conio.h>

define LEN 80

main()

{

char str1[LEN),str2[LEN);

int n,i;

clrscr();

printf(“Enter the string:\n”);

gets(str1);

printf“Enter the position of the string

deleted:”);

scanf(【 】);

for(i=0;i<n;i++)

【 】

str2[i]=‘\0’;

printf(“The new string is:%s\n”,【 】);

}


正确答案:"%d"&n str2[i]=str1[i] str2
"%d",&n str2[i]=str1[i] str2 解析:第一空:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符‘&’。第二空:截取前n个字符,就是将字符串str1的前n个字符依次赋给字符串str2的前n个字符。第三空:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。