请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。
例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include< stdio, h>
include<conio. h>
define N 80
char *fun (char *str1,char *str2)
{
char *p1=str1, *p2=str2;
while (*p1 & & *p2 )
{
if (【 】)
return "<";
if(【 】)
return ">";
p1++;
p2++;
}
if (*p1=*p2)
return "==";
if (*p1==【 】)
return "<";
else
return ">";
}
main()
{
char str1 [N], str2 [N];
clrscr ();
printf ("Input str1: \n");
gets (str1);
printf ("Input str2: \n");
gets (str2);
printf ("\n*****the result*****\n");
printf ("\nstr1 %s str2", fun (str1, str2) );
}
第1题:
使用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; }
第2题:
请补充函数proc(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。
例如,str1=”I am a”,str2=”student”,结果输出:I am a student。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【1】*(pl+i)【2】+p2【3】*p2++
【解析】要将字符串str2接在字符串str后面,首先要得到字符串str1的长度,因此【1】填“*(p1+i)”。然后将字符串str2中的每一个字符接在字符串str1所有字符的后面,因此【2】填“*p2”;【3】填“*p2++”。
第3题:
下列说法正确的是()。
A.strlen()计算的是包含'0'在内的字符串的长度。###SXB###B.字符串不能使用赋值运算符整体复制,必须使用strcpy函数进行字符串的复制。strcpy(str2, str1);是将字符数组str2中的字符串复制到字符数组str1中。###SXB###C.strcat(str2, str1);是将字符数组str2中的字符串连接到字符数组str1中的字符串的末尾,str1中的字符串末尾的空字符'0'将被覆盖。###SXB###D.字符串不能用关系运算符>,<,==直接比较大小,必须使用strcmp函数比较大小,当出现第一对不相等的字符时,就由这两个字符的ASCII码值的大小来决定其所在字符串的大小。第4题:
请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。
例如:str1=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
define N 40
void fun(char *str1,char *str2)
{
int i=0,j=0,k=0,n;
char ch;
char *p1=str1;
char *p2=str2;
while(*(p1+i))
i++;
while(*(p2+j))
j++;
n=【 】;
for(;k=j/2;k++,j--)
{
ch=*(p2+k);
*(p2+k)=*(p2+j);
*(p2+j)=ch;
}
【 】;
for(;【 】;i++)
*(p1+i)=*p2++;
*(p1+i)='\0';
}
main()
{
char str1[N],str2[N];
int m,n,k;
clrscr();
printf("***Input the string str1 & str2
***\n");
printf("\nstr1:");
gets(str1);
printf("\nstr2:");
gets(str2);
printf("***The string str1 & str2 ***\n");
puts(str1);
puts(str2);
fun(str1,str2);
printf("*** The new string ***\n");
puts (str1);
}
第5题:
下列说法正确的是()。
A.strlen()计算的是包含'0'在内的字符串的长度。#B.字符串不能使用赋值运算符整体复制,必须使用strcpy函数进行字符串的复制。strcpy(str2, str1);是将字符数组str2中的字符串复制到字符数组str1中。#C.strcat(str2, str1);是将字符数组str2中的字符串连接到字符数组str1中的字符串的末尾,str1中的字符串末尾的空字符'0'将被覆盖。#D.字符串不能用关系运算符>,<,==直接比较大小,必须使用strcmp函数比较大小,当出现第一对不相等的字符时,就由这两个字符的ASCII码值的大小来决定其所在字符串的大小。