已知charstr[]="afternoon”;则若要输出数组中f字符,则下列引用正确的是()A、str[0]B、str[1]C、str[2]D、str

题目

已知charstr[]="afternoon”;则若要输出数组中f字符,则下列引用正确的是()

  • A、str[0]
  • B、str[1]
  • C、str[2]
  • D、str
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义charstr[80]以下不能将输人数据nrst\nsecond\<CR)读取到数组str的语句是( )。

A.cin.get(str,strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.dn.read(str,strlen(str));


正确答案:D
解析: 本题考查cin流对象的几种成员函数get,getline,read及流提取符>>的使用规则。

第2题:

执行语句序列

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

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

后,数组strl中的字符串是______。


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

第3题:

定义字符指针char *str="hello",已知sizeof(str)=4,则strlen(str)=______。


正确答案:5
5

第4题:

下列给定程序中,函数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';”,

第5题:

语句定义如下: char strl[50],str2[20],ch; 则下列语句正确的是______。

A.str1={"Crazy"}; str2=str1;

B.str1={"Crazy"}; str2={"English"}; strcpy(str1,str2);

C.ch="xy";

D.ch='x';


正确答案:D
解析:str1和str2是数组名,是常量,其值不可改变,所以A和B中将字符串常量赋值给str1和str2是错误的。字符变量ch占一个字节,只能存放一个字符,所以C也不正确。

第6题:

已知“charstr[]="my";”,则执行“strcat(str,"book");”后,str中保存的字符串为"mybook"。()

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


正确答案:错误

第7题:

设有定义charstr[80];以下不能将输入数据first\nsecond\n<CR>读取到数组str中的语句是( )。

A.cin.get(str,strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.cin.read(str,strlen(str));


正确答案:D
D。【解析】本题考查cin流对象的几种成员函数get,getline,read及流提取符>>的使用规则。

第8题:

执行语句序列

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中的对应位置。

第9题:

若有定义:charstr1[6]="abcdm",*ps,*str2="abcdef";则()是正确的

A.strcpy(str1,str2)

B.表达式strcmp(str1,str2)的值大于0

C.str1=str2

D.表达式strlen(str1)的值为6


参考答案:A

第10题:

使用VC++6.o打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。 例如: str1为“asdfsfdfg” str2为“sf”则返回1 str2为“df”则返回3 注意:不能修改函数的其他部分。 试题程序: include<iostream.h> //注意只能使用int类型,不能类型转换 intfun(char*str1,char*str2) { } voidmain() { charstr1[1024]; charstr2[256]; cout<<"pleaseinputastring:"<<endl; cin.getline(str1,1024); cout<<"pleaseinputotherstring;"<<endl cin.getline(str2,256); cout<<fun(str1,str2); cout<<endl; return; }


正确答案:
intfun(char*str1.char*str2)
{
intsize=0;
intstrllen;
intstr2len;
for(strllen=0;str1[strllen]!=0;strllen++);
for(str21en=0;str2[str21en]!=0;str2len++);
for(inti=0:i<strllen;i++)
{
intj=0;
for(;j<str21en;j++)
if(strl[i+j]!=str2[j])
break;
if(i==str21en)
{
++size;
i+=j;
}
}
returnsize;
}
【解析】本题考查的是字符串查找算法。首先求出两个字符串的长度,然后循环遍历第1个字符串,再使用一个内循环遍历第2个字符串,判断两个字符串相应位置是否一致。如果遍历完第2个字符串,所有位置都一致,则记数值size增1,即找到一个子串。

更多相关问题